{ "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": [ "$\\displaystyle 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", "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": "iVBORw0KGgoAAAANSUhEUgAAANkAAAAyCAYAAADRPX43AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAKQUlEQVR4Ae2d63XUOhDHl5wUwKOCGzqASwVAB8CtAOgADt/4xiEdABXw6ACogEcHXCq4IR3k/n+KxrFlWev12lnLqzlHsR4jaTTSjEZjeXPl7OxslYKXL18eqfwNOIrfT+GWssKBfeGAZOGWxvpV4ZXix6lxH6QKVfmZyn8p/KvwMIVbynbPAT/xDUKUd1UBRVlgRA6Ipz/VHDLxQvFfKR5f6drJVOm1GkDInir+Vs8sQLSiYT4q3Fb8NAuiRyJS4/2jpq4qsAAA4sDe8eJ82NP/Fc/hMTsaigw+syE14LCR8gkh3lMUAXur+OwFzA/0neg9UfhbYV81N+MHUDRM9icFzJm9UjYa86UBvFW4qw5/K3Csah2pojuZKn0W8j09r+iZFYhmlAO78DXF92pxabwfFYpZv4MVK76b5cduZpaEo+Sggx52si8dZSW7cKBwoM2B9z4L2WlAS8gkhWbH79Uu0OBKSRQObM4BO4vdDKtGz2Qeyez7sE5Jz5gDUpJPRB6K8oYCZ1POZA3zRXkFLpEDrZ3sEvsuXY3PAYTrg4TqWOG54oQfirdMmPG7Li12caAIWRdnMsyXMN1XqMx8xTFhOFu7ywQZDmkRJBchW8Q0JgeBoB1J4DAdC+yAA0XIdsD0KbqUEH1W+JFoG1OywA44UIRsB0yfqEtewscE6Tr9SQCL82Mixq9rtgjZOg7lU87tnJb7WOSXd547nsMlChmua8Bp8PPoXvx9IyFrODiU5vYLUG6BnPNhJ39T78l2QtDQTrWguBQMmLuaK0Yc+jmrzP7+paN8iz+MVeG1ggkaSoZ3nX8pr/I4btFFqTqQA0sSslloay1ozkUIPGekE6VjJtzA6UpXU18oladprOWXig/cIwT+U4D/KB940xuEzyXrUb7mWIyQ9ebexIiaHHYN3lfh6fs+cXel+YADnu/ccuELhJWeKD1eyDMnSUHzuKN/zbHEM1nA9p0l0YR8zVDgkjggIXFXyvR0Aka3iqP0SJsZTXYUwFV4qIA1YBd+o7iJzJYvICZkR74BiCswgAOaJDsXli8ZBvBviyocGWKvKr4pn0+32NUmAbVt8tLqIyZktkCKFh4+HXy4h1Y0xg9vqdTchAOsXZw9IZiZaGs7LB8rjYC3+jiMtP5CeXiqNtLCwuewyUETYHF9V15MqzgElfHbIV/0XOJBHUZX/NMYHyh9RwEt91zppPDlwhvRyTgxixnbYwVMJeaTdYCiwbPLZWVw/lEAiOOIqPjjcjv+CK/XOhEevF0H0DclvFLjeLWfKFQe7cZOpgKzW1ufUHdRpjrci4MR3/SEofxyz20F8/C0qgoHhmCW4oFbFPixsZCcJaA0AgbA20c+kI5CZrzBmcB8M584DB4ojRIhD9MNYeKcdN3n81UAfLDXLYp2g+pssk5MgE67W3R0Joq3KxK9nP0QLt5Zsr4dVEKmTFsEdxW37dXwUk8W0yffgeGxmDrNTeHCCH4eAGFcGpi5wC7t4p43LBj4mtTgufDGj83mmAXFr2LVfxrNFj359TGTDy/WwgS8sIsKa/seiiCa2ckRNDyaKNvVoSIMGHczpt1GLy5VF8GEwWyTFSj/WpXoiAgHQesNwk//QGTvli4Q1eYUv2HizmPqBQHDZHYLTE/420upCHcy3ow4ZsbGuZP1wxpgcdXBLTBlVGaTL4QHnceIegPE6SPM60ifdOSTbQJvx5kE6vZFoplfeEMBYTq+Oaw1mSKyhtaIsmOhsfsyolF5k4T6mEIgNiGhLy7CxY7FYuJHVTAdei+qvp3U8XbBG/Vpc267dX23gjyUzc8anpHMmgkFz8oGP+lHgfoIfQiWt4mFFrYxJO2E+8ATZ7cSfittGijZqPAgnGAmQxJ/Hwo9T9zOrjianbNHZTYslAc4NGJKBOFrCJ54Qh5rBgto5flFdCygP/gfgu1kDXpCpLHSGhfz/k6Bo9fxgTWsBIvig8JXxWOEGqp7CufUZ9gzLHcarpGZQULjYhEMBbQ0YJP5/Tx5PvFq+5lPz+ax5XgZR0yY4CFrKFTArDF2N7zXlBu/FB0FWNwxZ5ozUdVndK2O0rNvRH3g8MPZhYA55VMJGTjKhAmYjb28P8Jj28eL1ADfEe1EQeUchs8UOAvOBqBLxPzZgq4uE8nMlBvrBgsNCpfCm23Hq/oICjwLb0c44VG5KRsbNriWx7klaTZCn0JvXvj2uC9qHt2V4vQJPY+NCPIU1rVrc2W7oFXvfKpNFA6KlLFVu3tDyHxttvJbvoLPij+EY5rJuWqVfqJAJ9wdqzoJa6vsVHksPNP0IcpO0jW6mAQmZ1Ogziur5NvDbQ3THV+srOtZo2Fy3tT6GjpehIxdKZxr+BATILQ8fcELZzLq2Qk1+jbhBbsWrxZYk/RjZltFY6pdleGsYJPh1QPg0sqz9Hlu/C9zvRJuY+ytXxAWAmcydhj7xSPqzQ48nTCj83fehWPv6vAq9b6NrXpowktx6IzJWNHNoncTrSdm0wlp5VcLTOkW5Dre1kB2nCE+4gHHHEbQKzisYhcRM22GaPKLViaIiXhoQjOxeFhELKooCBdFwY76CQRft9dtbKHfsXrUzQFEL7zAk4nJ6kBxlIyN2cw0X9p4ZDfeBvUzSIjXJi8mPxVVB1Usg4gGcqqw9pa0cAbfxvbMYufLDRAozPcKNBZ2tVOFzjN2xuOtxjmzCBtAA7ISsgbl6QTOmJiJ9E359/zC6mqBc2X95kIX3tzyOXTzf7JMoxp97GCcg9jpYpDreGNjmWXeUoWMBdfSKMqzrZzyKGQqYIwFYcIJwc4Vg1D4HE7G442NcZZ5sTPZLAntS5QWTXQxBfV7u2WDerNNatytVymeWBxZK5XHdvbZjmdJhC1xJzMB6tLozF8fQcx+niVYCBhmonkcsx9TjgNYopD1mQd70dgHN2ccHB58IZHjGTNnvjdoX6KQxc5iNmjb5XL0HtoYej0lWLzs5YzWZUb2aqcgbc+BxQmZFpWZiTGT0PLMAbI9B2fYgnhgH0pW78xmSObekLQ4IfMzh6ftKDKLtpOlXsxGquWTJQHjtsrN+g6mePmvLjucwqUKGWcRboSEwHWX2DdOIV6WaQkTjg5ub4SODgQvZUZnOd5ciM7ZhW/OC3YnMxEd37XI+OcL3NnjNyfq16oeCeFuLpOzCZ0aJzs3yoU7l+HlW17AF+fHJgwdETclZGZajdjd9k1psbCQAHuhzC1pzljhb96za3ET+46eODp4Vt/4KL404NstBC12W7y8I5t+tjvlpXULH1q0MLlNjEYsB+fpJ6f0sAAOSFYw1bmU3vp6petMhmNg3R2/BbCmDKFwYDQOmGX1PmyxS8js4PwirFDShQOFA00OaBfj1RCyglOtZZpHhcwjclB+pjieqQKFA4UDEQ54Afvqi6Iv/qNCRgVVZjcjuN+OI69A4UDhwAUHJCOYiJzD2Mn4Qj96ySHq+LhoxgnbkdLOJaxGiiOkzpwS31sOSBZwdLCD8fV98vXI/yU9i9WD1gKcAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left\\{ c : \\frac{1}{10}, \\ k : \\frac{5}{2}, \\ 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": "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\n", "text/latex": [ "$\\displaystyle 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", " ⋅θ(t) ℯ ⋅θ(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": "iVBORw0KGgoAAAANSUhEUgAAAIoAAAAVCAYAAACZt3byAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAErUlEQVRoBe2a63HUMBCALxkK4NFB6CCBCggdAB2QdACTf/mXgQ6ACoB0AFTAowNCBQE6CN9nvIrPZ/nsi+0Md+zMjuSVtLtarVYr3W1dXFzM6nB8fHwT2j3p1D/W2/9/r58FWOcdZrULfqN+Vp/hdp1Ap2fQPpX0L/X2/9/raYHSOXSQF9Q/gAaLBFvViELjI1reg7eo/069MpWS2QHND8FqfwW9BvXSQ8rnGRajkZH5omR+TnkX1AALO2VIBeCvcf95ezCPD8zjN+XjsM+NqJTlfcozOlQXvdbl7yd9jDxH4An4uDqG+iPwFfR9MBaM6jSA7K9IOqE8VSKlC/iV8iE4irPAd53s8Q17GTQSLBw9qSVT0eigHncIPqD+EpxzLL6LBaLdiDJpjoNsd7Q6hg4z6urnt847KMB7I+zR21GwsvmLie4eRtLzcuARZvgaZQfnhEI3XDbp9Rn6vgvbMnaVpo2wRy9HwcgeI2bGT6nPRZEGC/+E9q6BPjbJ407ZdQiHtX0Q2CR7dHYUjLKDdT2HzWFSWG+xuAszSKhH3ndwKS/6dIkWt1t07tyErI2yRz2Z1dC5SGFOIixdMDthSPk0HQE2d4Zy8V2U4l1nycBwgtwcHO4ch4B1toc3xbBlYavkKOUOeQI1d5WNLLhLNFlYiHLB5e91eW+hQ4ZAX/OcTtf1DIs6+U6dsOL3yvYobXFUynUTCF2O89lE9nCNfU7w9lqs9w0qKmruYek1N3dLKTyM9jjr6Z4H+nkbKHY25S49IzfovaODT15aamnKTaIxdoi7ZQhY2R4IdxEiIs2oG6W90vvesxTGtgf8TS9uocgbSh36ZFuiFfAL+Jzv3EK2LQJDLwEe7rbYKTO+fRZ+Ca2Tk11y6ldDRuGYjGqaQ9CG0mFle6DfAbrGxnGSxUaF5oYaDK5oDx3ENdQnTrfViooLGR7+RloDFJGGfskBGvoE6b4842PiUj2bdIyIkouYfdW8ij20tRtzCuhtD9bOje7FxXeyYp6Fo1S0dXFzXh0vrHE2V4ZdVmFsPyPUdYHvN/cahJsXuSEi6syoR5Rp6L6UtLI9kOvPG0kPJOk4hvsxNldne1Rm7Au9uWHSse4olb7zVQYZsn3M8nz19XMOoPmYVTgJZRIw12mFD3iZ61yAnuFLgX6v6fSTMjk0dR3CRPppMChpvyg78Y1xUTJuEHvAx42prp0SfPUGB7dHzKtSzh2t6dZT6ZCtouApaJKjsxQ/HJWdZfoeWu7GlOW5rAGeeraL0idUa3R1dGeYvFoaRtOOrfDV8GJv52bMlezBeI9IN5ev3J3k2w8c3B7o0Aq9HEVO5YQin2llPlQjMjvdBkJeVx3lC6bIE+P7lF1l1XkyTicxUfSX91n5bakTtAJ9RrFHm9DejtLG7B9tM/Eu3gqm0h95OolXYh0lckI33+AReag51R3FMB23g6FkzErDaIh9cIdvw+05pVfmawPkm7s456nBvEjZlgnQZ9JInQQvVtRt7iis/3FJT/8O+vA26S5b1HV8CnN8Bl6rs44/y34SsIdO8gM02nkxKGDOUaTQWJydVI0sb/lee4dx3psO5bob0Vz/hXX/A7bUUVGdqTl/AAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left\\{ C_{1} : 0, \\ 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": [ "$\\displaystyle 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", " ℯ ⋅θ(t) ℯ ⋅θ(t)\n", "h(t) = - ────────────────────────────── + ──────────────────────────────\n", " ____________ ____________ \n", " ╱ 2 ╱ 2 \n", " ╲╱ c - 4⋅k⋅m ╲╱ c - 4⋅k⋅m " ] }, "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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MCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCAzMTggNDAxIDQ2MCA4MzggNjM2Cjk1MCA3ODAgMjc1IDM5MCAzOTAgNTAwIDgzOCAzMTggMzYxIDMxOCAzMzcgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNgo2MzYgNjM2IDMzNyAzMzcgODM4IDgzOCA4MzggNTMxIDEwMDAgNjg0IDY4NiA2OTggNzcwIDYzMiA1NzUgNzc1IDc1MiAyOTUKMjk1IDY1NiA1NTcgODYzIDc0OCA3ODcgNjAzIDc4NyA2OTUgNjM1IDYxMSA3MzIgNjg0IDk4OSA2ODUgNjExIDY4NSAzOTAgMzM3CjM5MCA4MzggNTAwIDUwMCA2MTMgNjM1IDU1MCA2MzUgNjE1IDM1MiA2MzUgNjM0IDI3OCAyNzggNTc5IDI3OCA5NzQgNjM0IDYxMgo2MzUgNjM1IDQxMSA1MjEgMzkyIDYzNCA1OTIgODE4IDU5MiA1OTIgNTI1IDYzNiAzMzcgNjM2IDgzOCA2MDAgNjM2IDYwMCAzMTgKMzUyIDUxOCAxMDAwIDUwMCA1MDAgNTAwIDEzNDIgNjM1IDQwMCAxMDcwIDYwMCA2ODUgNjAwIDYwMCAzMTggMzE4IDUxOCA1MTgKNTkwIDUwMCAxMDAwIDUwMCAxMDAwIDUyMSA0MDAgMTAyMyA2MDAgNTI1IDYxMSAzMTggNDAxIDYzNiA2MzYgNjM2IDYzNiAzMzcKNTAwIDUwMCAxMDAwIDQ3MSA2MTIgODM4IDM2MSAxMDAwIDUwMCA1MDAgODM4IDQwMSA0MDEgNTAwIDYzNiA2MzYgMzE4IDUwMAo0MDEgNDcxIDYxMiA5NjkgOTY5IDk2OSA1MzEgNjg0IDY4NCA2ODQgNjg0IDY4NCA2ODQgOTc0IDY5OCA2MzIgNjMyIDYzMiA2MzIKMjk1IDI5NSAyOTUgMjk1IDc3NSA3NDggNzg3IDc4NyA3ODcgNzg3IDc4NyA4MzggNzg3IDczMiA3MzIgNzMyIDczMiA2MTEgNjA1CjYzMCA2MTMgNjEzIDYxMyA2MTMgNjEzIDYxMyA5ODIgNTUwIDYxNSA2MTUgNjE1IDYxNSAyNzggMjc4IDI3OCAyNzggNjEyIDYzNAo2MTIgNjEyIDYxMiA2MTIgNjEyIDgzOCA2MTIgNjM0IDYzNCA2MzQgNjM0IDU5MiA2MzUgNTkyIF0KZW5kb2JqCjE1IDAgb2JqCjw8IC9laWdodCAxNiAwIFIgL2ZpdmUgMTcgMCBSIC9mb3VyIDE4IDAgUiAvaCAxOSAwIFIgL29uZSAyMSAwIFIKL3BhcmVubGVmdCAyMiAwIFIgL3BhcmVucmlnaHQgMjMgMCBSIC9wZXJpb2QgMjQgMCBSIC9zaXggMjUgMCBSIC90IDI2IDAgUgovdHdvIDI3IDAgUiAvemVybyAyOCAwIFIgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL0YxIDE0IDAgUiA+PgplbmRvYmoKNCAwIG9iago8PCAvQTEgPDwgL0NBIDAgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PgovQTIgPDwgL0NBIDEgL1R5cGUgL0V4dEdTdGF0ZSAvY2EgMSA+PiA+PgplbmRvYmoKNSAwIG9iago8PCA+PgplbmRvYmoKNiAwIG9iago8PCA+PgplbmRvYmoKNyAwIG9iago8PCAvRjEtRGVqYVZ1U2Fucy1taW51cyAyMCAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL0NvdW50IDEgL0tpZHMgWyAxMCAwIFIgXSAvVHlwZSAvUGFnZXMgPj4KZW5kb2JqCjI5IDAgb2JqCjw8IC9DcmVhdGlvbkRhdGUgKEQ6MjAyMTA0MjcxNjA1NTArMDInMDAnKQovQ3JlYXRvciAoTWF0cGxvdGxpYiB2My4zLjQsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcpCi9Qcm9kdWNlciAoTWF0cGxvdGxpYiBwZGYgYmFja2VuZCB2My4zLjQpID4+CmVuZG9iagp4cmVmCjAgMzAKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE2IDAwMDAwIG4gCjAwMDAwMTIxNDUgMDAwMDAgbiAKMDAwMDAxMTkyMyAwMDAwMCBuIAowMDAwMDExOTU1IDAwMDAwIG4gCjAwMDAwMTIwNTQgMDAwMDAgbiAKMDAwMDAxMjA3NSAwMDAwMCBuIAowMDAwMDEyMDk2IDAwMDAwIG4gCjAwMDAwMDAwNjUgMDAwMDAgbiAKMDAwMDAwMDQwNCAwMDAwMCBuIAowMDAwMDAwMjA4IDAwMDAwIG4gCjAwMDAwMDY4MDcgMDAwMDAgbiAKMDAwMDAxMDY4NyAwMDAwMCBuIAowMDAwMDEwNDg3IDAwMDAwIG4gCjAwMDAwMTAwOTQgMDAwMDAgbiAKMDAwMDAxMTc0MCAwMDAwMCBuIAowMDAwMDA2ODI4IDAwMDAwIG4gCjAwMDAwMDcyOTMgMDAwMDAgbiAKMDAwMDAwNzYxMyAwMDAwMCBuIAowMDAwMDA3Nzc1IDAwMDAwIG4gCjAwMDAwMDgwMTEgMDAwMDAgbiAKMDAwMDAwODE4MSAwMDAwMCBuIAowMDAwMDA4MzMzIDAwMDAwIG4gCjAwMDAwMDg1NTMgMDAwMDAgbiAKMDAwMDAwODc3NSAwMDAwMCBuIAowMDAwMDA4ODk2IDAwMDAwIG4gCjAwMDAwMDkyODYgMDAwMDAgbiAKMDAwMDAwOTQ5MCAwMDAwMCBuIAowMDAwMDA5ODExIDAwMDAwIG4gCjAwMDAwMTIyMDUgMDAwMDAgbiAKdHJhaWxlcgo8PCAvSW5mbyAyOSAwIFIgL1Jvb3QgMSAwIFIgL1NpemUgMzAgPj4Kc3RhcnR4cmVmCjEyMzYyCiUlRU9GCg==\n", "image/svg+xml": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " 2021-04-27T16:05:50.077472\n", " image/svg+xml\n", " \n", " \n", " Matplotlib v3.3.4, https://matplotlib.org/\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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": "iVBORw0KGgoAAAANSUhEUgAAAHcAAAAtCAYAAACULPQbAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAE00lEQVR4Ae2c0VEbMRCGbcYFJNCB00EgHUAHIVQAdEAmT/DmgQ4gFWSgA+ggQAehgwAdkP9TtDfy+Qyau7PN6bQzsnSrlbS7v3ZP9h0MX15eBn2gk5OTz7LzUmVT7ec+2DxK2UiB+EH2/VR5VNlSGav0hlIHlwjdBU0BfaSK6O0NrfXG0h4amsFNGPQMbgY3YQ8kbFqO3Axuwh5I2LQcuRnchD2QsGk5cjO4SXhgw1uxnoQ1EUYMU39woJ8deVgAbavwW/O9yoPKtfouVCdLyYObLHIRhuV7boSTuiqSwe0qchF6Z3AjnNRVkQxuV5GL0DuDG+GkropkcLuKXITeGdwIJ3VVJIPbVeQi9B4eHx/3493WCGekJpJ/oUoN0cCenJYDZ6TWzOCmhmhgT9IvpQd2JtfUEy2ecP3who19vS8+L+I7yuCaJ7pXnwrIQ1Nb7XO171Q+Ga/TaZndq8Jz2SeVP2ZUT+oD2cwzaqNTNcbiFX8y03Vwn2XMjozi4fuNWdmTmqi9fc3WlaZlv/PYbU3fiGC3Tl4zNLavRZ1il6wlV+EzwH4QnzdNHK06cjkUUGqTB4PxbUVuY51qG1NzoHzA5v6qshlOsWpwQ13qtknLpOfilFh3oi6Ok91j6c39duaPymfSsoQR/OsNxWG34hWhDr8kw+nsu3irci6HiiJqpQc7+IsKEbg0vbQuehBBrL2vsq5CqsSXbEAOfmcqyOypQLQ59Rb6O67/ED/EYsbP6gdYbGT+gb+m5gwyKMD1HdfiIXxFp2qO1/zxshvseSbjAJcMRqEEhiyVtDYA4iD0RF+AhexrAV8Nmt7P3YQRHztaH9/hH/6a/zfXjFONDpzoCQDui8ZHX97O/KgyRZJ51c/qB1jsZE18AIGBm5uLMC0z2ZUEHbB0ir6pwHfkJ9xWHUYyk+HEVRAbC7qRTq7t9Qf0pZ2g/drmJ5zOV7QzFPO07mv4YZTCR9cpkgxzvOVnfI7N1FYONJYN5GjEpxjsACaccG0k/syOok98DGHH4dQiqumrIskwvwERijij1V8V9ffiu395EA4otVkbY5ib24dznGo239ThQtdTJJk2dWJt7vsAhR/L9lhklbMIOoaBUtZxrp+1ViU24QTuqZAEn8REwRigSMH8fwkj7iNFKjBmTK1xpCW+CoW7PGaok9E4frgAXPu+dy7eXGfFTNxEJz/2UvUwXEvXbKQt1VMbTtf4/UL1jP/Ea+znNU3CbqNYWlFzPqGICsqzEYiUIz/H/EEL6PFrumyjNpFCJrlT26JkAau+OeWeJKo2F5klTMcD6QkPvwM817QL0nVjPwPus5/R6mIBGup36VQ1p7riJz61o1Ly1GTtXnAegMxpFr0APpB+YXaBtQyqAhHQ0KkcPGxIbj0csOh39qjdmp/XNCnEvWDm/sZC4j8iIEJxt8vclT7UT1olrVRuDJNbUE3mwDnltd3XAPVtLGjdymmlBwAB5K+SgIFmm9C6kTXeocbb/bg1P49YSRMzOTsGMC06WXwinjlvX9fbuj5QTR/EIaJ8ePjfs/hPp58tg54q3LuwBRsm1rekGnCnfv7z66KnAReqgq93pSsZJgya1vy80tdsZFijA1Xoqbba71GnurZZWq47vuk4sgLlPdF71KmWf/4Bzy7OGS0DcDYAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\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": "iVBORw0KGgoAAAANSUhEUgAAAIYAAAAtCAYAAABrohO8AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFd0lEQVR4Ae2c61EbMRSFF48LINCB6SCQDkIHIakA0wEZfsE/D3RAUkEGOgAq4NFB6CCJOyDnkyVZuxZGs+AFI90ZWdKVtLr36Ohq16+Vh4eHqkhVHR0dfRQOZ0qbKo9zx6SfMwAiwKr8/6n0V2lLaaBURAjkTgwiww5MEEn2lRE1igiBXkGhIBBDoBAjhkrRlYhROBBHoESMOC7ZawsxsqdAHIBCjDgu2WsLMbKnQByAQow4LtlrCzGyp0AcgEKMKS7rtrg2VeVbWsn9QzS9Fc4HZ8hnJT47uVO6V7pQ2w/lWUr2xMhy1ROcLkdJAkg5dinEyHHVE3wuxEgAKccuhRg5rnqCz4UYCSDl2KUQI8dVT/C5ECMBpBy7FGLkuOoJPq8cHh6W3w8kAJVbl/LOZ24rnuhvOUoSgcqtWyFGbiue6G/WPzhKxOjdddOnxnyKfGAdG9h8V3p+gGWkEMMhkVd+LBLsOZdVPlX5VmnD6WaOEnXatx1dn3eRy6dVJb5j8U/p97twqr0TQ2HA90+cHKswkM7/RHOGGOoAk3xIcSOXPZfTY6Vt+cGXcC6X3Z9n2s8a38y7xsxRIvB8OJk3sOs22QXDYfVzv1XFrhh1bf9bmi+CIUS5l55vrxmJRQzX9tZybphIrcWSi/G5RwyPoTBho3xR2vRKFZaJGKHdbcscJRwp7+6obAOIcBhoHPcXM38WY44SdWAnDpU4Rm5Vj4Zr6bnIHyUEcG+kM+FH+akSISkqasOIC6UdNybacbFKjiMfLWQHO+WTEv5/V70Twmge7GCnMveu0poS2IEt5OUm+USJPt+UEMo8TXj7UareCneNYz3wmfm4DnVy7sEqQwzlB1LQCYP51nSNGNK7RaXPudor5Tzi8Kcj2yoDMIv+lHAd5vBn2VMDXqpdNrL4gIvd2I/NiHtU43Gt5rdpXcwLmIElmPGPPtfUmUo5NvDkBEk5950ee1mbD0pG1NYKd41jHfAbG8AEgZhmLio923BNRcJCG8aY2vQFB87V15DCqr8qd2TA0bBtOtKW1M51T5Q62ZUzBkwIifpStkDOytoMYTp7UrFzO9xYIB6jwcXJmi2gD6MDemwNpS3ubAIwIHdpqPn82vTVEN6NstgjJS/qDLNwoKk3zFU7E7jfZphx0uHAmXITpoxy8sL7B6GzQdOkaOczC9doNICpHWY35U56SD1PsAXHuTZHoLFDOdGrduOlek3UB3+ulMhT5bEjk7m5z+Fa4Nr0x+3gZvTCRh9pNb417hrro85jzvQxkkblhCWMbRoEWdhlpp/KTTFhsaHcUj3Wf0PXaV6/NlTtTaBMu7WPx9Vwd9XGPlEBSCIDAHOzxdnsgZ43Vv3wZS555o0P2+y1UBnyq97cKBAYojfxYx1C7F4UdwwKpRdUDlTmuHBsrlRelY7kQl/Q3RdhfVNg/a9QqWvF+oVdFla2fjD/SGWIR4TjJtvtzoXNPefC3FTGiAlhamSRnehYB6J3pTrlGJ4vhnsvmIiLmomVQxIMGJNLXD6p2Ve1G4OVe4BtmacXf4xIhyMshru+vUJnGbsNcYC7d/0MuLJvf9Lc6WuMAG7BmxsRMhNFOPaxGX+4B1kY7n0LhQOII4Ny+FkC4YvzOwxjlfqx+EQFWH+lOu2MxWHCLjuSOuEbR7gDpvwa8lh4dvasd2mUxQUS1KKq6obAancEdmbR1+n21A6WvLWwMNx7zKxJWFyOEd7L+Kzck0Blx1aeoYc2scMIy4wbKbED0UEEzm/0jONeA2fp66+petcCsNhpRLaMVeDRDJCNL5OWzl7NhrE4hZNiZwwnNiERAltd1F0o7kvz1T6Bws3xc24+NbxIKgImYqR2fuV+7HJSkQ4Q+A/NpPj0wvhQxQAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\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": "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hY/T0HycRmXcXKR1qgh6YkbNyj02eglG3LUcsZy11FKkVIs6UWWw1Q9zNv/u8RrfP+Y3Px4KZW5kc3RyZWFtCmVuZG9iagoxNCAwIG9iago8PCAvQmFzZUZvbnQgL0RlamFWdVNhbnMtT2JsaXF1ZSAvQ2hhclByb2NzIDE1IDAgUgovRW5jb2RpbmcgPDwgL0RpZmZlcmVuY2VzIFsgNzIgL0ggMTA2IC9qIF0gL1R5cGUgL0VuY29kaW5nID4+IC9GaXJzdENoYXIgMAovRm9udEJCb3ggWyAtMTAxNiAtMzUxIDE2NjAgMTA2OCBdIC9Gb250RGVzY3JpcHRvciAxMyAwIFIKL0ZvbnRNYXRyaXggWyAwLjAwMSAwIDAgMC4wMDEgMCAwIF0gL0xhc3RDaGFyIDI1NSAvTmFtZSAvRGVqYVZ1U2Fucy1PYmxpcXVlCi9TdWJ0eXBlIC9UeXBlMyAvVHlwZSAvRm9udCAvV2lkdGhzIDEyIDAgUiA+PgplbmRvYmoKMTMgMCBvYmoKPDwgL0FzY2VudCA5MjkgL0NhcEhlaWdodCAwIC9EZXNjZW50IC0yMzYgL0ZsYWdzIDk2Ci9Gb250QkJveCBbIC0xMDE2IC0zNTEgMTY2MCAxMDY4IF0gL0ZvbnROYW1lIC9EZWphVnVTYW5zLU9ibGlxdWUKL0l0YWxpY0FuZ2xlIDAgL01heFdpZHRoIDEzNTAgL1N0ZW1WIDAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yIC9YSGVpZ2h0IDAgPj4KZW5kb2JqCjEyIDAgb2JqClsgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAKNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCAzMTggNDAxIDQ2MCA4MzggNjM2Cjk1MCA3ODAgMjc1IDM5MCAzOTAgNTAwIDgzOCAzMTggMzYxIDMxOCAzMzcgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNgo2MzYgNjM2IDMzNyAzMzcgODM4IDgzOCA4MzggNTMxIDEwMDAgNjg0IDY4NiA2OTggNzcwIDYzMiA1NzUgNzc1IDc1MiAyOTUKMjk1IDY1NiA1NTcgODYzIDc0OCA3ODcgNjAzIDc4NyA2OTUgNjM1IDYxMSA3MzIgNjg0IDk4OSA2ODUgNjExIDY4NSAzOTAgMzM3CjM5MCA4MzggNTAwIDUwMCA2MTMgNjM1IDU1MCA2MzUgNjE1IDM1MiA2MzUgNjM0IDI3OCAyNzggNTc5IDI3OCA5NzQgNjM0IDYxMgo2MzUgNjM1IDQxMSA1MjEgMzkyIDYzNCA1OTIgODE4IDU5MiA1OTIgNTI1IDYzNiAzMzcgNjM2IDgzOCA2MDAgNjM2IDYwMCAzMTgKMzUyIDUxOCAxMDAwIDUwMCA1MDAgNTAwIDEzNTAgNjM1IDQwMCAxMDcwIDYwMCA2ODUgNjAwIDYwMCAzMTggMzE4IDUxOCA1MTgKNTkwIDUwMCAxMDAwIDUwMCAxMDAwIDUyMSA0MDAgMTAyOCA2MDAgNTI1IDYxMSAzMTggNDAxIDYzNiA2MzYgNjM2IDYzNiAzMzcKNTAwIDUwMCAxMDAwIDQ3MSA2MTcgODM4IDM2MSAxMDAwIDUwMCA1MDAgODM4IDQwMSA0MDEgNTAwIDYzNiA2MzYgMzE4IDUwMAo0MDEgNDcxIDYxNyA5NjkgOTY5IDk2OSA1MzEgNjg0IDY4NCA2ODQgNjg0IDY4NCA2ODQgOTc0IDY5OCA2MzIgNjMyIDYzMiA2MzIKMjk1IDI5NSAyOTUgMjk1IDc3NSA3NDggNzg3IDc4NyA3ODcgNzg3IDc4NyA4MzggNzg3IDczMiA3MzIgNzMyIDczMiA2MTEgNjA4CjYzMCA2MTMgNjEzIDYxMyA2MTMgNjEzIDYxMyA5OTUgNTUwIDYxNSA2MTUgNjE1IDYxNSAyNzggMjc4IDI3OCAyNzggNjEyIDYzNAo2MTIgNjEyIDYxMiA2MTIgNjEyIDgzOCA2MTIgNjM0IDYzNCA2MzQgNjM0IDU5MiA2MzUgNTkyIF0KZW5kb2JqCjE1IDAgb2JqCjw8IC9IIDE2IDAgUiAvaiAxNyAwIFIgPj4KZW5kb2JqCjIzIDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggNTQgPj4Kc3RyZWFtCnicMzY2VzBQMDQyV9A1MjZVMDI0UDA3M1FIMeSCMXPBLLBsDhdcIYQJks+Bq8zhSgMA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MzggNjM2Cjk1MCA3ODAgMjc1IDM5MCAzOTAgNTAwIDgzOCAzMTggMzYxIDMxOCAzMzcgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNgo2MzYgNjM2IDMzNyAzMzcgODM4IDgzOCA4MzggNTMxIDEwMDAgNjg0IDY4NiA2OTggNzcwIDYzMiA1NzUgNzc1IDc1MiAyOTUKMjk1IDY1NiA1NTcgODYzIDc0OCA3ODcgNjAzIDc4NyA2OTUgNjM1IDYxMSA3MzIgNjg0IDk4OSA2ODUgNjExIDY4NSAzOTAgMzM3CjM5MCA4MzggNTAwIDUwMCA2MTMgNjM1IDU1MCA2MzUgNjE1IDM1MiA2MzUgNjM0IDI3OCAyNzggNTc5IDI3OCA5NzQgNjM0IDYxMgo2MzUgNjM1IDQxMSA1MjEgMzkyIDYzNCA1OTIgODE4IDU5MiA1OTIgNTI1IDYzNiAzMzcgNjM2IDgzOCA2MDAgNjM2IDYwMCAzMTgKMzUyIDUxOCAxMDAwIDUwMCA1MDAgNTAwIDEzNDIgNjM1IDQwMCAxMDcwIDYwMCA2ODUgNjAwIDYwMCAzMTggMzE4IDUxOCA1MTgKNTkwIDUwMCAxMDAwIDUwMCAxMDAwIDUyMSA0MDAgMTAyMyA2MDAgNTI1IDYxMSAzMTggNDAxIDYzNiA2MzYgNjM2IDYzNiAzMzcKNTAwIDUwMCAxMDAwIDQ3MSA2MTIgODM4IDM2MSAxMDAwIDUwMCA1MDAgODM4IDQwMSA0MDEgNTAwIDYzNiA2MzYgMzE4IDUwMAo0MDEgNDcxIDYxMiA5NjkgOTY5IDk2OSA1MzEgNjg0IDY4NCA2ODQgNjg0IDY4NCA2ODQgOTc0IDY5OCA2MzIgNjMyIDYzMiA2MzIKMjk1IDI5NSAyOTUgMjk1IDc3NSA3NDggNzg3IDc4NyA3ODcgNzg3IDc4NyA4MzggNzg3IDczMiA3MzIgNzMyIDczMiA2MTEgNjA1CjYzMCA2MTMgNjEzIDYxMyA2MTMgNjEzIDYxMyA5ODIgNTUwIDYxNSA2MTUgNjE1IDYxNSAyNzggMjc4IDI3OCAyNzggNjEyIDYzNAo2MTIgNjEyIDYxMiA2MTIgNjEyIDgzOCA2MTIgNjM0IDYzNCA2MzQgNjM0IDU5MiA2MzUgNTkyIF0KZW5kb2JqCjIyIDAgb2JqCjw8IC9iYXIgMjMgMCBSIC9maXZlIDI0IDAgUiAvb25lIDI2IDAgUiAvcGFyZW5sZWZ0IDI3IDAgUgovcGFyZW5yaWdodCAyOCAwIFIgL3BlcmlvZCAyOSAwIFIgL3NldmVuIDMwIDAgUiAvdHdvIDMxIDAgUiAvemVybyAzMiAwIFIgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL0YxIDIxIDAgUiAvRjIgMTQgMCBSID4+CmVuZG9iago0IDAgb2JqCjw8IC9BMSA8PCAvQ0EgMCAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+Ci9BMiA8PCAvQ0EgMSAvVHlwZSAvRXh0R1N0YXRlIC9jYSAxID4+ID4+CmVuZG9iago1IDAgb2JqCjw8ID4+CmVuZG9iago2IDAgb2JqCjw8ID4+CmVuZG9iago3IDAgb2JqCjw8IC9GMS1EZWphVnVTYW5zLW1pbnVzIDI1IDAgUiAvRjItRGVqYVZ1U2Fucy1PYmxpcXVlLW9tZWdhIDE4IDAgUiA+PgplbmRvYmoKMiAwIG9iago8PCAvQ291bnQgMSAvS2lkcyBbIDEwIDAgUiBdIC9UeXBlIC9QYWdlcyA+PgplbmRvYmoKMzMgMCBvYmoKPDwgL0NyZWF0aW9uRGF0ZSAoRDoyMDIxMDQyNzE2MDU1MiswMicwMCcpCi9DcmVhdG9yIChNYXRwbG90bGliIHYzLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZykKL1Byb2R1Y2VyIChNYXRwbG90bGliIHBkZiBiYWNrZW5kIHYzLjMuNCkgPj4KZW5kb2JqCnhyZWYKMCAzNAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTYgMDAwMDAgbiAKMDAwMDAxMDMyMCAwMDAwMCBuIAowMDAwMDEwMDUxIDAwMDAwIG4gCjAwMDAwMTAwOTQgMDAwMDAgbiAKMDAwMDAxMDE5MyAwMDAwMCBuIAowMDAwMDEwMjE0IDAwMDAwIG4gCjAwMDAwMTAyMzUgMDAwMDAgbiAKMDAwMDAwMDA2NSAwMDAwMCBuIAowMDAwMDAwNDAwIDAwMDAwIG4gCjAwMDAwMDAyMDggMDAwMDAgbiAKMDAwMDAwMzg1MCAwMDAwMCBuIAowMDAwMDA1MTAxIDAwMDAwIG4gCjAwMDAwMDQ4OTMgMDAwMDAgbiAKMDAwMDAwNDU3MSAwMDAwMCBuIAowMDAwMDA2MTU0IDAwMDAwIG4gCjAwMDAwMDM4NzEgMDAwMDAgbiAKMDAwMDAwNDAzMSAwMDAwMCBuIAowMDAwMDA0MjU2IDAwMDAwIG4gCjAwMDAwMDg4NDggMDAwMDAgbiAKMDAwMDAwODY0OCAwMDAwMCBuIAowMDAwMDA4MjcxIDAwMDAwIG4gCjAwMDAwMDk5MDEgMDAwMDAgbiAKMDAwMDAwNjE5NiAwMDAwMCBuIAowMDAwMDA2MzIyIDAwMDAwIG4gCjAwMDAwMDY2NDIgMDAwMDAgbiAKMDAwMDAwNjgxMiAwMDAwMCBuIAowMDAwMDA2OTY0IDAwMDAwIG4gCjAwMDAwMDcxODQgMDAwMDAgbiAKMDAwMDAwNzQwNiAwMDAwMCBuIAowMDAwMDA3NTI3IDAwMDAwIG4gCjAwMDAwMDc2NjcgMDAwMDAgbiAKMDAwMDAwNzk4OCAwMDAwMCBuIAowMDAwMDEwMzgwIDAwMDAwIG4gCnRyYWlsZXIKPDwgL0luZm8gMzMgMCBSIC9Sb290IDEgMCBSIC9TaXplIDM0ID4+CnN0YXJ0eHJlZgoxMDUzNwolJUVPRgo=\n", "image/svg+xml": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " 2021-04-27T16:05:51.923488\n", " image/svg+xml\n", " \n", " \n", " Matplotlib v3.3.4, https://matplotlib.org/\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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": [ "$\\displaystyle \\left[ 0, \\ - \\frac{\\sqrt{- \\frac{c^{2}}{2} + k m}}{m}, \\ \\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": "iVBORw0KGgoAAAANSUhEUgAAARsAAABOCAYAAAAQGbLRAAAACXBIWXMAAA7EAAAOxAGVKw4bAAALhElEQVR4Ae2d763cNhbF3wv8efHiBbaAlw4SuIK1O8ifChx34CCf7G+GtwNvKtiNO3C2gjjpwC5ggTjGNuA9Pz5yoKcZPUkzFElpDgEOJZIiLw8Pry5JjXT56dOnizW658+f/yy5v16j7GuVWZhfti67eVG+h6by4l550U6vUY27UilfTm3k6TW6hDUgYF603UuftS3eoHQPlfJ6MNUJ54qAedFwz9/T3eBLyffbgIyvlf7NQFrN6O9U+YuaArjuJhEwLyp2i3TFO1V/fUgEpV12p1H/UCYyd9377klDx0yhfm9IHovSBgLmRd1+eHmg+keKC2urXWXzSgO4VeWya4NkxFT+ZRfhAyMgBMyL+jRQH/yzL4XiiNpTNv18rZ4/kWCvSgsXyczCNGbiF/I/K85Kr3RHDNdXnBfmxHBnHErpWjaH0luMw1SuMchRLp8DiEKUzp/yzW8FI++ZuBq8MCdmkGtVu1Ea5Eyhaq3VfNXBFevmY+fchxURqMgLc2JGv69K2ahd7Iz9a0b7smUVobvrWSyEtbhLl629KyuoCi/MiXksWds06qE6mLn5ok51oEz+kMd6udI5O3XB6Zj1oh8U1rKwoiQOOggszgtzooP2kYersWzU2TwPtPgAVz1s/79RiIJ5K/+jfHCRcEHR6Phpiq8VSgYUIbL+Kd9/bKGWWEXrVbsX50XEdhWcAHzJ2yQvVqNshCEPbC06hVInYbW8V5gWoJk6/V2eDuTBRxQMA5s/lC1uYamOO53k+CjPcwzImWS+85oNJi7KC+G7Kk7Qv63yYk3TKPbqXyw8WL5V+bu1GDpN58Ga0nF3MTCLGCqTBe9rhXvPJ8ysgLv70tjMFKlY9qV5UZQToLZVXqzCshH41+oDLI6ld4CuqIcOL+SoD3+0i8Tk+rOzbArxojQn6MtN8mIVykbgc/filRJLO6wYFNvOidAsFrfsmEYxnfrYspALyVaCF2vkBHA3x4u1TKOYl4e1k4VIm4plCsUCcFI43GFan54wFdtZNZKdAfhAHtlpS1BCCsnHdIu0x/L35Vl3YtcNYoYFUOUjD3jjOH6puF35IbadnxK8WCMn6KFRXpTmRPPKRoAwaC4UhkHD8VJOdTCFYgCuwkVsUAgsYoIRigbHOQva+LQe9EjpKJ83ivtJ/lfOFV4oJA8L32DMdDXFJ8shPDlN3lacZCzCC9WzKk7QPxGbKbwoyok1TKNYoFt0F6qVAXSEHNy9cL+IYOFYIe/5YSDudqhiGkoGh9XG1uju2SGd3ydBjviuFUN8GNQhta0f82K4P0Z5UYMT1SwbNZa1EO6uYy/BwowdtDZ0PYPhP/JzBsU3um7xZ3YkU3CqC0sjESDGhiAMcqUfat/viqftd7kwL1cGyn6r/EFRKKRt3d0z0ljXASOUTb8+7oK4ZAXdnN2UUQwnKpWM5kVU/sKi309AlIUXKvuDfFFOVFE2aiTm+VN5FM2YsmFreHCHCMBURndg6XS+UzknvYxZ1w/+KVNph0hzoXhwoH1dK2OO8CgZsKH9X6kcXhOypxwUB0a4oPB03rVeiEdpQeKUjzgc1kNfAYWEJX5Uf1O8kDyLcQL8VH41Xqju1NfFOFFc2aiR6S7KoAgNHSKu8kK+MWU0dPmseNU1qCxmFVQos+S9UlVYKVhpvFERLH9TiNLZUzhRLBZUD6Vx7S2cY3nUkdaDmGIlgsbi8gUquzleSKZVcYLekMxzeVGMEzXWbDDdIDbrMBA4kQys+g4gvF7TR+XmHKsDl6yUtzenQQFBOizHvkOppPwhTfkSOdOaTrqGuy7WDgvGKLVUX0rPHZoXeRBN/ZT6eYwXxThxL0/7ppcCeWPuBMaQZiVbtdc8xkH4Y5SVwYZ7rPjF7u43VUz+HZr6JHz/2i0pKgwUS195B3IqPfVHuoy8Ke6J0n9ICUuEKj/Jneo0L44DejIvSnOihmUTIFRDMecZuGjWPaf0PY27l2nZCJ4vYasYz0LtB3m2kltxKIMXSRjJCJYoBBQDVs0uLeZBYWKl9KdRlHNoXYaFWixPygpTKYWLuyifeXE80nN4UZQTxS2bHobcxb4WwSA1BOs6BniJp4a7dXaPv5dMvIkt3WkZfMRVs7a6wkkO7mC3nOIGF5pjO3id6S03dE3Mn9p+65oCJ+bFkSCr3ybzojQnqlk2Ectk0h+ybh5GMI6E/eTLWLNI892TCxsoAAXbV7IDWc8q2rzYIC9asGwYRczPWTQOTkqGReO+uR9TywSSoT+1QPkcmoYcLVBlZXq03AUuTBaVeVEA7FJVVLVsNNi4q6NU+pYNJEt3t1JYDNYTlR/b8Cc/zzNYiRN2CJgXOyg2dVBV2UQkUSr9LXDWcXaWTk3EJQeLaC/leX7FU55ynWFelMO6SE21p1E0smsy81wHgzttgxYBYaiSKAu7UWHRLZ5fKGxCviG5NxJvXmykI1Mzqls2GrhMo7AY0lSKtZFiW60JiH4YFQty8BcAdqBYR2Jr+UM/r8/zI2Be5Me0doktWDZgsNvq1DFKp/+MCHlKO56puZK/9WyNBgHK0K4MAuZFGZyL1NKKsmF+zgIsT+yGf6MWaf0dlUipNPcOlzvE3WqSebGhnq0+jYpYpvk5T6vWfJBvQ127iaaYF5voxptGNKFsZEWkLXCk+veG8HVTTkDAvDgBvAYvbWUaBTSYzBeRYBzaGQEQMC82woOWlA1P7CazeSPwuhkZEDAvMoDYQhHNKJueydwCNpahAQTMiwY6IZMIk5SNOpwt4Kbf85sJDxdjBIzAQgigbP4Sy07hXlXx7nLS/4JUxknvc90TyhHFEVAfZn9NpnlRvBuzVzjCi7+lClE2/4snKUxpWcMRgbLW5cLWg4B5sZ6+OlLS/6brmtj6TsI4XBcCUhRMr+2MwCQErGwmweRMfQSiouErmrf+ztHP53MjkBCwsklIOJyFgJQMD2Ly73deD2ILZxZ655nZyuY8+z1Lq6VkeKcx/4S3MwKjCFjZjELkDCMIPIhWzkg2J587AlY2586AE9ofp09/nFCELz0jBKxszqizF2gqn7YZ/HzMAvW5yBUjYGWz4s6rLboVTe0eWFf9Vjbr6i9LawRWi8Ck/0attnWZBded/KGK5F3ED+Qfy9+X5zWhrFvwUvQ33O3lycPnaHAc8ylf/6M9wLGtH3Nien/aspmOFTkfoUwU8lzJT/J8coavLxDH54JRKt8rvB/j2Rbmpel++6BA2KgzJyZ2rJXNRKCkPLBq3sTs1wp5mK27OIqVgyO+a8UQ74feAjTb+jEn5vWnp1HT8Xorcn2UR3GgbPpfWWC6hOt/tpd/y/O5GrvtIWBOzOhTWzYTwULRxKxYOBc671ovRLFmw0f2Uj7icN/K9/OGBP+sG4FOX5sTE7rSymYCSL0sLPweslQg3C2lIjIShyUUPrqnc47ttoeAOTGhT61sJoDUy3JIqaBEmFqlNZ10CVMtrJ338qRj5dhtDwFzYkKfWtlMAClliQoDxRLe+J/iFQYlovRblo3iyZvinii9v57TKcKHa0TAnJjea1Y207EiJ9YJVkp/GoVSOaRIXiqe3amnCsNUSqHdthAwJyb25+WzZ8/YReEFSF9oUPB+EjsjYASMQBYEpFN47uyVwktbNlkgdSFGwAiMIWBlM4aQ042AEciCgJVNFhhdiBEwAmMIWNmMIeR0I2AEsiBgZZMFRhdiBIzAGAJWNmMIOd0IGIEsCFjZZIHRhRgBIzCGgJXNGEJONwJGIAsCVjZZYHQhRsAIjCFgZTOGkNONgBHIgoCVTRYYXYgRMAJjCFjZjCHkdCNgBLIgYGWTBUYXYgSMwBgCVjZjCDndCBiBLAhY2WSB0YUYASMwhsC9ToZ3eudE5zQcvlYc30OyMwJGwAjciYB0xTtluB7KhLLhhVn9z5Kk/H6ZVkLCoREwAmMI8GbKQfd/DqSd8zLYHBMAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\left[ - \\frac{\\sqrt{- \\frac{c^{2}}{2} + k m}}{m}, \\ \\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": "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\n", "text/latex": [ "$\\displaystyle \\left[ -4.94974746830583, \\ 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": "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NjYwIDEwNjggXSAvRm9udE5hbWUgL0RlamFWdVNhbnMtT2JsaXF1ZQovSXRhbGljQW5nbGUgMCAvTWF4V2lkdGggMTM1MCAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTIgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM1MCA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDI4IDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxNyA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjE3IDk2OSA5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YVZ1U2FucwovU3VidHlwZSAvVHlwZTMgL1R5cGUgL0ZvbnQgL1dpZHRocyAxOSAwIFIgPj4KZW5kb2JqCjIwIDAgb2JqCjw8IC9Bc2NlbnQgOTI5IC9DYXBIZWlnaHQgMCAvRGVzY2VudCAtMjM2IC9GbGFncyAzMgovRm9udEJCb3ggWyAtMTAyMSAtNDYzIDE3OTQgMTIzMyBdIC9Gb250TmFtZSAvRGVqYVZ1U2FucyAvSXRhbGljQW5nbGUgMAovTWF4V2lkdGggMTM0MiAvU3RlbVYgMCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL1hIZWlnaHQgMCA+PgplbmRvYmoKMTkgMCBvYmoKWyA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMAo2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDMxOCA0MDEgNDYwIDgzOCA2MzYKOTUwIDc4MCAyNzUgMzkwIDM5MCA1MDAgODM4IDMxOCAzNjEgMzE4IDMzNyA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2CjYzNiA2MzYgMzM3IDMzNyA4MzggODM4IDgzOCA1MzEgMTAwMCA2ODQgNjg2IDY5OCA3NzAgNjMyIDU3NSA3NzUgNzUyIDI5NQoyOTUgNjU2IDU1NyA4NjMgNzQ4IDc4NyA2MDMgNzg3IDY5NSA2MzUgNjExIDczMiA2ODQgOTg5IDY4NSA2MTEgNjg1IDM5MCAzMzcKMzkwIDgzOCA1MDAgNTAwIDYxMyA2MzUgNTUwIDYzNSA2MTUgMzUyIDYzNSA2MzQgMjc4IDI3OCA1NzkgMjc4IDk3NCA2MzQgNjEyCjYzNSA2MzUgNDExIDUyMSAzOTIgNjM0IDU5MiA4MTggNTkyIDU5MiA1MjUgNjM2IDMzNyA2MzYgODM4IDYwMCA2MzYgNjAwIDMxOAozNTIgNTE4IDEwMDAgNTAwIDUwMCA1MDAgMTM0MiA2MzUgNDAwIDEwNzAgNjAwIDY4NSA2MDAgNjAwIDMxOCAzMTggNTE4IDUxOAo1OTAgNTAwIDEwMDAgNTAwIDEwMDAgNTIxIDQwMCAxMDIzIDYwMCA1MjUgNjExIDMxOCA0MDEgNjM2IDYzNiA2MzYgNjM2IDMzNwo1MDAgNTAwIDEwMDAgNDcxIDYxMiA4MzggMzYxIDEwMDAgNTAwIDUwMCA4MzggNDAxIDQwMSA1MDAgNjM2IDYzNiAzMTggNTAwCjQwMSA0NzEgNjEyIDk2OSA5NjkgOTY5IDUzMSA2ODQgNjg0IDY4NCA2ODQgNjg0IDY4NCA5NzQgNjk4IDYzMiA2MzIgNjMyIDYzMgoyOTUgMjk1IDI5NSAyOTUgNzc1IDc0OCA3ODcgNzg3IDc4NyA3ODcgNzg3IDgzOCA3ODcgNzMyIDczMiA3MzIgNzMyIDYxMSA2MDUKNjMwIDYxMyA2MTMgNjEzIDYxMyA2MTMgNjEzIDk4MiA1NTAgNjE1IDYxNSA2MTUgNjE1IDI3OCAyNzggMjc4IDI3OCA2MTIgNjM0CjYxMiA2MTIgNjEyIDYxMiA2MTIgODM4IDYxMiA2MzQgNjM0IDYzNCA2MzQgNTkyIDYzNSA1OTIgXQplbmRvYmoKMjIgMCBvYmoKPDwgL2ZpdmUgMjMgMCBSIC9vbmUgMjUgMCBSIC9wYXJlbmxlZnQgMjYgMCBSIC9wYXJlbnJpZ2h0IDI3IDAgUgovdGhyZWUgMjggMCBSIC90d28gMjkgMCBSIC96ZXJvIDMwIDAgUiA+PgplbmRvYmoKMyAwIG9iago8PCAvRjEgMjEgMCBSIC9GMiAxNCAwIFIgPj4KZW5kb2JqCjQgMCBvYmoKPDwgL0ExIDw8IC9DQSAwIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4KL0EyIDw8IC9DQSAxIC9UeXBlIC9FeHRHU3RhdGUgL2NhIDEgPj4gPj4KZW5kb2JqCjUgMCBvYmoKPDwgPj4KZW5kb2JqCjYgMCBvYmoKPDwgPj4KZW5kb2JqCjcgMCBvYmoKPDwgL0YxLURlamFWdVNhbnMtbWludXMgMjQgMCBSIC9GMi1EZWphVnVTYW5zLU9ibGlxdWUtb21lZ2EgMTcgMCBSCi9GMi1EZWphVnVTYW5zLU9ibGlxdWUtcGhpIDE4IDAgUiA+PgplbmRvYmoKMiAwIG9iago8PCAvQ291bnQgMSAvS2lkcyBbIDEwIDAgUiBdIC9UeXBlIC9QYWdlcyA+PgplbmRvYmoKMzEgMCBvYmoKPDwgL0NyZWF0aW9uRGF0ZSAoRDoyMDIxMDQyNzE2MDU1NCswMicwMCcpCi9DcmVhdG9yIChNYXRwbG90bGliIHYzLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZykKL1Byb2R1Y2VyIChNYXRwbG90bGliIHBkZiBiYWNrZW5kIHYzLjMuNCkgPj4KZW5kb2JqCnhyZWYKMCAzMgowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTYgMDAwMDAgbiAKMDAwMDAwOTg0MCAwMDAwMCBuIAowMDAwMDA5NTM3IDAwMDAwIG4gCjAwMDAwMDk1ODAgMDAwMDAgbiAKMDAwMDAwOTY3OSAwMDAwMCBuIAowMDAwMDA5NzAwIDAwMDAwIG4gCjAwMDAwMDk3MjEgMDAwMDAgbiAKMDAwMDAwMDA2NSAwMDAwMCBuIAowMDAwMDAwMzkzIDAwMDAwIG4gCjAwMDAwMDAyMDggMDAwMDAgbiAKMDAwMDAwMzEyMyAwMDAwMCBuIAowMDAwMDA0NjIzIDAwMDAwIG4gCjAwMDAwMDQ0MTUgMDAwMDAgbiAKMDAwMDAwNDA5OSAwMDAwMCBuIAowMDAwMDA1Njc2IDAwMDAwIG4gCjAwMDAwMDMxNDQgMDAwMDAgbiAKMDAwMDAwMzM2OSAwMDAwMCBuIAowMDAwMDAzNjg0IDAwMDAwIG4gCjAwMDAwMDgzNjEgMDAwMDAgbiAKMDAwMDAwODE2MSAwMDAwMCBuIAowMDAwMDA3ODA3IDAwMDAwIG4gCjAwMDAwMDk0MTQgMDAwMDAgbiAKMDAwMDAwNTcwOCAwMDAwMCBuIAowMDAwMDA2MDI4IDAwMDAwIG4gCjAwMDAwMDYxOTggMDAwMDAgbiAKMDAwMDAwNjM1MCAwMDAwMCBuIAowMDAwMDA2NTcwIDAwMDAwIG4gCjAwMDAwMDY3OTIgMDAwMDAgbiAKMDAwMDAwNzIwMyAwMDAwMCBuIAowMDAwMDA3NTI0IDAwMDAwIG4gCjAwMDAwMDk5MDAgMDAwMDAgbiAKdHJhaWxlcgo8PCAvSW5mbyAzMSAwIFIgL1Jvb3QgMSAwIFIgL1NpemUgMzIgPj4Kc3RhcnR4cmVmCjEwMDU3CiUlRU9GCg==\n", "image/svg+xml": [ "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " 2021-04-27T16:05:54.449616\n", " image/svg+xml\n", " \n", " \n", " Matplotlib v3.3.4, https://matplotlib.org/\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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", "This notebook is provided as [Open Educational Resource](https://en.wikipedia.org/wiki/Open_educational_resources). Feel free to use the notebook for your own 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: *Sascha Spors, Continuous- and Discrete-Time Signals and Systems - Theory and Computational Examples*." ] } ], "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.10" } }, "nbformat": 4, "nbformat_minor": 1 }