{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "*This notebook contains course material from [CBE30338](https://jckantor.github.io/CBE30338)\n", "by Jeffrey Kantor (jeff at nd.edu); the content is available [on Github](https://github.com/jckantor/CBE30338.git).\n", "The text is released under the [CC-BY-NC-ND-4.0 license](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode),\n", "and code is released under the [MIT license](https://opensource.org/licenses/MIT).*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Getting Started with Transfer Functions](http://nbviewer.jupyter.org/github/jckantor/CBE30338/blob/master/notebooks/05.01-Getting-Started-with-Transfer-Functions.ipynb) | [Contents](toc.ipynb) | [Creating Bode Plots](http://nbviewer.jupyter.org/github/jckantor/CBE30338/blob/master/notebooks/05.03-Creating-Bode-Plots.ipynb) >

\"Open

\"Download\"" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Closed-Loop Transfer Functions for Car Cruise Control\n", " " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Summary\n", "\n", "Block diagrams allow you to visualize the flow of information in complex dynamical systems. Using simple elements, it is possible to create models to study the relationship between control structure, process response, and control action.\n", "\n", "The purpose of this notebook is to introduce for the analysis of block diagrams made up of linear transfer functions. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Block Diagram for Car Cruise Control\n", "\n", "Let's imagine you own a car with a mass of 1,500 kg (including passengers) that is traveling down a level stretch of highway at a desired speed of 100 kilometers per hour. You wish to design a cruise controller that will adjust the throttle position $u$ within the limits 0 to 1 in order to maintain constant speed. \n", "\n", "A block diagram for this system is shown in the following sketch:\n", "\n", "![Cruise Control Block Diagram](figures/CruiseControl.png)\n", "\n", "The disturbance to the system is a change in road grade measured in percent. (A one percent grade corresponds to 1 foot of rise in 100 feet of horizontal travel, or a tangent of 0.01). The dynamics are represented by three transfer functions denoting the response of the engine torque to throttle position,\n", "\n", "$$G_e = \\frac{600}{s + 1}$$\n", "\n", "the response of the vehicle to engine and external forces, \n", "\n", "$$G_v = \\frac{0.5}{5s + 1}$$\n", "\n", "and the dynamics of the speed measurement,\n", "\n", "$$G_m = \\frac{1}{0.2s + 1}$$\n", "\n", "We assume that a one percent increase in grade introduces 150 Newtons of force in opposing the car acceleration, that is\n", "\n", "$$G_d = 150$$\n", "\n", "The controller is assumed to be a proportional-integral control written as\n", "\n", "$$G_c = K_c\\left(1 + \\frac{1}{\\tau_I s}\\right)$$\n", "\n", "This can be summarized in the following block diagram\n", "\n", "![Cruise Control Block Diagram](figures/CruiseControl2.png)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "import numpy as np\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "import control.matlab as control\n", "\n", "# control constants\n", "Kc = 0.01\n", "tauI = 10\n", "\n", "# control transfer function\n", "Gc = Kc*control.tf([tauI,1],[tauI,0])\n", "\n", "# model transfer functions\n", "Gd = control.tf([150],[1])\n", "Ge = control.tf([600],[1,1])\n", "Gv = control.tf([0.5],[5,1])\n", "Gm = control.tf([1],[0.2,1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Closed-Loop Transfer Functions\n", "\n", "Vehicle response to a change in setpoint:\n", "\n", "$$H_{yr} = \\frac{G_vG_eG_c}{1+G_vG_eG_cG_m}$$\n", "\n", "Vehicle response to a disturbance:\n", "\n", "$$H_{yd} = -\\frac{G_vG_d}{1+G_vG_eG_cG_m}$$\n", "\n", "Throttle response to a change in setpoint:\n", "\n", "$$H_{ur} = \\frac{G_c}{1+G_cG_mG_vG_e}$$\n", "\n", "Throttle response to a disturbance:\n", "\n", "$$H_{ud} = \\frac{G_cG_mG_vG_d}{1+G_cG_mG_vG_e}$$\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "Hyr = Gv*Ge*Gc/(1+Gv*Ge*Gc*Gm)\n", "Hyd = -Gv*Gd/(1+Gv*Ge*Gc*Gm)\n", "Hur = Gc/(1+Gc*Gm*Gv*Ge)\n", "Hud = Gc*Gm*Gv*Gd/(1+Gc*Gm*Gv*Ge)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " 300 s^5 + 1890 s^4 + 2046 s^3 + 486 s^2 + 30 s\n", "--------------------------------------------------------------------\n", "500 s^7 + 3700 s^6 + 6920 s^5 + 6340 s^4 + 3170 s^3 + 580 s^2 + 30 s\n", "\n" ] } ], "source": [ "print(Hyr)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " -750 s^4 - 4650 s^3 - 4650 s^2 - 750 s\n", "-----------------------------------------------\n", "50 s^5 + 320 s^4 + 372 s^3 + 262 s^2 + 55 s + 3\n", "\n" ] } ], "source": [ "print(Hyd)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "s^5 + 6.3 s^4 + 6.82 s^3 + 1.62 s^2 + 0.1 s\n", "--------------------------------------------\n", "100 s^5 + 620 s^4 + 620 s^3 + 400 s^2 + 30 s\n", "\n" ] } ], "source": [ "print(Hur)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " 75 s^5 + 472.5 s^4 + 511.5 s^3 + 121.5 s^2 + 7.5 s\n", "--------------------------------------------------------------------\n", "100 s^7 + 1140 s^6 + 3944 s^5 + 4244 s^4 + 2730 s^3 + 556 s^2 + 30 s\n", "\n" ] } ], "source": [ "print(Hud)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step Responses" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nIhIBfwFivqGkZsZOzQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "t = np.linspace(0,100,1000)\n", "plt.figure(figsize=(12,8))\n", "\n", "plt.subplot(2,2,1)\n", "yr,t = control.step(Hyr,t)\n", "plt.plot(t,yr)\n", "plt.xlabel('Time [sec]')\n", "plt.ylabel('Speed [kph]')\n", "plt.title('Response to a Setpoint Change')\n", "\n", "plt.subplot(2,2,2)\n", "yd,t = control.step(Hyd,t)\n", "plt.plot(t,yd)\n", "plt.xlabel('Time [sec]')\n", "plt.ylabel('Speed [kph]')\n", "plt.title('Response to a Disturbance')\n", "\n", "plt.subplot(2,2,3)\n", "ur,t = control.step(Hur,t)\n", "plt.plot(t,ur)\n", "plt.xlabel('Time [sec]')\n", "plt.ylabel('Throttle Setting')\n", "\n", "plt.subplot(2,2,4)\n", "ud,t = control.step(Hud,t)\n", "plt.plot(t,ud)\n", "plt.xlabel('Time [sec]')\n", "plt.ylabel('Throttle Setting')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Additional Examples" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Internal Model Control\n", "\n", "Internal model control is a version of feedback control that incorporates an explicit process model. A simple block diagram of internal model control is given by\n", "\n", "![Internal Model Control](./figures/Internal_Model_Control.png)\n", "\n", "There are two designated inputs, the reference $w$ and disturbance $y_d$, and three labeled signals $u$, $y$, and $d$ that appear relevant to closed-loop performance. Here's the solution for all six closed-loop transfer transfer functions:\n", "\n", "| Output\\Input | $w$ | $y_d$ |\n", "| :----------: | :-: | :---: |\n", "| $u$ | $\\frac{Q}{1 + Q(G - G_m)}$ | $-\\frac{Q}{1 + Q(G - G_m)}$ |\n", "| $y$ | $\\frac{GQ}{1 + Q(G - G_m)}$ | $\\frac{1}{1 + Q(G - G_m)}$ |\n", "| $d$ | $\\frac{(G-G_m)Q}{1 + Q(G - G_m)}$ | $\\frac{1}{1 + Q(G - G_m)}$ |\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### SEMD Figure 11-14\n", "\n", "![Internal Model Control](figures/E11-10.png)\n", "\n", "\n", "$$H_{yd} = \\frac{G_3}{1+(G_2 + G_3G_1)K_cK_m}$$\n", "\n", "$$H_{yr} = \\frac{(G_2+G_3G_1)K_cK_m}{1+(G_2 + G_3G_1)K_cK_m}$$\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "< [Getting Started with Transfer Functions](http://nbviewer.jupyter.org/github/jckantor/CBE30338/blob/master/notebooks/05.01-Getting-Started-with-Transfer-Functions.ipynb) | [Contents](toc.ipynb) | [Creating Bode Plots](http://nbviewer.jupyter.org/github/jckantor/CBE30338/blob/master/notebooks/05.03-Creating-Bode-Plots.ipynb) >

\"Open

\"Download\"" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.4" } }, "nbformat": 4, "nbformat_minor": 2 }