{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Convolution and transfer functions\n", "===================\n", "\n", "So far, we have calculated the response of systems by finding the Laplace transforms of the input and the system (transfer function), multiplying them and then finding the inverse Laplace transform of the result.\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have been using the idea that, with the nomenclature of the diagram shown above, \n", "\n", "$$ Y(s) = G(s) U(s). \\qquad(1) $$\n", "\n", "But, if we follow the nomenclature, then $\\mathcal{L}\\{u(t)\\} = U(s)$ and $\\mathcal{L}\\{y(t)\\} = Y(s)$ and similarly there is some $g(t)$ such that $\\mathcal{L}\\{g(t)\\} = G(s)$. So far we have not really used $g(t)$ explicitly, but we know that the time-domain version of equation 1 is given by\n", "\n", "$$ y(t) = (g * u)(t) $$\n", "\n", "where $*$ denotes [convolution](https://en.wikipedia.org/wiki/Convolution), which is defined by the following integral:\n", "\n", "$$ (g * u)(t) = \\int_{-\\infty}^\\infty g(\\tau) u(t - \\tau) \\mathrm{d} \\tau = \\int_{-\\infty}^\\infty u(\\tau) g(t - \\tau) \\mathrm{d} \\tau$$\n", "\n", "Since we are primarily concerned with functions where both $g(t)=0$ and $u(t)=0$ for $t<0$, the integral bounds can be written as\n", "\n", "$$ (g * u)(t) = \\int_0^t g(\\tau) u(t - \\tau) \\mathrm{d} \\tau = \\int_0^t u(\\tau) g(t - \\tau) \\mathrm{d} \\tau$$\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This gives us a whole new way to think about the response of a system to an input. Let's revisit the first order step response by thinking about convolution." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import sympy\n", "sympy.init_printing()\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "s = sympy.Symbol('s')\n", "t = sympy.Symbol('t', real=True)\n", "tau = sympy.Symbol('tau', real=True, positive=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We start by considering the first order transfer function:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "G = 1/(tau*s + 1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can interpret g(t) as the *impulse response* of the system, since $\\mathcal{L}\\{\\delta(t)\\}=1$ (in words, the Laplace transform of the Dirac delta is one). So, if $u(t)=\\delta(t)$, then $U(s)=1$, so $Y(s)=G(s)$ and therefore $y(t)=g(t)$. \n", "\n", "This is what the impulse response of the first order system looks like with $\\tau=1$:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEEAAAAYCAYAAACldpB6AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADcElEQVRYCdWYi23bMBCGraIDuM0G9gZuO0HjDZKM0GzgIBMU6QbxBoW7gdMJAmeDeoOm3sD9P5pHUBQlW66lwgcQJI/34vHuSKnYbreDPqAoipX0XEvfug99bXQUfThBDhjKqD/SVbQxri/aNz0pupSel550tVbTqRMUASO1B1lFGzBWm7S28gAGdB1Ahg1VOtKh6ybjqAdXXemR7Nmh8kVHVM5iWzqNBCkz4PSfbFLX65RmakTLQu2giBHdleRdaFM/6uTGeNE5OzyfW2pVGL1hLrRjwZnxrZS5W0A8eH6h+bsMXUCJbunp5hpTSFfiGQeCzMDT/RTdh8wyoe/kaG1q9hid1ojOz8Jv+kgFQhUnoB+jRozjJhyOXSY4GCYxLh1r/VHtS4q3udaIEk3L+pjDp/boxjmCU+JQpOZyUP1DKls4wh6rLuM1j2usI6Lh2i05NJ5rHd1EVJYGfrVhHzVhIUVjhR+e/66Wwr0QaxkaaoZorR68T4ltLhrSbN/DC5og13ijHv6btxHCcgijfns8OXknAzcxXZux31zWEG2E9CBk7xKZdo01bfJaPBW53jm3WnOpp34iHAfxLFu+qY8B/mkIE03w2i+1kIeM1SohLGGB71/Gkk29qOQ+Oj2+Uj9Mn9YpbEfVg0gG0blykSBP4XmqM1U9ftnhGPBdwdQLvpcNsQ6iYyNbmiKBk36NmZIxsuO9JMtuCv/Q0oECAgxlDKdz4Wa7il0JOb92iu6jhDxps4S2A+m3FPlquJqeerGpWQPNAe57O+DkkTnBMciYNGcQ1iWw4TTSbrzC+bGKvSMtupvEOEfGt0NT6DUJOmrNGwpvGrIUybkOpOmU4cNenJgDIoy6FaI40hfTw/9qTqh1gJjJz5NDbpNeF6eT3hY5/eQzp52DUj2I5Ka06FqbE6jGpEQAPKdGrUhPKtCcYEDOuo2gT2Ps2D1l9wvHrk81ZMh0B+vlcsvkDprn9jJ8O4jYCqK9EQinTmtEtHGuZt4kXMc5Y7VUBvFyaDx7K98XWsMJHCDvA/aRrS+iQ+80OAHicwO/CX7ZtY5W7yi+V8aWDue2f7OX9OF1eAxQd+AfnLUTfJjz94rwPxg8PXVilyYanOQJ/L/kaOcU1NJn+D5boIfP6M66JmgjDvzJ8imeLYBGRy9avhd4pYYC/BffLSlpUJwqrgAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle e^{- t} \\theta\\left(t\\right)$" ], "text/plain": [ " -t \n", "ℯ ⋅Heaviside(t)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g = sympy.inverse_laplace_transform(G.subs({tau: 1}), s, t)\n", "g" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.plot(g, (t, -1, 10))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Earlier, we calculated the step response of the system by calculating $U(s)=\\frac{1}{s}$, therefore $Y(s) = \\frac{G(s)}{s}$ and then calculating the inverse Laplace:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIAAAAAYCAYAAAAyC/XlAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEK0lEQVRoBe2ajVHcMBCFzzcp4CZ0AB1ckgoCHUBKCB2QoQKGdAAdZKADSAUZ0gHpIOE6uLxPJ3t0smzLd/LPwe2MsCyvVrtPq921j2y5XE721C0CWZY9aYUzYf2n25XaS8/2DtAetDYztPkz8b8I56zNvL54p30t9IbXOZbtv8dqf3IHkMcfxhgbyxcja4w82Kd2Ld1oE/pq8y50Za0YuSG+pA6gBS6kSKyRAAT/qyTyvdo3GbdQu6KvljwSbIt50AEQqobH3qlFbaj4TmXogYy8j9lR8T3CZ+fFTNlVHvAzttYZIByGwVwbMXGblHxQ+8qYiALm2X0e6lu+p9AzV474Dn0ejVEhz/zxsd1LRzYSbJpaYaN4yf8UgGsY+/dW5iCYrykmRchXD66CuscT5u6Y39fzGzVjgP+MexHRQd0yEMxTuwk92/Ux2UWKu8MOEYepcI7cNo0NinnhAFIED0fT41w5qzhjp+6Y39fzWi/XcxykLkK86Pnoo4Bvd9O9tfsCPtG1z6+xwTF3a4BLKUThUuQrJ/+/x4IQiYcw1/SBA55CbkAO878Exnd96E4GHAkjotyPgDGDY/4OpaQg4YkwTdXqUv56UbfBZ5pQ2lzrGOd6ZkKfrnONAcgvOdl3XV1i/onarTvYZ99iwIb8tese6UrlvthUD3uYStggbzSYS0n0IVfRWcv1uic/MV7KXcyzcyniNsr/jgxOSGWKyPm6umptItSzWmE/fbVS2E6lg2SPAnMTAaQMpw+6lGeuequ/RIWFjK6LAJzwf+4kr4/spvdf5iOnd5K9RDkq+3PZ6eqJUzDeFY0C89wBPsrKRwFAODfkhKirfKziSn1QFyYBsunbAA6Wp5uKZYqw+VMMbZyFH2HcjfXlU6BCM9nMqTwwd6u3oWD4ts+3vYwC89wBANT39rwo2zgvWyfKT1gdYE1OZOZqI3G0D3WCNnhmHFSy/bpkA1GtpowC86ndJDT3TwkF4a0Fvc4yTm/VicTLqRWKk+Ss58pkPmlgKKpLccl1cjAYHPNpaIOlILmfU+m/FYTAYOOqwvda/nfk+nJYq9dNcBSoXNfq67Cm6Y4J86k1iRxtNtF6J9X/55CiAQjw4k+BcYaQaQC2cnmbCAFOWPdTEPP7IGwlDRSErmrUBv4JLXgSdEaBufmHEGfTeRXi/ZfXn9BGlezWXMDjUy7z1kjPcACA5P2fVBCsJ8THuiexayIrJWn9vPjLvwGga6c1gdYk7eF8g2Ke5D+C7AY2VdvBPdNcnITfH0oOFJywHzQIpMJ8mghPPJmvfpsQdQbz99QOgSSYJ3EAG9r5Bw9OczRZfuqCYGqIFvQGGZNhLkHmk+62V+2Bea9tI0dzKPxe3a+AbTDYhjcF5klqACliyJ5ofk5uPNHi5fs/Xx+jik27xP7iIbAt5v8BF6GzvCA1JwgAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\theta\\left(t\\right) - e^{- t} \\theta\\left(t\\right)$" ], "text/plain": [ " -t \n", "Heaviside(t) - ℯ ⋅Heaviside(t)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stepresponse = sympy.inverse_laplace_transform(G.subs({tau: 1})/s, s, t)\n", "stepresponse" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.plot(stepresponse, (t, -1, 10), ylim=(0, 1.1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can get the same result by convolving the unit step function with the impulse response. Sympy doesn't handle the improper integral correctly here (as of the below version number):" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'1.4'" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.__version__" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "u = sympy.Heaviside(t)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "product = g.subs({t: tau})*u.subs({t: t - tau})" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABMAAAAKCAYAAABWiWWfAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA+klEQVQoFX2SgREBMRBFcyq4GuiAFpRglEAHeqADSqAEWlACLdDBeS+XNec4mVmb7P/592W3apomuaqqmpLmxIS4Uj+Qvxa8muKSmBFX4gj3SU6piK3YnokNsSUeJebiEdQWhAJ+VFENyJ8WnTTmsI8LpSjRS9rOgmSFTl1e7Klvy712E0BkCArqUMHsKLB+Bo8nSps+GGdI/h3F3g4D62c4qxE/g4sLF8BdIawHiS1Q/xUrl3Wn6IJO2qivRd13vwv4HrkbP6yfxK2zPhrS5YLZ0TpGY+8hCBkoo9Kr3cBU1qENypPgOX+wQ1ZdJ86becitsxguzdm5Oi9v4fcO+SiYsgAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\infty$" ], "text/plain": [ "∞" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.integrate(product, (tau, -sympy.oo, sympy.oo))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But it does appear to work for the rewritten integral bounds:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle - \\left(-1 + e^{- t}\\right) \\theta\\left(t\\right)$" ], "text/plain": [ " ⎛ -t⎞ \n", "-⎝-1 + ℯ ⎠⋅Heaviside(t)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sympy.integrate(product, (tau, 0, t))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Numeric convolution" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "sympy cannot evaluate the convolution integral for all impulse response functions, so it is often useful to do the convolution numerically." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `numpy.convolve` function calculates the discrete convolution, that is\n", "\n", "$$ (g*u)[n] = \\sum_{m = -\\infty}^{\\infty} g[m] u[n - m] $$\n", "\n", "Let's compare that to the continuous convolution integral:\n", "\n", "$$(g*u)(t)\\int_{-\\infty}^{\\infty} g(\\tau) u(t - \\tau) \\mathrm{d} \\tau$$\n", "\n", "If we discretize this integral to a [Riemann sum](https://en.wikipedia.org/wiki/Riemann_sum) with a discrete time step $\\Delta t$, we obtain\n", "\n", "\\begin{align}\n", "(g*u)(n\\Delta t) &\\approx \\sum_{m = -\\infty}^{\\infty} g(m\\Delta t) u(n\\Delta t - m\\Delta t) \\Delta t \\\\\n", " &= \\sum_{m = -\\infty}^{\\infty} g[m] u[n - m] \\Delta t \\\\\n", " &= (g*u)[n] \\Delta t\n", " \\\\\n", "\\end{align}\n" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "import numpy\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "ts = numpy.linspace(0, 10, 200)\n", "Δt = ts[1] # space between timesteps " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We evaluate the impulse response:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "gt = numpy.exp(-ts)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "ut = numpy.ones_like(ts)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left( -0.04995233007374939, \\ 1.1\\right)$" ], "text/plain": [ "(-0.04995233007374939, 1.1)" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD4CAYAAAD8Zh1EAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAZMElEQVR4nO3de5ScdX3H8fd3d7O537O5XzYlIckSLolLDESoSlqTYJOqVJIKXgrmWAVs8dhSbbFirdej4GmK5kRFKhcRUSKNxgoIigSzgQC5EFlCLktuSxJi7pvNfvvHbwLDXrKzm5n9zTzzeZ0z55l55tmZz5wkn33ym9/zPObuiIhI4SuJHUBERLJDhS4ikhAqdBGRhFChi4gkhApdRCQhymK98ZAhQ7yysjLW24uIFKQ1a9a86u4VrT0XrdArKyupqamJ9fYiIgXJzLa29ZyGXEREEkKFLiKSECp0EZGEUKGLiCSECl1EJCFU6CIiCaFCFxFJCBW6iEhCqNBFRBJChS4ikhAqdBGRhFChi4gkhApdRCQhVOgiIgnRbqGb2ffMbI+ZrWvjeTOzb5lZrZk9Z2bTsx9TRETak8ke+h3AnNM8PxeYmLotBm4/81giItJR7V7gwt0fN7PK02yyALjT3R1YZWYDzGyEu+/MUsY3WXbPjxjwymP8uM9VYJaLtxARyamqkf343F+dk/XXzcYY+ihge9rjutS6FsxssZnVmFlNfX19597syAauOHQX/Zte69TPi4gkVTYuQdfabrK3tqG7LwWWAlRXV7e6TXvmvuMdcOetLJ3TC/7sos68hIhIImVjD70OGJP2eDSwIwuv27qKKWG554WcvYWISCHKRqEvBz6Ymu0yEziQq/FzAPoMhZ6DoH5jzt5CRKQQtTvkYmb3AG8HhphZHfA5oBuAu38bWAHMA2qBI8BHchU2FQiGToE9KnQRkXSZzHJZ1M7zDnwia4kyUTEZnr8f3DXTRUQkpTCPFB06BY4fgIO5G9kRESk0hVvoAHs2xM0hIpJHCrPQNdNFRKSFwiz03oOhd4VmuoiIpCnMQgfNdBERaaZwC71iCtRvCjNdRESkgAt96GRoOAQHtre/rYhIESjgQq8KS30xKiICFHKhV0wOS01dFBEBCrnQew6AviOgXnvoIiJQyIUOYS9dM11ERIBCL/ShVWGmS1NT7CQiItEVeKFPgcajsP/l2ElERKIr7EIfPjUsdz0fN4eISB4o7EKvmAJWqkIXEaHQC71bD6iYpEIXEaHQCx1g+LkqdBERklLoB3fA4VdjJxERiSoZhQ7aSxeRolf4hT5MhS4iAkko9N6Dod8o2L0udhIRkagKv9BBX4yKiJCkQq/fBCeOxU4iIhJNMgp92FTwk7rGqIgUtWQUuma6iIgkpNAHjofyPip0ESlqySj0kpIw7KJCF5EiloxCh9RMl3U6N7qIFK1kFXrDQZ0bXUSKVkaFbmZzzGyTmdWa2U2tPD/WzB41s2fM7Dkzm5f9qO0YeUFY7nimy99aRCQftFvoZlYKLAHmAlXAIjOrarbZvwL3ufs0YCHw39kO2q6hVVDWQ4UuIkUrkz30GUCtu2929wbgXmBBs20c6Je63x/Ykb2IGSrtFoZdXnm6y99aRCQfZFLoo4DtaY/rUuvS/TtwlZnVASuA61t7ITNbbGY1ZlZTX1/fibjtGDkddj4LTSez/9oiInkuk0K3VtZ5s8eLgDvcfTQwD/gfM2vx2u6+1N2r3b26oqKi42nbM2o6nDgcTgMgIlJkMin0OmBM2uPRtBxSuQa4D8DdnwR6AEOyEbBDRk4Pyx0adhGR4pNJoa8GJprZeDMrJ3zpubzZNtuAywDMbAqh0HMwptKOwROgvK/G0UWkKLVb6O7eCFwHrAQ2EmazrDezW8xsfmqzTwEfNbNngXuAD7t782GZ3CspCdMXtYcuIkWoLJON3H0F4cvO9HU3p93fAMzKbrROGjkNVt0OjcehrHvsNCIiXSY5R4qeMmo6NJ2A3etjJxER6VLJK3R9MSoiRSp5hT5gLPQaDK/oiFERKS7JK3SzsJeuPXQRKTLJK3QI4+j1L0DD4dhJRES6TEIL/S3gTTpRl4gUlWQW+ugLw3L7H+LmEBHpQsks9F6DYMjZsP2p2ElERLpMMgsdYMyMUOgRDlgVEYkhwYU+E47uh1dfjJ1ERKRLJLjQ3xqW21fFzSEi0kWSW+hDJkLPgRpHF5GikdxCNwt76dtU6CJSHJJb6BAKfe+LcHhv7CQiIjmX7EIfOzMs6zQfXUSSL9mFPnIalHTTOLqIFIVkF3q3njDifI2ji0hRSHahQxhH3/E0NDbETiIiklPJL/Sxb4XGY7Dz2dhJRERyqggK/aKw3Pq7uDlERHIs+YXeZyhUTIYtKnQRSbbkFzpA5SWw9Uk4eSJ2EhGRnCmSQn8bnDisC16ISKIVSaFfEpYvPx43h4hIDhVHofceDEPP0Ti6iCRacRQ6wPhLwhGjmo8uIglVPIVe+TY4cQReWRM7iYhIThRPoY+bBRhs+W3sJCIiOVE8hd5rEAyfqkIXkcTKqNDNbI6ZbTKzWjO7qY1t3m9mG8xsvZndnd2YWVJ5CWz/AzQej51ERCTr2i10MysFlgBzgSpgkZlVNdtmIvAvwCx3Pwf4hxxkPXOVl4TzutStjp1ERCTrMtlDnwHUuvtmd28A7gUWNNvmo8ASd98P4O57shszSypngZXCS4/ETiIiknWZFPooYHva47rUunRnA2eb2RNmtsrM5rT2Qma22MxqzKymvr6+c4nPRI/+MGYG1D7c9e8tIpJjmRS6tbLOmz0uAyYCbwcWAcvMbECLH3Jf6u7V7l5dUVHR0azZMeEy2LkWDkX4hSIikkOZFHodMCbt8WhgRyvbPOjuJ9z9ZWAToeDzz1mXheXmR+PmEBHJskwKfTUw0czGm1k5sBBY3mybnwHvADCzIYQhmM3ZDJo1Iy6AXoOh9texk4iIZFW7he7ujcB1wEpgI3Cfu683s1vMbH5qs5XAXjPbADwKfNrd9+Yq9BkpKYGz3hnG0ZuaYqcREcmaskw2cvcVwIpm625Ou+/Ajalb/pswG57/Mex6DkZeEDuNiEhWFM+RounOemdYathFRBKkOAu9z1AYfp7mo4tIohRnoUOYvrj9KTh2IHYSEZGsKOJCnw1NjbD5sdhJRESyongLfcxboXt/+OMvYycREcmK4i300m5w9l+GQm86GTuNiMgZK95CB5g0D47sDWPpIiIFrrgLfcJsKOkGL/xv7CQiImesuAu9Rz8YfylsWgHe/HxjIiKFpbgLHWDyPNi3Geo3xU4iInJGVOiT5oXlJg27iEhhU6H3Gwkjp8MLK9rfVkQkj6nQIQy7vFIDB3fFTiIi0mkqdIBJl4elZruISAFToQMMnQKDJ8CGn8VOIiLSaSp0ADOY+j7Y8js4uDt2GhGRTlGhn3LOe8GbYMODsZOIiHSKCv2UoZNh6Dmw7iexk4iIdIoKPd3U98D2VXCgLnYSEZEOU6GnO+e9Ybn+p3FziIh0ggo93eCzYMQFsO6B2ElERDpMhd7c1PfBjqfD+V1ERAqICr25c94TlvpyVEQKjAq9uQFjYNzbYO3dOqWuiBQUFXprLvjbMOSiKxmJSAFRobemagF06w3P/DB2EhGRjKnQW9O9TxhLX/9TaDgcO42ISEZU6G2Z9gFoOAQblsdOIiKSERV6W8ZeBAPHw9q7YicREclIRoVuZnPMbJOZ1ZrZTafZ7gozczOrzl7ESMzggg/Alt/CvpdjpxERaVe7hW5mpcASYC5QBSwys6pWtusL3AAkZ2rIBYsAC1MYRUTyXCZ76DOAWnff7O4NwL3Agla2+wLwVeBYFvPF1X80TJgNT98JJ0/ETiMiclqZFPooYHva47rUuteZ2TRgjLs/dLoXMrPFZlZjZjX19fUdDhvFjI/CoV2w8eexk4iInFYmhW6trHv9EEozKwG+CXyqvRdy96XuXu3u1RUVFZmnjGnCbBgwDlYvi51EROS0Min0OmBM2uPRwI60x32BqcBvzGwLMBNYnogvRgFKSuHCa2DrE7B7few0IiJtyqTQVwMTzWy8mZUDC4HXJ2e7+wF3H+Lule5eCawC5rt7TU4SxzDtaijrob10Eclr7Ra6uzcC1wErgY3Afe6+3sxuMbP5uQ6YF3oNCqfVffZHcOxA7DQiIq3KaB66u69w97Pd/Sx3/2Jq3c3u3uIwSnd/e6L2zk+58Fo4cRjW3hM7iYhIq3SkaKZGTYfRF8JTt8PJxthpRERaUKF3xMU3wP4tsFHndxGR/KNC74jJl8Ogs+CJ23TxCxHJOyr0jigphVk3wM618PJjsdOIiLyJCr2jzlsIvYeGvXQRkTyiQu+obj1g5sfgpUdg53Ox04iIvE6F3hnV10B5H/jdN2MnERF5nQq9M3oOCCftWv9T2L0hdhoREUCF3nkX3xD20n/zpdhJREQAFXrn9RoEF308zEnXWLqI5AEV+pmY+XHo0R8e/c/YSUREVOhnpOcAuOh6+OMv4JU1sdOISJFToZ+pmR+DnoPg4S/o6FERiUqFfqa694VLPw2bH4XaX8dOIyJFTIWeDRdeG87xsvKzupi0iESjQs+GsnL4yy/Aq5tgzR2x04hIkVKhZ8ukeVB5SZjxcnR/7DQiUoRU6NliBu9KlfnjX4+dRkSKkAo9m0acB9Ovhqe+DbvXx04jIkVGhZ5tsz8fDjb6+SehqSl2GhEpIir0bOs1KAy91K2GNd+PnUZEiogKPRfOuxLGXwq//jwc3BU7jYgUCRV6LpjB5d+ExmPwi3+OnUZEioQKPVeGTIA//zRs+Bms+0nsNCJSBFTouTTrH2FUNTx0I/xpR+w0IpJwKvRcKi2D93wHGo/Dg9fp5F0iklMq9FwbMiGcFuClh2H1sthpRCTBVOhd4cJr4azL4Ff/pgOORCRnMip0M5tjZpvMrNbMbmrl+RvNbIOZPWdmD5vZuOxHLWBm8Ne3hwOOfnQ1HPtT7EQikkDtFrqZlQJLgLlAFbDIzKqabfYMUO3u5wH3A1/NdtCC13cYXPE92L8Fll+v8XQRybpM9tBnALXuvtndG4B7gQXpG7j7o+5+JPVwFTA6uzETonIWXHZzmMr4h6Wx04hIwmRS6KOA7WmP61Lr2nIN8IszCZVoF98QTrW78jPw8uOx04hIgmRS6NbKulbHC8zsKqAa+Fobzy82sxozq6mvr888ZZKUlMB7vg2DJ4Tx9FdrYycSkYTIpNDrgDFpj0cDLY6SMbPZwGeB+e5+vLUXcvel7l7t7tUVFRWdyZsMPfrD3/4ISkrh7vfDkX2xE4lIAmRS6KuBiWY23szKgYXA8vQNzGwa8B1Cme/JfswEGlgJC++GA9vhvg+Gg49ERM5Au4Xu7o3AdcBKYCNwn7uvN7NbzGx+arOvAX2AH5vZWjNb3sbLSbqxM2HBEtjyW7j/7+BkY+xEIlLAyjLZyN1XACuarbs57f7sLOcqHue9H47shV/eBD+/Aeb/VxhnFxHpoIwKXXJs5t/DsQPwmy+F8fV3/Wc4GElEpANU6Pniz/85lPqq/wYM3vVFlbqIdIgKPV+YhT1zb4JVS8LFMeZ9XcMvIpIxFXo+MYM5X4ay7vDEbWHmy/xvhemNIiLtUKHnGzOY/Xko6wGPfSV8YXrFd6G8d+xkIpLn9P/5fGQG7/hMGHJ5cSXc8W44pOn9InJ6KvR8NuOjcOVdsGcjLJsNuzfETiQieUyFnu8mz4MP/2/4knTZbFj3QOxEIpKnVOiFYPRbYPFjMHwq3P+RcOUjHVUqIs2o0AtFvxHwoYeg+hr4/bfgjnnhYhkiIikq9EJSVg7v/ga877thXP3bl8BzP46dSkTyhAq9EJ17BXzsdzC0Ch64NpxX/eDu2KlEJDIVeqEaOC58WXrZ5+CPK2HJDHjmh7pWqUgRU6EXstIyuORG+PsnYOgUePAT8P15sOv52MlEJAIVehIMmQgfXgHvvhVe3QTfuRQeuhEOvxo7mYh0IRV6UpSUQPVH4Po1MGMxrLkDbjsfHvkPOPpa7HQi0gVU6EnTcyDM/Qp8fBVM/At4/Gtw23lhefxQ7HQikkMq9KSqOBv+5o4wG2bcrLCnfuu58MgXNSNGJKFU6Ek3/FxYdA9c+zCMvSjsqd86FX72cdi1LnY6EckinT63WIyuhkV3w96XYNXtsPaucBs3C6ZdDVXzdYpekQJnHmnecnV1tdfU1ER5bwGO7IOnfwBP3wn7NkN5X5j6Xph2FYy+UJe/E8lTZrbG3atbfU6FXuTcYduT4aCk9T+FE0eg/xioWhBuo6p1GTyRPKJCl8wcPwgbfw4bHoSXHoGTDdB3JEy+PMyYqXybhmVEIlOhS8cdOwCbfvlGuTcehdJyGHcxTEiV+/Bzdb1TkS52ukLXl6LSuh794fwrw+3EMdj2e6h9GGp/Db/6bNimvC+MmQHjLoKxF8Oo6dCtZ9zcIkVMe+jScQfqYOuToeS3Pgn1G8P60nIYdg6MOD/chp8Pw6pU8iJZpCEXya0j+2D7U7D197BzLex8NgzZAFgpVEwOxT5kUjjvTMUkGHRWOL+7iHSIhlwkt3oNgklzww3CzJnXtoVi3/VcWG57Cp5PuxiHlcLAShg8AQaMDacDHjAWBqSWPQdq6qRIB6nQJfvMQkEPHBcOWDql4TC8+mLqtgnqN8H+l2HbKjh+4M2vUd43FHu/kdB3GPQZDn1Ttz7DU+uGQVn3rv1sInkso0I3sznAbUApsMzdv9zs+e7AncBbgL3Ale6+JbtRpeCV94aRF4Rbc0dfg9e2hj37/anla9vg4M5wfvfDe8CbWnnNPtBzEPQamFoOemPZa3DY0+/eD7r3bXnTLwNJmHYL3cxKgSXAXwB1wGozW+7uG9I2uwbY7+4TzGwh8BXgylwEloTqOSDcRpzf+vNNJ8P53Q/tCicXO7QLDu2GI/vh6L4wjn9kb/ilcGQfHMvglMGl5W8u+PI+UNYjfInbrSeU9YRuPZrd7/XGNmWnHpeH1yoth5KyN+6XlrWyvlu4r+EkyYFM9tBnALXuvhnAzO4FFgDphb4A+PfU/fuB/zIz81jfuErylJSGYZa+w2BEBts3nQx7/Uf3hQOmWtz+1HJdw6FwO1wPJ45C47Fw5OyJY2EefjaVlkNJt1DwpeXh81lpOCrXStMen259SSvblYZfFunrrCT1C8RS90ndT19nGayzNtaVZLCON9ala/GLLY+e7/DPNt/8ND8/7uJwlbEsy6TQRwHb0x7XAW9taxt3bzSzA8Bg4E2XzDGzxcBigLFjx3YyskgGSkqh9+BwywZ3aDweCr7xWCj8U6XfeDwcVdvUGJYnT6RuDdCUdr/N9Q3hF5A3pZYnmy1bW98U3q/xeMv13vTmdd4EDuDhc3jTG/dPu84z3K7ZOmnf5d+IVuit/Rpq/qeWyTa4+1JgKYRpixm8t0h+MEsNufSInaQwnCr6FsX/po1a/kxePZ/D1+7et+33OgOZFHodMCbt8WhgRxvb1JlZGdAf2JeVhCJSeE4N+0iXyuQ0equBiWY23szKgYXA8mbbLAc+lLp/BfCIxs9FRLpWu3voqTHx64CVhGmL33P39WZ2C1Dj7suB7wL/Y2a1hD3zhbkMLSIiLWU0D93dVwArmq27Oe3+MeBvshtNREQ6QlcuEBFJCBW6iEhCqNBFRBJChS4ikhDRzoduZvXA1k7++BCaHYVaBPSZi4M+c3E4k888zt0rWnsiWqGfCTOraesE70mlz1wc9JmLQ64+s4ZcREQSQoUuIpIQhVroS2MHiECfuTjoMxeHnHzmghxDFxGRlgp1D11ERJpRoYuIJETBFbqZzTGzTWZWa2Y3xc6Ta2Y2xsweNbONZrbezD4ZO1NXMLNSM3vGzB6KnaUrmNkAM7vfzF5I/VlfFDtTrpnZP6b+Tq8zs3vMLHFXDzGz75nZHjNbl7ZukJn9n5m9mFoOzNb7FVShp12wei5QBSwys6q4qXKuEfiUu08BZgKfKILPDPBJYGPsEF3oNuCX7j4ZOJ+Ef3YzGwXcAFS7+1TCqbmTeNrtO4A5zdbdBDzs7hOBh1OPs6KgCp20C1a7ewNw6oLVieXuO9396dT9g4R/6KPipsotMxsNXA4si52lK5hZP+BSwnUFcPcGd38tbqouUQb0TF3lrBctr4RW8Nz9cVpevW0B8IPU/R8Af52t9yu0Qm/tgtWJLrd0ZlYJTAOeipsk524F/glofhHKpPozoB74fmqYaZmZ9Y4dKpfc/RXg68A2YCdwwN1/FTdVlxnm7jsh7LABQ7P1woVW6BldjDqJzKwP8BPgH9z9T7Hz5IqZvRvY4+5rYmfpQmXAdOB2d58GHCaL/w3PR6lx4wXAeGAk0NvMroqbqvAVWqFncsHqxDGzboQyv8vdH4idJ8dmAfPNbAthSO2dZvbDuJFyrg6oc/dT//O6n1DwSTYbeNnd6939BPAAcHHkTF1lt5mNAEgt92TrhQut0DO5YHWimJkRxlY3uvs3YufJNXf/F3cf7e6VhD/fR9w90Xtu7r4L2G5mk1KrLgM2RIzUFbYBM82sV+rv+GUk/IvgNMuBD6Xufwh4MFsvnNE1RfNFWxesjhwr12YBVwPPm9na1LrPpK7zKslxPXBXakdlM/CRyHlyyt2fMrP7gacJM7meIYGnADCze4C3A0PMrA74HPBl4D4zu4bwiy1r12PWof8iIglRaEMuIiLSBhW6iEhCqNBFRBJChS4ikhAqdBGRhFChi4gkhApdRCQh/h9acmQNkcjr0wAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(ts, ut, ts, gt)\n", "plt.ylim(ymax=1.1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Also notice that the default behaviour is for the convolution to be calculated over a larger time then originally, so this contains the step response up and down" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "full_convolution = numpy.convolve(gt, ut)\n", "plt.plot(full_convolution)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To get the correct integral and just the first part, we can do this:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "yt = full_convolution[:len(ts)]*Δt" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(ts, yt)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that this allows us to calculate the response of a system to an arbitrarily complex input numerically. It also gives us a whole new way to think about how a system will behave by thinking about what its impulse response looks like." ] } ], "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 }