{ "cells": [ { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "# Characterization of Systems in the Time Domain\n", "\n", "*This Jupyter notebook is part of a [collection of notebooks](../index.ipynb) in the bachelors module Signals and Systems, Communications Engineering, Universität Rostock. Please direct questions and suggestions to [Sascha.Spors@uni-rostock.de](mailto:Sascha.Spors@uni-rostock.de).*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analysis of a Damped Spring Pendulum\n", "\n", "The damped [spring pendulum](https://en.wikipedia.org/wiki/Spring_pendulum) is an example for a mechanical system that can be modeled by a linear ordinary differential equation (ODE) with constant coefficients. In view of the theory of signals and systems it hence can be interpreted as a linear time-invariant (LTI) system. The mechanical properties of the damped spring pendulum are analyzed by using the theory of LTI systems. The underlying mechanical setup is depicted in the following\n", "\n", "![Damped spring pendulum](damped_spring.png)\n", "\n", "A compact mass $m$ is mounted on a spring with stiffness $k$ which is connected to the ground. A damper with viscous damping coefficient $c$ is mounted parallel to the spring to model the friction present in the system. It is assumed that the movement of the mass over time is restricted to the vertical axis, here denoted by $y$. It is further assumed that the mass is in its idle position for $t<0$. The pretension of the spring by the mass can be neglected this way. It is additionally assumed that the mass is not moving for $t<0$. Denoting the displacement of the mass over time with $y(t)$, these initial conditions are formulated as $y(t) = 0$ and $\\frac{d y(t)}{dt} = 0$ for $t<0$.\n", "\n", "The normalized values $m = 0.1$, $c = 0.1$, $k = 2.5$ are used for illustration in the following." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Differential Equation\n", "\n", "The differential equation of the mechanical system is derived by considering the force equilibrium at the mass\n", "\n", "\\begin{equation}\n", "F_\\text{S}(t) + F_\\text{F}(t) + F_\\text{I}(t) = F_\\text{E}(t)\n", "\\end{equation}\n", "\n", "where $F_\\text{E}(t)$ denotes an external force acting onto the mass, the other forces are derived in the sequel. The force $F_\\text{S}(t)$ induced by the spring is given by [Hooke's law](https://en.wikipedia.org/wiki/Hooke%27s_law)\n", "\n", "\\begin{equation}\n", "F_\\text{S}(t) = k y(t)\n", "\\end{equation}\n", "\n", "Its common to model the frictional force $F_\\text{F}(t)$ induced by the damper as being proportional to the velocity of the mass\n", "\n", "\\begin{equation}\n", "F_\\text{F}(t) = c \\frac{d y(t)}{dt}\n", "\\end{equation}\n", "\n", "The inertial force $F_\\text{I}(t)$ due to the acceleration of the mass is given as\n", "\n", "\\begin{equation}\n", "F_\\text{I}(t) = m \\frac{d^2 y(t)}{dt^2}\n", "\\end{equation}\n", "\n", "Introducing the forces into the force equilibrium yields the differential equation describing the displacement of the damped spring pendulum\n", "\n", "\\begin{equation}\n", "m \\frac{d^2 y(t)}{dt^2} + c \\frac{d y(t)}{dt} + k y(t) = F_\\text{E}(t)\n", "\\end{equation}\n", "\n", "as a consequence of the external force.\n", "Above equation constitutes an ODE with constant coefficients. It can be interpreted as an LTI system with the external force as input signal $x(t) = F_\\text{E}(t)$ and the displacement of the mass as output signal $y(t)$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Comparison to Passive Electrical Networks\n", "\n", "Comparing the ODEs of the damped spring pendulum and the [second-order analog low-pass](http://localhost:8888/notebooks/systems_time_domain/network_analysis.ipynb#Differential-Equation) yields that both constitute second-order ODEs with constant coefficients. Dividing the ODE of the second-order analog low pass by $C$ results in\n", "\n", "\\begin{equation}\n", "L \\frac{d^2 u_\\text{o}(t)}{dt^2} + R \\frac{d u_\\text{o}(t)}{dt} + \\frac{1}{C} u_\\text{o}(t) = \\frac{1}{C} u_\\text{i}(t)\n", "\\end{equation}\n", "\n", "where $u_\\text{i}(t)$ and $u_\\text{o}(t)$ denote the in- and output voltage of the analog circuit.\n", "Comparison with above ODE of the spring pendulum yields the [equivalence of both systems](https://en.wikipedia.org/wiki/System_equivalence) for\n", "\n", "| | 2nd-order low-pass | spring pendulum |\n", "|:---|:---|:---|\n", "| input signal $x(t)$ | $u_\\text{i}(t) = F_\\text{E}(t) C$ | $F_\\text{E}(t) = \\frac{u_\\text{i}(t)}{C}$ |\n", "| output signal $y(t)$ | $u_\\text{o}(t)$ | $y(t)$ |\n", "|  | $L = m$ | $m = L$ |\n", "|  | $R = c$ | $c = R$ |\n", "|  | $C = \\frac{1}{k}$ | $k = \\frac{1}{C}$ |\n", "\n", "Note, the equivalence between mechanical systems described by ODEs with constant coefficients and analog circuits was used to simulate such systems by [analog computers](https://en.wikipedia.org/wiki/Analog_computer)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Impulse Response\n", "\n", "The LTI system corresponding to the pendulum can be characterized by its [impulse response](impulse_response.ipynb) $h(t)$. It is defined as the output of the system for a Dirac Delta impulse $x(t) = \\delta(t)$ at the input. Physically this can be approximated by hitting the mass (very shortly and forceful). The impulse response characterizes the movement $y(t)$ of the mass after such an event.\n", "\n", "First the ODE of the spring pendulum is defined in `SymPy`" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$c \\frac{d}{d t} y{\\left (t \\right )} + k y{\\left (t \\right )} + m \\frac{d^{2}}{d t^{2}} y{\\left (t \\right )} = x{\\left (t \\right )}$$" ], "text/plain": [ " 2 \n", " d d \n", "c⋅──(y(t)) + k⋅y(t) + m⋅───(y(t)) = x(t)\n", " dt 2 \n", " dt " ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import sympy as sym\n", "%matplotlib inline\n", "sym.init_printing()\n", "\n", "t, m, c, k = sym.symbols('t m c k', real=True)\n", "x = sym.Function('x')(t)\n", "y = sym.Function('y')(t)\n", "\n", "ode = sym.Eq(m*y.diff(t, 2) + c*y.diff(t) + k*y, x)\n", "ode" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The normalized values of the physical constants are stored in a dictionary for ease of later substitution" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPQAAAAyBAMAAACZsOtkAAAAMFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIrt2EIlmRJmrMu/dzVR9PQywAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEK0lEQVRYCb1YTYhbVRT+krzkZTIzybQbFYs+dCFSpYW2MK7mqriQGUho6MJVAy4EFTr7FialLQSG0qHtoojSt3NTabW6UaEVLVToz+BKUJxsXAlmWu3f4HS859z30rz3bu5N0jdzIDf3fOc753t59+fdF0Dado/arbPS5VArd1eE3eG/S8CbQ2cd/iFIOdjQ5l4QWjgGjq///lMMsrvOb1NMch/quM65FaHD49jE7WsD8aJ5sx772dUoHHozIuyZvsdMwb6x/BqHKp6esZnSpX9Ys7q09dIZNcjV5lNJvz/t6/NNqJOGdFZkHphE9LFUpGXp1/TlTWha0qfUIjVJxWOpSL8OnPLjla1+KtLfA+etSglCKtI14KtEZSuQivSzyH1tVUoQzNKnr/y8O5GSBDKtcyKJ2hCzdL/st+TojmAHptU6KPFzbjRp/DqCMCbbDj+j3z35L6WPKP14FOmPgf2cl1PSj9i5KCfpEOZy7hAJTH0V6AjqKWncZXRmnr8GbfKXBmX28uTjYqFNQCC9wsFg2tT3+dK9zpCpmVwqTwtJmGj2Z7nvbaufKdVfYQaVpLFdaJAbSHfIKX5JCHa0i56krLNjaqqNv59vSEJ1uT8rn30Z1Q/wFzG4ZOYecHE3uYF08Y7sL/qE4BrGKSSob7TOM+0vpiTDMbA+H/fwYg2HmCJky9I1cgNpLM5jrkkAipHJs9G1VY72Nosf9noVZvYi1BfVeZpVp7u4I3/1Av20rnT5MuaOc1xe5oB284RvZ3aAk0D3pA/Ise60KS/81e6P4Q2v8t2w14TzwFWnSSP3MxpB986TQXkJOCQoJZSmcVbTrNIA5imUNBGBCqvO41wEYSdKwjfyEjG2/EKX+BHfBukG0uo0fJPixSbyvnaGxyb9mOes5WVCdIbHSJk1FFYxWaNbqUITbedbTgmk1UpTW8qBPXupIC3CmN0QvUC2jWlmTjR74SjJvYpcE+VjU0Thkk79DZ+2grGd/50hcBc10G6kFwSQrx+leFl2+1um9Ysvo2ZSMl3tH5pzuHrh+gNzdNl8e5PJAfIc8nQYNpMS2Y56fGikgRmBwlXkPZn0tvz0t7PAdzJqJiXSTQ9NKZ1dQpk2mkYisRe4InBe3hszqTeB+xbpShOu/dn8qTyR+onSNsAiLQfCvW+rQfHbg5CiHIu03P+Dd9FoWtwbiBRLGkBa7vpWiy5wK50JFmm5rbvqDdxcrmUOa6MWaTnNyvZphkJTW9wMWqSzHgq0uCz2JzK8X1po0bBFunAJxeVohsYr1ZATGtwMhdJLGprcUnALs74mFIV2tFpyaQ9rBml+4Xpnzyf2kisbG+t2VpwR/I1T8eKBzfdLatVmB5hLaV9MTh2ygitIu7qx3mwwfw+2jbRNCIZ/zyInT6pba0f4hZc0t3tbq6z+iv8fO/cX8fox2OEAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left \\{ c : \\frac{1}{10}, \\quad k : \\frac{5}{2}, \\quad m : 0.1\\right \\}$$" ], "text/plain": [ "{c: 1/10, k: 5/2, m: 0.1}" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mck = {m: 0.1, c: sym.Rational('.1'), k: sym.Rational('2.5')}\n", "mck" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The impulse response is calculated by explicit solution of the ODE." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwoAAABDBAMAAADOqe8rAAAAMFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAELvv3c2ZVESJZnYiqzKqLvLVAAAACXBIWXMAAA7EAAAOxAGVKw4bAAANBElEQVR4AeVbe4wdVRn/5r7mPmbvThogwap7G/2DtDwWhQRTlbthLakpdYkGotFwQbr0QWQNBGwh9iaUGGhIl6QqtS0dja1aGrmtBKxrwlgbkALphahBmw03PgiK0C0+aOlj/b4zc+49M/fMa2du092e5M75Xud3zpkzZ+bM78wFmLvJjNo1LVqBiOEIHrlF0Rp0LkaXxmSt6pv2TvmGrISn7Vmp5w1v/KmN0hJz2rhW2rvdUqttlJ9XjxLquMxRNGRW2ya/MHwKzHqXMiLtQkVqtY1Z3c/r8l3o0i01JbVy441cOF/ynCHrqXU13r+9LnNCsSY1y42rpWY2ndT9r0udsEtunrvWtLRr1qU6qExJvXCl3Cy1DkqtFbKmYUDqhHSUySaHmF3Wh6TNte78Zlk4hbmRTuRXOmKQlBeKdWKtuabBXzsmWNGRs0ZHnvvSKwCrZL1UKpY1VbdygAWg1rgMsL0j+kpaE3LjYkTBVubZ+SXcmdLhXi4DFJodee5LTwJ0X9aH8CzUrb5/g5+C4hCID5Cd3B6QFxuQNcSYHCoaWh63jLmWlQP8WAfhAVKUTiAeO8fy0pIxuJ736e2fWVJ+hw50qaJe0PmF/MAQZF9+Enat2/WdJ9B3Dy8UkD99B2TG7JjyrxCMRuHhY6BUAEh/jM8N9aAOXz3UKN6xe+XaFoBahfMoYWevsbtbbmZtKTsOOAdIv2UaAyiV60PQ/8I82FhJ1+n94iizBh8y+ASu22HvAF7gNArwZaA5gHp2+j+2862MDqe+Wcnvg2vo/aI8ZdvPh4zeFXAUnh8dHa2n8MQwAdRjSgWAdErM9iEYgqOvkvFCoMXlg8wVfMB3BRwFDfFXwuV4oxu9HQVYr9NcQ50ScypGRi+f1tGojPTVAfKDzHd+HNSaATfbXc3oCu/0UrpUBR3gpYkT5v6DH4YMrIVBI/wd6d4iZMds2CHAs8zmQmacnjdMt33axHPbStuGTKiq4+li4nck064mfBaqREIEmbbahEV20/LfX8cbefc7KAk6avNPmHcWfgIfgV/CERPgRzw0IH9+D6QadszD9xn2KKifbaKN6by88ty2nPmDMaVZqvf9GqBY4Y4kcg9CJDaTJSdy+mdCkEkWnZlPB/V9TVBAx+9cdLK5ANeZHb9UyvGhk3qjGuVMWWwmix5gkrRbYuMmj+sBYAOP6OTim0HHKkrLRMVfzldFv7UmEt4MRGdHzpgdObZETz9Jis1kyQkyqEjqapu8CLJMqx0SWtCqoUMBlkeI5aEHuZBELr7oCHixmSzh/UaAZZd7ZIKsWBMgQooe/ZKX3iU3+1rlHfQt4u1My10VMsdhsgaluGyKRYe9VArmazzg9JqksgMJ7pQy3ZZAXas4QkzS2IGEyOkhaQnrFh2DyZITZMCmWHRYTulI2yo3LnCYrf5sdNgERakISjgRSSUhBeALkRLRiylj9ADFz4zJ6iLIwH5UKxUCjQ6rGaxYhEPRtIJL21skWEsQ61xZDufxkFMNoe2xYkLi+wI+KWPKqMvxmKwuggxq2Azsqc3A0RuXlXpOkC1UqlgTLUEUXDR5Pf7t1swgSwDfwZQxJovaEZ/JEgkyYtyARsFm4KISZN7vF4GeKRz2CpzB6nMGvuuiKnkK+7zABFYQBh9rD0rVDlNGzJUdHpvJyggEmcXA1RDaYuDOLkF2tA7vY9Vp/OWwe2kdhSRTEvg0UZEpazNZlhCfybIIsg4D973RJaN1m4FLjCDz2nB2nOTfQ/kDNNASJDOOF4KBQsjkuZ4Wy8fAb8OITJnAXMVmskSCzGLcalQnY+AiEGQXT9zabmq34LnhLIQqJ0E9jvoqgEevuKzh2h9Ttj7jMzc819Oh8YVAP1FkygTmKjaTJRJkFuNWo2YwBi48QZZfDv/waT1uOPMNF8+o0hkonEIvbdatx18RJ38nbWiVcX54JVpP8x0jrxh/fK9SEruEKUuCyXISZPR0xntCEAOXa4gNPGwgO+qTUnW+4eIZlDo9+cYgemmzbgX+1CoeeNI+gFKdK7L8kvaOkcxLNl98r0Iy+waJMQEmK1914LJrTq05bN1KxhRtV0xsqYu6W8YNAHvDxe1p6+kKDNDI4sMPluLPsT+WOrn/8XakRMD1NN8xkniZyRffq5DMnmnJrAG2gwF+dMcnyE77V0IbzvaGi2dgfwOe0tGLo6Acx9yxP9bf9CzHHLjhzHeMvAJ98b0KyezFmswaYFsd4Ee3ZGkeWMgJe8I/Hjec+YaLZ+BAHZaQ82YcgCncR3PckfrZBPUsSxvOfMfIK8gX36uQ1D4DpszFZElhU6bU7Gd0weItRPULD+Hrr6tXUtgifL8aUU3n/hgtXcdCgPiE+OFrVI4dfADarhkwZU4mq43kEJSKQw2juGB3gnJnmGI+MX3GBS1y4xKkrzkf39waQjAumC4yBX0Goh8+Iy5Df8CvGZGr3xOmxKEwQY4YF2xp64TDPQNFWWONIy5BtIUGrtJMEWT/hDgooiesLMNXPlal4uo4A2FjwaTOYf5lk8aLHTUpSdk3+WfNqjUpyGRx+BIkxKpiRhU78LM1wqC9xgtMkHzAX1qsw9rPU4yVAukq74ApjkH5L/aCutloW+IRZG2YBAW+BHE+/pOrwIHfP0bAVBW+KHJPpy7l4zreGuldMqn0CAOaN4TZXWZSoL3AuZSB8sd/3ki6DhF/E55lgEH80YsiWx2QgacsWRxLZu5x56GYLCx0Pyv4Rar2QTeGRA8LKyka02QtQfjjX23EhOsqLuJvJm9+BA9L8UfkiSPtGEO1XHPY5EoYJotKslEoEHcMb9IhIIWFDYCZgVszqBB//Cc/CiL+Tev2mfQxfv619450f8Cvsc9elRa1B/z5xDBMFqGwUThcJfGjdADw5UHDwlpQvTsmPwpCW5X/mn1NyBq4TJpC8078QW6YpSaKhZNksJM/n0g7w/zbZ15ClrNR2NHouAJ40JCwHbzeSD0dBfUM9FXYx/i0r9T1AX+G9v4wKTg8QXxiCCaLoNgofKFFIihbJnU47M+DhoRleD089HQU8NynG+xjfHo57/qAP32MOqbA208jJRvAJ4ZgsuD24eFPDg/fANfqhKvnIFeFAB40DOyFbPIuhzjrXb8VNt4drrtqeLgJ3kFxPLSnd7jFRmGgjufFvWrJTNHZ+jabJAF8Yhgmi8CsuUCS2uqva2fAnwcNC0uAvUw9nQt47nGVRB/jb8JL3rojCc8F600BZ8k9AAF8YthTwEaBvSkUoKjjKATwoGFxexzX01F4CuBTRZ0+xv8uPND9Ab92EjtX0Nko0C1rLH5f2SgcxgrhMcKu0go5Lg8av1WBCD0dhdcAzhTYDvekgmdmjbs16w1Q6WzhXEiATyR0NgoqfuWwVkftbzquy2LzoITrn8rh79tyoIBRKO8IXcFUdwULAbY0IF8FOLAbvcvcEcptkyvJhqMA8flEQmKjABdd9sc6KtoCgAR4UML1T6mWvz/QGzAKsfGpAfZeo1b1ag2NQjLJGgUb6xX4VzKoQSh/YQEXb381KNDLHzAKFj5beXshBNt3WSE5wys0uVF4RKhCu/zdWwW1h+LrDLsGt8+0jgA2z8JnK++Z1oDvAiYre8AL4cVbup4YXqFR7OnpacldMgpCyFhthAUep2W5KyGZNe8qly2yauOzlbercAR8pcLK4l16bqZcnfXrh5JRuAE9N8XttY3PVt4urCj4h6hs0XQhzBm1/Y+5ze4ulegsMYbX7Ymit/Fx5e1MyeA7MWerdofd8PKQuwf//BoS+4yncXui6ByfVt7OlAy+E3OWakrVbvgB90mCcRyFwmDMfrXxaeXtTIngOyFnq1YwsOVb97e0Ztl09qFk4ihkm+ozen77y1uPlLde4vSH0xh+YeIJ6Fp5J4MfrhXnctS3sHEZ/B0cy1UOvPumazIcAhyFAeO+3xqF1CIY+CncHbUvHF+7Hm7rXnnHx4/annMyvnQ1NmsCf0uRwr92etrVyHEahfW/G/u7+Va6AofHAYm1SKmNjzTb4u6Vd2z8SI05Z4N/s6MFUMUNROEJzLcj2KoQR+HrP8fm6wN1/EcSILEWKXF8uKszy5Qvsf2OVhL4kRpz7gYPNKHYwL+nVWRNfAloLnxuVQud+CXQCoDFsjA/m40Pn5AFJYAvg519NtwiyeBlOjAua/qjk5P//pNyPE8bu3+gu1b+lCKL87HZ+Ip0myQBfJ+qZ5FL+x/7/3i/AVCXNfszUJxS3i/hPgv9X6Fv5AVZkI/Nxgfk6vOysLj4MsxZaLtCvxFbnatBoSVr/Xv4+YOCeyy461ecwr/2SueMrCC3WfgwCvAEN4l5bHwRbPbKm56tUeO3TOyV9WHF9KLUGDyzl/ZYSjVQ15iyKD+bjV/YOoE3vq4UH78LclYaslebPW13r/F72vizBq6e7m1VvcbvbevPGvqyHtcUG///K+nEvc3OiiUAAAAASUVORK5CYII=\n", "text/latex": [ "$$h{\\left (t \\right )} = C_{1} e^{\\frac{t \\left(- c - \\sqrt{c^{2} - 4 k m}\\right)}{2 m}} + C_{2} e^{\\frac{t \\left(- c + \\sqrt{c^{2} - 4 k m}\\right)}{2 m}} - \\frac{e^{\\frac{t \\left(- c - \\sqrt{c^{2} - 4 k m}\\right)}{2 m}} \\theta\\left(t\\right)}{\\sqrt{c^{2} - 4 k m}} + \\frac{e^{\\frac{t \\left(- c + \\sqrt{c^{2} - 4 k m}\\right)}{2 m}} \\theta\\left(t\\right)}{\\sqrt{c^{2} - 4 k m}}$$" ], "text/plain": [ " ⎛ \n", " ⎛ ____________⎞ ⎛ ____________⎞ ⎜ \n", " ⎜ ╱ 2 ⎟ ⎜ ╱ 2 ⎟ t⋅⎝-c - \n", " t⋅⎝-c - ╲╱ c - 4⋅k⋅m ⎠ t⋅⎝-c + ╲╱ c - 4⋅k⋅m ⎠ ────────\n", " ──────────────────────── ──────────────────────── \n", " 2⋅m 2⋅m ℯ \n", "h(t) = C₁⋅ℯ + C₂⋅ℯ - ─────────\n", " \n", " \n", " \n", "\n", " ____________⎞ ⎛ ____________⎞ \n", " ╱ 2 ⎟ ⎜ ╱ 2 ⎟ \n", "╲╱ c - 4⋅k⋅m ⎠ t⋅⎝-c + ╲╱ c - 4⋅k⋅m ⎠ \n", "──────────────── ──────────────────────── \n", " 2⋅m 2⋅m \n", " ⋅Heaviside(t) ℯ ⋅Heaviside(t)\n", "───────────────────────────── + ──────────────────────────────────────\n", " ____________ ____________ \n", " ╱ 2 ╱ 2 \n", " ╲╱ c - 4⋅k⋅m ╲╱ c - 4⋅k⋅m " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "solution_h = sym.dsolve(\n", " ode.subs(x, sym.DiracDelta(t)).subs(y, sym.Function('h')(t)))\n", "solution_h" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The integration constants $C_1$ and $C_2$ have to be determined from the initial conditions $y(t) = 0$ and $\\frac{d y(t)}{dt} = 0$ for $t<0$. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJcAAAAVBAMAAAC5yWGZAAAAMFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEER2zVSJ3ZkiZjKru+/kt61jAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB90lEQVQ4EaWUv0vkQBTHv1GS2+yiLginKLriHyB7eK2LHNjK2ghWrijaiK6CWOqBjZWWFkL2T9jOO7SwEUQtFOy0sLGxUfEHooW+9zKZTLJuEJxi5vvefN43Q+YlAKxefH+4Y77H75HvewF7Z+xi3/NsDZwcuSVWejiT61qHoi54yYxT5rnwC/ZMhZUeQ2jb1IEWdcEZRsSsa4HURqQ2XYZzqj0CUR8MzYazRPcFFbI27as3EMnWB7WZ88QV/yJlLatokLSZTQC1mVfmis6g7McqqRyZvQaZYE0AxSw1CMznA1rWHKXglZB5iKQpSAALzHoVYKXKCugYlMXimc2eJTQmBVrTJ/ySYYJekZptkZK3spXN9JfDwlwJDTUnU2AKqZBUoHtehLVGRivsYVdhhwjoAuyaC1BgS4/7ph+rQOcPZagF/A5zyM8wazpFWj4OXUVCWtFBOmuYKXB8k/a5ab08iYmoWfoKdDdZ0yoE1Xcjmz6IOQ7YzKYeGKU6dTK5TSyhu2o9Rs0CEDvylBAEdJ+h/fKwh8qUmfQZfvYfA8uxoynQlX8EDNAwU88335mfsmNmCtzGf6X0Ep5MpWrN6FY+Ge7F7t94Wswar3TanXrJ68AXrbHYD5vf3+/iG2ucsK7jaTOumEGStm5kd+sgCfriXma2CHwAJpmAO532qpoAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left \\{ C_{1} : 0, \\quad C_{2} : 0\\right \\}$$" ], "text/plain": [ "{C₁: 0, C₂: 0}" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integration_constants = sym.solve((solution_h.rhs.limit(\n", " t, 0, '-'), solution_h.rhs.diff(t).limit(t, 0, '-')), ['C1', 'C2'])\n", "integration_constants" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Substitution of the values for the integration constants $C_1$ and $C_2$ into the result from above yields the impulse response of the spring pendulum" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$h{\\left (t \\right )} = - \\frac{e^{\\frac{t \\left(- c - \\sqrt{c^{2} - 4 k m}\\right)}{2 m}} \\theta\\left(t\\right)}{\\sqrt{c^{2} - 4 k m}} + \\frac{e^{\\frac{t \\left(- c + \\sqrt{c^{2} - 4 k m}\\right)}{2 m}} \\theta\\left(t\\right)}{\\sqrt{c^{2} - 4 k m}}$$" ], "text/plain": [ " ⎛ ____________⎞ ⎛ ____________⎞ \n", " ⎜ ╱ 2 ⎟ ⎜ ╱ 2 ⎟ \n", " t⋅⎝-c - ╲╱ c - 4⋅k⋅m ⎠ t⋅⎝-c + ╲╱ c - 4⋅k⋅m ⎠ \n", " ──────────────────────── ──────────────────────── \n", " 2⋅m 2⋅m \n", " ℯ ⋅Heaviside(t) ℯ ⋅He\n", "h(t) = - ────────────────────────────────────── + ────────────────────────────\n", " ____________ ____________ \n", " ╱ 2 ╱ 2 \n", " ╲╱ c - 4⋅k⋅m ╲╱ c - 4⋅k⋅m \n", "\n", " \n", " \n", " \n", " \n", " \n", "aviside(t)\n", "──────────\n", " \n", " \n", " " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h = solution_h.subs(integration_constants)\n", "h" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The impulse response is plotted for the specific values of $m$, $c$ and $k$ given above" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "application/pdf": "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gOyuRDlL0o6ln2+8x/cPQABTtAplbmRzdHJlYW0KZW5kb2JqCjE0IDAgb2JqCjw8IC9CYXNlRm9udCAvRGVqYVZ1U2FucyAvQ2hhclByb2NzIDE1IDAgUgovRW5jb2RpbmcgPDwKL0RpZmZlcmVuY2VzIFsgNDAgL3BhcmVubGVmdCAvcGFyZW5yaWdodCA0NiAvcGVyaW9kIDQ4IC96ZXJvIC9vbmUgL3R3byA1MiAvZm91ciAvZml2ZQovc2l4IDU2IC9laWdodCAxMDQgL2ggMTE2IC90IF0KL1R5cGUgL0VuY29kaW5nID4+Ci9GaXJzdENoYXIgMCAvRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250RGVzY3JpcHRvciAxMyAwIFIKL0ZvbnRNYXRyaXggWyAwLjAwMSAwIDAgMC4wMDEgMCAwIF0gL0xhc3RDaGFyIDI1NSAvTmFtZSAvRGVqYVZ1U2FucwovU3VidHlwZSAvVHlwZTMgL1R5cGUgL0ZvbnQgL1dpZHRocyAxMiAwIFIgPj4KZW5kb2JqCjEzIDAgb2JqCjw8IC9Bc2NlbnQgOTI5IC9DYXBIZWlnaHQgMCAvRGVzY2VudCAtMjM2IC9GbGFncyAzMgovRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250TmFtZSAvRGVqYVZ1U2FucyAvSXRhbGljQW5nbGUgMAovTWF4V2lkdGggMTM0MiAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTIgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM0MiA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDIzIDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxMiA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjEyIDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDUKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk4MiA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMTUgMCBvYmoKPDwgL2VpZ2h0IDE2IDAgUiAvZml2ZSAxNyAwIFIgL2ZvdXIgMTggMCBSIC9oIDE5IDAgUiAvb25lIDIxIDAgUgovcGFyZW5sZWZ0IDIyIDAgUiAvcGFyZW5yaWdodCAyMyAwIFIgL3BlcmlvZCAyNCAwIFIgL3NpeCAyNSAwIFIgL3QgMjYgMCBSCi90d28gMjcgMCBSIC96ZXJvIDI4IDAgUiA+PgplbmRvYmoKMyAwIG9iago8PCAvRjEgMTQgMCBSID4+CmVuZG9iago0IDAgb2JqCjw8IC9BMSA8PCAvQ0EgMCAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+Ci9BMiA8PCAvQ0EgMSAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+ID4+CmVuZG9iago1IDAgb2JqCjw8ID4+CmVuZG9iago2IDAgb2JqCjw8ID4+CmVuZG9iago3IDAgb2JqCjw8IC9EZWphVnVTYW5zLW1pbnVzIDIwIDAgUiA+PgplbmRvYmoKMiAwIG9iago8PCAvQ291bnQgMSAvS2lkcyBbIDEwIDAgUiBdIC9UeXBlIC9QYWdlcyA+PgplbmRvYmoKMjkgMCBvYmoKPDwgL0NyZWF0aW9uRGF0ZSAoRDoyMDE5MDQxNjA5MzIzMCswMicwMCcpCi9DcmVhdG9yIChtYXRwbG90bGliIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcpCi9Qcm9kdWNlciAobWF0cGxvdGxpYiBwZGYgYmFja2VuZCAzLjAuMykgPj4KZW5kb2JqCnhyZWYKMCAzMAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTYgMDAwMDAgbiAKMDAwMDAxMTk4NSAwMDAwMCBuIAowMDAwMDExNzY2IDAwMDAwIG4gCjAwMDAwMTE3OTggMDAwMDAgbiAKMDAwMDAxMTg5NyAwMDAwMCBuIAowMDAwMDExOTE4IDAwMDAwIG4gCjAwMDAwMTE5MzkgMDAwMDAgbiAKMDAwMDAwMDA2NSAwMDAwMCBuIAowMDAwMDAwMzk4IDAwMDAwIG4gCjAwMDAwMDAyMDggMDAwMDAgbiAKMDAwMDAwNjY1MCAwMDAwMCBuIAowMDAwMDEwNTMwIDAwMDAwIG4gCjAwMDAwMTAzMzAgMDAwMDAgbiAKMDAwMDAwOTkzNyAwMDAwMCBuIAowMDAwMDExNTgzIDAwMDAwIG4gCjAwMDAwMDY2NzEgMDAwMDAgbiAKMDAwMDAwNzEzNiAwMDAwMCBuIAowMDAwMDA3NDU2IDAwMDAwIG4gCjAwMDAwMDc2MTggMDAwMDAgbiAKMDAwMDAwNzg1NCAwMDAwMCBuIAowMDAwMDA4MDI0IDAwMDAwIG4gCjAwMDAwMDgxNzYgMDAwMDAgbiAKMDAwMDAwODM5NiAwMDAwMCBuIAowMDAwMDA4NjE4IDAwMDAwIG4gCjAwMDAwMDg3MzkgMDAwMDAgbiAKMDAwMDAwOTEyOSAwMDAwMCBuIAowMDAwMDA5MzMzIDAwMDAwIG4gCjAwMDAwMDk2NTQgMDAwMDAgbiAKMDAwMDAxMjA0NSAwMDAwMCBuIAp0cmFpbGVyCjw8IC9JbmZvIDI5IDAgUiAvUm9vdCAxIDAgUiAvU2l6ZSAzMCA+PgpzdGFydHhyZWYKMTIxOTkKJSVFT0YK\n", "image/svg+xml": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sym.plot(h.rhs.subs(mck), (t, 0, 12), ylabel=r'h(t)');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Transfer Function\n", "\n", "For an exponential input signal $x(t) = e^{s t}$, the [transfer function](eigenfunctions.ipynb#Transfer-Function) $H(s)$ represents the weight of the exponential output signal $y(t) = H(s) \\cdot e^{s t}$. The transfer function is derived by introducing $x(t)$ and $y(t)$ into the ODE and solving for $H(s)$" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHcAAAAsBAMAAACtXjqNAAAAMFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMt0Qq5nNdrvviSJUZkQZkPbxAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB1klEQVRIDe2UMUjDQBiFX02jNklrFVRwjEXQyVFcWhBFcCluOrmI4GKhlooi1s1FkE46GVQQXCxO1UG7iItgxdHBIAgiiJEuItqaS+6SRk1AHe0Nuf/+975L8q4p4DVaer1UT40bnPk9DCzVYM94v4i1wL5E4t34S2DDm5GE9+419V8kUPn90P5FQPZL9u8M2IufVnGMuiN9WXeNKGWchN0dk+4SUa6+gx8Z88aKUJFVznnLuSSrM9oKlZgmff9n4utkBntmsLDGei5wvtcw7M6HIaS3TTOD62NSypQZ/DByNJvomFNhmMWYL6cTBwU+g2XcOeFo8fywaLQYrKwkuHdVWoNhzje3kr17EEiIGlad8MVxoY1sDVDYp65DfEVQg2HerFR0jSfJiC/XxDcqyxuyHCHl2CW5gpfl7qwsxwCOK0MqwZ9hZugjkCHX/YpCJjvtrvGw2WB3hqSBn9CfssqMqGKY7unR0MC4cuj5E+yfQJ2Cp5z+qsyMpiKg6gfuhIMa99Zg0iywgIKoiiGxYJvBxyGEpyDFTSu9sz/DPQtOWP8t3wDTAmwzsJdOoj29SB+Swo0FpJJO+BZIAacLVWbKWBOFrbV1VFUd19L6MCyH24ehGz4ApiG5oAgXNaQAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\frac{1}{c s + k + m s^{2}}$$" ], "text/plain": [ " 1 \n", "──────────────\n", " 2\n", "c⋅s + k + m⋅s " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s = sym.symbols('s')\n", "H = sym.Function('H')(s)\n", "\n", "H, = sym.solve(ode.subs(x, sym.exp(s*t)).subs(y, H*sym.exp(s*t)).doit(), H)\n", "H" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The transfer characteristic of an LTI system for harmonic exponential signals $e^{j \\omega t} = \\cos(\\omega t) + j \\sin(\\omega t)$ is of special interest in the analysis of resonating systems. It can be derived from $H(s)$ by substituting the complex frequency $s$ with $s = j \\omega$. The resulting transfer function $H(j \\omega)$ provides the attenuation and phase the system adds to an harmonic input signal." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIYAAAAsBAMAAABS0N0qAAAAMFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMt0Qq5nNdrvviUQiVGZvsV9ZAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB+ElEQVRIDe2WPUgbYRjH/8nrmXqXL7sqmB5OgnBT6XYdbJvxqPg1KTTdBG8RcVLpIEUEt1RBewEh6JS9tAZxEj+yiVDQvUMiSAe1pu+be87LCzlSm03yDO89H7/nf+89vMcd0MyeG82IZnX2ZqZlDWChrSENuj0PaRxP6Xykv/bb8sO1o/YEHjeBauv2uBs+aZrtDrX8+VGgpMSQZgMnxT7XgMA6kChEr0R5IJjptIJrtUrccDUaYD8olyg1KMopNSXHD9EZeXvNBxb4a+Fp7DyoBjnRT7zCZm1AncvhNQ/2ky7raWRwNuxmaNW2j/LvQvkVePgBenm7toboIMZj4tFPuZ4w0mD3sZ9bboZW9dkyzF84B+HRpW5+k2NlCmEHWUVQqhDiRhqxu++haTdDa0/XIk4dlEF4V7VaAYyEjUkD+AYsIl7k7HtdX9f1fu4pW8la70td2AvuG2YBFwbSdbggeOoLv9gIWVBFghvtI/wx58b+egGMAlkZRwbshjMWIiUcEkwaZmHP3Yiv8VacSe2OSTj7o+Ie0JbQZ7EPskYZZsn2+4W3AXaLjqljCdcqJxgBcjvbm9cTl9RA+0jDTDqUci/8ZMcr6HQcCcfyJdT8nPHqd3E+6/GksYrIGB93nWkpRCzExooSXgf4Lmn4if/wvHfu31r/Ah9KwXkxQhvkAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\frac{1}{i c \\omega + k - m \\omega^{2}}$$" ], "text/plain": [ " 1 \n", "────────────────\n", " 2\n", "ⅈ⋅c⋅ω + k - m⋅ω " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "w = sym.symbols('omega', real=True)\n", "\n", "Hjw = H.subs(s, sym.I * w)\n", "Hjw" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The magnitude of the transfer function $|H(j \\omega)|$ is plotted for the specific values of the elements given above" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "application/pdf": "JVBERi0xLjQKJazcIKu6CjEgMCBvYmoKPDwgL1BhZ2VzIDIgMCBSIC9UeXBlIC9DYXRhbG9nID4+CmVuZG9iago4IDAgb2JqCjw8IC9FeHRHU3RhdGUgNCAwIFIgL0ZvbnQgMyAwIFIgL1BhdHRlcm4gNSAwIFIKL1Byb2NTZXQgWyAvUERGIC9UZXh0IC9JbWFnZUIgL0ltYWdlQyAvSW1hZ2VJIF0gL1NoYWRpbmcgNiAwIFIKL1hPYmplY3QgNyAwIFIgPj4KZW5kb2JqCjEwIDAgb2JqCjw8IC9Bbm5vdHMgWyBdIC9Db250ZW50cyA5IDAgUgovR3JvdXAgPDwgL0NTIC9EZXZpY2VSR0IgL1MgL1RyYW5zcGFyZW5jeSAvVHlwZSAvR3JvdXAgPj4KL01lZGlhQm94IFsgMCAwIDM4OC40MjYyNSAzMjEuOTEzMjI1NDgxNCBdIC9QYXJlbnQgMiAwIFIgL1Jlc291cmNlcyA4IDAgUgovVHlwZSAvUGFnZSA+PgplbmRvYmoKOSAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDExIDAgUiA+PgpzdHJlYW0KeJylmsuSHsUVhPf/U/QSFmrqflmawMjhjQNQ2AvbCwxCRqERIROYjR/eX3b1bf4+miECFEgzlZVV1XXJk6e6/fT25qc3k5ve8v+v09+nf/Lv95OfXvL/m5vjt4dbbG1OoYTMb+9Ov8Xg5+5j4Md3VH30679vtx9un/2BRn6G9fJ283WuqbQKzc/FeVWj6ZrmVu6K352LQ4e4tXo08qh47SyMzt4wdB5nbqcHYghCzqOoc06xahCnwjS7pfDd7fY5M/Pr7QN/u+mFo806hymEuefpu4fb56+mz770k3fTqx9ubY61dTdm6NX3t098/nR69fb2x1fw3ezUBH+2H6B/9sXrt9/+9Zdvvn3/84uHH9//8vP0xU+3r/izDPtW6avcD/NU+NQwS5nrbx+o+30D9ZHe2mVCT6VPDdWHPiffx4L+tgH/zomlszm6y3hPpZfxPhqP73H2ofpjxBrUMokTgxqdhJznFu47OZc+3UnIYS7pvpP8uJPo8xwvW/lc+nQn0bW5P+7B3z3H+XCeujiVPtNFaXN2j7vYn+K0DWJ1cxwt9jnU5sO6EZZ1ni7rPOe4Vjmv9l/+9e7HD7+8fvHTw+s33/62VQ9zuyv9yKqXyoOqzxg3qVjWfXZ3U3bqiYePvebYH3d1FD/XV0kIoislRdfL2l/IH+2vM3cZRbzr7yh+rr+e55RTyrGwy9f+8sefz0c3e5e9b487PJU/16MPaq2FFHpofe2yfvwRfXFsJPSg3nV5lD/bZa6zL8EROWJb9+RTq+i7n9mQpd93eZQ/2yUB0/ncgs+phbXLJxYycFwKy97K4y5P5c91GXzjjPbiXcu1rV0+sZYhxzkHF+7Pxan82S5TJ+7E5Bxl28Q+sZahJbQ9uZLuujzKn+2ysUErOtkTfy9dhtNaEiEQlxeSDG2QgzN8Q2o+rTIjTYm5xzHuo6tP/rdEm4g6dZ+OKPTZl2Gr8aelBvLh+1Ald9fEPz5Z2+iOsDhE/b6Rt0sV72efmcFYjVY+/Ugr6xANocTV5NLWx9qf77eI5ofJMGvLdEWdHswFHsPz739eT3+b3k9sLawWp54dXlpht7Dcqaz/VZDqcmshZlTo65cTA/jvj9+9/vrl59N3P5/cV4oz52kYQ+111qqlKRFkemTFtB++MQGqo6ot8otKyzJFa3UDIIYh4z33QCMZOUhpbdwol/2dE6viigrZCLXFtbYBPNz0FC4nhpXY7NnFnEZ1C6A6MbKHWumSfV1aanmtbgAPt5zmxOlg8sG1pWsd1S2A6hzK1mvvE8fTFY7nOi8W8HArbLDkU6oq7bXkUEZ1C6B6Q8dwKnnKiCgRNK1jtwAMLN6ppugn/A0n1vV1YoxyKrNwoRU2HU8WEure19oG8HBrWIwUKuuc2Zux5Lg2bgFUl7HsMccpo5SZ/bFOowU83HB9PTK0OJUAHsq2YSyA6sxRacjShFYR3KLbqhsA6ufKLHFhxfBWOefU1x1mIhCQCk0UPr+xqRqRoa0ECxEBNge4+6mjxM6lHDaCgYhAsuFyzNgCdjnztm16ExGh4245jw3J0gbMW/VLOZUD8TrFyLR5H5Fs9uu6XDYkSpgDxQRQNZkIg7VvFAsShdNcMoqC0dBR9ejARrEgUTJDDEs5nhA9i32bKBMSpdB7WwbMua6s0XaCbUiUioZ5zYXXOXQl79NlQqKwG1vCbaPNLCwhNu8UC1IS5nRQCEyTwmvq1NkoJiSKEo+e5DVQhdSrLxvDQETgCPqC8k1Kb1JhW2yrYkKiaB59Z1IChwDV3JTdRAYhKeWiocphji6XfDCu0KAwCw4/GGphSjgW8aBcoUHBL+ElKG9YhJbLwbggI8clXBO6Fk+R2Hpl28MmNCiBiMzuDI1zuhiSnXFBBiH5onUKTfqCNp4YV2hQUC2vlUIB2Elh3/QmNCgFoeujvGSa6gflCq0JfiC3i4tfo6ma20G5QoPSIlthlOfMhqgH5QoNSnfE+qWY3Dnm07guyEroje1JOZups7wnwj0igvxM7GUpjc3lsBMMZBACuSqBUOU5eRcPwgUZBBLyiL6quNDm8RAWNCg4j+TGWIvjEJ1GdYUGJQc5rLXzUkM5KFdoUEj0iLtLOceo1HRQrtCg4ORKH+XMeq/1oFyhQWmuay6WeXeco3BQrtCgdHZNrMvilp7diXFBVkLHTpU1eSBfOc3XFRKFUISG+bjsayzEcdoNZBB8lzFUaWQ6j8kykEGI0dXl5MiyBpTtYFyhQUkR+5kXEei+lNgOyhUalNLJ2dOiNI60Np4e5AoNSkeR2ASSM6/MNB6UKyQKkt9xfWnRTJylgs1KsSAo8s/OkdkTYdBPktZduUxoUHoMSxxrnNba6i7aJiQK8oQwt0q5ky05TooJibK444LbVCJJatDrPjALEqWzwpl/lpjM6Yu7SpgQlKxLKjSAZ+RH8vDYt5NiQqKQRhVsPuWkKpyMsDMMRAT2DjEjypDQNxEwbWtvQqJwziIPt928tn3pLUQEZbZREY/kTm7bpW3fmxAUUm2mWoPFWrJoZXcdFiICHjcUX+QQdd3Q++65TEgX9kxcbmQBU9dCIYMbw0JESET9nirFxCRleNvkWogI2FZyUkRMtpg5r9vcWggECRLmtWC88WP49F1RLERXHuzK6JR3taoZ92nbVBYyLqk9B42jpjPg3eGxLYSc2PmZ4xJ9UzvoEmnemhRbiAhLCENiNVLEZs90TQSC1z4rVZPHXBT6XYdkIiI0hfeUl9nWPcy2nUxE1wC6z44JhUCO2Ptxvf765iMQFMyt5kCXdJ4fyXK3GG1DoiiatLCkA2glIrjNrQ2Jwkyz+jLqeHa0H7+6USxIFLQSecFByVMqQ2/bLYUJQUmMsig11sknv5TlGQwLEcErUSeWTtKmiv5tZtmGRME5V7aEUg4k3EuQN4oFiUJkdMGTA+DwldK6zfvakCiaRzIi5rHgors7Ht6ERJH3SF3lnNLe027nbEgURplKJ3HwS2itnKONYkGiYHaK0nwcD9rBz/uEGYgIfY4FXdU1K8sWcPrb/jIhvfohk0WUVF4Rc7yu39bRhAYFq5a88pSsxDzWg3FBBgH3maJyIcwY2rwFNhsalMbEMdsBVcsF036iXCFREo9FVu4XV9FkEbbNYkKDgn6M3CbMPvFzPChXaFBQSb0TkKnS5WE7Ua7QoGTXmx/lSI8793KFBkVP6EbaIfnYbkVsaFDIfF0c99SV2J9OlCs0KMiHWwwiQbakPbuyoUHpgQR6lIdOQTkoV2i8XHQIeW7DsuPxdyk2oUHxrFEd5ZkF3m4qbWhQEGoF4ZGx1BBOvVyhQYnJay7WpnbzZEODkpiKNspTcd2dBnaFBiUH6CMvitp65aBcoUHBfOWRrhEOdEe8My7IIFSnlxQj6SQt6qcnuUIrpcaRrumerbgz4x5Z3xFnMq/RkF6n5H4wrtCg9EwDIwGpJMP+9CBXSBRsFWmk7kCUs/jQ6j5bFjQoOLcwDirSiWU4GBdkECR/NY2MpS93zTvjCg0KM7cJSGGdjiexoEHJnGytVZXR9SmfKFdoUGpd/K3EMKE+eyAyIVEqGp3zkhclXSL341ksaFCYxaZ5LF2rkHs4KFdIFF2aY0+YFqroGi/skm9BohBkMA3EtLBkBuSUe1yxICglEAaxJJM+ZUCvy3ZbaSIi6JcQ/YibiQO3P7wJDUp3+FbdSPqZEBqjPyhXSBQElwBFrKUG8lZ3A2YhIkg88G99sSZ6NbFdIduQKEVXOkF9k+r1HMsxLAsSpSot6k6pl5fdbHsYNiFR9HkUK+UjWRH7fF9EA1B10okenO7HAyEwk4lsS2hCUDRxtZeCxfL6sqLK0w2KCYkS9dbb4970SiHHGPe4ZUKiIEvkjcohsde62toue2xIlCrtI3mcOsXY090SW4je2nkJckAsJTYhhF0fLUQElpYjQFyuZY6xbpcKFqDqi89VWkteiKztmaWJQOgIfkutTUWXFCSD23gMQNX7XBzrXia8LiG/7upjIQ83LKdu1iKywpEm3u/30iai73kc5p7zMi1fD9UtQhvlqlx1Eaw3otg3n8pmAC2A6myqSvrEGLPn9KayRUATEaFBjjz9lPWNh/dbLmYies0a9VAsnQ4Vedc6m0a5KutFZOLg6oUn3oPsf6tuIBDQNQ4uJ2l5Qxr95hIsQNU5Tj7pTeCSCoSwZRMmAkFmA3FOy/tdXehub5xMBAIK6lA4BEqSG53f3uOZyMPygVSLJfvlZbbvBPWtBwt59O3V8bJ8IXw1fZjC9OfxJeejTx/v3rY/9wHcvbHbv+H8dfmO0/xg8+GjH2ze3u/fZS6DUhPmN5jWt2ZW/+YXoE/2/9Xt/xwLebUKZW5kc3RyZWFtCmVuZG9iagoxMSAwIG9iagozMjYzCmVuZG9iagoxNiAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDg4ID4+CnN0cmVhbQp4nD2NuRHAMAgEc6qgBIF4pH48juT+U5/wEwA77NxcunJjTaxUx0w+hCRm4UUao2iRSmPrDeT4PRQar/3CsKPzdjasrqOhW4Jk2kfIbVe9669bdN7JCxvOCmVuZHN0cmVhbQplbmRvYmoKMTcgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAxNTIgPj4Kc3RyZWFtCnicPU/LEUMhCLxbxTbAjCCC1vMyOZn+rwFNPLGyuB/xgQpiFpBUh7jDreLFhbWjq+NTpB20CouD5gaWvxKxgryB69bpGD1mm3iK58YYOmOGsHDMkQxZ2sUz7rYvRY4NgrthVqHpKZY+5HphGwdSerO0XaGmcC6mImOGcdtpn1sl0o7TL0r9mq4ivcPUkrWLxp99fwG89zZnCmVuZHN0cmVhbQplbmRvYmoKMTggMCBvYmoKPDwgL0JCb3ggWyAtMTAxNiAtMzUxIDE2NjAgMTA2OCBdIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMTgxCi9TdWJ0eXBlIC9Gb3JtIC9UeXBlIC9YT2JqZWN0ID4+CnN0cmVhbQp4nDVQOQ4EIQzreYU/sBK5w3tG2mr2/+2GMFOgGBwHO4NJ8SHBb0Q2kIkUeILDcY1kiDGIDaoCWg7TKIKXNLoHv1xq9RIoZomlekhLKXVc4QyW2OUaMvsupiBdkAxIDbmGlnSje6gcTm3CCUZ5pLbmBq6zJpfPNrr/8nZK8Ih244WP09B8nEZl3FykdaoIemJGzco9NnoJRty1HLGctdRSpFSLOlFlsNUPczb/7vEa3z/mNz8eCmVuZHN0cmVhbQplbmRvYmoKMTQgMCBvYmoKPDwgL0Jhc2VGb250IC9EZWphVnVTYW5zLU9ibGlxdWUgL0NoYXJQcm9jcyAxNSAwIFIKL0VuY29kaW5nIDw8IC9EaWZmZXJlbmNlcyBbIDcyIC9IIDEwNiAvaiBdIC9UeXBlIC9FbmNvZGluZyA+PiAvRmlyc3RDaGFyIDAKL0ZvbnRCQm94IFsgLTEwMTYgLTM1MSAxNjYwIDEwNjggXSAvRm9udERlc2NyaXB0b3IgMTMgMCBSCi9Gb250TWF0cml4IFsgMC4wMDEgMCAwIDAuMDAxIDAgMCBdIC9MYXN0Q2hhciAyNTUgL05hbWUgL0RlamFWdVNhbnMtT2JsaXF1ZQovU3VidHlwZSAvVHlwZTMgL1R5cGUgL0ZvbnQgL1dpZHRocyAxMiAwIFIgPj4KZW5kb2JqCjEzIDAgb2JqCjw8IC9Bc2NlbnQgOTI5IC9DYXBIZWlnaHQgMCAvRGVzY2VudCAtMjM2IC9GbGFncyA5NgovRm9udEJCb3ggWyAtMTAxNiAtMzUxIDE2NjAgMTA2OCBdIC9Gb250TmFtZSAvRGVqYVZ1U2Fucy1PYmxpcXVlCi9JdGFsaWNBbmdsZSAwIC9NYXhXaWR0aCAxMzUwIC9TdGVtViAwIC9UeXBlIC9Gb250RGVzY3JpcHRvciAvWEhlaWdodCAwID4+CmVuZG9iagoxMiAwIG9iagpbIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwCjYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgMzE4IDQwMSA0NjAgODM4IDYzNgo5NTAgNzgwIDI3NSAzOTAgMzkwIDUwMCA4MzggMzE4IDM2MSAzMTggMzM3IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYKNjM2IDYzNiAzMzcgMzM3IDgzOCA4MzggODM4IDUzMSAxMDAwIDY4NCA2ODYgNjk4IDc3MCA2MzIgNTc1IDc3NSA3NTIgMjk1CjI5NSA2NTYgNTU3IDg2MyA3NDggNzg3IDYwMyA3ODcgNjk1IDYzNSA2MTEgNzMyIDY4NCA5ODkgNjg1IDYxMSA2ODUgMzkwIDMzNwozOTAgODM4IDUwMCA1MDAgNjEzIDYzNSA1NTAgNjM1IDYxNSAzNTIgNjM1IDYzNCAyNzggMjc4IDU3OSAyNzggOTc0IDYzNCA2MTIKNjM1IDYzNSA0MTEgNTIxIDM5MiA2MzQgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzYgMzM3IDYzNiA4MzggNjAwIDYzNiA2MDAgMzE4CjM1MiA1MTggMTAwMCA1MDAgNTAwIDUwMCAxMzUwIDYzNSA0MDAgMTA3MCA2MDAgNjg1IDYwMCA2MDAgMzE4IDMxOCA1MTggNTE4CjU5MCA1MDAgMTAwMCA1MDAgMTAwMCA1MjEgNDAwIDEwMjggNjAwIDUyNSA2MTEgMzE4IDQwMSA2MzYgNjM2IDYzNiA2MzYgMzM3CjUwMCA1MDAgMTAwMCA0NzEgNjE3IDgzOCAzNjEgMTAwMCA1MDAgNTAwIDgzOCA0MDEgNDAxIDUwMCA2MzYgNjM2IDMxOCA1MDAKNDAxIDQ3MSA2MTcgOTY5IDk2OSA5NjkgNTMxIDY4NCA2ODQgNjg0IDY4NCA2ODQgNjg0IDk3NCA2OTggNjMyIDYzMiA2MzIgNjMyCjI5NSAyOTUgMjk1IDI5NSA3NzUgNzQ4IDc4NyA3ODcgNzg3IDc4NyA3ODcgODM4IDc4NyA3MzIgNzMyIDczMiA3MzIgNjExIDYwOAo2MzAgNjEzIDYxMyA2MTMgNjEzIDYxMyA2MTMgOTk1IDU1MCA2MTUgNjE1IDYxNSA2MTUgMjc4IDI3OCAyNzggMjc4IDYxMiA2MzQKNjEyIDYxMiA2MTIgNjEyIDYxMiA4MzggNjEyIDYzNCA2MzQgNjM0IDYzNCA1OTIgNjM1IDU5MiBdCmVuZG9iagoxNSAwIG9iago8PCAvSCAxNiAwIFIgL2ogMTcgMCBSID4+CmVuZG9iagoyMyAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDU0ID4+CnN0cmVhbQp4nDM2NlcwUDA0MlfQNTI2VTAyNFAwNzNRSDHkgjFzwSywbA4XXCGECZLPgavM4UoDAEyQDxUKZW5kc3RyZWFtCmVuZG9iagoyNCAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDI0NyA+PgpzdHJlYW0KeJxNUbttRDEM698UXOAA62t5ngtSXfZvQ8kIkMIgoS8p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cOKz1nfVNBLUZgtOlgGuTj+MDgBgIl5ZgOyuRDlL0o6ln2+8x/cPQABTtAplbmRzdHJlYW0KZW5kb2JqCjIxIDAgb2JqCjw8IC9CYXNlRm9udCAvRGVqYVZ1U2FucyAvQ2hhclByb2NzIDIyIDAgUgovRW5jb2RpbmcgPDwKL0RpZmZlcmVuY2VzIFsgNDAgL3BhcmVubGVmdCAvcGFyZW5yaWdodCA0NiAvcGVyaW9kIDQ4IC96ZXJvIC9vbmUgL3R3byA1MyAvZml2ZSA1NQovc2V2ZW4gMTI0IC9iYXIgXQovVHlwZSAvRW5jb2RpbmcgPj4KL0ZpcnN0Q2hhciAwIC9Gb250QkJveCBbIC0xMDIxIC00NjMgMTc5NCAxMjMzIF0gL0ZvbnREZXNjcmlwdG9yIDIwIDAgUgovRm9udE1hdHJpeCBbIDAuMDAxIDAgMCAwLjAwMSAwIDAgXSAvTGFzdENoYXIgMjU1IC9OYW1lIC9EZWphVnVTYW5zCi9TdWJ0eXBlIC9UeXBlMyAvVHlwZSAvRm9udCAvV2lkdGhzIDE5IDAgUiA+PgplbmRvYmoKMjAgMCBvYmoKPDwgL0FzY2VudCA5MjkgL0NhcEhlaWdodCAwIC9EZXNjZW50IC0yMzYgL0ZsYWdzIDMyCi9Gb250QkJveCBbIC0xMDIxIC00NjMgMTc5NCAxMjMzIF0gL0ZvbnROYW1lIC9EZWphVnVTYW5zIC9JdGFsaWNBbmdsZSAwCi9NYXhXaWR0aCAxMzQyIC9TdGVtViAwIC9UeXBlIC9Gb250RGVzY3JpcHRvciAvWEhlaWdodCAwID4+CmVuZG9iagoxOSAwIG9iagpbIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwCjYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgMzE4IDQwMSA0NjAgODM4IDYzNgo5NTAgNzgwIDI3NSAzOTAgMzkwIDUwMCA4MzggMzE4IDM2MSAzMTggMzM3IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYKNjM2IDYzNiAzMzcgMzM3IDgzOCA4MzggODM4IDUzMSAxMDAwIDY4NCA2ODYgNjk4IDc3MCA2MzIgNTc1IDc3NSA3NTIgMjk1CjI5NSA2NTYgNTU3IDg2MyA3NDggNzg3IDYwMyA3ODcgNjk1IDYzNSA2MTEgNzMyIDY4NCA5ODkgNjg1IDYxMSA2ODUgMzkwIDMzNwozOTAgODM4IDUwMCA1MDAgNjEzIDYzNSA1NTAgNjM1IDYxNSAzNTIgNjM1IDYzNCAyNzggMjc4IDU3OSAyNzggOTc0IDYzNCA2MTIKNjM1IDYzNSA0MTEgNTIxIDM5MiA2MzQgNTkyIDgxOCA1OTIgNTkyIDUyNSA2MzYgMzM3IDYzNiA4MzggNjAwIDYzNiA2MDAgMzE4CjM1MiA1MTggMTAwMCA1MDAgNTAwIDUwMCAxMzQyIDYzNSA0MDAgMTA3MCA2MDAgNjg1IDYwMCA2MDAgMzE4IDMxOCA1MTggNTE4CjU5MCA1MDAgMTAwMCA1MDAgMTAwMCA1MjEgNDAwIDEwMjMgNjAwIDUyNSA2MTEgMzE4IDQwMSA2MzYgNjM2IDYzNiA2MzYgMzM3CjUwMCA1MDAgMTAwMCA0NzEgNjEyIDgzOCAzNjEgMTAwMCA1MDAgNTAwIDgzOCA0MDEgNDAxIDUwMCA2MzYgNjM2IDMxOCA1MDAKNDAxIDQ3MSA2MTIgOTY5IDk2OSA5NjkgNTMxIDY4NCA2ODQgNjg0IDY4NCA2ODQgNjg0IDk3NCA2OTggNjMyIDYzMiA2MzIgNjMyCjI5NSAyOTUgMjk1IDI5NSA3NzUgNzQ4IDc4NyA3ODcgNzg3IDc4NyA3ODcgODM4IDc4NyA3MzIgNzMyIDczMiA3MzIgNjExIDYwNQo2MzAgNjEzIDYxMyA2MTMgNjEzIDYxMyA2MTMgOTgyIDU1MCA2MTUgNjE1IDYxNSA2MTUgMjc4IDI3OCAyNzggMjc4IDYxMiA2MzQKNjEyIDYxMiA2MTIgNjEyIDYxMiA4MzggNjEyIDYzNCA2MzQgNjM0IDYzNCA1OTIgNjM1IDU5MiBdCmVuZG9iagoyMiAwIG9iago8PCAvYmFyIDIzIDAgUiAvZml2ZSAyNCAwIFIgL29uZSAyNiAwIFIgL3BhcmVubGVmdCAyNyAwIFIKL3BhcmVucmlnaHQgMjggMCBSIC9wZXJpb2QgMjkgMCBSIC9zZXZlbiAzMCAwIFIgL3R3byAzMSAwIFIgL3plcm8gMzIgMCBSID4+CmVuZG9iagozIDAgb2JqCjw8IC9GMSAyMSAwIFIgL0YyIDE0IDAgUiA+PgplbmRvYmoKNCAwIG9iago8PCAvQTEgPDwgL0NBIDAgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PgovQTIgPDwgL0NBIDEgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PiA+PgplbmRvYmoKNSAwIG9iago8PCA+PgplbmRvYmoKNiAwIG9iago8PCA+PgplbmRvYmoKNyAwIG9iago8PCAvRGVqYVZ1U2Fucy1PYmxpcXVlLW9tZWdhIDE4IDAgUiAvRGVqYVZ1U2Fucy1taW51cyAyNSAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL0NvdW50IDEgL0tpZHMgWyAxMCAwIFIgXSAvVHlwZSAvUGFnZXMgPj4KZW5kb2JqCjMzIDAgb2JqCjw8IC9DcmVhdGlvbkRhdGUgKEQ6MjAxOTA0MTYwOTMyMzIrMDInMDAnKQovQ3JlYXRvciAobWF0cGxvdGxpYiAzLjAuMywgaHR0cDovL21hdHBsb3RsaWIub3JnKQovUHJvZHVjZXIgKG1hdHBsb3RsaWIgcGRmIGJhY2tlbmQgMy4wLjMpID4+CmVuZG9iagp4cmVmCjAgMzQKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAwMTAyMDQgMDAwMDAgbiAKMDAwMDAwOTk0MSAwMDAwMCBuIAowMDAwMDA5OTg0IDAwMDAwIG4gCjAwMDAwMTAwODMgMDAwMDAgbiAKMDAwMDAxMDEwNCAwMDAwMCBuIAowMDAwMDEwMTI1IDAwMDAwIG4gCjAwMDAwMDAwNjUgMDAwMDAgbiAKMDAwMDAwMDQwMiAwMDAwMCBuIAowMDAwMDAwMjA4IDAwMDAwIG4gCjAwMDAwMDM3NDAgMDAwMDAgbiAKMDAwMDAwNDk5MSAwMDAwMCBuIAowMDAwMDA0NzgzIDAwMDAwIG4gCjAwMDAwMDQ0NjEgMDAwMDAgbiAKMDAwMDAwNjA0NCAwMDAwMCBuIAowMDAwMDAzNzYxIDAwMDAwIG4gCjAwMDAwMDM5MjEgMDAwMDAgbiAKMDAwMDAwNDE0NiAwMDAwMCBuIAowMDAwMDA4NzM4IDAwMDAwIG4gCjAwMDAwMDg1MzggMDAwMDAgbiAKMDAwMDAwODE2MSAwMDAwMCBuIAowMDAwMDA5NzkxIDAwMDAwIG4gCjAwMDAwMDYwODYgMDAwMDAgbiAKMDAwMDAwNjIxMiAwMDAwMCBuIAowMDAwMDA2NTMyIDAwMDAwIG4gCjAwMDAwMDY3MDIgMDAwMDAgbiAKMDAwMDAwNjg1NCAwMDAwMCBuIAowMDAwMDA3MDc0IDAwMDAwIG4gCjAwMDAwMDcyOTYgMDAwMDAgbiAKMDAwMDAwNzQxNyAwMDAwMCBuIAowMDAwMDA3NTU3IDAwMDAwIG4gCjAwMDAwMDc4NzggMDAwMDAgbiAKMDAwMDAxMDI2NCAwMDAwMCBuIAp0cmFpbGVyCjw8IC9JbmZvIDMzIDAgUiAvUm9vdCAxIDAgUiAvU2l6ZSAzNCA+PgpzdGFydHhyZWYKMTA0MTgKJSVFT0YK\n", "image/svg+xml": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sym.plot(abs(Hjw.subs(mck)), (w, -15, 15),\n", " ylabel=r'$|H(j \\omega)|$', xlabel=r'$\\omega$');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When inspecting the magnitude of the transfer function it becomes evident that the damped spring pendulum shows resonances (maxima) for two specific angular frequencies. These resonance frequencies $\\omega_0$ are calculated by inspecting the extreme values of $|H(j \\omega)|$. First the derivative of $|H(j \\omega)|$ with respect to $\\omega$ is computed and set to zero" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left [ 0, \\quad - \\frac{\\sqrt{- \\frac{c^{2}}{2} + k m}}{m}, \\quad \\frac{\\sqrt{- \\frac{c^{2}}{2} + k m}}{m}\\right ]$$" ], "text/plain": [ "⎡ ____________ ____________⎤\n", "⎢ ╱ 2 ╱ 2 ⎥\n", "⎢ ╱ c ╱ c ⎥\n", "⎢ - ╱ - ── + k⋅m ╱ - ── + k⋅m ⎥\n", "⎢ ╲╱ 2 ╲╱ 2 ⎥\n", "⎢0, ───────────────────, ─────────────────⎥\n", "⎣ m m ⎦" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "extrema = sym.solve(sym.Eq(sym.diff(abs(Hjw), w),0),w)\n", "extrema" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the maxima of the transfer function only the 2nd and 3rd extrema are of interest" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left [ - \\frac{\\sqrt{- \\frac{c^{2}}{2} + k m}}{m}, \\quad \\frac{\\sqrt{- \\frac{c^{2}}{2} + k m}}{m}\\right ]$$" ], "text/plain": [ "⎡ ____________ ____________⎤\n", "⎢ ╱ 2 ╱ 2 ⎥\n", "⎢ ╱ c ╱ c ⎥\n", "⎢- ╱ - ── + k⋅m ╱ - ── + k⋅m ⎥\n", "⎢ ╲╱ 2 ╲╱ 2 ⎥\n", "⎢───────────────────, ─────────────────⎥\n", "⎣ m m ⎦" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "w0 = extrema[1:3]\n", "w0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The resonance frequencies are computed for the specific values of $m$, $c$ and $k$ given above" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAAVBAMAAAC+ruilAAAAMFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAdt0yiUQQzZmrZiLvu1QpAR8KAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEuklEQVRIDdWXX2hbZRjGn7TJaf43jl10KFirDKeoEW+cCGbauoGIwRsVBj0X4gYKCRPU6YVB0UVhruAf2l24zIspKiyKF2M4WpQWhmijuImK7Ajibaq1rdY28Xnf75zknDRhXrQX+y6S5z3v9/2eh69fzjnFtutxhQ4mH7ts9LO2N6WtvCvB7yysavDK/6gSp1qTLsPvB55szaUYC4a/U3vR8jvyzUJVvdlszgD9JbhKOhgdZdQ9+/JIjB7Nsxxi7PlnR2w8vv0V4LN9FwTRObrx08SvcSJ7bSfD96GEn1w5tNN4Gn5H+F3iZl2Hu2UDd7lq72T5JQfom4Cr2MGn+dgwosC7OIh4AwOOdTMw8uf9QAkxxyrhNJdsGN344cPl8q2cyV7byfDbKOX33XaDbTwNPxg+pPDYDFIlgIVR1GcI3zbBXKpk2nNI1fAhcADXOtYK3gMeBCY4LV6BVQw1UCiy6Bhd+dyBREntPD6dlO9DKT8mOPU0/GD4uw5Le7CI8ALAwihHU/W/PwGjpJNelpnMewD781jBj/yb2xo+XGP4yKys3TC68tOApJKe03JSvg+lfA2vnoYfDJ/T8IUaQosAC1chnAXCA9wPVdIZmGGB8Yt4nV/pVfzNwtHwkXU7WuHFunx0jF78+zjP9Dwn5ftQytfwrqfwA+FDVQ0v+70EKYwCzhF+tYYXpZ2n9/BnGWsOObzwcMUSeAXHr3oZOPHHG7wWuYkfHaMXP1EzUE73nAaV30IZfuzkUNbzFH4g/FloeDnpq5DCKOBtHsuKhqfSTuF5JB3goZUqcPtUNvEXcE8GFzGdR7j5Am9NO97sSO4u5NcGfixvoOx5TobfQhl+yk4suZ7KD4TPmfDWLHY3IIVRSCzwvEDCi9JOYQHROaQfuEQa0g2F5yhTw/jtXJNhUHf4ERy9+NOcZnotJ8NvoVr87zxP4Ut469CIjGy8asLj4PZfF00hisGLwEcaXpR2BocRX8IHSK/ZdJ5/gjs/nqGK/hsvoT5HldSfNEVr9OTvdaE+J+W3UZbHP1b1PMn37/wncMMzw7JXRJmhr4ZERsNTQTt9RcRXwZDTzh3AJYdnvu6kioguJm0kGv1ZpBqt1K7wkCyD/FtcqM9J+T6U8n8AjmXV0/D94R+bmlp7yxgN1LxigHELE4hMTZ04nxMF7fB4xJesBR7gU02b4X8BTtvJYcQWCiQcLyx3Ce8hOSHAt/5xoT4n5ftQyv+CdwP1rBi+Pzyh5yV7eg7TWS1cNV6Sy0kGN4rTIjzzM/iKh7zKNfP2x8AR/i6QrCWrwM+cyz+rJcsCoys/wm3lkF7LSfk+lPJzwNfG0/A7wq+DT8vQTvwktHVP1bmKz64aj4YqdvA9nnLwiI2TfOTxPt/nWF/Kg/IaO/IM4pl4Re7DhaKs84+u/DQPNAehLl+chO9DKf8MQnPG0/CD4Y80v8WNfCfi6xZ3koVRnzssoy+uZ6BKO+Ey74X9k+U8IuWjeb4u7cjy3eG1V4HdZT4BHi1f4AneyXX+0Z2f+EbmSM/w1Un5bZTyE+VJ23gafjC832gz9O+bAenN2Nrwud7Gm9HZ0vBWZjMi9mZsafh4b99N6Yzh3iv3f9jZ/wDrYzwr4ykAQwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left [ -4.94974746830583, \\quad 4.94974746830583\\right ]$$" ], "text/plain": [ "[-4.94974746830583, 4.94974746830583]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[w00.subs(mck) for w00 in w0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The phase of the transfer function $\\varphi(j \\omega)$ is computed and plotted for the specific values of the elements given above" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "application/pdf": "JVBERi0xLjQKJazcIKu6CjEgMCBvYmoKPDwgL1BhZ2VzIDIgMCBSIC9UeXBlIC9DYXRhbG9nID4+CmVuZG9iago4IDAgb2JqCjw8IC9FeHRHU3RhdGUgNCAwIFIgL0ZvbnQgMyAwIFIgL1BhdHRlcm4gNSAwIFIKL1Byb2NTZXQgWyAvUERGIC9UZXh0IC9JbWFnZUIgL0ltYWdlQyAvSW1hZ2VJIF0gL1NoYWRpbmcgNiAwIFIKL1hPYmplY3QgNyAwIFIgPj4KZW5kb2JqCjEwIDAgb2JqCjw8IC9Bbm5vdHMgWyBdIC9Db250ZW50cyA5IDAgUgovR3JvdXAgPDwgL0NTIC9EZXZpY2VSR0IgL1MgL1RyYW5zcGFyZW5jeSAvVHlwZSAvR3JvdXAgPj4KL01lZGlhQm94IFsgMCAwIDM4OC40MjYyNSAyOTcuMDEyIF0gL1BhcmVudCAyIDAgUiAvUmVzb3VyY2VzIDggMCBSCi9UeXBlIC9QYWdlID4+CmVuZG9iago5IDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMTEgMCBSID4+CnN0cmVhbQp4nLWaS7MUxxGF9/0reokWFPV+LK2QTYQ3DiTCXsheyBJCEAwyJrD+vr/TPdUzdyYBOSRLAfdSp05ndVXmycyaCevrJawvV7++5s8v67frP/j5wxrWp/x5uXj+dVpS7y7HGgv/enP1rzia8yEy5q9+/2lZflye/AH6e+Y/XZbQXMu1t7IG75qe17Lr9TLy5noktur69qAL7zJ2fnjcH/6SRbJw16+Wjkkh11Zzcq1UDF+PeRcZe7MsX7IDvyzv+Nuvjz1PbC6uIQ4XauQlvz8tXz5fn/wpsNb1+Y9Ld6n14ffdeP7D8iiUL9bnr5c/PucZnj1YtWnHL9CffPXi9Xd//fDNd2/fPz69evvh/frVz8sz/t8WvjTs1ZuFXo99fKG1uva/LdX/tqWGhMV+u6nXgx9frJaZw9jn/fol/8bNxaBL/nbF14M3K36wmjCSC7GFh2vWsraNXFnWbiaW4nq8MfNg8FNmYomuZstMeWgmheLSrVM/GPyUmeS7G/c2ws27XEfnxcj14CeN1O6KvzdyvMmVS6TmXTo/lJfIw6d2dontxNe7E3clhd1rrs/9L/988+rdhxePfz69ePndR88/YiH2ENrmAdH122HTa3nv0qR1wVVs5xiD75932/S7uW1l45tvuTxc9mX4k8uuwfmWeh3dIxWfXXb8/aLNZ5dCSlh9sO6r8U8uPHgOO9Q8Wvap/gpp+7/oxGXZ58GP6ESPbmRNS8ONMoKtEtdGOsoyeo39xs5l/HOmGnrqQyuxjJove2Cai1EKw7JuvOhq/DPmYuiu55y6h94vzmKbq9H5TqGQbsxdxj9nrnQXcXDfOOZ4CaldQeQpj3W0obZzeNa0VQi7eFTHntS2JxvPNtX9QC6GHv390eYwyQ1PAtu11+9z4pzzepsSggslppwuMy5P+eJwO0OsdrsfEat//fRqd8FbZkiOeudY06ef8kDy3q03pVYqjfzF5lQX+PnvF+vf1rdrcIV6yYOEUnG13Uo9/9c4zuZL7zGVONavn67Y/c+r7198/fTL9fv311UZGtTClumiSyn5XLexGnpom/9+YyMQWBdnXdo2XPCJWM8ECyH/8JzYa9ifQ+znkXaCiShhuczr+32ZMY0czhZM5LTkQFYrraVtOLBnLe8EE4FQyEa4WN+cb+BHNZ4JFnJaChtbffZnb0WQ+9mCiUAoiDepaRutBPucfj9+WlB6znNsY6grRvfJxjiTK9E10OJtOETPj/N0C6Eg3XUijS2GEZ3ex04wEQjEb/El9W2YqiDGs0uYyGkh8nPxOZ5VIsVzbvvGRiA0l0ofm2FcmsF43h8TOS1DK00xy7W8G63iWzvBRCCw0oEzbqOhhZLPLmQBCJ1nw0rIqBuazDZ6Ingn2JAoPCmhQGNTPI/OTCeyISjShzFCY7EFxc2tt/PZ2ZAopIqGS+IxJaHASPC0YkJQCNyQS5F64J2jFJ57ppiQKDhjyyNwTlm1PvpxUCxIFDw5U/qy4NwUAzHOdzEhUSrhmyMHFImzVsiYhxULEqU5grF0JII0XlTHjUmxIFHU4xZlfEo+oi3kNnfMhESh3g1kLFn3Uq7o86RY0E7B11plWxLptW5TDso9pGYLqW5IENbpu3pXojhTTEgUKUCOlK1kMZQppTCtmJAovBiuV3BXptTBYR8UC9opZC1tJBuEvI52xbhDRGC/va+IF00CUeR7mQQDEQF5z5lykGEEc7RWDoYFiSI6CUH1S9X9BPo0KRZ07mYRV1QvepyIfa+TYSAi4NA1VyQ29M6GBB8PhgVBwQnCKLVqnKzY0YV5iCYkCoU8VVRSiUjXhCCWg2JBO6WOrFISRXC1Yj1eKPeQKEgt2SekrRCnNqCOmhQLEgXNkXdqPLg+VOpNigWJkgkbNBnrVfKTDq+3EBHQAl+rHkTB54unGp0MC9opI7NajWdEinzcLpR7SBTOd7BKjbPyzjkcVixIlKaOlKcxTlyg2VNYLEQEYhklV4ND6vA86TBhIBBQ2ESCIVvwlwupjT4V0oRECSw2d3IS9R2Hi3PMODEhUfJWG6Cw+pW+S7nwTLEgKFpkwiMoWHlqol87MpcJiZJ1H1KD2qmx3RK0uTATEmXQdVSVFNog7WKYam9CuuMrLiEAedWpEXJ1VkImAqFT4BNm8ge5BqHQptObkChUGL5UOhO5LAVDOZZlQqftKmmQNhQ/m5cjuvPoTYgimRa45pLlQ4QSkTqm4NmQKEr7tRaNU1zR+E/BsyEo9DdUtHRvq2SBOjecj95ERBiE3KBs3q+CkN0wJsOC1B+w812NDN1Nd6jINGEATCeT0WTSnK4SXR3sDF4bEoXgR2CGenBadWJhJjkbgqJUzEvRkCgPejrGWY/bkCgqWCv9zHa9RbT22VXYkCgU9KNl/EbFRkTbZ11rQ6LQP/gtFYeYdbfa8nwXExKFvSiNrVy38qyWqRImIgKyT2CSXKjxqa9zD8fLW5AoFKSt6LXo0CivKPvmuZuQKPhDpf/DH0iyhUaoHeuyoJ2iTCG9oZxtNR4Fjg3pnpXTosLQPuKynPc4zt6EREGX8qDJpVFutGgFuZoUCzptl7S+DQqZ7Q6rlFSOUzGhnUL8DwU2AUuaSbOntCFRqEW8OrCVXE5OT1O7TUQE2lnqXAqGphekXZs7bCEicFYqrIc+P+hp0GxPgoGIQPVKbzraSiaLvuU8m3sL2Qld7W9ceSIvFq4JdwgEEgYPkdDoyryxezOqLEQEdJkESadP00LNWw6Vs5CdQDFNpbdyvHm7MLgQ7hAR1MvS2LZVibmTO+Y7WIgISWJZWSkRR2YJh4F7QNMz5VTOaVWS6HnMXsECNL1QSg0CeUU0EgVPOnbIQESgYkmceVjRMl1IzsrERETo20cddA9UrT4jFHP+PaDpQ8UpLrIir6T40Y/9MRDd+OgmeqjtT1u57fNckIWIoIviTiAh2mSteripATCdoGjFa5VEBz3DrEYsQNPpKfvAF1c1JeNS8JgIBJI0ajLwP7Sa1jLPywMTEUHiMXQ5E1U9oinziC3ktCTdjEsRtmFP6XtccVmICAMPUcWozzBGprOa8++B/XOipuJCdxAcZCnzyExEd25qLHLa+mn6BTL7cedmICJQYoQhl2U4kQOm05kIBI6kBapkNfm6SMnTgAFoepWiNd09UjJRAM/W30QgZNW7MeqqAjXwdczKzkREaC4U5VRGSxh+NrEWwHQkgxI/8TIMk41Kmc+3EBEUEqXpHgivCfFo/EwEgi7hRNcoLbGfbmoBmk7xDFm9tircNjsrC3jwqR7DbfZ6z9Z3a1z/vH8r4MGH6zdXwdcfMGz008NPAfb74e2ZxxcCftm+FHD7FYCT/RWA5e3xYf+2DlGtD/aNzywtq/ffKPi43WfLfwEsPZsaCmVuZHN0cmVhbQplbmRvYmoKMTEgMCBvYmoKMjU0MgplbmRvYmoKMTYgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAxNTIgPj4Kc3RyZWFtCnicPU/LEUMhCLxbxTbAjCCC1vMyOZn+rwFNPLGyuB/xgQpiFpBUh7jDreLFhbWjq+NTpB20CouD5gaWvxKxgryB69bpGD1mm3iK58YYOmOGsHDMkQxZ2sUz7rYvRY4NgrthVqHpKZY+5HphGwdSerO0XaGmcC6mImOGcdtpn1sl0o7TL0r9mq4ivcPUkrWLxp99fwG89zZnCmVuZHN0cmVhbQplbmRvYmoKMTcgMCBvYmoKPDwgL0JCb3ggWyAtMTAxNiAtMzUxIDE2NjAgMTA2OCBdIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMTgxCi9TdWJ0eXBlIC9Gb3JtIC9UeXBlIC9YT2JqZWN0ID4+CnN0cmVhbQp4nDVQOQ4EIQzreYU/sBK5w3tG2mr2/+2GMFOgGBwHO4NJ8SHBb0Q2kIkUeILDcY1kiDGIDaoCWg7TKIKXNLoHv1xq9RIoZomlekhLKXVc4QyW2OUaMvsupiBdkAxIDbmGlnSje6gcTm3CCUZ5pLbmBq6zJpfPNrr/8nZK8Ih244WP09B8nEZl3FykdaoIemJGzco9NnoJRty1HLGctdRSpFSLOlFlsNUPczb/7vEa3z/mNz8eCmVuZHN0cmVhbQplbmRvYmoKMTggMCBvYmoKPDwgL0JCb3ggWyAtMTAxNiAtMzUxIDE2NjAgMTA2OCBdIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjgxCi9TdWJ0eXBlIC9Gb3JtIC9UeXBlIC9YT2JqZWN0ID4+CnN0cmVhbQp4nD2ROXJEMQgFc52CC7hKrJLOM1WOxvdP3eiPHWkBHs1jRIXECvkZEXZvYUsip4RuienyGp4uteU9fN9LR3aSVKJ6SIgzReNIqotNlUTCVpemH/Hgx0v8OBkl4fPWIJRHYuvT9gNCZKGUClJa3lsWp/F7QNtFTjlVMaVav46U2adjTaigywWTcmqQ1bKlAl9Mky9VcV/3fA07R75sLgY0nf/X2Df+HrqfCnVvAZ3zEQRKebcL+AL6A3AMIv6M+bxj2Lp7LoMx8csgSzxxqzsdBtM2VveyzYSoW7sRuMiMQR3VM8TR0d3stK7zaagQNLMWE2feDGVFRJiMEqMRa2vN6m/Hyt4sC6VFsjDH2Eb5s/41vn8Be49kUAplbmRzdHJlYW0KZW5kb2JqCjE0IDAgb2JqCjw8IC9CYXNlRm9udCAvRGVqYVZ1U2Fucy1PYmxpcXVlIC9DaGFyUHJvY3MgMTUgMCBSCi9FbmNvZGluZyA8PCAvRGlmZmVyZW5jZXMgWyAxMDYgL2ogXSAvVHlwZSAvRW5jb2RpbmcgPj4gL0ZpcnN0Q2hhciAwCi9Gb250QkJveCBbIC0xMDE2IC0zNTEgMTY2MCAxMDY4IF0gL0ZvbnREZXNjcmlwdG9yIDEzIDAgUgovRm9udE1hdHJpeCBbIDAuMDAxIDAgMCAwLjAwMSAwIDAgXSAvTGFzdENoYXIgMjU1IC9OYW1lIC9EZWphVnVTYW5zLU9ibGlxdWUKL1N1YnR5cGUgL1R5cGUzIC9UeXBlIC9Gb250IC9XaWR0aHMgMTIgMCBSID4+CmVuZG9iagoxMyAwIG9iago8PCAvQXNjZW50IDkyOSAvQ2FwSGVpZ2h0IDAgL0Rlc2NlbnQgLTIzNiAvRmxhZ3MgOTYKL0ZvbnRCQm94IFsgLTEwMTYgLTM1MSAxNjYwIDEwNjggXSAvRm9udE5hbWUgL0RlamFWdVNhbnMtT2JsaXF1ZQovSXRhbGljQW5nbGUgMCAvTWF4V2lkdGggMTM1MCAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTIgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM1MCA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDI4IDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxNyA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjE3IDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcg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IC9GbGFncyAzMgovRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250TmFtZSAvRGVqYVZ1U2FucyAvSXRhbGljQW5nbGUgMAovTWF4V2lkdGggMTM0MiAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTkgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM0MiA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDIzIDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxMiA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjEyIDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDUKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk4MiA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMjIgMCBvYmoKPDwgL2ZpdmUgMjMgMCBSIC9vbmUgMjUgMCBSIC9wYXJlbmxlZnQgMjYgMCBSIC9wYXJlbnJpZ2h0IDI3IDAgUgovdGhyZWUgMjggMCBSIC90d28gMjkgMCBSIC96ZXJvIDMwIDAgUiA+PgplbmRvYmoKMyAwIG9iago8PCAvRjEgMjEgMCBSIC9GMiAxNCAwIFIgPj4KZW5kb2JqCjQgMCBvYmoKPDwgL0ExIDw8IC9DQSAwIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4KL0EyIDw8IC9DQSAxIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4gPj4KZW5kb2JqCjUgMCBvYmoKPDwgPj4KZW5kb2JqCjYgMCBvYmoKPDwgPj4KZW5kb2JqCjcgMCBvYmoKPDwgL0RlamFWdVNhbnMtT2JsaXF1ZS1vbWVnYSAxNyAwIFIgL0RlamFWdVNhbnMtT2JsaXF1ZS1waGkgMTggMCBSCi9EZWphVnVTYW5zLW1pbnVzIDI0IDAgUiA+PgplbmRvYmoKMiAwIG9iago8PCAvQ291bnQgMSAvS2lkcyBbIDEwIDAgUiBdIC9UeXBlIC9QYWdlcyA+PgplbmRvYmoKMzEgMCBvYmoKPDwgL0NyZWF0aW9uRGF0ZSAoRDoyMDE5MDQxNjA5MzIzNSswMicwMCcpCi9DcmVhdG9yIChtYXRwbG90bGliIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcpCi9Qcm9kdWNlciAobWF0cGxvdGxpYiBwZGYgYmFja2VuZCAzLjAuMykgPj4KZW5kb2JqCnhyZWYKMCAzMgowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTYgMDAwMDAgbiAKMDAwMDAwOTcyMCAwMDAwMCBuIAowMDAwMDA5NDI2IDAwMDAwIG4gCjAwMDAwMDk0NjkgMDAwMDAgbiAKMDAwMDAwOTU2OCAwMDAwMCBuIAowMDAwMDA5NTg5IDAwMDAwIG4gCjAwMDAwMDk2MTAgMDAwMDAgbiAKMDAwMDAwMDA2NSAwMDAwMCBuIAowMDAwMDAwMzk1IDAwMDAwIG4gCjAwMDAwMDAyMDggMDAwMDAgbiAKMDAwMDAwMzAxMiAwMDAwMCBuIAowMDAwMDA0NTEyIDAwMDAwIG4gCjAwMDAwMDQzMDQgMDAwMDAgbiAKMDAwMDAwMzk4OCAwMDAwMCBuIAowMDAwMDA1NTY1IDAwMDAwIG4gCjAwMDAwMDMwMzMgMDAwMDAgbiAKMDAwMDAwMzI1OCAwMDAwMCBuIAowMDAwMDAzNTczIDAwMDAwIG4gCjAwMDAwMDgyNTAgMDAwMDAgbiAKMDAwMDAwODA1MCAwMDAwMCBuIAowMDAwMDA3Njk2IDAwMDAwIG4gCjAwMDAwMDkzMDMgMDAwMDAgbiAKMDAwMDAwNTU5NyAwMDAwMCBuIAowMDAwMDA1OTE3IDAwMDAwIG4gCjAwMDAwMDYwODcgMDAwMDAgbiAKMDAwMDAwNjIzOSAwMDAwMCBuIAowMDAwMDA2NDU5IDAwMDAwIG4gCjAwMDAwMDY2ODEgMDAwMDAgbiAKMDAwMDAwNzA5MiAwMDAwMCBuIAowMDAwMDA3NDEzIDAwMDAwIG4gCjAwMDAwMDk3ODAgMDAwMDAgbiAKdHJhaWxlcgo8PCAvSW5mbyAzMSAwIFIgL1Jvb3QgMSAwIFIgL1NpemUgMzIgPj4Kc3RhcnR4cmVmCjk5MzQKJSVFT0YK\n", "image/svg+xml": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "phi = sym.arg(Hjw)\n", "sym.plot(phi.subs(mck), (w, -15, 15),\n", " ylabel=r'$\\varphi(j \\omega)$', xlabel=r'$\\omega$');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise**\n", "\n", "* Change the viscous damping coefficient $c$ of the spring pendulum and investigate how the magnitude and phase of the transfer function $H(j \\omega)$ changes.\n", "\n", "* How does the frequency of the damped harmonic oscillation in the impulse response relates to the resonance frequency?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Application: Vibration Isolation\n", "\n", "An application of above example is the design of [vibration isolation](https://en.wikipedia.org/wiki/Vibration_isolation) by a damped spring pendulum. A typical example is a rotating machinery with mass $m$ which has some sort of imbalance. Assuming that the imbalance can be modeled as a rotating mass, the external force $F_\\text{E}(t)$ is given by the vertical component of its [centrifugal force](https://en.wikipedia.org/wiki/Centrifugal_force)\n", "\n", "\\begin{equation}\n", "F_\\text{E}(t) = F_0 \\sin(\\omega t) = F_0 \\cdot \\Im \\{e^{j \\omega t} \\}\n", "\\end{equation}\n", "\n", "where $\\omega$ denotes the angular frequency of the rotating machinery and \n", "\n", "\\begin{equation}\n", "F_0 = m_\\text{I} r \\omega^2 \n", "\\end{equation}\n", "\n", "the amplitude of the force with $m_\\text{I}$ denoting the mass of the imbalance and $r$ the radius of its circular orbit. Since $e^{j \\omega t}$ is an eigenfunction of the LTI system, the resulting displacement is then given as\n", "\n", "\\begin{equation}\n", "y(t) = F_0 \\cdot \\Im \\{e^{j \\omega t} H(j \\omega) \\}\n", "\\end{equation}\n", "\n", "The aim of vibration isolation is to keep the magnitude of the displacement as low as possible." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise**\n", "\n", "* Compute and plot the displacement for given $m_\\text{I}$ and $r$.\n", "\n", "* For which angular frequencies $\\omega$ is the magnitude of the displacement largest? How is the phase relation between the external force $F_\\text{E}(t)$ and displacement $y(t)$ at these frequencies?\n", "\n", "* How should the resonance frequencies $\\omega_0$ of the spring pendulum be chosen in order to get a good vibration isolation for a machine rotating with angular frequency $\\omega$? How is the phase relation between the external force $F_\\text{E}(t)$ and displacement $y(t)$ at this frequency?\n" ] }, { "cell_type": "markdown", "metadata": { "nbsphinx": "hidden" }, "source": [ "**Copyright**\n", "\n", "The notebooks are provided as [Open Educational Resource](https://de.wikipedia.org/wiki/Open_Educational_Resources). Feel free to use the notebooks for your own educational purposes. The text is licensed under [Creative Commons Attribution 4.0](https://creativecommons.org/licenses/by/4.0/), the code of the IPython examples under the [MIT license](https://opensource.org/licenses/MIT). Please attribute the work as follows: *Lecture Notes on Signals and Systems* by Sascha Spors." ] } ], "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.3" } }, "nbformat": 4, "nbformat_minor": 1 }