{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "

Mass-Spring-Pendulum Example

\n", "

MCHE 513: Intermediate Dynamics

\n", "

Dr. Joshua Vaughan
\n", "joshua.vaughan@louisiana.edu
\n", "http://www.ucs.louisiana.edu/~jev9637/

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\n", "\t\"A
\n", " Figure 1: A Mass-Spring-Pendulum System\n", "


\n", "\n", "This notebook demonstrates the analysis of the system shown in Figure 1. Mass $m_1$ is attached to ground via a spring and constrained to move horizontally. Its horizontal motion from equilibrium is described by $x$. Mass $m_2$ is suspended from the center of $m_1$ via a massless, inextensible, inflexible cable of length $l$. The angle of this cable from horizontal is described by $\\theta$. The linearized equations of motion for the system are:\n", "\n", "$ \\quad \\left(m_1 + m_2\\right) \\ddot{x} - m_2 l \\ddot{\\theta} + k x = f $\n", "\n", "$ \\quad -m_2 l \\ddot{x} + m_2 l^2 \\ddot{\\theta} + m_2 g l \\theta = 0 $\n", "\n", "We could also write this equation in matrix form:\n", "\n", "$ \\quad \\begin{bmatrix}m_1 + m_2 & -m_2 l \\\\ -m_2 l & \\hphantom{-}m_2 l^2\\end{bmatrix}\\begin{bmatrix}\\ddot{x} \\\\ \\ddot{\\theta}\\end{bmatrix} + \\begin{bmatrix}k & 0 \\\\ 0 & m_2 g l\\end{bmatrix}\\begin{bmatrix}x \\\\ \\theta\\end{bmatrix} = \\begin{bmatrix}f \\\\ 0\\end{bmatrix}$\n", "\n", "We'll use the [Sympy](http://sympy.org) tools to verify these equations of motion, then [NumPy](http://numpy.org) and [SciPy](http://scipy.org) to simulate the response of this system." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Import the SymPy Module\n", "import sympy\n", "\n", "# Import the necessary sub-modules and methods for dynamics\n", "from sympy.physics.mechanics import dynamicsymbols\n", "from sympy.physics.mechanics import LagrangesMethod, Lagrangian\n", "from sympy.physics.mechanics import Particle, Point, ReferenceFrame\n", "\n", "# initiate better printing of SymPy results\n", "sympy.init_printing()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Define the genearlized coordinate\n", "x, theta, f = dynamicsymbols('x theta f')\n", "\n", "# Also define the first derivative\n", "x_dot, theta_dot = dynamicsymbols('x theta', 1)\n", "\n", "# Define the symbols for the other paramters\n", "m1, m2, k, g, l, t = sympy.symbols('m_1, m_2, k, g, l, t')" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n5bbJAAAAAElFTkSuQmCC\n", "text/latex": [ "$$g l m_{2} \\cos{\\left (\\theta{\\left (t \\right )} \\right )} - 0.5 k x^{2}{\\left (t \\right )} + \\frac{l^{2} m_{2}}{2} \\left(\\frac{d}{d t} \\theta{\\left (t \\right )}\\right)^{2} - l m_{2} \\cos{\\left (\\theta{\\left (t \\right )} \\right )} \\frac{d}{d t} \\theta{\\left (t \\right )} \\frac{d}{d t} x{\\left (t \\right )} + \\frac{m_{1}}{2} \\left(\\frac{d}{d t} x{\\left (t \\right )}\\right)^{2} + \\frac{m_{2}}{2} \\left(\\frac{d}{d t} x{\\left (t \\right )}\\right)^{2}$$" ], "text/plain": [ " 2 \n", " 2 ⎛d ⎞ \n", " l ⋅m₂⋅⎜──(θ(t))⎟ \n", " 2 ⎝dt ⎠ d d\n", "g⋅l⋅m₂⋅cos(θ(t)) - 0.5⋅k⋅x (t) + ───────────────── - l⋅m₂⋅cos(θ(t))⋅──(θ(t))⋅─\n", " 2 dt d\n", "\n", " 2 2\n", " ⎛d ⎞ ⎛d ⎞ \n", " m₁⋅⎜──(x(t))⎟ m₂⋅⎜──(x(t))⎟ \n", " ⎝dt ⎠ ⎝dt ⎠ \n", "─(x(t)) + ────────────── + ──────────────\n", "t 2 2 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Define the Newtonian reference frame\n", "N = ReferenceFrame('N')\n", "\n", "# Define a body-fixed frame along the pendulum, with y aligned from m to the pin\n", "A = N.orientnew('A', 'Axis', [-theta, N.z])\n", "\n", "# Define the trolley point and its velocity\n", "T = Point('T')\n", "T.set_vel(N, x_dot * N.x)\n", "\n", "# Treat the trolley as a particle\n", "mtr = Particle('mtr', T, m1)\n", "\n", "# Define the payload point and set its velocity\n", "P = Point('P')\n", "P.set_vel(N, x_dot * N.x - l * theta_dot * A.x)\n", "\n", "# The payload is a particle (a point mass)\n", "mp = Particle('mp', P, m2)\n", "\n", "# Define the potential energy of the payload \n", "mp.potential_energy = -m2 * g * l * sympy.cos(theta) # gravity\n", "mtr.potential_energy = 1 / 2 * k * x**2 # spring potential\n", "\n", "# Set up the force list - each item follows the form:\n", "# (the location where the force is applied, its magnitude and direction)\n", "forces = [(T, f * N.x)]\n", "\n", "# Form the Lagrangian, then simplify and print\n", "L = Lagrangian(N, mtr, mp)\n", "L.simplify()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# This creates a LagrangesMethod class instance that will allow us to form the equations of motion, etc\n", "LM = LagrangesMethod(L, [x, theta], forcelist = forces, frame = N)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left[\\begin{matrix}1.0 k x{\\left (t \\right )} + l m_{2} \\sin{\\left (\\theta{\\left (t \\right )} \\right )} \\left(\\frac{d}{d t} \\theta{\\left (t \\right )}\\right)^{2} - l m_{2} \\cos{\\left (\\theta{\\left (t \\right )} \\right )} \\frac{d^{2}}{d t^{2}} \\theta{\\left (t \\right )} + m_{1} \\frac{d^{2}}{d t^{2}} x{\\left (t \\right )} + m_{2} \\frac{d^{2}}{d t^{2}} x{\\left (t \\right )} - f{\\left (t \\right )}\\\\g l m_{2} \\sin{\\left (\\theta{\\left (t \\right )} \\right )} + l^{2} m_{2} \\frac{d^{2}}{d t^{2}} \\theta{\\left (t \\right )} - l m_{2} \\cos{\\left (\\theta{\\left (t \\right )} \\right )} \\frac{d^{2}}{d t^{2}} x{\\left (t \\right )}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ 2 2 2 \n", "⎢ ⎛d ⎞ d d \n", "⎢1.0⋅k⋅x(t) + l⋅m₂⋅sin(θ(t))⋅⎜──(θ(t))⎟ - l⋅m₂⋅cos(θ(t))⋅───(θ(t)) + m₁⋅───(x\n", "⎢ ⎝dt ⎠ 2 2 \n", "⎢ dt dt \n", "⎢ \n", "⎢ 2 2 \n", "⎢ 2 d d \n", "⎢ g⋅l⋅m₂⋅sin(θ(t)) + l ⋅m₂⋅───(θ(t)) - l⋅m₂⋅cos(θ(t))⋅───(\n", "⎢ 2 2 \n", "⎣ dt dt \n", "\n", " 2 ⎤\n", " d ⎥\n", "(t)) + m₂⋅───(x(t)) - f(t)⎥\n", " 2 ⎥\n", " dt ⎥\n", " ⎥\n", " ⎥\n", " ⎥\n", "x(t)) ⎥\n", " ⎥\n", " ⎦" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "LM.form_lagranges_equations()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The LagrangesMethod class gives us lots of information about the system. For example, we can output the mass/inertia matrix and the forcing terms. Note that the forcing terms include what might be conservative forces and would therefore normally appear in a stiffness matrix." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\ngZx7hPYAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left[\\begin{matrix}m_{1} + m_{2} & - l m_{2} \\cos{\\left (\\theta{\\left (t \\right )} \\right )}\\\\- l m_{2} \\cos{\\left (\\theta{\\left (t \\right )} \\right )} & l^{2} m_{2}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ m₁ + m₂ -l⋅m₂⋅cos(θ(t))⎤\n", "⎢ ⎥\n", "⎢ 2 ⎥\n", "⎣-l⋅m₂⋅cos(θ(t)) l ⋅m₂ ⎦" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Output the inertia/mass matrix of the system\n", "LM.mass_matrix" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left[\\begin{matrix}- 1.0 k x{\\left (t \\right )} - l m_{2} \\sin{\\left (\\theta{\\left (t \\right )} \\right )} \\left(\\frac{d}{d t} \\theta{\\left (t \\right )}\\right)^{2} + f{\\left (t \\right )}\\\\- g l m_{2} \\sin{\\left (\\theta{\\left (t \\right )} \\right )}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ 2 ⎤\n", "⎢ ⎛d ⎞ ⎥\n", "⎢-1.0⋅k⋅x(t) - l⋅m₂⋅sin(θ(t))⋅⎜──(θ(t))⎟ + f(t)⎥\n", "⎢ ⎝dt ⎠ ⎥\n", "⎢ ⎥\n", "⎣ -g⋅l⋅m₂⋅sin(θ(t)) ⎦" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Output the forcing terms of the system\n", "LM.forcing" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also use builtin functions to write the sytsem as a set of first order ODEs, suitable for simluation." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4sAAAB/CAMAAABxJqfDAAAARVBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeYafp\nAAAAFnRSTlMAMquZdlQQQO0wRM2J3e8iu2a1k3xssG8wZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAA\nIABJREFUeAHtPYu2g6qOatVzprW1vXem//+pkycEFB+t7da9ca0WRUhCMDwCJEWRr+Nx4PQsj0d0\npniOA+WTrmouXX6/Iw60zx0Rk0l5kwNXFsGiKJ+nGq7mTXg5+zc50Fy+iS3j+iwHHiiAFTSvZR7u\nfJbTn4DenT4BNcP8QQ48siz+IPdfRN3COOaSGsb0Dwf10bvbfLN/DmRZ3H8dxRS21xLGMm0czc/9\n3cRXWRgNN/Z+m2Vx7zU0pO8Ew9PyNoynmAuLX3vFsM2TygSb9hidZXGPtTJN0w2Gp3VC6/2QaWTD\nataungaV3+6IA1kWd1QZy0hpn9Dl3R/t6CCVukOAc+IesU11n8tQ5VTf5ECWxW9yextcN5wull5F\nY6D2V3m4dnxzOZu3+XbXHMiyuOvqGSXuXNVNfXKy2MLKVH+uaTha0xD1XN2f94qGpzi3zNcxOJBl\n8Rj1lKayhR7wca2LK45K7yKhMl2EN1l7k2bdzt5kWdxZhawmp4N5YwcrHA0qTq+y6ijTxaJodNC6\nGm7O8G0OZFn8Nsffw8f7Ft0/AEMVzkUXFW8yPdTpIkws38OXc3+PA1kWv8frz2F66tKFyGL7VJVN\nlsXPcX1ryFkWt+boN+BFB6b8hmIZo56xN6Q1j3Meo36jQjbBkWVxEzZ+GQgfmLrQCcamLWoUvRpl\nT3Q3HWhsGnqbdTdfrpo30GVZfIN5P5aVDky1tCX1/GyKO8gibwmX0xunqmh52HqSdcYfIzUjXsyB\nLIuLWbWjhCRyrCJtq7puYbWRFzNkSNrf5bngvnNHpGdSkhzIsphkzU5fyIGp/nS9nIZmNnQPnBDv\n9uHstDCZLMOBLIuGGUe49QemRk8w6t5wKUreG36EOhUasyweqLKQVH9gCreID6+7jc1npoYM2m9M\nlsX91s0oZe7A1Hn8CEZwljgQzFFwOXI/HMiyuJ+6WEKJPzAFJxhb2wdq7mxjQzlxtDDL4sFqzB2Y\nOtVFXq84WOVNk5tlcZo/u3vrDkz95/nfoRp1d+RmgpZzIMvicl7tK2U2Vryv+nifmiyL7/PwZyBk\nY8U/w/fPYc2y+DnefhZyNlb8Wf5+H3qWxe/z/H2Mk8aK3wefIfwIB7Is/gjb30Pq994onFb3n+om\ncXqR7YYrfw4RZlk8RDWFRPq9NxJ/vreNGJkK1vqz3fCQcft+yrK47/oZpc7tvZG35Q3OLopR/2w3\nfJRlR4jMsniEWgpp9HtvJP6KB6bgHCNcujc82w0X3hwoyLJ4oMpSUt3eG4540M7UJ51g1DNT2W64\nMus4YZbF49SVo9TtveGYK04VS+oX3XlFNQSX7YY7ru3+Jsvi7qtojsAzGX2r+T/bDZ9j137fZ1nc\nb90spKx6VnDdyBBqthu+kGl7TIay2IIpsXwdlgNkvL94krH+bDf8sNUIK8OgffPmNQ9ckL9CujMZ\nzjdQ7CceneLpYpHthh/4O8hj1ANXHpHektLmxKf8s93wA1dnlsVDVp4xHM72+sWKf7YbfsjqZKKz\nLB6y8qzhcOwLOzHVn+2GH7I6syweuNqM4fACjG30N7F8k+2GH7hSc794yMozhsMLOEB1UkV4tht+\nyOpkorMsHq7yJg2H6x44KZXbh3O4Uv5BgrMsHq3S/eHFMcPhujdcSpXthh+oerMsHqiyiFR/eHHU\ncHhgnjjbDT9S7WZZPFJtIa3u8OK44fDgLHEgmEcr6J+jN8viwarcH15MGA7PdsMPVqOO3CyLjhUH\nuXGHF7Ph8IPU2FIyURb/ef6zNHlO9+MccIcX4SYbDv/x6tiQgP8FWfyde8O9ZbQN2ZVBHZAD3enu\nFmA/QH5bbQT0145RazpDtBGXMpgDc6CDPUnVJ7+G80bAf6ssntE0Wr4yB4oCtz+Uo+s/W3EHtGhb\nXL9UFlvQcOQrcwA5cIW98z1ZIPkYPy5k9+td8L9UFqttWqp3uZvz74QDjViP/RA5/SbgdyKL5UZD\nbuH1Z4ckH6rQDHaWA+bY5mzaIMG1Dh43f9ik7d+FLJanSs7fbcSkS+4WN+LkT4MpYYDprzU+J630\nfdwnV7lFx7gLWSyKZlNZ7D86U/efRr77NAfKe4Bhjc/Js2+Pow3zAciNHi5W9F+E+Stl8bSpZL/I\n2ZxtAw5cQm34qv6tU4XKGYxznT+sy2Pb7e+V+FfK4m2DRup1tpoNoQJk2iPbpzyzGTo+hWIFk5Qa\nzwuNASCOPnfDkGGbn7uGPienQYEClQW5vDRNcw+F2kFdfTNGNQDZQlH7G2WxfyYbwfbUPTrz9lK3\nRXkirzBra6VMSDwflOhPp/tdEM15ZFvvmc0Xo73fEoOA4MDGOyjqa5qfA6ZNcwX6J+edbpy+gFCr\nnvTHNhXnHKiiZjd4N7JeqbmWhZ7BlB5NJ7AVk3GqIdENLWO+d6EstvBB/vC16XwRy5S48Phta86+\nUz29xsWS7JIO8ZDTNdoX1fGi1qxHtiWnDJtg74ItxkUcL8aUrHb+lkQxwc8YKSyqj3NTqDG8GKcv\n4IUdkvpjm4JzFhT0VQPy0hHJ0mOWqmvYjVcxTjUmeX8loIdRwA72o24qi+npIo/qO8+2S1fVYrYp\nXU2r3rCeoKLW7UZGS+c9ss2dvm+rU2UVdUEx5COJiVR9xULnb1MoxGdVjGHNs1LjeaExMX2WF3hU\nUy93bFMj5kEVlETTB2FjBr/wYqr0+Pp5blmfm6K6KOo1gh/Q4h5+4xj1GirfXFmL4k66NbPw63Vt\nJtVbt9zp8sCxwsHdAo9sLRsansJbW1m0xTjbFwaCdv7Lnb8lUSQG4wbZ7K1QY3iRos/wwi4U+GOb\ngmsBqOKU/BAiWQSYydLDO2kv4C5FNaZ5u03fiyzOf41SBwuCZ2LUBubuSfbOvit5Qxb70sw7HVVi\n7OlCEkKyuMQj27xntuBTscVQy6iOAr5xRqeWO39LoZiYfkdI4XGSK4XnRZo+zwsWN8Hhjm3K8xJQ\ndfKrmpFFy2DA53icphoGl6YTFxpXBruQxf50fVbhqGFlMYLkYkM7iKOHlqX07BNUj0d9EplqTnXd\nQEt67qq+r2sg6NzV92CtGaGUdfOAQyD9HSusvNxOJaUVbKIv4KcrSOQij2w4GZq+rKAExcDpYlNX\nWIYWCOnPNY3ymI5zdX/embOvo+Dp4hZcMbxI0+cJDcbG7tgm82kRqNSYATkWszvJ4OJR3a4VV1Ca\nahjH6hJKDHnx8y5kcTG1ixKmudKzYsHoF1DVLeroDsSwR2Htivsdqqp91iCHDTWt5gRcS+Me1F3y\n5p4rpvWbC9TpGlJ6RnSLPLI9/Aw2UUT7qdhioDeNuj/jh9ACtgds9iK/U0qHG169jqKiEm/BFcOL\nNH2e0DshHmfIIlBpRci0LFoGI3rXdqepNonGCV4Q+wtlsU+2UCRqqKsKdX13lCyeRMKXXTb8NXOF\nUKdgT8DxYSxsVnnWdidhdSjV6Rqy/ooj4EUe2eZVV6EsUitNxQCyQQveYpvcQbvSQU/c4MRF6XB9\ny+soaLq4CVcML9L0eUKndjIuApVe9JuTRc9g4KUfpKepFndfkPr1axNZjPyQ/dCjMsGM3NvL1V2X\nEro64rEZo1KeE067b9gI455y+LJpLYKFkzoFnLG77ebX551VryKL1KW5llOdrgEwHmyR3M95ZCud\nEi6iWMsUqBZsMU5+coyq24t2JUqHTheBfoW1EgV3LptwxfAiTZ8nlKaESHX0QVEUNqfM1jSofmQO\n113wut4oMOoC29hZBgMaN7aYdKnnKwLpe+XaRBZfQTyTp+w6a1Aw0lHpo8z0QiVK6TqpAQ6ek+ta\nkS4K4TogZ6pp3Zx5zysj1CkEJ+Da7vIkvoss0tc/Ios8t1jmkc1/fwOSJcJ+KqKComJcqxoHyXrF\ndHCzgm9fRqEKkPe5YnkhAjRCnyd0ol9cBurVftEyGFjnVDcqiyNUQ4NB7bxWxCvhfmTxEewfgS9c\nfENgqWhMCXsh5KtzQ8yGNSsSSPnTY1SYCGKah1sGuFGndoLnB6mk78RPHtdRj3KmjhIz6UJIj93P\nA3vOUVnUUUzRIKi+52oTEZGXZ+yiEIwroikqRo9cgSz6YiB488X5CVIS1QhsiUqggGISre9zxfIi\nTZ/nRSSL9sDUMlBuLDMo9PQYNfpOuKIRRppqGEy5r3KAbWHEfmTR7KsH2kFIWicyvDEK9Cy8VZgf\nYcwJ40DuISXgMoPSJVV41pK7OVTBTRnOPbjV5zENbWfi2oak6LkZLj0Bx7VYwQRtVBZ1dl8SaBjM\nYgegDau8xL0GDfXlqqfQMEV3tPzli4HVh30Efgfg6Z0WnGkXVRLVahQwyqCvbAOuGF6k6fO8YKWR\nI9j6ubNsTYN6VY8qa8L6nfj11TQqaBEPoEc1Y3LH1kU3bhJf0reA+4TvKBf8yJIqNrhCU1wTLRQ2\nbGR/oyX/9j1KzAMdptFackWdI/cz+JVDk9Dxh1i47Vi8VwrHz9w78b8Tf0nXX7uuo1OZizyynWbb\nVOm0mGxqn6kY9LnCjgLIj6umdyCaNy8LHSfo1LhlehkF7DlBCFtwxfAiTZ8nVEfHWBFwWT931tFd\nGlSwQMlA5D/ZL8YMhvTcKlPGNCqZuwZI1j58vl9UbcIcZW046yta2foHszp8Q7JHm5roUU88SiKX\nFrHc0uLfdrAGR4hIyVn0p65ie32wftVx/8WDJLYn1Jwe3IFxDwrAz92jfnQwwayez6ql/7K5PxWn\njLBgSokXDLsXeWSjPh5JT1yn6va8YF/MullYvpBiUENdn7ArbKu6buuTmKIUOvq7mqZ8GcWDhWML\nrhhepOnzhEbdGgmCNtCLQC3fd5NkMLDckJGmWtaRE/W3LBpl8X1bxQ/4ZGtQVtS1nk3w2FUWk2lq\n+LbroqU2/XIr645EqeUtnQiHJpJkY5EUnPgIuwMutEZf88hAAsZ6p1kg36/65+niSJYVJ+B0l9QI\nFCiJKp34rW7j0HA0z4uRCVQvQhvN9hZXUvRZXqiGlFq0GjbEu2oP6EmBKtIHfIf9YgAxeMCFZ72S\nqIwSQtOuDrexVfygxeYbiI+Yp/OCVGhJojROUYo12sOPpgOkhaZTCKce167x4tq5XE68QVoqCxPB\n1XAfKAFFFV1y6xO/H/vnrpdVQYP3a07A6e7hARCMiF46XVRygjsKZVFkAtWivMsSvceVFH3KE6TB\nDVf9gSmp9oDCFCivcAiS40MbNoqD9y4CPixr5C2FCnQCL3x0DgvfbDJG7VtaDMBei9h37tRnNSAR\nWYzTQDT3+LAA37Q4xsIJGp1Yw01bVx7hIZFngoD79EnVyo8FTe30paTB1HCpypOfFv3jGrkoY0bS\nrzoBZ5diBrCCl3o+SMNB6rciRlG9BTHK/CZXxukLeFHq941Ltfwg1R6SMg4KNq+FyV55ut7bUL9v\nhdgSy3OeV1C4PJvIIkzpQHyIWaL15b68wgVVWlXFhj9M4xWl5/sTpVhkURI6AkHciKVYCTQ74kd1\neCYG5AI7culNcAZqeNtUsC+Ve9rwxfqn4LRpnD14qZ+QhnHi955HUb0H8o3cATUEJ4hxLHA3lKaS\nKnEHprTaQ0rGQRVXmuqHSdc+wWdhpQ+2IRsIhtgXvjkDiG83kkU0DVwDmXB8kxhgxtWO+DiNqF9K\nKCvOyJOyyPaHUENIzSQ/qsMzWQkJF0T8gtCgvF+IMFYYhtjMS7UnoeEw8XsxI6jeA/hWbkONwDEx\njgXuhtNIx+MPTGm1R6SMgSoeMseJ0r75OIoKx2KByL6EZBtZpBPU2O897rwGMCKLgzSiKKVFcRDY\npCzyIAE0pawX4kdQjxOrheEh39O67Jd4lDP9GAfo4wDNeAlrBiWo6bTaFxAU9GAL0r+XRNci34Gy\njSxSt4TrCn2FO5QDhaH2i3EaVZQ2oJ+HzddtBZuIQJlaFfVNBrpaLrIhVJ5OolmhR3V4JpH6jrPw\nDinNnsMDc4C3VLkDU1rtC0r0SddSQ/S3t1f6oSODsZ/fOTXE8WLMSL8YQWq9ojR6M3isw4lc8CjL\nF9EqRnYyNWBijvgkB6JtCa+h+ogsljXoRpUe7Rf1WUKjKI3eDB8jEOax4eZIAp8T56b5yhz4Fge2\n6BY/1S8aHrw/py0iUfOPLW+HkcAg9ZsaTWS+zRz4DAe2GYd9pF/cvMB0PNZDdY9iTFICnwA2kuIq\nSr4yB77Bgd4sp7+B7xiyuL6AuFMjX5kD3+BAG+kaX8WJsvjPv//zavb95uuN+mi/VGbKfgEH5CTV\n2yX5v38/okd9m651APQwgs3V/76OcayYtsj5njlgTIW9zJLwGN4UGDFjPJVk9N0Aw68Yo24zdR5l\n2J4i/0gx32a5NRX2OrBztE72OqRUzhjDb5BFNs2WKvGvif8jxXy/vnB2kjavsRi+HDlanH59wgjD\nL5BFOuC+nhFHy/FHirlBtQSmwt6AZw9LvQFmImuI4RfI4ia+0icYtpNXf6SYG3H7hXNzA8zW5dzg\n5SYRIYavyWJwqmmTggiQDUYjW5LzKVh/pJgR+6ztt+jV9KOaCptONfP2881fgOFLsliSHaaZor/2\nOrLc9xqQ/ef6I8UsysC2Ah3eWVY5weYOMRK1LGcylXV0lUz01osAw5dkkY8ovkV2IrN3ZZFI8Dui\n/0gxCz6d6uqMbL+5p8kbe4Q1MoUxmW/q5ed3b1kMh5fFtOPTKSYf7t0fKaZYwHXVs6Z/69yxpRVG\nsRym0ZvPH4S1GA4vi96QbMxNcwI7fvX6c3TwfBKQEtC6NXqNwWwKScNJUEW6mNP5+K3BuwzdEqDT\naRSlL7xYbqVsSoWGCgvOCrsLzC6i7Td/TYOCQ7N0dBbWMy5N06AHseWXUgs5LEnGJPsiWArGU6ox\nFnAKw9Fl0fsAipn1oXPdbLTcIisTcqIEnO+tHE/XGM6tkDS0MOP7dDHBs8Gjoy1G7Z29Icd54YS3\nOWVWzKOrr+hPedm1vPDjVITUWL2it/0mlHg+joMq2IMJWAEg27Tz9KONVT5FlGQQGUufhyQpFIyn\nVGMogSuru4Fog+Hosoj0j1+B+eLxJK/EWttfnD92IadQhYDyBi00uyNQklraK6uQNNR8Y6EtJlsu\n11RkwFL23qJf1LFL8IZoxxJKnMU2kQxfLS98MUpFWHg7JPW235gEw8dxUGhsadVVderlaJQ0hFWt\n2nwjYAyl44BtoQ2Go8tich61Zvq+xnJtYQ14TlW9EkC2zslRh8aI8w4HaQBxSI8rZluxlVjFzPMN\n9NABF7sD0VcuVLziu2we3fvGWxSlL7yzDRtREVCD9t70crbfJGIeVEFJNP9sCLb5ZSupUhuRBhDI\nQcksJEmgYDylGhMDNoU2GI4ui1c7/LJMW3NMY/jtW0jRfatGO6P4+FEIYGEhxyeOJPnWFZKGDsKQ\nHlvM0B8UGazklW1jbN6BwhvFG6F1aQboEoNul2H+Zlj4FBW28FbD722/MTbDxxSoIm2zf4xiERB4\nlWbQKvNuw0KnAJtCGwzfk8WFn/AY1ybiUl7vrCn4iez8avAxTua4BCtgMBsrx2ZXSgA59CSnnRoD\ndS/WAhWShop2SI8tZiCL7FES/dp4d1YKRkKHN0ar6WJ06cmp5vDh0sKL9XfIGFNhCm+Vit72GyPz\nfEyDWmd1Rr1/peHhENz01L7Uo3fKZ0+pxgzKXPhCGwxfkkVwhPBEm42bX87BE0BuQPHWSD8p8/hz\nV/U9+IGpwSdNfY+EyBETfYwzmdjfMNRT3Tzg6ESPtutAd3c7gUsRX0YlgFyA1PivMdX9eed0CklD\nJSiiB6JtMa0sBh50cbrYsOueFkjpzzWNhRjveYg2hQ6/CeDXJOfWFl5KP0KFKXwwNna234jMs+dj\nGlRqYKAFteGjul0rnl9PMMiaIAYtWUdmnNCzEHg3cl+AgNX69ZSmAftCGwxfkkXLhS3vTUkK9EEC\nDgEYvHrKA89s0ASAS0bgXcNd83A3XvTtd8NM9kSc2NJpSerRwDtvibkiIr8kLwRUzwquG37d7sip\nGxypVR4NlTMRPUi/WzsLXTH27N+ONChoibLuybMJuiJ5wDYw8mqveAdoU+jIkdw0E1YX3pV+QIUp\nPPvPU7KC0PAxDWqdQUPXvk0xyCUCS9nQRZZgTaOkkSfUtmcCkZqu8UGZC1Noj+Hgsmg8UPKcSccU\nbPagbPhz5E+W2vux3Xjhtz+SKTgRJ27H+AgT9vXiFJUk3QmNOjMgrQo5e3SWGFzzrw7MNNSvL6QH\nYk0xY1mktodkERgAhn9alFo0UosuQsgwkOIdoE2hw+niDBNWF15d+hYDKkzhJ/b5UatSEB/ToFYt\nB/qR+BSDvC/PC9ZkA6s9PMgGufdMIE6ma3xQZvVYiPk8hkAW28vVXd4NHiHa6Z8Zbd+wn3I7qNld\nGHyaNGJgORU/t6byiw49flyu5PNDv4SRTNgSOtDqUP76vIPfYbhEFlnqUDjxEn9lxGmm0nkw0xkT\ngOS0GoIAjdADaUwxQ1m0Y9STjgmgH4U8FxmtKyVu0uLQJtBR7zLHhLWFT1PhC1/QTItZEv8bPqZB\nkZeyOGfqo3adVRoegHI8FU77ugCKHBMIZ7rGBxVuqsBjmLHJSIumO/xz/C5dP8R35O8K3+qHzxzn\nJQFRD1pZZEBxPzTIFJyI04+n7cDjKXZLo87CmQC2YH6iLlNJ8n5uFZKGTA1O+vROQl9MiLDzxYJ1\nN7ROdq1qHCbr5cY+gneIVlNG6EQDMs2EtYXXChlSYQqvrWERfXI4SEcdCvMxDWpVv+hUN2l4gNLJ\n4ln52VDrDm/u4JJWvgDiZLLGh2V+RRa1tmCU5G+3u4OWWzy9EswQh3sSLSUHkcrSD94e5FzEeTMN\nxx3UMJ0hBXYY87LIY4ogEw5PMDNc6pwWHx9YMaOyyARwNXA1Kkln7A0JlhZeQ4SOVyQcE2NUcVT+\nANoQlfkY/dxJ8A7RMrIBOigOUjfJhH5t4XVgOaTCFN7JIlNmDkxZPqZBuaGLlmwq5FrDFBMMat0I\nctgvguF7yExfAOFJ1viwzPoNQT6PYaZfRAcX9NVs5bKHPCgS5fgHozrjr5JwgLKK23aPkV0qFBzI\ng4IApYzccjOu00U3v6ctRlyT8HH12LrOy+JIJqgxxSTzbhYYdNw9Kosyk8fGUlpgVRHgwnxDbYrO\n4DXUUg1k0RcTkgT9Ii8DoNzgbAO7D2RcA05pUeLJcKzgHaJNoIOhBsKYZMLqwmuFDKkwhZdJhNLF\nB6Z4smT4mAa1Ro9qdvhOMMi39QXNF4G1xY2m6KDY9UwgipM1Piyz0d0YDMF8UZlgQm617AY683L9\nrT3YQrm9YDAO2NJ7QekXjFQRsmmQg9Adnp/50tpw5TxvyW4q7ihIaVNcOnZN5VEq/dG3P5ap8Nuz\nxFsub0VDF3ys/uN/1zZIetjsrJZsFcIJ+h2Wa/W7q2GCHoh2zTPciyy2XpFB5jfoQwbVAsgRLjeS\ny3XSviolA7QJdLAdBcibZsLqwiv/JgsfrQ/SgSlprA0f06CC9UktXSLk9pleTjDITNR7stMPWryS\nHETA1+SZEIAZ1PiwzN7jslUFzMki0Vn6TipRslc9wIrfN4DKOHCf/h11x4yRK0KM13EQWbK7Ocyw\nHtX5OYCMfDhgGz/N6UG90awsjmXS3UxAqWi1zt2jfsAyU1k9n1VL/2VzfypBQgDuP6aRhRvbwoKk\nnttQ/ZiGytyobYBohQpDR1gguWBvXLAnXFzsqrBc1CzXJ+wK26qu2/okaISSIdoEugf7liZ3vCHn\nPBNWF15HZUMqTOGjfo2+Paktw8c0qDX7bgyuCQbxsiYzCrYfokM0aKZgobGC8Y4yQfiYrPFhmfUb\ngpwGw5wsknUcqmvBOB6ozm78rY9tw/me+n2DBISDZA+38wlGqQjZYcuBPAjMO2kvFYGbLsKX6uab\n+lLDWVnUhCY0J+LcZgrzeux2SEAco5A0dFCGshgW0yVcdhPhXYBuHK5hwngCHxuhxBdRlFKhIeUV\nNRPcy4Ep2CNyOYXfTBrUKscNuBqtV4I0eI0T8cVXBAbyRTGurO4mwDAnizToY4/lD+hXathKUNfs\nlNTSqAVLpqmhD8HVUZjF9JdbWXfYn1m/b9wMo2ShOoSeXEXUNNYqOJAHwd7p1jqsMDPucFuRJZ0J\nZMnfxLRJuZVE9kSc2ddrQAxvfSei7+IYhaShpiuG9LhiujQrbiK8C9CNArdMGE1gIiOU+CaKUio0\npMxusO4PTAUnGAVDApTRPUjCVNBUhTXBloAHuVfxPQID2aMYV1Z3E2CYkcUSP3WR4gdt6bhVoBfg\ngSHc6eVkMUxTdh37NMcmtYefOB+GUSjy2Ph9YxyXy4mOIWi7IRUBrMOLA3kQzKrdxJVtUaLIG+NM\nXWIoeGk3njkRZ8+7WLjD+yEBYYxC0nAIwcdoMX3MmrsA7xJ0o8ANE0bfB5EBSn4TRCkVGnIS+tzw\nFveI8YPTAHAK/h8FVTzcfMWmHbu/3tm7tb4bhwdveR6gyebCAAwlDmJcWd1NiGFGFmsUsjNJWt/S\n4h32Wjyh6Ix3HZHFOA1E8yga9qY1Lc5kULtHJ0b9zk0imnHgNiNUtfITdJHcYckjB/qOsgFA7jOb\n6lF7n4/4LjjGyYm3+A+4OwlwSEAYo5A0nAKmxZxKk34X4F2CLg1q6ZsAJWcKopQKDQVuBR8AXu7A\n1FnHPRwv/6OgiuXujOBbCYZC4/Dwc+WvK0CefgjAULIgxpXV3YQYZmSRFo9V+YniQ42VLMjwaLjC\nrSK0cQWVg2EaGHLKwOF8f6IUiyxKQlMqxoGyhzoIwagVITtIOYi2k/plIgONbo15g/jV68/WPsIc\nlCEBNkYhaTgNLV3M6Xz81uBdhm4J0Ok0BqUmNFFKhYaaRHoMf2AKhmDDETs0tF5GHIjHrIZRsQzD\nMXiQyhxoGuYZiTFg5K2J8YSadsBimJHFG54HUttcqMvFjhLOT9N02sxMpV+EBi3fVFoTAAAB/klE\nQVRKI6t5JaBHnUlSFhkHziaxIRSMWhEqmjQG0ZZBCrtGjz3CvaNE/ZFiwlkbqhH4jGCzAggcKNYX\niljQBW1UrbzfYSNgo2AshhlZfBbQ2cnYmkwYYL/3uDN/RmRxkEYWLYjFILBJWWQcoCMlvZBg1IqQ\nFo+DqPnj3VGj5fxNkX+kmNBiw+gJB0Z1A4sydEPt/nxd6tLRfMrlKTZx/T2JzmKYkcUTndNiA1vU\nIeGKQl/hOYBAY6v9YpxGFy0aPPIFW9Aq2N8HytSqqG8y0FVKCUd5OlFViEkvqBGqCInkQB40X/FH\nvC/9kWK6at3DTbT34AMkBRhmZJHR1zKjjogZ6RejFHbRInoVP4Y4widZQ+RAHnx+2gbhH3/r3R8p\n5p6qz3Zan6ErwLBIFgvt9ixBZQ26UY0YSwDvzKKFpkyGIQj71PBEnQN5MGDMhkYT++tu/0gxd1Rv\nnx+KhBiWyeJQACKWGc1Q9GbxY4jDPLU8nedAHgKo1g568OJ3PfyRYu6m0nQf8ecIijCwLNJ5samV\nUjog/jmiCHKIwz/RYQM5c8AnDyJCcJPGH7j+SDH3UpNtpNDYni6DAQeQcIFys6aLtSbbo/w8xN7M\nXD+P7ccw/JFi/hh/Q8RyBCqM3PTJYHiwCG4K/oeA9X+iYwTrjz/E3z+IVswYf7DkYxj+H7KLhenw\nWq9ZAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left[\\begin{matrix}\\frac{d}{d t} x{\\left (t \\right )}\\\\\\frac{d}{d t} \\theta{\\left (t \\right )}\\\\\\frac{1}{m_{1} + m_{2} \\sin^{2}{\\left (\\theta{\\left (t \\right )} \\right )}} \\left(- 0.5 g m_{2} \\sin{\\left (2 \\theta{\\left (t \\right )} \\right )} - 1.0 k x{\\left (t \\right )} - 1.0 l m_{2} \\sin{\\left (\\theta{\\left (t \\right )} \\right )} \\left(\\frac{d}{d t} \\theta{\\left (t \\right )}\\right)^{2} + 1.0 f{\\left (t \\right )}\\right)\\\\- \\frac{1}{l \\left(m_{1} + m_{2} \\sin^{2}{\\left (\\theta{\\left (t \\right )} \\right )}\\right)} \\left(g \\left(m_{1} + m_{2}\\right) \\sin{\\left (\\theta{\\left (t \\right )} \\right )} + \\left(1.0 k x{\\left (t \\right )} + l m_{2} \\sin{\\left (\\theta{\\left (t \\right )} \\right )} \\left(\\frac{d}{d t} \\theta{\\left (t \\right )}\\right)^{2} - f{\\left (t \\right )}\\right) \\cos{\\left (\\theta{\\left (t \\right )} \\right )}\\right)\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ d \n", "⎢ ──(x(t)) \n", "⎢ dt \n", "⎢ \n", "⎢ d \n", "⎢ ──(θ(t)) \n", "⎢ dt \n", "⎢ \n", "⎢ 2 \n", "⎢ ⎛d ⎞ \n", "⎢ -0.5⋅g⋅m₂⋅sin(2⋅θ(t)) - 1.0⋅k⋅x(t) - 1.0⋅l⋅m₂⋅sin(θ(t))⋅⎜──(θ(t))⎟ + 1.0\n", "⎢ ⎝dt ⎠ \n", "⎢ ─────────────────────────────────────────────────────────────────────────\n", "⎢ 2 \n", "⎢ m₁ + m₂⋅sin (θ(t)) \n", "⎢ \n", "⎢ ⎛ ⎛ 2 ⎞ \n", "⎢ ⎜ ⎜ ⎛d ⎞ ⎟ \n", "⎢-⎜g⋅(m₁ + m₂)⋅sin(θ(t)) + ⎜1.0⋅k⋅x(t) + l⋅m₂⋅sin(θ(t))⋅⎜──(θ(t))⎟ - f(t)⎟⋅co\n", "⎢ ⎝ ⎝ ⎝dt ⎠ ⎠ \n", "⎢─────────────────────────────────────────────────────────────────────────────\n", "⎢ ⎛ 2 ⎞ \n", "⎣ l⋅⎝m₁ + m₂⋅sin (θ(t))⎠ \n", "\n", " ⎤\n", " ⎥\n", " ⎥\n", " ⎥\n", " ⎥\n", " ⎥\n", " ⎥\n", " ⎥\n", " ⎥\n", " ⎥\n", "⋅f(t) ⎥\n", " ⎥\n", "───── ⎥\n", " ⎥\n", " ⎥\n", " ⎥\n", " ⎞ ⎥\n", " ⎟ ⎥\n", "s(θ(t))⎟ ⎥\n", " ⎠ ⎥\n", "─────────⎥\n", " ⎥\n", " ⎦" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Make the call to set up in state-space-ish form q_dot = f(q, t)\n", "lrhs = LM.rhs()\n", "\n", "# Simplify the results\n", "lrhs.simplify()\n", "\n", "# Output the result\n", "lrhs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also linearize these equations with builtin SymPy methods. Let's do so about the $x = \\dot{x} = \\theta = \\dot{\\theta} = 0$ operating point. The resulting equations returned are a system of first order ODEs in state-space form:\n", "\n", "$$ \\dot{x} = Ax + Bu $$\n", "\n", "See the [SymPy Documentation](http://docs.sympy.org/0.7.6/modules/physics/mechanics/linearize.html#linearizing-lagrange-s-equations) for much more information." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Define the point to linearize around\n", "operating_point = {x: 0.0, x_dot: 0.0, theta: 0.0, theta_dot: 0.0}\n", "\n", "# Make the call to the linearizer\n", "A, B, inp_vec = LM.linearize([x, theta], [x_dot, theta_dot],\n", " op_point = operating_point, \n", " A_and_B = True)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left[\\begin{matrix}0 & 0 & 1 & 0\\\\0 & 0 & 0 & 1\\\\- \\frac{1.0 k}{m_{1}} & - \\frac{g m_{2}}{m_{1}} & 0 & 0\\\\- \\frac{1.0 k}{l m_{1}} & - \\frac{g \\left(m_{1} + m_{2}\\right)}{l m_{1}} & 0 & 0\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ 0 0 1 0⎤\n", "⎢ ⎥\n", "⎢ 0 0 0 1⎥\n", "⎢ ⎥\n", "⎢-1.0⋅k -g⋅m₂ ⎥\n", "⎢─────── ────── 0 0⎥\n", "⎢ m₁ m₁ ⎥\n", "⎢ ⎥\n", "⎢-1.0⋅k -g⋅(m₁ + m₂) ⎥\n", "⎢─────── ───────────── 0 0⎥\n", "⎣ l⋅m₁ l⋅m₁ ⎦" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# simplify and print out the A matrix\n", "A.simplify()\n", "A" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADEAAABmCAMAAABVyYlhAAAAP1BMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFBd4eAAAAFHRS\nTlMAMquZdlQQQO0wRIlmzd0i77t8bBwggJIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAIpSURBVFgJ\n7ZjbduMgDEWFIaQ1xJcO//+tlUSbAkK4npWXdIWHGGxti4tyEAaTuExwVJZsCGCSdVguNeBtiMFU\n9yKZTYmI+kG2uuEb/LJWCDWiRsSNHocb/VZFJXYe1iX5yhwbKpGYmFMzOp3wydLL5+R+62NNgUxN\nvpSU1qs1+zhBnO8V5JFffj9y2HfqfDwxu3kF7YkVhIWiZJPxo80VWgeMOgnoa14uQVXXfVRmReNF\nFJNxUH22ueooHI9QH8dL4doQ0ObqGRXumq7t8FANeY/qKNyHtqu9FE7MohYlwvB+47GEkRsUetJ9\nGDst964UFZ0AuKiEdyJd4Xf2iRXzjn5+NfLx5wn+GxZLwVV9PVa7pElkcKM1b9/93dZ9fFu0V0Hk\nRFv8/nCC+Hmk1P6PuL69K+/r3f73pkdiz/4xsxttNM5ZcG7v5Hw9H3FOEWCbPLh86sFaWcRcrd7R\nnzXNAJZS9zls9alFEAAUTIaCkPJXuhwSlOM6zKjXBDyQQwINs5+4A58oDomZxnvDnqxT4DEfEtT1\nqpwgWEWNS7Y6S3Xm6svBY1X0zyucun88cOTPq6JCPcsbOeD0SKwivmi0hN/l2bcwx2pLwNxdtgIS\nRODvC4VFWxXEDeVtWASRUBOGQtoSLG1DIW0JlrahkLbEzvvxSEhbYjOknCMhbYkE6GQopJng6OHd\nwgbcBjQhvX8j8/Tpyzk01cqXkPI3MtfJPFpOCGlrcNz+BHqhKcCDB6zsAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left[\\begin{matrix}0\\\\0\\\\\\frac{1}{m_{1}}\\\\\\frac{1}{l m_{1}}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ 0 ⎤\n", "⎢ ⎥\n", "⎢ 0 ⎥\n", "⎢ ⎥\n", "⎢ 1 ⎥\n", "⎢ ── ⎥\n", "⎢ m₁ ⎥\n", "⎢ ⎥\n", "⎢ 1 ⎥\n", "⎢────⎥\n", "⎣l⋅m₁⎦" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# simplify and print out the B matrix\n", "B.simplify()\n", "B" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Checking the Result\n", "These equations match the linearized equations of motion from the top of this notebook, if they are written as a system of first order ODEs, rather than two second-order ODEs.\n", "To begin, let's define a state vector $\\mathbf{w} = \\left[x \\quad \\theta \\quad \\dot{x} \\quad \\dot{\\theta}\\right]^T $\n", "\n", "As mentioned above, we'll most often see the state space form writen as:\n", "\n", "$ \\quad \\dot{x} = Ax + Bu $\n", "\n", "where $x$ is the state vector, $A$ is the state transition matrix, $B$ is the input matrix, and $u$ is the input. We'll use $\\mathbf{w}$ here and in the code to avoid confusion with our state $x$, the position of $m_1$.\n", "\n", "To begin, let's write the two equations of motion as:\n", "\n", "$ \\quad \\ddot{x} = \\frac{1}{m_1 + m_2} \\left(m_2 l \\ddot{\\theta} - k x + f \\right)$\n", "\n", "$ \\quad \\ddot{\\theta}= \\frac{1}{m_2 l^2} \\left(m_2 l \\ddot{x} - m_2 g l \\theta\\right) = \\frac{1}{l}\\ddot{x} - \\frac{g}{l}\\theta $\n", "\n", "After some algebra and using the state vector defined above, we can write our equations of motion as:\n", "\n", "$$ \\dot{\\mathbf{w}} = \\begin{bmatrix}0 & 0 & 1 & 0\\\\ 0 & 0 & 0 & 1 \\\\ -\\frac{k}{m_1} & -\\frac{m_2}{m_1}g & 0 & 0 \\\\ -\\frac{k}{m_1} & -\\left(\\frac{m_1 + m_2}{m_1}\\right)\\frac{g}{l} & 0 & 0 \\end{bmatrix}\\mathbf{w} + \\begin{bmatrix}0 \\\\ 0 \\\\ \\frac{1}{m_1} \\\\ \\frac{1}{m_1 l} \\end{bmatrix} f $$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "Now, we have the option of automating the creation of the functions necessary for use in the ODE solver, like we've done in [some other notebooks](http://nbviewer.ipython.org/github/DocVaughan/MCHE513---Intermediate-Dynamics/blob/master/Planar%20Crane%20with%20SymPy.ipynb). Here, let's manually generate the necessary functions to examine that case." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# import NumPy with namespace np\n", "import numpy as np\n", "\n", "# import the ode ODE solver\n", "from scipy.integrate import odeint\n", "\n", "# import the plotting functions from matplotlib\n", "import matplotlib.pyplot as plt\n", "\n", "# set up the notebook to display the plots inline\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Define the system parameters\n", "m1 = 10.0 # Trolley mass (kg)\n", "m2 = 1.0 # Payload mass (kg)\n", "g = 9.81 # Gravity (m/s^2)\n", "k = 4 * np.pi**2 # Spring constant (N/m)\n", "l = 2.0 # Cable length (m)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To use ```scipy.intergrate.odeint``` we need to define a funciton that represents the system of first order differential equations we want to solve. Here, that is simply the system of equations of motion. The ```odeint``` funciton requires the the arguments of this function be ```w, t, p```, where ```w``` is the vector of states, ```t``` is the time, and ```p``` is a list of other parameters, as necessary. The function should returnn the system as a list.\n", "\n", "We'll also define the forcing function, with arguments following the order of those requried by ```odeint```." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Define the system as a series of 1st order ODES (beginnings of state-space form)\n", "def eq_of_motion(w, t, p):\n", " \"\"\"\n", " Defines the differential equations for the coupled spring-mass system.\n", "\n", " Arguments:\n", " w : vector of the state variables:\n", " w = [x, theta, x_dot, theta_dot]\n", " t : time\n", " p : vector of the parameters:\n", " p = [m1, m2, k, l, g, wf]\n", " \n", " Returns:\n", " sysODE : An list representing the system of equations of motion as 1st order ODEs\n", " \"\"\"\n", " x, theta, x_dot, theta_dot = w\n", " m1, m2, k, l, g, wf = p\n", "\n", " # Create sysODE = (x', theta', x_dot', theta_dot'):\n", " sysODE = [x_dot,\n", " theta_dot,\n", " -k/m1 * x - m2/m1 * g * theta + f(t,p)/m1,\n", " -k/(m1 * l) * x - (m1 + m2)/m1 * g/l * theta + f(t, p)/(m1 * l)]\n", " \n", " return sysODE\n", "\n", "\n", "\n", "# Define the forcing function\n", "def f(t, p):\n", " \"\"\" \n", " Defines the forcing function\n", " \n", " Arguments:\n", " t : time\n", " p : vector of the parameters:\n", " p = [m1, m2, k, l, g, wf]\n", " \n", " Returns:\n", " f : forcing function at current timestep\n", " \"\"\"\n", " \n", " m1, m2, k, l, g, wf = p\n", " \n", " # Uncomment below for no force input - use for initial condition response\n", " #f = 0.0 \n", " \n", " # Uncomment below for sinusoidal forcing input at frequency wf rad/s\n", " f = np.sin(wf * t)\n", " \n", " return f" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Set up simulation parameters \n", "\n", "# ODE solver parameters\n", "abserr = 1.0e-9\n", "relerr = 1.0e-9\n", "max_step = 0.01\n", "stoptime = 25.0\n", "numpoints = 2501\n", "\n", "# Create the time samples for the output of the ODE solver\n", "t = np.linspace(0.0, stoptime, numpoints)\n", "\n", "# Initial conditions\n", "x_init = 0.0 # initial position\n", "x_dot_init = 0.0 # initial velocity\n", "theta_init = 0.0 # initial angle\n", "theta_dot_init = 0.0 # initial angular velocity\n", "\n", "wf = np.sqrt(k / m1) # forcing function frequency\n", "\n", "# Pack the parameters and initial conditions into arrays \n", "p = [m1, m2, k, l, g, wf]\n", "x0 = [x_init, theta_init, x_dot_init, theta_dot_init]" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Call the ODE solver.\n", "resp = odeint(eq_of_motion, x0, t, args=(p,), atol=abserr, rtol=relerr, hmax=max_step)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nDgKMffpvAQCLb/4IOjU/M/IOZt6EqNPsPfHrmjj5eyeAHkQBvBsR2bjcAuBuAMvif5sY33FWMUR0\nNYCdc0lp4wYYzxLRswcPHsS+uLJ/3759yRetoaEhbN68GWEYYmpqCs899xympqYQhiE2b96Mobix\nz9atW+c9vqOjI9Pxja7/yr/9G8Y++zmACJW/+Bh2VMrJ8VuXLUPn9dcBzNj/h3+EyclJ5dfXefzu\nJ2NPv97eTNdvaWn5meMrcSfLA8884+zfP/v4Spy8fnlsTNv1X3755YTr/fSxx5WMv97nLzv+xM87\nDrDp/Pyn44ZHU4cPOzH/U1NTiZR4Mv4+1+zxR48eTX39cleUEJ48cMCdv3/W8Qd//GMAUZBN5/Wf\n/+lPQcuWAUGAH3/nO1Ljb2lp0fr5je3eDQDwVqzQ8vkjDg7u/OEPnZn/RsePf/krCI8cwczZZwOX\nXYqOjg6t128azKzlBWCbrnPn6bVp0ybOM0rPPsf9vX3cf/oGntm2re57xr/6Ve7v7eNDP/+LHAaB\n4RHKIwxD3r/hTO7v7eNgdFT5+Q9e9Hru7+3j8s6dys+tA2P33Mv9vX189KN/rPU6M1u3RvfLm39B\n63VkMfSBD3J/bx9PPPh1rdcp79rF/b19fPANb9R6nTSYeeWVZC3rRmnLFu7v7ePDl12h/VqyOO4Z\nMTam9VrTTz0VfR6/8mtaryOLmW3bo/v1jW/Wcv4wCLj/tPXRZz05qeUaqjH58CPRZ/L6/8JhpWLi\nktY5jakXgEsRdbQ93dL1lyJqarG0mffnmeuFYciH3/Z27u/t45H//Wd13xOMjfGB887n/t4+nvr2\ntw2PMBtGPv4X3N/bx8f+5lPKz33sM5+NeNP/+lPl59aBsFTi/jVrub/vVA5nZrRea+Cqa6L75Tvf\n0XodGUw//bSx/Xbw3e+JPodHHtV+rWYxeM27jM3NwK++g/t7+3j6qae0X0sWyTPi03+r/VqHL7uC\n+3v7uLR5s/ZryWDwXb8R3RuPP67l/CP/+8+iz/rvP6Pl/KoRVip88A1v5P7ePp586CFTl22Kp2Ry\nqCWi0+boUnsVHPAQORmQKmKbEsyM0ds+AQBYdP11KJ5xRt33dVx1Ffw1a1DZsQPTDz+sbTyqER45\nEpkRL10Cb/Fi6fPMNQf+OtG5LB8yCxX+gM2gVk7LrEaCrXIdmGps4WLXMlmfFCD9HHjdsSeew3Ja\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Let's plot the trolly position and cable angle as subplots, to make it easier to compare\n", "\n", "# Make the figure pretty, then plot the results\n", "# \"pretty\" parameters selected based on pdf output, not screen output\n", "# Many of these setting could also be made default by the .matplotlibrc file\n", "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12,4))\n", "\n", "plt.subplots_adjust(bottom=0.12,left=0.17,top=0.96,right=0.96)\n", "plt.setp(ax1.get_ymajorticklabels(),family='serif',fontsize=18)\n", "plt.setp(ax1.get_xmajorticklabels(),family='serif',fontsize=18)\n", "plt.setp(ax2.get_ymajorticklabels(),family='serif',fontsize=18)\n", "plt.setp(ax2.get_xmajorticklabels(),family='serif',fontsize=18)\n", "\n", "ax1.spines['right'].set_color('none')\n", "ax1.spines['top'].set_color('none')\n", "ax1.xaxis.set_ticks_position('bottom')\n", "ax1.yaxis.set_ticks_position('left')\n", "ax1.grid(True,linestyle=':',color='0.75')\n", "ax1.set_axisbelow(True)\n", "\n", "ax2.spines['right'].set_color('none')\n", "ax2.spines['top'].set_color('none')\n", "ax2.xaxis.set_ticks_position('bottom')\n", "ax2.yaxis.set_ticks_position('left')\n", "ax2.grid(True,linestyle=':',color='0.75')\n", "ax2.set_axisbelow(True)\n", "\n", "\n", "# Trolley Position plot\n", "ax1.set_xlabel(r'Time (s)',family='serif',fontsize=22,weight='bold',labelpad=5)\n", "ax1.set_ylabel(r'Displacement (m)',family='serif',fontsize=22,weight='bold',labelpad=10)\n", "ax1.plot(t, resp[:,0], linewidth=2)\n", "\n", "\n", "# Cable Angle plot \n", "ax2.set_xlabel(r'Time (s)',family='serif',fontsize=22,weight='bold',labelpad=5)\n", "ax2.set_ylabel(r'Angle (deg)', family='serif', fontsize=22, weight='bold',labelpad=10)\n", "ax2.plot(t, resp[:,0] * 180/np.pi, linewidth=2)\n", "\n", "\n", "# Adjust the page layout filling the page using the new tight_layout command\n", "plt.tight_layout(pad=0.5)\n", "\n", "# If you want to save the figure, uncomment the commands below. \n", "# The figure will be saved in the same directory as your IPython notebook.\n", "# Save the figure as a high-res pdf in the current folder\n", "# savefig('MassSpringPend_Response.pdf', dpi=300)\n", "\n", "fig.set_size_inches(18,6) # Resize the figure for better display in the notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Licenses\n", "Code is licensed under a 3-clause BSD style license. See the licenses/LICENSE.md file.\n", "\n", "Other content is provided under a [Creative Commons Attribution-NonCommercial 4.0 International License](http://creativecommons.org/licenses/by-nc/4.0/), CC-BY-NC 4.0." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# This cell will just improve the styling of the notebook\n", "from IPython.core.display import HTML\n", "import urllib.request\n", "response = urllib.request.urlopen(\"https://cl.ly/1B1y452Z1d35\")\n", "HTML(response.read().decode(\"utf-8\"))" ] } ], "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.6.2" } }, "nbformat": 4, "nbformat_minor": 1 }