{ "cells": [ { "cell_type": "markdown", "metadata": { "nbpages": { "level": 0, "link": "[](https://jckantor.github.io/CBE30338/05.03-Creating-Bode-Plots.html)", "section": "" } }, "source": [ "\n", "*This notebook contains material from [CBE30338](https://jckantor.github.io/CBE30338);\n", "content is available [on Github](https://github.com/jckantor/CBE30338.git).*\n" ] }, { "cell_type": "markdown", "metadata": { "nbpages": { "level": 0, "link": "[](https://jckantor.github.io/CBE30338/05.03-Creating-Bode-Plots.html)", "section": "" } }, "source": [ "\n", "< [5.2 Closed-Loop Transfer Functions for Car Cruise Control](https://jckantor.github.io/CBE30338/05.02-Closed--Loop-Transfer-Functions-for-Car-Cruise-Control.html) | [Contents](toc.html) | [Tag Index](tag_index.html) | [5.4 Controller Tuning Rules in Frequency Domain](https://jckantor.github.io/CBE30338/05.04-Controller-Tuning-Rules-in-Frequency-Domain.html) >
"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 1,
"link": "[5.3 Creating Bode Plots](https://jckantor.github.io/CBE30338/05.03-Creating-Bode-Plots.html#5.3-Creating-Bode-Plots)",
"section": "5.3 Creating Bode Plots"
},
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# 5.3 Creating Bode Plots\n",
"\n",
"This notebook demonstrate uss of the [Python Control Systems Library](https://github.com/python-control/python-control) to create and annotate Bode plots. Documentation of the control systems library is available [here](http://python-control.readthedocs.io/en/latest/)."
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 2,
"link": "[5.3.1 Initializations](https://jckantor.github.io/CBE30338/05.03-Creating-Bode-Plots.html#5.3.1-Initializations)",
"section": "5.3.1 Initializations"
},
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## 5.3.1 Initializations\n",
"\n",
"These are the standard initializations with the [Python Control Systems Library](https://github.com/python-control/python-control). \n",
"\n",
"The control library is imported with full prefix `control`. This is good practice to avoid name conflicts with other libraries.\n",
"\n",
"The control library has a bug where it continues to make use of the deprecated `hold` command from matplotlib. This results in warnings being issued. Use the warnings library to turn off these distracting warnings."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true,
"nbpages": {
"level": 2,
"link": "[5.3.1 Initializations](https://jckantor.github.io/CBE30338/05.03-Creating-Bode-Plots.html#5.3.1-Initializations)",
"section": "5.3.1 Initializations"
}
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import control\n",
"\n",
"import warnings\n",
"warnings.filterwarnings('ignore')"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 2,
"link": "[5.3.2 Creating Bode Plots](https://jckantor.github.io/CBE30338/05.03-Creating-Bode-Plots.html#5.3.2-Creating-Bode-Plots)",
"section": "5.3.2 Creating Bode Plots"
},
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"## 5.3.2 Creating Bode Plots"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 3,
"link": "[5.3.2.1 Specify a Transfer Function](https://jckantor.github.io/CBE30338/05.03-Creating-Bode-Plots.html#5.3.2.1-Specify-a-Transfer-Function)",
"section": "5.3.2.1 Specify a Transfer Function"
},
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### 5.3.2.1 Specify a Transfer Function\n",
"\n",
"Given a transfer function with time delay\n",
"\n",
"$$G(s) = 0.2 \\frac{0.5s + 1}{1.5s^2 + 0.5 s + 1}$$\n",
"\n",
"the first task to create an object representing the transfer function."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"nbpages": {
"level": 3,
"link": "[5.3.2.1 Specify a Transfer Function](https://jckantor.github.io/CBE30338/05.03-Creating-Bode-Plots.html#5.3.2.1-Specify-a-Transfer-Function)",
"section": "5.3.2.1 Specify a Transfer Function"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
" 0.1 s + 0.2\n",
"-------------------\n",
"1.5 s^2 + 0.5 s + 1\n",
"\n"
]
}
],
"source": [
"# requires coefficients of the numerator and denominator polynomials\n",
"# the coefficients are given starting with the highest power of s\n",
"\n",
"G = 0.2*control.tf([0.5,1],[1.5,0.5,1])\n",
"print(G)"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 3,
"link": "[5.3.2.2 Adding Time Delay](https://jckantor.github.io/CBE30338/05.03-Creating-Bode-Plots.html#5.3.2.2-Adding-Time-Delay)",
"section": "5.3.2.2 Adding Time Delay"
},
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### 5.3.2.2 Adding Time Delay\n",
"\n",
"Time delay is a common feature of process control applications. The current version of the Python Control Systems Library does not provide a specific representation for time delay. However, the library does provide a function `pade` to create high-order Pade approximations to time delay.\n",
"\n",
"$$G_p(s) = e^{-0.25s} G(s)$$\n",
"\n",
"Here we add a third order pade approximation for a time delay of 0.25 time units."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"nbpages": {
"level": 3,
"link": "[5.3.2.2 Adding Time Delay](https://jckantor.github.io/CBE30338/05.03-Creating-Bode-Plots.html#5.3.2.2-Adding-Time-Delay)",
"section": "5.3.2.2 Adding Time Delay"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
" -0.1 s^4 + 4.6 s^3 - 86.4 s^2 + 576 s + 1536\n",
"-------------------------------------------------------------\n",
"1.5 s^5 + 72.5 s^4 + 1465 s^3 + 1.205e+04 s^2 + 4800 s + 7680\n",
"\n"
]
}
],
"source": [
"(num,den) = control.pade(0.25,3)\n",
"Gp = control.tf(num,den)*G\n",
"print(Gp)"
]
},
{
"cell_type": "markdown",
"metadata": {
"nbpages": {
"level": 3,
"link": "[5.3.2.3 Bode Plot using Default Options](https://jckantor.github.io/CBE30338/05.03-Creating-Bode-Plots.html#5.3.2.3-Bode-Plot-using-Default-Options)",
"section": "5.3.2.3 Bode Plot using Default Options"
},
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### 5.3.2.3 Bode Plot using Default Options\n",
"\n",
"Function `control.bode()` returns values of the magnitude ratio, phase lag, and frequency (in rad/time) for a given transfer function. It also creates a bode plot as a side effect."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"nbpages": {
"level": 3,
"link": "[5.3.2.3 Bode Plot using Default Options](https://jckantor.github.io/CBE30338/05.03-Creating-Bode-Plots.html#5.3.2.3-Bode-Plot-using-Default-Options)",
"section": "5.3.2.3 Bode Plot using Default Options"
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
}
],
"metadata": {
"anaconda-cloud": {},
"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
}