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

Planar Crane 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": [ "In this example, we'll determine the equations of motion for the planar crane model shown in Figure 1. The system consists of a point mass, $m$, connected to the crane trolley, which has mass $m_t$, by an ideal pin via a massless rod of length $l$. The rotation of the suspension cable is represented by $\\theta$. There is a force, $f$, acting on the crane trolley.\n", "\n", "

\n", "\t\"Planar
\n", " Figure 1: Planar Crane Model\n", "

" ] }, { "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 coordinates and other dynamic symbols\n", "x, theta, f = dynamicsymbols('x theta f')\n", "\n", "# Also define the first derivatives\n", "x_dot, theta_dot = dynamicsymbols('x theta', 1)\n", "\n", "# Define the symbols for the other paramters\n", "m, mt, g, l, t = sympy.symbols('m, m_t, g, l, t')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nw40d5+EFJYwAAAAASUVORK5CYII=\n", "text/latex": [ "$$g l m \\cos{\\left (\\theta{\\left (t \\right )} \\right )} + \\frac{l^{2} m}{2} \\left(\\frac{d}{d t} \\theta{\\left (t \\right )}\\right)^{2} + l m \\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}{2} \\left(\\frac{d}{d t} x{\\left (t \\right )}\\right)^{2} + \\frac{m_{t}}{2} \\left(\\frac{d}{d t} x{\\left (t \\right )}\\right)^{2}$$" ], "text/plain": [ " 2 \n", " 2 ⎛d ⎞ ⎛d \n", " l ⋅m⋅⎜──(θ(t))⎟ m⋅⎜──(x\n", " ⎝dt ⎠ d d ⎝dt \n", "g⋅l⋅m⋅cos(θ(t)) + ──────────────── + l⋅m⋅cos(θ(t))⋅──(θ(t))⋅──(x(t)) + ───────\n", " 2 dt dt 2\n", "\n", " 2 2\n", " ⎞ ⎛d ⎞ \n", "(t))⎟ mₜ⋅⎜──(x(t))⎟ \n", " ⎠ ⎝dt ⎠ \n", "────── + ──────────────\n", " 2 " ] }, "execution_count": 3, "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, mt)\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, m)\n", "\n", "# Define the potential energy of the payload - just gravity here\n", "mp.potential_energy = -m * g * l * sympy.cos(theta)\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": 4, "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": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nSUVORK5CYII=\n", "text/latex": [ "$$\\left[\\begin{matrix}- l m \\sin{\\left (\\theta{\\left (t \\right )} \\right )} \\left(\\frac{d}{d t} \\theta{\\left (t \\right )}\\right)^{2} + l m \\cos{\\left (\\theta{\\left (t \\right )} \\right )} \\frac{d^{2}}{d t^{2}} \\theta{\\left (t \\right )} + m \\frac{d^{2}}{d t^{2}} x{\\left (t \\right )} + m_{t} \\frac{d^{2}}{d t^{2}} x{\\left (t \\right )} - f{\\left (t \\right )}\\\\g l m \\sin{\\left (\\theta{\\left (t \\right )} \\right )} + l^{2} m \\frac{d^{2}}{d t^{2}} \\theta{\\left (t \\right )} + l m \\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 2 \n", "⎢ ⎛d ⎞ d d d \n", "⎢- l⋅m⋅sin(θ(t))⋅⎜──(θ(t))⎟ + l⋅m⋅cos(θ(t))⋅───(θ(t)) + m⋅───(x(t)) + mₜ⋅───(\n", "⎢ ⎝dt ⎠ 2 2 2 \n", "⎢ dt dt dt \n", "⎢ \n", "⎢ 2 2 \n", "⎢ 2 d d \n", "⎢ g⋅l⋅m⋅sin(θ(t)) + l ⋅m⋅───(θ(t)) + l⋅m⋅cos(θ(t))⋅───(x(t)) \n", "⎢ 2 2 \n", "⎣ dt dt \n", "\n", " ⎤\n", " ⎥\n", "x(t)) - f(t)⎥\n", " ⎥\n", " ⎥\n", " ⎥\n", " ⎥\n", " ⎥\n", " ⎥\n", " ⎥\n", " ⎦" ] }, "execution_count": 5, "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": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nSUVORK5CYII=\n", "text/latex": [ "$$\\left[\\begin{matrix}m + m_{t} & l m \\cos{\\left (\\theta{\\left (t \\right )} \\right )}\\\\l m \\cos{\\left (\\theta{\\left (t \\right )} \\right )} & l^{2} m\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ m + mₜ l⋅m⋅cos(θ(t))⎤\n", "⎢ ⎥\n", "⎢ 2 ⎥\n", "⎣l⋅m⋅cos(θ(t)) l ⋅m ⎦" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Output the inertia/mass matrix of the system\n", "LM.mass_matrix" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nTkSuQmCC\n", "text/latex": [ "$$\\left[\\begin{matrix}l m \\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 \\sin{\\left (\\theta{\\left (t \\right )} \\right )}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ 2 ⎤\n", "⎢ ⎛d ⎞ ⎥\n", "⎢l⋅m⋅sin(θ(t))⋅⎜──(θ(t))⎟ + f(t)⎥\n", "⎢ ⎝dt ⎠ ⎥\n", "⎢ ⎥\n", "⎣ -g⋅l⋅m⋅sin(θ(t)) ⎦" ] }, "execution_count": 7, "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": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\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 \\sin^{2}{\\left (\\theta{\\left (t \\right )} \\right )} + m_{t}} \\left(\\frac{g m}{2} \\sin{\\left (2 \\theta{\\left (t \\right )} \\right )} + l m \\sin{\\left (\\theta{\\left (t \\right )} \\right )} \\left(\\frac{d}{d t} \\theta{\\left (t \\right )}\\right)^{2} + f{\\left (t \\right )}\\right)\\\\- \\frac{1}{l \\left(m \\sin^{2}{\\left (\\theta{\\left (t \\right )} \\right )} + m_{t}\\right)} \\left(g \\left(m + m_{t}\\right) \\sin{\\left (\\theta{\\left (t \\right )} \\right )} + \\left(l m \\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", "⎢ g⋅m⋅sin(2⋅θ(t)) ⎛d ⎞ ⎥\n", "⎢ ─────────────── + l⋅m⋅sin(θ(t))⋅⎜──(θ(t))⎟ + f(t) ⎥\n", "⎢ 2 ⎝dt ⎠ ⎥\n", "⎢ ────────────────────────────────────────────────── ⎥\n", "⎢ 2 ⎥\n", "⎢ m⋅sin (θ(t)) + mₜ ⎥\n", "⎢ ⎥\n", "⎢ ⎛ ⎛ 2 ⎞ ⎞ ⎥\n", "⎢ ⎜ ⎜ ⎛d ⎞ ⎟ ⎟ ⎥\n", "⎢-⎜g⋅(m + mₜ)⋅sin(θ(t)) + ⎜l⋅m⋅sin(θ(t))⋅⎜──(θ(t))⎟ + f(t)⎟⋅cos(θ(t))⎟ ⎥\n", "⎢ ⎝ ⎝ ⎝dt ⎠ ⎠ ⎠ ⎥\n", "⎢───────────────────────────────────────────────────────────────────────⎥\n", "⎢ ⎛ 2 ⎞ ⎥\n", "⎣ l⋅⎝m⋅sin (θ(t)) + mₜ⎠ ⎦" ] }, "execution_count": 8, "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 operating point:\n", "\n", "$$ x = \\dot{x} = \\theta = \\dot{\\theta} = 0 $$\n", "\n", "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": 9, "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], \n", " [x_dot, theta_dot],\n", " op_point = operating_point, \n", " A_and_B = True)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nSUVORK5CYII=\n", "text/latex": [ "$$\\left[\\begin{matrix}0 & 0 & 1 & 0\\\\0 & 0 & 0 & 1\\\\0 & \\frac{g l^{2} m^{2}}{\\left(m + m_{t}\\right) \\left(- \\frac{l^{2} m^{2}}{m + m_{t}} + l^{2} m\\right)} & 0 & 0\\\\0 & - \\frac{g l m}{- \\frac{l^{2} m^{2}}{m + m_{t}} + l^{2} m} & 0 & 0\\end{matrix}\\right]$$" ], "text/plain": [ "⎡0 0 1 0⎤\n", "⎢ ⎥\n", "⎢0 0 0 1⎥\n", "⎢ ⎥\n", "⎢ 2 2 ⎥\n", "⎢ g⋅l ⋅m ⎥\n", "⎢0 ────────────────────────── 0 0⎥\n", "⎢ ⎛ 2 2 ⎞ ⎥\n", "⎢ ⎜ l ⋅m 2 ⎟ ⎥\n", "⎢ (m + mₜ)⋅⎜- ────── + l ⋅m⎟ ⎥\n", "⎢ ⎝ m + mₜ ⎠ ⎥\n", "⎢ ⎥\n", "⎢ -g⋅l⋅m ⎥\n", "⎢0 ─────────────── 0 0⎥\n", "⎢ 2 2 ⎥\n", "⎢ l ⋅m 2 ⎥\n", "⎢ - ────── + l ⋅m ⎥\n", "⎣ m + mₜ ⎦" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nMn71TCbof2gRnCmB8ydVAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left[\\begin{matrix}0\\\\0\\\\\\frac{1}{m + m_{t}} \\left(\\frac{l^{2} m^{2}}{\\left(m + m_{t}\\right) \\left(- \\frac{l^{2} m^{2}}{m + m_{t}} + l^{2} m\\right)} + 1\\right)\\\\- \\frac{l m}{\\left(m + m_{t}\\right) \\left(- \\frac{l^{2} m^{2}}{m + m_{t}} + l^{2} m\\right)}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ 0 ⎤\n", "⎢ ⎥\n", "⎢ 0 ⎥\n", "⎢ ⎥\n", "⎢ 2 2 ⎥\n", "⎢ l ⋅m ⎥\n", "⎢────────────────────────── + 1⎥\n", "⎢ ⎛ 2 2 ⎞ ⎥\n", "⎢ ⎜ l ⋅m 2 ⎟ ⎥\n", "⎢(m + mₜ)⋅⎜- ────── + l ⋅m⎟ ⎥\n", "⎢ ⎝ m + mₜ ⎠ ⎥\n", "⎢──────────────────────────────⎥\n", "⎢ m + mₜ ⎥\n", "⎢ ⎥\n", "⎢ -l⋅m ⎥\n", "⎢ ────────────────────────── ⎥\n", "⎢ ⎛ 2 2 ⎞ ⎥\n", "⎢ ⎜ l ⋅m 2 ⎟ ⎥\n", "⎢ (m + mₜ)⋅⎜- ────── + l ⋅m⎟ ⎥\n", "⎣ ⎝ m + mₜ ⎠ ⎦" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "B" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Given these two matrices, the system of equations match those that we'd expect:\n", "\n", "$$ \\begin{bmatrix}\\dot{w}_1 \\\\ \\dot{w}_2 \\\\ \\dot{w}_3 \\\\ \\dot{w}_4\\end{bmatrix} = A \\begin{bmatrix}w_1 \\\\ w_2 \\\\ w_3 \\\\ w_4 \\end{bmatrix} + B f(t)$$\n", "\n", "where:\n", "\n", "$$ \\mathbf{w} = \\begin{bmatrix}w_1 \\\\ w_2 \\\\ w_3 \\\\ w_4 \\end{bmatrix} = \\begin{bmatrix}x \\\\ \\theta \\\\ \\dot{x} \\\\ \\dot{\\theta}\\end{bmatrix} $$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simulation\n", "We can pass these equations of motion to numerical solver for simluation. To do so, we need to import [NumPy](http://numpy.org) and the [SciPy](http://www.scipy.org) ode solver, ```ode```. We'll also import [matplotlib](http://www.scipy.org) to enable plotting of the results.\n", "\n", "For a system as simple as this one, we could easily set up the necessary components for the numerical simulation manually. However, here will automate as much as possible. Following a similar procedure on more complicated systems would be necessary." ] }, { "cell_type": "code", "execution_count": 12, "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 ode\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": "markdown", "metadata": {}, "source": [ "Let's define the forcing function, so that it can be substituted into the generated equations of motion. Here, we'll use a simple bang-bang input." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# define the forcing function\n", "def force(t):\n", " # set the maximum force output\n", " fmax = 10.0\n", " \n", " # return a bang-bang command\n", " return fmax * ((t > 0.25) - 2 * (t >= 1.25) + (t >= 2.25))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's plot the input to make sure it matches the bang-bang profile we precribed." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnAAAAGVCAYAAAB+cswPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3W9sZWd+H/bvbySbloiV+McGYi+EaCkvQLAAK89wgRpI\nC3SXMvwibZB4RnIKtGlhL6nNi7axvTOrBm3RNu1mxhs7KApvhnKSd40ljg2nQYCFh9o0L5IAEUkR\nfMG96GKo9bLAuBtdDkcrirq71v31xXku5+rq8t5z7jz3/H7Pfb4fgJjh5TmXv/nqaPib5znPeURV\nQURERETpuGRdABERERFVwwaOiIiIKDFs4IiIiIgSwwaOiIiIKDFs4IiIiIgSwwaOiIiIKDFs4IiI\niIgSwwaOiIiIKDFs4IiIiIgSwwaOiIiIKDFPWhcw6X75l39Zv/Wtb1mXQURERGmQMgdxBG7M3nvv\nvbG+/9HR0VjfnwZj/naYvS3mb4v52/GSPRu4xJ2enlqXkDXmb4fZ22L+tpi/HS/Zi6pa1zDRVlZW\ndHt727oMIiIiSgOnUHPQbDatS8ga87fD7G0xf1vM346X7NnAJc7LXHyumL8dZm+L+dti/na8ZM8p\n1DEb9xRqu93GpUvsw60wfzvM3hbzt8X87dSQPadQc9BqtaxLyBrzt8PsbTF/W8zfjpfs2cAl7uDg\nwLqErDF/O8zeFvO3xfzteMmeU6hjNu4p1LOzMzz11FNje38ajPnbYfa2mL8t5m+nhuxLTaFO7E4M\nInIZwGuqeq3P19YAHIdPF1T1Von3q3xOHaampqxLyBrzt8PsbTF/W8zfjpfsJ24KVUQui8hNAK8A\nWOjz9TUAUNU7qnoHwJaI3B7ynpXPqcv+/r51CVlj/naYvS3mb4v52/GS/cSNwKnqLoDdMAK32ueQ\ndVW90n28iPQ77nHPqcVzzz1nXULWmL8dZm+L+dti/na8ZD9xDdwgIjID4HKfL52IyKqqbsU4p07z\n8/OVjtePPwZSve/x0iWIs2XzVfOneJi9LeZvi/nb8ZJ9Vg0ciinVkz6vH6No0vo1Y6OcU5tGo4HF\nxcVSx3609Raa6+vARz6WQFd1aXYWP/PP/ime/NznrEs5VyV/iovZ22L+tpi/HS/Z+xrOGL85PFqI\n0O0EwEUtdeVzRGRNRLZFZPv+/fvnT20+OjpCo9EAUGzFsbe3h3a7jbOzM+zs7ODs7Aztdht7e3vn\nW3U0Go2B5z/99NOlz3/v7t2ieRMBnngCeukS8MQTQ3+vnd9XOCf6+QDaDx7ge3/yJ1HzqzP/cXz/\nnM8/OTlJuv7Uz2f+zD/X8wGM9fuXNbGPEQn3wL3efe9auG/ttqq+0HPsJoBDVb3R530qn9PN02b2\nD//O/4oPvvkP8Mzf/u/wmb/5FetyKmmuvYqP/vk/x9w/+Cae+k/+snU5RERE48KdGC4w1+e1GQCD\ndqcd5ZxaVNqTbQKadW//4PCyJ16OmL0t5m+L+dvxkn1uDdw2isar1xyA3Yjn1Ob09LT8wZ3mR0o1\n91RCpfwpKmZvi/nbYv52vGSfVQOnqicADsPK0m4zF60mHeWcOlW6kfK8gRtPLeMkTptODzey5orZ\n22L+tpi/HS/ZT3ID12/aEwBuAnit80m4V26r6/MFEdnsadgGnmOpc7NkNT6boVKcTaGOlj/FwOxt\nMX9bzN+Ol+wnroELDdhNFE3XZRG53dlJAQBUdQPAPRFZFZGrAFZVdb3rLRZQPAB4rsI5ZqrMxSun\nUKPzci9Ejpi9LeZvi/nb8ZL9xD0HTlUPAQxcGRoasou+tgVgtso5lpaXl8sf7Gz0qpLzntPXn6FS\n/hQVs7fF/G0xfztesp+4EbjctFoVHsp7PgDHEbhYKuVPUTF7W8zfFvO34yV7NnCJOzg4qHB0wlOo\nTmuulj/FxOxtMX9bzN+Ol+zZwCVuaWmp+klOm6FSnE0Dj5Q/RcHsbTF/W8zfjpfs2cAlbmpqqvzB\nXMQQXaX8KSpmb4v522L+drxkzwYucfv7++UPdjZ6VUmn6XT2Z6iUP0XF7G0xf1vM346X7NnAJe65\n554rfzBH4KKrlD9FxextMX9bzN+Ol+zZwCVufn6+/MEpN3BOa66UP0XF7G0xf1vM346X7NnAJa7R\naFQ/yWcvVI6vGdTR8qcomL0t5m+L+dvxkj0buMRNT0+XP9jZ/WOToFL+FBWzt8X8bTF/O16yZwOX\nuJHugUtxCM7pIgYv90LkiNnbYv62mL8dL9mzgUtctb1Qw2+c3k+WIi974uWI2dti/raYvx0v2bOB\nS9zp6Wnlc5LcSstpzaPkT3Ewe1vM3xbzt+MlezZwiVtcXCx/cMqrUDucTaFWyp+iYva2mL8t5m/H\nS/Zs4BLXbDYrHO2r+ZkE1fKnmJi9LeZvi/nb8ZI9G7jEVZqLT3oEzuciBi/3QuSI2dti/raYvx0v\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Set the plot size - 3x2 aspect ratio is best\n", "fig = plt.figure(figsize=(6, 4))\n", "ax = plt.gca()\n", "plt.subplots_adjust(bottom=0.17, left=0.17, top=0.96, right=0.96)\n", "\n", "# Change the axis units to serif\n", "plt.setp(ax.get_ymajorticklabels(), family='serif', fontsize=18)\n", "plt.setp(ax.get_xmajorticklabels(), family='serif', fontsize=18)\n", "\n", "ax.spines['right'].set_color('none')\n", "ax.spines['top'].set_color('none')\n", "\n", "ax.xaxis.set_ticks_position('bottom')\n", "ax.yaxis.set_ticks_position('left')\n", "\n", "# Turn on the plot grid and set appropriate linestyle and color\n", "ax.grid(True,linestyle=':', color='0.75')\n", "ax.set_axisbelow(True)\n", "\n", "# Define the X and Y axis labels\n", "plt.xlabel('Time (s)', family='serif', fontsize=22, weight='bold', labelpad=5)\n", "plt.ylabel('Force (N)', family='serif', fontsize=22, weight='bold', labelpad=10)\n", "\n", "# Plot the force over 10 seconds\n", "force_plot_time = np.linspace(0.0, 10.0, 1001)\n", "plt.plot(force_plot_time, force(force_plot_time), linewidth=2, linestyle='-', label=r'Force')\n", "\n", "# uncomment below and set limits if needed\n", "# plt.xlim(0, 5)\n", "# plt.ylim(0, 10)\n", "\n", "# Create the legend, then fix the fontsize\n", "# leg = plt.legend(loc='upper right', ncol = 1, fancybox=True)\n", "# ltext = leg.get_texts()\n", "# plt.setp(ltext, family='serif', fontsize=20)\n", "\n", "# Adjust the page layout filling the page using the new tight_layout command\n", "plt.tight_layout(pad=0.5)\n", "\n", "# Uncomment to save the figure as a high-res pdf in the current folder\n", "# It's saved at the original 6x4 size\n", "# plt.savefig('Bang_Bang_Force.pdf')\n", "\n", "fig.set_size_inches(9, 6) # Resize the figure for better display in the notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From this plot, you can see why this type of command is called bang-bang. It \"bangs\" on, then \"bangs\" negative, then is zero for all other time.\n", "\n", "Now, let's continue setting up the simluation by creating a version of the generated equations of motion that we can use in a numerical ODE solver." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Define the states and state vector\n", "w1, w2, w3, w4 = sympy.symbols('w1 w2 w3 w4', cls=sympy.Function)\n", "w = [w1(t), w2(t), w3(t), w4(t)]\n", "\n", "# Set up the state definitions and parameter substitution\n", "sub_params = {x : w1(t),\n", " theta : w2(t), \n", " x_dot : w3(t),\n", " theta_dot : w4(t), \n", " mt : 10.0,\n", " m : 1.0,\n", " g : 9.81, \n", " l : 2.0, \n", " f: force(t)}\n", "\n", "# Create a function from the equations of motion\n", "# Here, we substitude the states and parameters as appropriate prior to the lamdification\n", "eq_of_motion = sympy.lambdify((t, w), \n", " lrhs.subs(sub_params))" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Set up the initial conditions for the solver\n", "x_init = 0.0 # Initial trolley position (m)\n", "x_dot_init = 0.0 # Initial trolley velocity (m/s)\n", "theta_init = 0.0 * np.pi/180 # Initial angle (rad)\n", "theta_dot_init = 0.0 # Initial angular velocity (rad/s)\n", "\n", "# Pack the initial conditions into an array\n", "x0 = [x_init, theta_init, x_dot_init, theta_dot_init]\n", "\n", "# Create the time samples for the output of the ODE solver\n", "sim_time = np.linspace(0.0, 10.0, 1001) # 0-10s with 1001 points in between" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Set up the initial point for the ode solver\n", "r = ode(eq_of_motion).set_initial_value(x0, sim_time[0])\n", " \n", "# define the sample time\n", "dt = sim_time[1] - sim_time[0] \n", "\n", "# pre-populate the response array with zeros\n", "response = np.zeros((len(sim_time), len(x0)))\n", "\n", "# Set the initial index to 0\n", "index = 0\n", "\n", "# Now, numerically integrate the ODE while:\n", "# 1. the last step was successful\n", "# 2. the current time is less than the desired simluation end time\n", "while r.successful() and r.t < sim_time[-1]:\n", " response[index, :] = r.y\n", " r.integrate(r.t + dt)\n", " index += 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, let's plot the results. The first column of the ```response``` vector is the position of the trolley, $x$, and the second column of the ```response``` vector is the angle of the pendulum, $\\theta$. We'll plot both below, after setting up plotting parameters to make the plot more readable." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot the payload response\n", "\n", "# Set the plot size - 3x2 aspect ratio is best\n", "fig = plt.figure(figsize=(6, 4))\n", "ax = plt.gca()\n", "plt.subplots_adjust(bottom=0.17, left=0.17, top=0.96, right=0.96)\n", "\n", "# Change the axis units to serif\n", "plt.setp(ax.get_ymajorticklabels(), family='serif', fontsize=18)\n", "plt.setp(ax.get_xmajorticklabels(), family='serif', fontsize=18)\n", "\n", "# Remove top and right axes border\n", "ax.spines['right'].set_color('none')\n", "ax.spines['top'].set_color('none')\n", "\n", "# Only show axes ticks on the bottom and left axes\n", "ax.xaxis.set_ticks_position('bottom')\n", "ax.yaxis.set_ticks_position('left')\n", "\n", "# Turn on the plot grid and set appropriate linestyle and color\n", "ax.grid(True,linestyle=':', color='0.75')\n", "ax.set_axisbelow(True)\n", "\n", "# Define the X and Y axis labels\n", "plt.xlabel('Time (s)', family='serif', fontsize=22, weight='bold', labelpad=5)\n", "plt.ylabel('Position (m)', family='serif', fontsize=22, weight='bold', labelpad=10)\n", "\n", "# Plot the data\n", "plt.plot(sim_time, response[:, 0], linewidth=2, linestyle='-', label = '$x$')\n", "\n", "# uncomment below and set limits if needed\n", "# plt.xlim(0, 5)\n", "# plt.ylim(-1, 1)\n", "\n", "# Create the legend, then fix the fontsize\n", "# leg = plt.legend(loc='upper right', ncol = 1, fancybox=True)\n", "# ltext = leg.get_texts()\n", "# plt.setp(ltext, family='serif', fontsize=20)\n", "\n", "# Adjust the page layout filling the page using the new tight_layout command\n", "plt.tight_layout(pad=0.5)\n", "\n", "# Uncomment to save the figure as a high-res pdf in the current folder\n", "# It's saved at the original 6x4 size\n", "# plt.savefig('Trolley_Response.pdf')\n", "\n", "fig.set_size_inches(9, 6) # Resize the figure for better display in the notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, let's plot the suspension cable angle, $\\theta$." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Set the plot size - 3x2 aspect ratio is best\n", "fig = plt.figure(figsize=(6, 4))\n", "ax = plt.gca()\n", "plt.subplots_adjust(bottom=0.17, left=0.17, top=0.96, right=0.96)\n", "\n", "# Change the axis units to serif\n", "plt.setp(ax.get_ymajorticklabels(), family='serif', fontsize=18)\n", "plt.setp(ax.get_xmajorticklabels(), family='serif', fontsize=18)\n", "\n", "# Remove top and right axes border\n", "ax.spines['right'].set_color('none')\n", "ax.spines['top'].set_color('none')\n", "\n", "# Only show axes ticks on the bottom and left axes\n", "ax.xaxis.set_ticks_position('bottom')\n", "ax.yaxis.set_ticks_position('left')\n", "\n", "# Turn on the plot grid and set appropriate linestyle and color\n", "ax.grid(True,linestyle=':', color='0.75')\n", "ax.set_axisbelow(True)\n", "\n", "# Define the X and Y axis labels\n", "plt.xlabel('Time (s)', family='serif', fontsize=22, weight='bold', labelpad=5)\n", "plt.ylabel('Angle (deg)', family='serif', fontsize=22, weight='bold', labelpad=10)\n", "\n", "# Plot the data\n", "plt.plot(sim_time, response[:, 1] * 180/np.pi, linewidth=2, linestyle='-', label = '$\\theta$')\n", "\n", "# uncomment below and set limits if needed\n", "# plt.xlim(0, 5)\n", "# plt.ylim(-1, 1)\n", "\n", "# Create the legend, then fix the fontsize\n", "# leg = plt.legend(loc='upper right', ncol = 1, fancybox=True)\n", "# ltext = leg.get_texts()\n", "# plt.setp(ltext, family='serif', fontsize=20)\n", "\n", "# Adjust the page layout filling the page using the new tight_layout command\n", "plt.tight_layout(pad=0.5)\n", "\n", "# Uncomment to save the figure as a high-res pdf in the current folder\n", "# It's saved at the original 6x4 size\n", "# plt.savefig('Payload_Response.pdf')\n", "\n", "fig.set_size_inches(9, 6) # Resize the figure for better display in the notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also plot the horizontal position of the trolley and payload over time, to better understand how they interact. To do so, we need to define the horizontal position of the payload, $x_p$. It is simply the position of the trolley, $x$, plus the horizontal position of the point mass relative to it, $l\\sin{\\theta}$:\n", "\n", "$$ x_p = x + l\\sin{\\theta} $$" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Define the horizontal position of the payload\n", "xp = response[:,0] + 2.0 * np.sin(response[:,1])" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Now plot the responses together\n", "\n", "# Set the plot size - 3x2 aspect ratio is best\n", "fig = plt.figure(figsize=(6, 4))\n", "ax = plt.gca()\n", "plt.subplots_adjust(bottom=0.17, left=0.17, top=0.96, right=0.96)\n", "\n", "# Change the axis units to serif\n", "plt.setp(ax.get_ymajorticklabels(), family='serif', fontsize=18)\n", "plt.setp(ax.get_xmajorticklabels(), family='serif', fontsize=18)\n", "\n", "# Remove top and right axes border\n", "ax.spines['right'].set_color('none')\n", "ax.spines['top'].set_color('none')\n", "\n", "# Only show axes ticks on the bottom and left axes\n", "ax.xaxis.set_ticks_position('bottom')\n", "ax.yaxis.set_ticks_position('left')\n", "\n", "# Turn on the plot grid and set appropriate linestyle and color\n", "ax.grid(True,linestyle=':', color='0.75')\n", "ax.set_axisbelow(True)\n", "\n", "# Define the X and Y axis labels\n", "plt.xlabel('Time (s)', family='serif', fontsize=22, weight='bold', labelpad=5)\n", "plt.ylabel('Position (m)', family='serif', fontsize=22, weight='bold', labelpad=10)\n", "\n", "# Plot the data\n", "plt.plot(sim_time, response[:, 0], linewidth=2, linestyle='--', label = 'Trolley')\n", "plt.plot(sim_time, xp, linewidth=2, linestyle='-', label = 'Payload')\n", "\n", "# uncomment below and set limits if needed\n", "# plt.xlim(0, 5)\n", "plt.ylim(0, 2)\n", "\n", "# Create the legend, then fix the fontsize\n", "leg = plt.legend(loc='upper right', ncol = 2, fancybox=True)\n", "ltext = leg.get_texts()\n", "plt.setp(ltext, family='serif', fontsize=20)\n", "\n", "# Adjust the page layout filling the page using the new tight_layout command\n", "plt.tight_layout(pad=0.5)\n", "\n", "# Uncomment to save the figure as a high-res pdf in the current folder\n", "# It's saved at the original 6x4 size\n", "# plt.savefig('TrolleyAndPayload_Response.pdf')\n", "\n", "fig.set_size_inches(9, 6) # Resize the figure for better display in the notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Given our choice of masses, we see that the payload is able to back-drive the trolley, causing the trolley to move opposite of the payload once the bang-bang command is over." ] }, { "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": 22, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# This cell will just improve the styling of the notebook\n", "# You can ignore it, if you are okay with the default sytling\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 }