{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Approximation\n", "\n", "There are many cases where we end up with very high order models or models with dead time which we would like to approximate with lower order models or models without dead time. This notebook illustrates some of the approaches." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import sympy\n", "sympy.init_printing()\n", "import numpy\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import tbcontrol" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "tbcontrol.expectversion('0.1.7')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Taylor approximation\n", "\n", "We have encountered Taylor approximants before. They are polynomial approximations and can easily be calculated using the `sympy.series` function." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "x = sympy.symbols('x')" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "f = sympy.sin(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that Sympy uses the number of terms instead of the order of the polynomial, so this is a second order polynomial about the point x=2" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle - \\frac{\\left(x - 2\\right)^{2} \\sin{\\left(2 \\right)}}{2} + \\left(x - 2\\right) \\cos{\\left(2 \\right)} + \\sin{\\left(2 \\right)}$" ], "text/plain": [ " 2 \n", " (x - 2) ⋅sin(2) \n", "- ─────────────── + (x - 2)⋅cos(2) + sin(2)\n", " 2 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f.series(x, 2, 3).removeO()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's plot a couple of approximations of `sin(x)`:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "def taylor(xlim, ylim):\n", " p = sympy.plot(f, (x, *xlim), show=False)\n", " colors = ['red', 'green', 'magenta', 'brown']\n", " for n, color in enumerate(colors, 1):\n", " approx = f.series(x, 2, n).removeO()\n", " p.extend(sympy.plot(approx, (x, *xlim),\n", " line_color=color, show=False))\n", " p[n].label = f'Order: {n-1}'\n", " p.ylim = ylim\n", " p.xlim = xlim\n", " p.legend = True\n", " p.show()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "taylor((-10, 10), (-4, 4))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "An important characteristic of all polynomial approximations is that the function always grows large \"far enough\" away from the origin and therefore cannot model asymptotes very well. Let's zoom out on that graph a bit:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "taylor((-100, 100), (-1000, 1000))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Padé approximation\n", "\n", "Padé approximation is an extension of the concept of Taylor approximation with rational functions rather than polynomials. The basic premise is that the approximation is made by matching derivatives at a particular point. Padé approximants are often associated with dead time approximation, but can be used for arbitrary transfer functions as well.\n", "\n", "One of the big benefits of Padé approximants is that rational functions can become constant for large magnitudes of $x$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will approximate a Laplace dead time" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "s = sympy.symbols('s')" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACYAAAATCAYAAAD8in+wAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABjElEQVRIDcWU7VHDMAyGCccAPdigbBBW6Ah0BOgG5TpC2YAZ2g2ADYANygYENgjPk7NzDtcP+sOu7hTZlm29eSWratv2LKdUVTXi/kWIMQ72jrg/e+MKLKcS/Cm93zm6Sde2jbOCMiDiZxKDM5Y11+q4ts1esCG3zAjwdigIKV+y5ws1xU12xv6yQVABDFLJ3PR2rGJrdFUUWAi6wY5SwMyf0Xf0PvoqN/xXoNu/8Y8PyYx7P9NNnLW2ZGaKb/Aiw72v+HzB+m6KMEYgQa0iS4z9wXEgRV/HoGuozM2zAwvBTJVgospcBGNq01drRuqjUsmBo4U0fXPIFA0EtioX8FtXDXrpHGnwrQfA2OQFC9Rnq1yjD2w072XFPKvIBJXWvvE5RpdxT0nbNViYsuisA1/TBzaKYF0vLrHzW4zKCJBz7FU3AxRAX8K4qOlqDDDmcg2IadHoe4KdJ75BQ0zWTzKMwHaCgs3bUyCLwGxqFnovALLerL30MfT+3IO+jwEiFn3sYbaRx9wAdt3/C+Ys9ve1zn41AAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle e^{- 2 s}$" ], "text/plain": [ " -2⋅s\n", "ℯ " ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G = sympy.exp(-2*s)\n", "G" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "by a 1/1 Padé approximation. This means first order above the line and first order below. In order to force uniqueness of the solution, we force the constant term in the denominator to be unity." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "import tbcontrol.symbolic" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "s0 = 0 " ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAC4AAAAtCAYAAADRLVmZAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACSUlEQVRoBe2Zi03DMBCGG8QAFWzQEYARygYwAnSDdgRUNqCMwAiUCVC7QdkAlA3K95s4ctK8qsbEkXLS1c84X85nx7lG+/1+5EoURVeU39Br2mK3LaT8uWCAHZO8oj/oDTpBwxZZ3FVo56imYezWh5Y/C9us5XS9BTc+Xv5c3bew/pZQfCckl6RPuG0cNDjQ74AuAN0KnPKURA8yC9ZVgNTONrXQ5CULdKPMyRbnBtpKP1ClTeU+B1R6XWJ1vVfWXHObdqQQ7HYIpNxCW7PVpeUN1lVkWSDl3xFZWXqNzpMZHgUJDtwS3QFqBPism1AbJDhc2j1eDHXyw4PckV3xEOb8FJExTTRoAWiB6ayi9AvVNvRJn2fSfxNYdNATvCsxHCtbkYLbir6kobpKrf0G8FoTtdxhsHjLBq0dbrB4rYla7tBbi+sA8/fqbNkivocb3py+LZwfv7c+PoDnp9J3OXiL62yO7tDMx/jJX/k+LJtAVgdh9QXkQ3kgfcE8njo2YxQGYX26iqY2M72UWxOf4K1BFg104OP4V2GQsejiLusy4ECXBhm7hCy6d+oqQE/oUBpkLLq4y7qMxQWSWP0wyFhCSX8FbrSD5OVCFbTP8g2Ut+w29wX1zavc7YqrSoOMbr8mecZS5GnepG9VH42B6uid+U8qdRUaKoOMag9JDDjTWRtkDAlaLNbi8tHKIGNo4HZxPgA2xfLyJysKMhYtLNvuNYXFDcLqXhvq0iCsAQdQFeYPIq80RwwOU+WuY13liCEbd43pKfUiv108hnLAYDpmAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\frac{1 - s}{s + 1}$" ], "text/plain": [ "1 - s\n", "─────\n", "s + 1" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G_pade = tbcontrol.symbolic.pade(G, s, 1, 1, s0)\n", "G_pade" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Compare this with a taylor approximation with same number of coefficients (matching the same number of derivatives)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGwAAAAVCAYAAACjSwvEAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC/UlEQVRoBe2ZgVXbMBBA674MkLYbwAbQbgAbwAjQDcLrBLx0A1iBEaATtLABbNCSDdL//Sw/27FD7MgmhOi9e5JPdyfdnU53SpL5fP4hZkuSZIy8H5nMvaw/Y51ZzHXeq6xRD4pPcc73IBcHXjG+B/YDbtd3t0DSQ4QZssfIvXNbOMwoewQOwT2I27XuFvjYnbWR0+j60zi7m1jLAtEjrLobImwK7oTo2l2JVeN0+E4jzGvLXJPBPf0tcNBBXoklk3EC8rA0MeAHe+hFtyFU0H7AI2AhlzdzzI25LADfRoW56Cjg2vbwKvcWGLfljUWf7SG6brH2VydHewE3QCjW9ENuQ8bpZI4IQsA/C+G7TQ9f6RDwbbTutZERg5Y1VTyqbqvui3WPgPNV6evo4J8AJYd5JSr4uRp24KzyxuA1/soto/d0XDI2pHWWhci/lYXEI4yqW8ttGSmlq6wlfy257zAdc4CHZ7UU7Rf1zeVG7fOG/PxtliP7H8TWrf8dv7DCCEOeNtCkRQfzC28nosYc9zfj+0J/GRxO/6lB3uDo2LoNrkDNgkbYQsuuMa/Ci+okcxYSF8GRfHvt6MDXiKDq9l78fuu6mcPqmsn6Gqf8LE6irE60cixGnU4tXX9Fng0cv2ndFiIMp1gw3OGUxoiBxihTcemOYzgFmea9X0CbRH1aOTxLt9KHbplMb5lq+yyC+To7PrDvplRUlVP+hrH4/jpn9qqIq46ZD280y03BH3tzGZs6Zp+D6sZ6/mAwWcce8gMLZT249CS4wD4L5CeC0+GvBKWynnnzVwKtkWUVNoGmTVTAMmxjf1ujW5rDUMiK8JvOqJhSRdP3EzRTwF/d0wZttOswyOyj3zbdRihkBKX5iLH5KzTvYN9nofDwni7Oez/rUIuTWWDapH4bdfNqs8JL31w1xjY5pj/corw01eQ6Y/66hm8jUOz51XTLDrM/x4UDv7JN4DWATDNfs/6J3sr8d+9/r7DIu2zrOGyZwdIctoxgN9fZAqaJ6KniP2jfUb/iPu0vAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 2 s^{2} - 2 s + 1$" ], "text/plain": [ " 2 \n", "2⋅s - 2⋅s + 1" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G_taylor = G.series(s, s0, 3).removeO()\n", "G_taylor" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So how much do the approximations resemble the original function?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, let's check just the real part" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWcAAAD2CAYAAAAK9UbfAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3deVxV1frH8c8+HOZ5FAEFFRFlFhDNITVDSxtMzSFvlpqNN5u73crmrH5mk1ZaaVZmptl4c7hmlppeRcUJZ0XEiVmZh3P274+tKAmICuwDPO/X6wTs6TwoflusvdbaiqqqCCGEsCwGvQsQQghxMQlnIYSwQBLOQghhgSSchRDCAkk4CyGEBZJwFkIICyThLIQQFkjCWQghLJCEsxBCWCCj3gWI+qEoSgAwCugN+AHFwE7gP8BSVVXNOpYnhLhMikzfbvoURZkL+AO/AElABmAHhAD9gFjgX6qq/qlbkUKIyyLh3AwoihKuqurOWvbbAG1VVT1whddPBfIBE1ChqmrcFRUqhKgzCedmSlEUd6CNqqrb6+FaqUCcqqpZV12YEKJO5IZgM6IoympFUVwURfEAtgFzFUWZrnddQojLd7XhrLb0V/IfC1XlJUX97LMH63xOZn6pGvSv/6ifrjlU+7GPPabi5FTn60ZHR1+rqurpTz75JHvKlCltVFXtGhER8ejVfo9BQUGBMTExmbGxsers2bMv2j979mw1Li5OjYuLU8PCwnT/O5GXZb0+2fyJ2vfzvuqezD2612IhrzqRlvNVinLtRGAe/Hh6Y53P8Xa2pZWLLSnHz9R+oI8PFBZCUVGdrltRUcGJEyf49ttvGTJkSJ3ruZR169axZcsWli5dysyZM/nzz6r3FSdNmkRSUhJJSUnY29vX2/uK5uGbXd9wqvAUod6hepfSpEg4XyVFUbh1D6wo2EZBWUGdzwv3c2Xn8dO1H+Tjo33MzKzTNadMmcLAgQMJDg4mPj6eQ4cO0bFjxzrXVBM/P7+z5fgwdOhQNm6s+/+IRMuWXZTNH6l/MDR0qN6lNDkSzvXg1j1Qqpaz4uCKOp8T5ufCgYwCistMNR90LpwzMup0zREjRrB9+3Y+/PBDANq3b893331X55qqU1hYSH5+fuXnK1asIDw8/KquKVqOX/b9gkk1cVvn2/QupcmRcK4HvdLAw8qJH/b8UOdzwvxdMauw52QtXRt1DOdXX32VnJycGvevWrWKX375pc61XejUqVP06tWLqKgounXrxuDBgxk0aNAVXUu0PN/v+Z42Lm2IbR2rdylNjswQrAdGMwxxiePnfb9QbirH2sr6kueE+7sCsPP4GWLauld/UB3DOSIigptuugk7Ozu6du2Kt7c3JSUl7N+/n+TkZAYMGMC///3vy/qezmnfvj3btm27onNF01VeXk56ejolJSVXfA2zaub+oPtxCnFiz5499Vhd02BnZ0dAQADW1pfOg+pIONeTW1268UXuatakraF/u/6XPN7P1Q43B2t2Haul39nbW/t4iXBevHgx69at46233sLHx4cTJ07g4uLC2LFjmT17ttykE5ctPT0dZ2dngoKCUBTliq6RW5xLcW4xIZ4huNi61HOFlk1VVbKzs0lPT6ddu3ZXdA0J53qS6ByNndGOH/b8UKdwVhSFcD9XdtU2YsPRERwcLhnOmzdv5siRI8yfP5/ff/+9yr7i4mIJZ3HZSkpKriqYAXJLcjEajDjbONdjZU2Doih4enqSWceb+dWRcK4njgY7Ejsk8uPeH3lv0Ht1+qEO83dh7tpUyirM2Bhr6P738blkON93330MGjSIQ4cOERd3fma1qqooisKhQ4cu63sRAriqYDarZk6XnMbd3v2qrtOUXe33LTcE69GtnW4l7XQaySeT63R8mJ8rZSYz+zPyaz6oDuH88MMPs3v3bsaPH8+hQ4cqX4cPH5ZgFrrIL83HpJpws3PTu5QmS8K5Hg0JGYJBMdR51Ea4n9YPt+vYJUZs1PFXo48++qhOxwnR0PJK8jAoBovpax4+fHi1DZX//ve/xMbGEhERQWxsLKtWrQK03zoBXnzxxSpfV+eJJ56oPK8+STjXI29Hb3q26cn3e76v0/FBno442lixq7bJKHVoOQthSVRVJa8kD1dbVwyK/hGza9cuTCYT7du3v2ifl5cXP//8Mzt27GDevHn84x//AGDFihU8++yzFBYW8umnn/Luu+/WeP1//vOfvPHGG/Vet/5/cs3MnVF3klmUyYGcS6/OaTAohPm5srO2m4Le3lo4y+qBookoLCuk3FxeL10aX331Fd26dSM6Opp7772XI0eO0LFjR7KysjCbzfTu3ZsVK1aQmppKaGgo48aNIzIykuHDh1N0dtmD+fPnc8stt1R7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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plotrange = (s, -2, 3)\n", "def plot_approx(G, G_pade, G_taylor):\n", " p = sympy.plot(G, plotrange, show=False)\n", " pade_approx = sympy.plot(G_pade, plotrange, show=False, line_color='red')\n", " taylor_approx = sympy.plot(G_taylor, plotrange, show=False, line_color='green')\n", " p.extend(pade_approx)\n", " p.extend(taylor_approx)\n", " p[1].label = 'Pade'\n", " p[2].label = 'Taylor'\n", " p.ylim = (-1, 5)\n", " p.legend = True\n", " p.show()\n", "plot_approx(G, G_pade, G_taylor)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note the singularity in the Padé approximation, as well as the fact that the Taylor polynomial has an unbounded error to the right, while the Padé approximation is better behaved." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, let's see what this looks like for the whole complex plane" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "try:\n", " import mpmath\n", "except ImportError:\n", " from sympy import mpmath" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "def cplot(G):\n", " f = sympy.lambdify(s, G, ['mpmath', 'numpy'])\n", " mpmath.cplot(f, [-2, 2], [-2, 2], points=10000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The original function" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "cplot(G)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pade approximation" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "cplot(G_pade)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Taylor approximation" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "cplot(G_taylor)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Pade approximation is much better in the region around 0." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Further exploration" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Padé approximations with order 0 below the line are effectively Taylor polynomials" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADYAAAAOCAYAAABkbO8dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABt0lEQVRIDc2WgVECMRBFiWMBN9oBJYB2gB1IC9iBluCcHUALlCBW4EgH0oFyHZzvhwSWy8Ewg3rJzF6yP3uX/ZfdTVxd173YnHMDxnNkCF5F/L97/Oiz5lNY94b+Wzo+LQN2UldgJTJT5AMR00KEuxDWFqm5XRu9ROTXyOLHxnvO8+Jj+ECXxPSTk/XB1pJjZOzcBca5tREOrQlHRZJtC5QihKnFW8c5EhOBFX//UI43CbcSu2xFOwQhND6wvAqbUicpIOyicvArvHdN/5wdseDcXofjImUr5XaeuVeUbcVEVyiX2RUPWwDiGEc/kWnUYw8msqi7Co4uopOzdoy/o3h/Q06Ke+zUxjiShNNmKn2yho6hBe88pLMbJOyaqqns7jzaYNt5uW/4M8HJZKcaNvGM0zknKTWfbSji4H10MhJBV+j1o257cOWWwlDkihzLfY/QUrG4xfF4rUL1TWR1vZJNiSj3fMN2F4YgZ+VY+OavdjirXfH5wlj5FdsVgwEEXgKgHbLzIiviM2wqx0OAv8YA6sKpQrBClODv5kOof9/wRfdVf2a1rLbEn6Fw7GQjcrZVzM8E/ABMtxQ37BLrzAAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle 1 - 2 s$" ], "text/plain": [ "1 - 2⋅s" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tbcontrol.symbolic.pade(G, s, 1, 0, 0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This form is often used the other way around to approximate lags with dead time" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADgAAAAtCAYAAAD7nag2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACo0lEQVRoBe2ajU3DMBCFG8QAFWxQNiiwQdkARgA2KCOgskFhBEaADVDZADaAdoPyPcsObkgggGNHlU86ObHdu3v349hJi/V6PYhFRVGM0XUPH6J3FUPvbtdKADVExx38Dh/BIzgadQ7QRupMiAA7pVEUo9FONE2JFGWAiRwfTG2OYDBXJhKUI5jI8cHU5ggGc2UiQVsfwSLGZpstmjbY2pNqL6r2FX6Gn9B/Q9sZRQHYmfUtBG99imaALbKg11NyBHsdnhbG5Qi2cFKvp2x9BAvcH++9YYJY551MAqcHVbn1NZgBBs2XBMLKCHJmG8FzywvaBzjqa/b/4Jet8Aus8+Yn2QPviJ57XTvmfgbrETJxfX1rsU1gdJiewwtY9g59Ow0gOs2J2x/QNbQUV/tD3iN/Al/8VyYy9GHnC0CXolKy/BLeweCR/iH9inBXpChsplVATQ6ggLzixVWD7M4MaNAXrNt8HwSY+X5XI9UsMozrBdEGEVXV6Jvt3Ke9/sZBG7+NedP4ARQAAqfUvKoaxNiD+h1w7pXiAnxZnZv63qVonR1aeG4BsfFaDzACrZXVj6qcoFWsd1QbQUBo2X0ERGNEbBTlBM07+QmZlalIV2lPHYzX6XpGdlP5VOXU3yOgfPbpGrqA59V+/55x94zUD8Qzf/w31/z2FJ7+5jd1cyUDbnxMMGa8KGUHCCi9iWe1w1FalsS46k9nSUVOK/CUOb1cacsaxEAtKscyntYngdZfQJRGM/jFDTK3VXq6+SlaU4MYrQiZeuJa9edI9TEGiFtoVEP+uEDLAVqMmp6hTlaS1i0yAieQqr8q+avlOYMTQCnfHa0AV6a064zVYotsV3kcWZ06KMhm82En+SsLmwEjL0usnWGasgbDiPuTFKV2Z+n9AXXiP5+0p05uAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\frac{1}{2 s + 1}$" ], "text/plain": [ " 1 \n", "───────\n", "2⋅s + 1" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tbcontrol.symbolic.pade(G, s, 0, 1, 0)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "def approx_comparison(G, M, N):\n", " P = tbcontrol.symbolic.pade(G, s, M, N, 0)\n", " T = sympy.series(G, s, 0, N+M+1).removeO()\n", " plot_approx(G, P, T)\n" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "from ipywidgets import interact" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "deadtime = sympy.exp(-2*s)\n", "high_order = 1/(s + 1)**10" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "plotrange=(s, -5, 5)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "c1feab9700ef44a9bd42057a53a4507a", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(Dropdown(description='G', options=(exp(-2*s), (s + 1)**(-10)), value=exp(-2*s)), IntSlid…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "interact(approx_comparison, G=[deadtime, high_order], N=(0, 3), M=(1, 3))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Approximations based on response matching\n", "\n", "The approximations we discussed above are based on matching the values in the Laplace domain. However, we often want to find an approximation which has the property of matching the time domain responses.\n", "\n", "A common-sense rule is that larger time constants are more important to retain than smaller ones. My personal rule is that any time constant which is less than 10 times smaller than the next largest one can usualy be ignored, in other words, for our purposes\n", "\n", "$$ \\frac{1}{(10s + 1)(s + 1)} \\approx \\frac{1}{10s + 1}$$\n", "\n", "**Note 1** It is conventional to arrange the terms in descending orders of time constants.\n", "\n", "**Note 2** This is a rule of thumb and should not be applied during intermediate calculations. You should always be aware of the point where you are applying approximation and make a note that you have done this." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this section I'll be using the [Python Control Systems Library](https://python-control.readthedocs.io/en/latest/). It doesn't support dead time in its transfer function object, but I'll fake it in the responses by shifting them with a certain dead time. We assume version 0.8.0." ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "import control" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'0.8.2'" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "control.__version__" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I like defining `s` like this to make formulae easier to type later on. Note that this overwrites our earlier symbolic s, so after this definition we can no longer use s in sympy." ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "s = control.tf([1, 0], 1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll be plotting lots of step responses for delayed transfer functions. This function will \"fake\" this by calculating the undelayed response and plotting it shifted up by the delay." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "def plotstep(G, D=0, T=None):\n", " t, y = control.step_response(G, T=T)\n", " new_t = numpy.concatenate([[0], t + D])\n", " new_y = numpy.concatenate([[0], y])\n", " plt.plot(new_t, new_y)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "G1 = 1/((s + 1)*(10*s + 1))\n", "G2 = 1/((10*s + 1))" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plotstep(G1)\n", "plotstep(G2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First order systems in series often have step responses which resemble those of lower order systems with increasing dead time:" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ts = numpy.linspace(0, 20)\n", "G = 1/(s + 1)\n", "for i in range(10):\n", " G *= 1/(s + 1)\n", " plotstep(G, T=ts)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we use the 0, 1 Padé approximation of dead time:\n", "\n", "$$e^{-\\theta s} \\approx \\frac{1}{1 + \\theta s}$$" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plotstep(G, T=ts)\n", "plotstep(1/(s + 1), D=10, T=ts)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that we get the same kind of behaviour but the dynamics start too fast and end too slow." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can \"eyeball\" a lower-order response which matches the last 10th order response pretty well. Play with these sliders and see how easy it is to match the lines together." ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "def approx(tau, D):\n", " plotstep(G, T=numpy.linspace(0, 30))\n", " plotstep(1/(tau*s + 1), D=D, T=numpy.linspace(0, 30 - D))\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "899df824ce754ebeb17cfdd96d4db235", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(FloatSlider(value=5.5, description='tau', max=10.0, min=1.0), FloatSlider(value=5.5, des…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "interact(approx, tau=(1., 10.), D=(1., 10.))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Skogestad's \"Half Rule\"\n", "\n", "Skogestad's \"half rule\" is specifically designed to approximate complicated transfer functions as first order plus dead time (FOPDT) or second order plus dead time (SOPDT) models: \n", "\n", "$$ \\text{FOPDT: } \\frac{K e^{-\\theta s}}{\\tau s + 1} \\qquad \\text{SOPDT: } \\frac{K e^{-\\theta s}}{(\\tau_1 s + 1)(\\tau_2 s + 1)}$$\n", "\n", "The method does not work for systems with complex roots or unstable systems.\n", "\n", "The function `tbcontrol.numeric.skogestad_half` implements this method.\n", "\n", "For instance, let's take the transfer function from Example 5.4:\n", "\n", "$$G(s) = \\frac{K(-0.1s + 1)}{(5s + 1)(3s + 1)(0.5s + 1)}$$\n", "\n", "The gains are always matched, so we can safely use $K=1$" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "K = 1" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "G = K*(-0.1*s + 1)/((5*s + 1)*(3*s + 1)*(0.5*s + 1))" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [], "source": [ "from tbcontrol.numeric import skogestad_half" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [], "source": [ "θ1, [τ] = skogestad_half([-0.1], [5, 3, 0.5], delay=0, order=1)\n", "Gapprox1 = K/(τ*s + 1)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [], "source": [ "θ2, [τ1, τ2] = skogestad_half([-0.1], [5, 3, 0.5], delay=0, order=2)\n", "Gapprox2 = K/((τ1*s + 1)*(τ2*s + 1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's see what our final approximations look like:" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3deXwU9f3H8dd3j1wkIUAChATkCoQ7hABqQZFDLpWjWFS0Qj1+1lts1VataFsVa2tbRSsq4okgyCl4cSOHBLkJRzgTziSQ+9rj+/tjFwwhkA1sMsnu5/l47GNnZmdnP7N55J1vvjPzHaW1RgghRN1nMroAIYQQ3iGBLoQQPkICXQghfIQEuhBC+AgJdCGE8BEWoz44MjJSt2zZ0qiPF0KIOmnTpk2ZWuuoil4zLNBbtmxJcnKyUR8vhBB1klLq8MVeky4XIYTwERLoQgjhIyTQhRDCR0igCyGEj5BAF0IIH1FpoCulpimlTimldlzkdaWU+q9SKlUptU0plej9MoUQQlTGkxb6dGDIJV4fCsS5H/cD71x5WUIIIaqq0vPQtdarlFItL7HKCOBj7RqHd71SKkIpFa21Pu6lGoUQNUBrjc2hKbU7KLbbKLKXUup+tjnsFNtt2Bx2NA5iGgTi0A7aRLTBYqqGy1mcTnDawWkDp8M97X7WZecd7nlHmeVO0M4yy93T2lnmtbLLzq6jf3mNMtPnPfQl1tNl5s9O6/Onzz63HwIxPbz+tXnjJxEDpJWZT3cvuyDQlVL342rF06JFCy98tBC+yenUFJTaySu2kVWYx+nCPM4U55FTUkBucQF5pQUU2AoptBVRZC+myF5MsaOIEkcJNkcJNmcpNl2C3VmKXdtwaBsOSnFqOxobTuxo7KDsgB2Uo8zD6XGdq5sOI8KpwFECjlKwl7qez3vYf5l2np22uafdz+Wn8fH7NIQ1rbWBripYVuFPQ2s9FZgKkJSU5OM/MeHv7A4npwtLOZVXSHpuJsfzMjmZn0VmUTZnirPJLckl355LkT2fYkcBNl2AnSIcFKFVMcpUjDKXVukzlVZYtAmrVgRoRYCGMCBQawK0kyCtCdIOAt2PIKcdq9YEaLCgsZyd1to9f3b6l2eT+9mqNSFHPgRLIJgD3M9WMLvnzdZfnq3hrmmT5ZflJiuYLa5l5027501m98PqXnZ23gLK/MsyZSq33L3s7HJVZh1lAqV+WXbeOuqXZefWUYByrYM6f/nZ9VG/vOeS0+5HNfJGoKcDzcvMxwLHvLBdIWqlwlI7x7KLOHA6k/2n0zmSc4Lj+SfJKs4kpzSLQkc2JToHp8pDWfJR5uKLb0ybsRJMoDmACKyEYiIMC2GEEuEMJtxmJ9xRSrijhDB7EWG2QurZCgnRmiCnJlg7CdaaYKcm0B20gCsEA8MgMBQC3I/AehDgflhDXI+AELAGu+fdz5Yg93yQa/rcIwAswa7gPhvi1RxQomq8EegLgIeVUl8AvYEc6T8XdVmxzcHhrEJSTp5gV8ZBDmQf4VjBUU6XnKDAkYnDfBqTNRtlurD1bDKHEGiJIMocTkNzBFEmK1EKmuKkiS6lsa2QyNI8IgrPUD8/g+DinAr/xUWZIbgBhDSE4IYQ1gKCIyAowv1c3/UIDHdPh7sD3P1sCaz270nUPpUGulJqBtAPiFRKpQMvAFYArfX/gMXAMCAVKAQmVFexQnhTRl4Je05kk3x0Pzsy9nA47xCZJWmUcBIVkInJUnje+paAUCIsUTQIbE10UCNaWoNoZVa0wkZMaR5RuacIzD0KOalQmHnhB1rrQVgTCG0KTbpA68YQGgX1oiAk0vVcL9IV4oH1wSSXiYiq8eQsl9sreV0DD3mtIiG8zOHUHMjIJ/nIcdanbyfldAoniw9iMx/FFHgSZbK7VjRDYEgDYgNjiA3tTNv6sXQJrkc7bMQWnKHemSOQtR+OL4eCjPM/xFoPIlpA/Vholgj1YyA8BsKbQVgzCI92tZyFqEaGDZ8rRHU5lVvMT4cyWXFwK1sytnG8eDc6IA1TQCZKabBAQGg4scGtiYu4lu5N2tE9JJTWhbmEZh2AUylwcCmcPuA6te2s0KbQqA20GwwNW0ODlq5HREtXq1r6k4XBJNBFnXcsu4hV+47z/f6NbMvaRD77MIcccfVxWyEkIIKrQuPp3mQk18Z0ojNmojIPwvGtcHgF/DQF7O4Dl8oEDdtAVHvoNBIi20NkW2jUVlrYotaTQBd1TmGpnR/3ZbJo92bWH19LrtqFOeQgymSDUEXTgKvoFjWc/i170yOkKc2yDqGOboKUBbDsb65zpsF1MLFpV0i6B5p2hiadXAFuDTJ2B4W4TBLook44mVvM4u1pLNizmj1561H1UjBZsyEMoqyx9I4eweBWv6JnYCT1j22BQz/Cwmcg54hrA5YgaNYdet0HMYmu6QatpJtE+BQJdFFrHc8pYv7WI8xJ+YG0kg1YQnehzCUERATSuWESN8X1p1/DjjQ9sQv2L4c5j0Ce+xKIeo3hqmvgmoegeS9o2sV1QYsQPkwCXdQq+SV2vt52lE+3LGdf4UosYTtQQcWEhoTSp9kgRsXdSG9nAEEHVsDKt1z94OA6V7vVda5Hy74QGSetb+F3JNCF4bTW/HzkDB+u38Kyo4tQYcmYAs4QEhhMn2Y38Jt2w+hdVIx17xKYeT8UnHIdvIztBf2fh7YDoGk3OW9b+D0JdGGYolIHczen8V7yt5zQSzGH7sbcSNOpQRJ3dhjBAIeV4N1fw+e/heIc1+XrcYOg/TBoO9B1qqAQ4hwJdFHjMvJK+ODHPczYNRdb6ErMoRmEmyO4td14xjboQPN9y2Huk66rLQPrQ/xw1ymErfvJJe1CXIIEuqgxaacLeWvldhYc+BJzxBpUowJah7bj/zrcy+DTGQRs/BwydrtG62s/FLqOdXWnSIgL4REJdFHtjmYX8cbSrSw6NANLgx+xRJaQFHUtD8ZcQ9LeVajZj7puZBDbE27+D3Qa5TpHXAhRJRLootqcLijlP8t2MGvv55gbrMIaWUSfptfzaFgrOmz9Cn76wtWl0vNe6HE3NO5gdMlC1GkS6MLrSu1Opv2YypSNX+CM+BZLZC5XR13Nk9ZI4rfMdp2l0rgT3Pxf6DLGNT63EOKKSaALr1q+5xTPL1nI6eCZmKOO0yG8Pc9au9N9yzwozXOdnXLNw64DnHKeuBBeJYEuvOJYdhHPLVjP2uwPsTbYTKS1EX8O6cHgHd+gHCWufvE+E11jpgghqoUEurgiTqfmsw2HeXXNx6hGiwisX8rvQjtw/541BNu2QpffwHV/dI1YKISoVhLo4rKlnynk0S+XkmKbhqVxKt0Co3np6AFaH/zW1SLv92eIamd0mUL4DQl0UWVaa+ZsSmfS8ukQOZ96QZo/Flm49eAGTC37wm2zXCMaCiFqlAS6qJK8YhtPfbWe5VlvY228g0RCePnIPmLCr4Lbv4B2Q+RgpxAGkUAXHtt5LIf7Z84hJ+xDgsJzeDQ7n7vzMzFf/5xrmFq5olMIQ0mgC4/MTk7j+RVvY4lcTIzW/PPocTq3Ggjj/+G6MbIQwnAS6OKS7A4nLyz8ma+OvIElahsDCop4qchM+Mj3ocMt0r0iRC0igS4uKqfIxv2f/8Be+2tYwzN59HQ297QYiho2GYIbGF2eEKIcCXRRobTThYz7eBaFYW8SFFDMa9ml9B08BTreYnRpQoiLkEAXF9h5LIf7Pn+Hokaf0cRhZ4qpFW3u+RDCmhhdmhDiEiTQxXnW7c/iubmTKIhcTsdSG1Paj6dh36fl9m5C1AES6OKcpSknmLLkYU5F7aFvieb1G98npGVfo8sSQnhIAl0A8PXWNGYvv4t9jbIY7gzhb7fNwxIebXRZQogqkEAXfLtpL4t/vIPkBiXcGtiC58Z8hUkuEhKizpFA93PL129k6U8TWFVfMa5BIk/fPB0l55YLUSd5dKRLKTVEKbVHKZWqlHqmgtdbKKWWK6U2K6W2KaWGeb9U4W0/rVvJip/GsaS+YlzTfhLmQtRxlQa6UsoMTAGGAh2B25VSHcut9hwwS2vdHbgNeNvbhQrv2r1+Mas3/I6v6gcyNnYoT9/4XwlzIeo4T1rovYBUrfUBrXUp8AUwotw6Ggh3T9cHjnmvROFt6etn8+Pa3zO9QQjDmw3k2f6TJcyF8AGe9KHHAGll5tOB3uXWmQR8p5R6BKgHDPRKdcLrzmycSfKaifw7qiHXNenL3we8LmEuhI/wpIVe0W+7Ljd/OzBdax0LDAM+UUpdsG2l1P1KqWSlVHJGRkbVqxVXpCj5M3YufYxJkQ3pEpHAvwf9B7PJbHRZQggv8STQ04HmZeZjubBL5R5gFoDWeh0QBESW35DWeqrWOklrnRQVFXV5FYvL4tj8OYe+e5wnmkQRHdKSd4e+jdVsNbosIYQXeRLoG4E4pVQrpVQAroOeC8qtcwQYAKCU6oAr0KUJXlvsnEvWokf4v8bRBAQ0Yvrw9wkLCDO6KiGEl1Xah661tiulHga+BczANK31TqXUS0Cy1noB8CTwnlLqCVzdMeO11uW7ZYQR9iyhcM693NskhlyrlRlD3qFJPRlkSwhf5NGFRVrrxcDicsv+UmZ6F/Ar75YmrtiBlThm/paJDWM4GKT51/WT6dCog9FVCSGqiQyh56uOb8P5xR38N6wJP4Zp7u30ewa1lJOPhPBlcum/LzpzGP3ZGJZbQpjWwERSVB8e6fGA0VUJIaqZtNB9TeFp+PTXHC0pYmKjBjQKjOHNga9huvAsUiGEj5Hfcl/isMGs32I7c5hfN4wHi4P3h7xJaECo0ZUJIWqABLqv0BoW/wEOreaOiOspDDnBs72fpW2DtkZXJoSoIRLovmLDu7BpOm9GDiUlfC/9mg3jN/Gjja5KCFGD5KCoLziwEr79EylNruN/1jQaBkQzud8LRlclhKhh0kKv63KOwuzfURLRmtucIZgsBbwz6F+EWEOMrkwIUcMk0Osyeyl8eTfaXsxdgYNxhu7ink4P0Dmqk9GVCSEMIIFel337Z0jfyFdxE9kV8B0tQjrzSI/7jK5KCGEQCfS6auc82Pge2d3u5y+ZazGbNO8MnizD4QrhxyTQ66LsI7DwUXSzHtyW2RBTyF4eSnicFuEtjK5MCGEgCfS6xmGHOfeB08nnbSaSbp7DVSFdubfbOKMrE0IYTAK9rln1D0hbT86Ayby691NMJidTbnxFLu0XQkig1ynpybDqNeh2Ow+kFkDITu6Kv5+r6ktXixBCAr3usBXB3AcgPIblbR9mW/F0Glpb8USve42uTAhRS8iVonXFsr9B1j7sd87jmR/exRSUzxv9/4fFJD9CIYSLtNDrgsNrYd0U6Hkvkw86KAhaSZ8mt5DYtKvRlQkhahEJ9NqutBDmPQgNruJkr2eYceANrIQxecBTRlcmhKhl5P/12m7lZDhzEO5eyOM/zEAFHeGRbi8QHhBudGVCiFpGWui12YkdsPZNSLiTn0xt2VY4g0hLeyZ0+7XRlQkhaiEJ9NrK6YCFj0FwBHrQS/zxh39iMhfw6g3Po5QyujohRC0kXS61VfI0OJoMo6byacpBssxL6RYxkN7NuhldmRCilpIWem2UfwqWvgSt+2HrNIZ///wGJiz8c+AzRlcmhKjFJNBro6Uvui4kGvY6r6/6htLAbQyNvYOmoY2NrkwIUYtJoNc26Ztg86dw9e/JD23JjNS3segIXrj+AaMrE0LUchLotYnTCUuegtAmcN0fefb7T9GBR7g7/vdySzkhRKXkoGhtsu0L14HQkf8j025m2cmPCLE255FeY42uTAhRB0gLvbYoyYcfJkFsT+g6lme++wCsWTya+KjchUgI4RFpodcW66ZA/kkY+ylpOXmsPzOTCGscd3QebHRlQog6QlrotUH+KVj7X+hwCzTvxdPfv42y5PJ074lyEZEQwmMeBbpSaohSao9SKlUpVeHJ0Eqp3yildimldiqlPvdumT5u5WTXaYoDXuBgVibb8ucSaerGze37GF2ZEKIOqbTLRSllBqYAg4B0YKNSaoHWeleZdeKAPwG/0lqfUUrJCdOeykyF5A8haQJEtuVPs/6KMhfx3LVPGF2ZEKKO8aSF3gtI1Vof0FqXAl8AI8qtcx8wRWt9BkBrfcq7ZfqwZS+BNRiuf5qDWZnsyF9IlCmRAW16GF2ZEKKO8STQY4C0MvPp7mVltQPaKaV+VEqtV0oNqWhDSqn7lVLJSqnkjIyMy6vYlxzfCrvmwzUPQWhjnl32NspcxJ+vedToyoQQdZAngV7RUTldbt4CxAH9gNuB95VSERe8SeupWuskrXVSVFRUVWv1PctfgaD6cPWDHD6Txba8hUSZejCwrbTOhRBV50mgpwPNy8zHAscqWGe+1tqmtT4I7MEV8OJijm6CvUvg2kcgOILnl72DMhfzzNWPGF2ZEKKO8iTQNwJxSqlWSqkA4DZgQbl15gE3ACilInF1wRzwZqE+Z/krENwAej/AqfxcNucspAEJ3BgnrXMhxOWpNNC11nbgYeBbIAWYpbXeqZR6SSl1i3u1b4EspdQuYDnwR611VnUVXeel/QSp38OvHoPAMF5Y/h6YC3k0UQbgEkJcPo+uFNVaLwYWl1v2lzLTGpjofojKrHgFQiKh533kFBewJmMO9VQHxnT5ldGVCSHqMLlStKYd/Rn2L4NrH4bAUP628iMw53Fv5/uMrkwIUcfJWC41bc2/ILA+JN1Dqd3G90dnEaBb8bseA4yuTAhRx0kLvSZl7IWURdDrPggK578b5uAwZ/HrNndiMsmPQghxZaSFXpN+/DdYguDq36O1ZubeT1COxjzZZ7TRlQkhfIA0C2tKdhpsmwmJv4V6kczYvpRi0xFuaHorgRb5uyqEuHIS6DVl3Vuu52tdFw69u+UDtD2c52+4y8CihBC+RAK9JhRlw8+fQOcxENGcdWk7OK130CVsGJH16hldnRDCR0ig14SfPwJbgWsQLuAf66ainVae7TvB4MKEEL5EAr26OeywYSq07AvRXUnPPcm+wlU0NfWlc3Qzo6sTQvgQCfTqljIfctPh6gcBeHnNB2icPJgorXMhhHfJ6RXVbd3b0LA1tBtCka2IH08uJMjehVGduxldmRDCx0gLvTqlbYSjydD792Ay8b9Ns3Ga8hnd5ja5+bMQwusk0KvThndcl/kn3IHWmll7v4CSaB69tsIbOgkhxBWRQK8u+adg1wLoficEhrLs0Aby9RESG9xEaJDV6OqEED5IAr26/PwxOG2Q9DsA/rtxGtoRzFN97jC4MCGEr5JArw5OB2yaDq2uh8i2pOce40DhBhpzHZ2iI42uTgjhoyTQq8O+7yAnDXreA8A/13+ERnNvt3EGFyaE8GUS6NVh4wcQ2hTaD8PmsLHi2CLMxR25NUFOVRRCVB8JdG87fRBSf4Aed4PZyqyUxdhVLv2bjcRqlq9bCFF9JGG8bdN0UCZIvBuAD7d/jrO0IU/0ucnYuoQQPk8C3Zscdtg6A+JuhPoxpGTt4WTpLlpYBtCiYajR1QkhfJwEujel/gD5JyHRNcb5vzd8jHZauD/xNoMLE0L4Awl0b9r8CdSLgrgbKbQVsuHU91iKu3Fz57ZGVyaE8AMS6N6Sfwr2fgPdbgOzlZkpC3GoIgbFjsAiB0OFEDVAksZbts0Epx0S7gTg050zcZQ05uFrbjS4MCGEv5BA9watYfOnENsTGseTkrmbU6X7iDXfwFWRcos5IUTNkED3hqObIGO3ayAu4K3kT9BOCxO6jTG4MCGEP5FA94Ytn4ElGDqNpshexI8nv0cVdmVUtzijKxNC+BEJ9CtlL4WdcyF+OASFM3/vNzgoom/T4QRZzUZXJ4TwIxLoVyr1Byg6A11/A8BHO2biLG3EA73kYKgQomZJoF+p7bMgpBG06c+hnEOkF+0kwt6HLrH1ja5MCOFnPAp0pdQQpdQepVSqUuqZS6w3RimllVJJ3iuxFivOhT1LoNNoMFv5YOsXaG3iN/Gj5J6hQogaV2mgK6XMwBRgKNARuF0p1bGC9cKAR4EN3i6y1kpZCPZi6DoWm9PGN4cW4czvwLienY2uTAjhhzxpofcCUrXWB7TWpcAXwIgK1vsr8BpQ7MX6arfts6BBK4hNYsWRVRTrHDqGDSQyNNDoyoQQfsiTQI8B0srMp7uXnaOU6g4011ovutSGlFL3K6WSlVLJGRkZVS62Vsk9DgdWug6GKsWH22bhtIfxux5Dja5MCOGnPAn0ijqD9bkXlTIBbwBPVrYhrfVUrXWS1jopKirK8ypro51fARq63EpWURY7zmzAXNCDgfHRRlcmhPBTngR6OtC8zHwscKzMfBjQGVihlDoEXA0s8PkDozvnQtOuEBnH7D0L0DgYEHsTARY5cUgIYQxP0mcjEKeUaqWUCgBuAxacfVFrnaO1jtRat9RatwTWA7dorZOrpeLaICcd0jdCp5ForZm5ew6OouaM79nb6MqEEH6s0kDXWtuBh4FvgRRgltZ6p1LqJaXULdVdYK20a77rueNIdmXtIqPkMBGOa+kq554LIQxk8WQlrfViYHG5ZX+5yLr9rrysWm7nPGjaBRq14dMVL6KdFm7tcLOcey6EMJR0+FZVTjqk/wQdR1LqKOX7I99gz+/E2MR2RlcmhPBzEuhVtct9+KDTKFamraRE59M2qB/NIoKNrUsI4fck0Ktq1zxo4upu+WTnHJy2MO7sNtDoqoQQQgK9SnLSIW0DdBpBVlEWWzLXo/MSGdY1pvL3CiFENZNAr4oU94WwHUex6MBiNA56Nb6R8CCrsXUJIQQS6FWzexFExUNkW77YNRdHUQx3Jcq550KI2kEC3VOFp+HwWogfTuqZVNIL92Et6sl17er4EAZCCJ8hge6pfd+DdkD74Xy1bz5amxh81RCsZvkKhRC1g6SRp3YvgtCmOJp2Zd6+hTjy2zG2RwejqxJCiHMk0D1hK4bUpRA/jJ9OJZNnzyLccTWJLRoYXZkQQpwjge6Jg6vAVgDth/PlnvloRxCj2g+SS/2FELWKBLondi+CgDAKmyexIm0pttwujElsZXRVQghxHgn0yjidsPcbaDuAZcfWYNPFxFj60LZxmNGVCSHEeSTQK3N0E+SfhPib+HL3fJylEYzt0tfoqoQQ4gIS6JXZ+w0oM5mx3dmc8RP23O7ckhBrdFVCCHEBCfTK7PsOmvdm8fG1aJx0DO9HdH0ZWVEIUftIoF9K3gk4sQ3iBjF7z3wcRTH8pptv3ypVCFF3SaBfSuoPAOyP7sDBvL048xIZ2rmpwUUJIUTFJNAvZd93EBbNwuw9oE30bjyAiJAAo6sSQogKSaBfjMMG+5fjbDuQuamLsBfE8esEudRfCFF7SaBfTNoGKMnl56btOF1yElNBDwZ1aGJ0VUIIcVES6Bez7zswWVlQcgKcAQxocQPBAWajqxJCiIuSQL+Yfd9TclVvlhxZhi23E6O6tza6IiGEuCQJ9IrkpMOpXaxq2o5iRwGBJT3p0zbS6KqEEOKSJNArkroUgPmObLQ9jJvirpMbWQghaj1JqYocWE5OeDRrMrdgy+nGiITmRlckhBCVkkAvz+mEAyv5NiYeh7bTwHkNSVfJjSyEELWfBHp5J7ZC0Wnmq2KcJY0Z2aknJpPcyEIIUftJoJe3fzlpFjPbio5iy+nOyO4xRlckhBAekUAv78AKFjdx3Y2oRUAf4puGG1yQEEJ4xuLJSkqpIcB/ADPwvtb61XKvTwTuBexABvA7rfVhL9da/WxF6CPrmd+yNfa8GEZ362x0RUJcks1mIz09neLiYqNLEV4WFBREbGwsVqvV4/dUGuhKKTMwBRgEpAMblVILtNa7yqy2GUjSWhcqpX4PvAaMrVL1tcHhtWy3aNKcBdhyErmlWzOjKxLiktLT0wkLC6Nly5Zy03IforUmKyuL9PR0WrXy/P7FnnS59AJStdYHtNalwBfAiHIfvlxrXeieXQ/UzVv6HFjOwrAwlLbQtUFfYhuEGF2REJdUXFxMo0aNJMx9jFKKRo0aVfk/L08CPQZIKzOf7l52MfcASyp6QSl1v1IqWSmVnJGR4XmVNcS2fzmLQ8Moze3EmO5xRpcjhEckzH3T5fxcPQn0iraqL1LAnUAS8I+KXtdaT9VaJ2mtk6KiojyvsibkZ7A6bz+5ygn5iQzvEm10RUIIUSWeBHo6UPZSyVjgWPmVlFIDgWeBW7TWJd4prwYdWs3C0HpYHMFcH9uH+iGeH4gQwp+lp6czYsQI4uLiaNOmDY899hilpaUVrnvs2DHGjBlT6TaHDRtGdnb2ZdUzadIkXn/99QuWZ2Rk0Lt3b7p3787q1asva9sVmT59OseO/RKJ9957L7t27brEO6qPJ4G+EYhTSrVSSgUAtwELyq6glOoOvIsrzE95v8zql31gKStCginK7s6oxBZGlyNEnaC1ZvTo0YwcOZJ9+/axd+9e8vPzefbZZy9Y126306xZM2bPnl3pdhcvXkxERIRXa126dCnx8fFs3ryZvn37em275QP9/fffp2PHjl7bflVUepaL1tqulHoY+BbXaYvTtNY7lVIvAcla6wW4ulhCgS/d/T5HtNa3VGPdXrfk+FrsQYqA4mu4Ib6WdQcJ4YEXF+5k17Fcr26zY7NwXri500VfX7ZsGUFBQUyYMAEAs9nMG2+8QatWrXjxxReZNWsWX3/9NcXFxRQUFDBt2jRuuukmduzYQWFhIePHj2f37t106NCBQ4cOMWXKFJKSkmjZsiXJycnk5+czdOhQ+vTpw9q1a4mJiWH+/PkEBwfz3nvvMXXqVEpLS2nbti2ffPIJISEVn8iwZcsWnnrqKYqKikhISGDdunVERUWRn58PwOzZs1m0aBHTp09n/PjxhIeHk5yczIkTJ3jttdfO/Vfx2muv8cknn2AymRg6dChJSUkkJyczbtw4goODWbduHUOHDuX1118nKSmJGTNm8PLLL6O1Zvjw4UyePBmA0NBQHnvsMRYtWkRwcDDz58+nSZMrv4GORxcWaa0Xa63baa3baK3/7l72F3eYo7UeqLVuorVOcD/qVJiTd5L5qoAGJfUYHt+DQIvcyEIIT+zcuZMePXqctyw8PJwWLVqQmurakYcAAA+8SURBVJoKwLp16/joo49YtmzZeeu9/fbbNGjQgG3btvH888+zadOmCj9j3759PPTQQ+zcuZOIiAjmzJkDwOjRo9m4cSNbt26lQ4cOfPDBBxetMyEhgZdeeomxY8eyZcsWgoODL7lfx48fZ82aNSxatIhnnnkGgCVLljBv3jw2bNjA1q1beeqppxgzZgxJSUl89tlnF2z32LFjPP300yxbtowtW7awceNG5s2bB0BBQQFXX301W7du5brrruO99967ZD2e8ujCIl+XuvsrdgYG0vBkF8YMlkv9Rd10qZZ0ddFaV3g2RtnlgwYNomHDhhess2bNGh577DEAOnfuTNeuXSv8jFatWpGQkABAjx49OHToEAA7duzgueeeIzs7m/z8fAYPHuyNXQJg5MiRmEwmOnbsyMmTJwH44YcfmDBhwrn/Airap7I2btxIv379OHsCyLhx41i1ahUjR44kICCAm2666dw+ff/9916pWy79BxYc+Bqz1phMw0lsISMrCuGpTp06kZycfN6y3Nxc0tLSaNOmDQD16tWr8L1aV3iy3AUCAwPPTZvNZux2OwDjx4/nrbfeYvv27bzwwgtVPme77B+i8u8t+5ln67zYH6+LudT+Wa3Wc9squ09Xyu8D3e60s7DwMB0KAhjdvZOc0ytEFQwYMIDCwkI+/vhjABwOB08++STjx4+/aH/2WX369GHWrFkA7Nq1i+3bt1fps/Py8oiOjsZms/HZZ59VufYmTZqQkpKC0+lk7ty5la5/4403Mm3aNAoLXddQnj59GoCwsDDy8vIuWL93796sXLmSzMxMHA4HM2bM4Prrr69ynVXh94G+NvVrMk1QP7cNoxKlu0WIqlBKMXfuXL788kvi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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plotstep(G)\n", "plotstep(Gapprox1, D=θ1)\n", "plotstep(Gapprox2, D=θ2)\n", "plt.legend([\n", " 'Original function',\n", " 'FOPDT',\n", " 'SOPDT'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Not bad!" ] } ], "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.3" } }, "nbformat": 4, "nbformat_minor": 4 }