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

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": [ "In this example, we'll determine the equations of motion for the spring pendulum system shown in Figure 1. The system consists of a point mass, $m$, connected to an ideal pin by a spring of stiffness $k$. The rotation of the pendulum is represented by $\\theta$ and the length of the spring by $R$. The equilibrium length of the spring is $L_0$.\n", "\n", "

\n", "\t\"Spring
\n", " Figure 1: Spring Pendulum\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": {}, "outputs": [], "source": [ "# Set up the display for retina screens\n", "#\n", "# Default setting can also be changes in in ipython_kernel_config.py\n", "# c.InlineBackend.figure_formats = set(['retina'])\n", "# See: https://twitter.com/miishke/status/670045268562329600\n", "\n", "from IPython.display import set_matplotlib_formats\n", "set_matplotlib_formats('retina')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Define the genearlized coordinate\n", "R, theta = dynamicsymbols('R theta')\n", "\n", "# Also define the first derivative\n", "R_dot, theta_dot = dynamicsymbols('R theta', 1)\n", "\n", "# Define the symbols for the other paramters\n", "m, g, k, l0, t = sympy.symbols('m g k L_0 t')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nscSA39EAAAAASUVORK5CYII=\n", "text/latex": [ "$$g m R{\\left (t \\right )} \\cos{\\left (\\theta{\\left (t \\right )} \\right )} - 0.5 k \\left(- L_{0} + R{\\left (t \\right )}\\right)^{2} + \\frac{m R^{2}{\\left (t \\right )} \\left(\\frac{d}{d t} \\theta{\\left (t \\right )}\\right)^{2}}{2} + \\frac{m \\left(\\frac{d}{d t} R{\\left (t \\right )}\\right)^{2}}{2}$$" ], "text/plain": [ " 2 2\n", " 2 ⎛d ⎞ ⎛d ⎞ \n", " m⋅R (t)⋅⎜──(θ(t))⎟ m⋅⎜──(R(t))⎟ \n", " 2 ⎝dt ⎠ ⎝dt ⎠ \n", "g⋅m⋅R(t)⋅cos(θ(t)) - 0.5⋅k⋅(-L₀ + R(t)) + ─────────────────── + ─────────────\n", " 2 2 " ] }, "execution_count": 4, "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 points and set its velocity\n", "P = Point('P')\n", "P.set_vel(N, R * theta_dot * A.x - R_dot * A.y)\n", "\n", "mp = Particle('mp', P, m)\n", "\n", "mp.potential_energy = -m * g * R * sympy.cos(theta) + 1/2 * k * (R - l0)**2\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", "# Here, there are no non-conservataive external forces\n", "forces = []\n", "\n", "# Form the Lagrangian\n", "L = Lagrangian(N, mp)\n", "\n", "# Print the Lagrangian as a check\n", "L" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# This creates a LagrangesMethod class instance that will \n", "# allow us to form the equations of motion, etc\n", "LM = LagrangesMethod(L, [R, theta], forcelist = forces, frame = N)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left[\\begin{matrix}- g m \\cos{\\left (\\theta{\\left (t \\right )} \\right )} - 1.0 k \\left(L_{0} - R{\\left (t \\right )}\\right) - m R{\\left (t \\right )} \\left(\\frac{d}{d t} \\theta{\\left (t \\right )}\\right)^{2} + m \\frac{d^{2}}{d t^{2}} R{\\left (t \\right )}\\\\m \\left(g \\sin{\\left (\\theta{\\left (t \\right )} \\right )} + R{\\left (t \\right )} \\frac{d^{2}}{d t^{2}} \\theta{\\left (t \\right )} + 2 \\frac{d}{d t} R{\\left (t \\right )} \\frac{d}{d t} \\theta{\\left (t \\right )}\\right) R{\\left (t \\right )}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ 2 2 ⎤\n", "⎢ ⎛d ⎞ d ⎥\n", "⎢-g⋅m⋅cos(θ(t)) - 1.0⋅k⋅(L₀ - R(t)) - m⋅R(t)⋅⎜──(θ(t))⎟ + m⋅───(R(t))⎥\n", "⎢ ⎝dt ⎠ 2 ⎥\n", "⎢ dt ⎥\n", "⎢ ⎥\n", "⎢ ⎛ 2 ⎞ ⎥\n", "⎢ ⎜ d d d ⎟ ⎥\n", "⎢ m⋅⎜g⋅sin(θ(t)) + R(t)⋅───(θ(t)) + 2⋅──(R(t))⋅──(θ(t))⎟⋅R(t) ⎥\n", "⎢ ⎜ 2 dt dt ⎟ ⎥\n", "⎣ ⎝ dt ⎠ ⎦" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Form the equations fo motion\n", "EqMotion = LM.form_lagranges_equations()\n", "\n", "# Print the simplified version of the equations of motion\n", "sympy.simplify(EqMotion)" ] }, { "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": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHYAAAAyBAMAAAB7QDJYAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMA74lUMhBEqyJ2u93N\nZplQnf8bAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADA0lEQVRIDe2WP2gUQRTGv+zebjZ3uSSoCFbZ\nQtCAf+6wszAbjJ1wF7ERwRxpLCxyhYUGJQc2GotcZTgLjY3RQEiIIBEED0WwM4qFlTlEmxghKkk8\nC89v5nb3spOLbi6tD3Zm3rz3m5l9M/N20Vn5jkbkcOUbdvaeaATF6d4kdjVECqgnHGt8fOtsmCMk\n25ow5hpl3wAHGmUngO60Codc8xowmKjLmvuuFy6bXfdVo68bv8nmfdVtyHm16EP030JSNfq6xeOT\nsn3VbUj2eKyIURsLqtHXLc67CZvuz4hQDPm+auMva0Y38AXYoyI1nbHqrh8rLAGzMH8aNWelNQks\nbLJHO2Csoq14TSFqKs8Gx1dExspaRXwZrbatGGtqLGFsvDOSNWfQkoX+1ak5Ky2ja2yjUbKKY1j1\nPxs2UqHzVd0Bw8dZW/ysjBCe3Y8rDbNzSOWCcPh5H2M0A1jzgn8vB/HYcwf3Sr1OER9eG5oUiMiU\nI9KhOScqj32Bs1IXfaq0j8Pi5ccTPq8AZnmjKHxcNt4BTeqiT5VUHhh2oJWAOB99GegSPi4b5RVc\nEXo9uesAz3L4QFssB+YIoI9tj23Pwvwh9Hpyj3P9gmmbDm7SHrOB1gwb7rz9JZhlqjUZuHRjLD9w\nO8Mevmsyi5NHjqZxBzg/PZFHW4n9LsvsHAl+/u3JvFHO6B1AZK0w/QnorFSAKSJMqogX17ElhY0k\nnoJfA6YxtKwg/pKuQh7xEUlPn2Gx2ZoNJk5Gr3kciHJub027iczyiXBMj2Ws9GCsuBNtM2jKA7TJ\n7aU3yHLQIBsdRzy4R9wJBnQwl0ZqHjq/R1K4ZnMZaTCz+vPybIhtWydNNviVWrIS4PZqZfoLYay0\nou4EYsUg9DnS6hU8+AvAcw14zbCWIwlpOMSjkT3DwqbqxgqnChc9qlpfAMaAY++wVLkKLBb8Xmtq\nnmfDoe6xVdM/y1iu6iLO11ZZcReErL8L1Z4Q5QPpE7iDIaiqy4isojlRbfF96+YcOdwWi55t/QNv\n49/7D+y5vaoPt+mQAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left[\\begin{matrix}m & 0\\\\0 & m R^{2}{\\left (t \\right )}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡m 0 ⎤\n", "⎢ ⎥\n", "⎢ 2 ⎥\n", "⎣0 m⋅R (t)⎦" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Output the inertia/mass matrix of the system\n", "LM.mass_matrix" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nc/WExYsr/wXHoYzBQC/8gAAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left[\\begin{matrix}g m \\cos{\\left (\\theta{\\left (t \\right )} \\right )} - 0.5 k \\left(- 2 L_{0} + 2 R{\\left (t \\right )}\\right) + m R{\\left (t \\right )} \\left(\\frac{d}{d t} \\theta{\\left (t \\right )}\\right)^{2}\\\\- g m R{\\left (t \\right )} \\sin{\\left (\\theta{\\left (t \\right )} \\right )} - 2 m R{\\left (t \\right )} \\frac{d}{d t} R{\\left (t \\right )} \\frac{d}{d t} \\theta{\\left (t \\right )}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ 2⎤\n", "⎢ ⎛d ⎞ ⎥\n", "⎢g⋅m⋅cos(θ(t)) - 0.5⋅k⋅(-2⋅L₀ + 2⋅R(t)) + m⋅R(t)⋅⎜──(θ(t))⎟ ⎥\n", "⎢ ⎝dt ⎠ ⎥\n", "⎢ ⎥\n", "⎢ d d ⎥\n", "⎢ -g⋅m⋅R(t)⋅sin(θ(t)) - 2⋅m⋅R(t)⋅──(R(t))⋅──(θ(t)) ⎥\n", "⎣ dt dt ⎦" ] }, "execution_count": 8, "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": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left[\\begin{matrix}\\frac{d}{d t} R{\\left (t \\right )}\\\\\\frac{d}{d t} \\theta{\\left (t \\right )}\\\\\\frac{g m \\cos{\\left (\\theta{\\left (t \\right )} \\right )} - 0.5 k \\left(- 2 L_{0} + 2 R{\\left (t \\right )}\\right) + m R{\\left (t \\right )} \\left(\\frac{d}{d t} \\theta{\\left (t \\right )}\\right)^{2}}{m}\\\\\\frac{- g m R{\\left (t \\right )} \\sin{\\left (\\theta{\\left (t \\right )} \\right )} - 2 m R{\\left (t \\right )} \\frac{d}{d t} R{\\left (t \\right )} \\frac{d}{d t} \\theta{\\left (t \\right )}}{m R^{2}{\\left (t \\right )}}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ d ⎤\n", "⎢ ──(R(t)) ⎥\n", "⎢ dt ⎥\n", "⎢ ⎥\n", "⎢ d ⎥\n", "⎢ ──(θ(t)) ⎥\n", "⎢ dt ⎥\n", "⎢ ⎥\n", "⎢ 2⎥\n", "⎢ ⎛d ⎞ ⎥\n", "⎢g⋅m⋅cos(θ(t)) - 0.5⋅k⋅(-2⋅L₀ + 2⋅R(t)) + m⋅R(t)⋅⎜──(θ(t))⎟ ⎥\n", "⎢ ⎝dt ⎠ ⎥\n", "⎢───────────────────────────────────────────────────────────⎥\n", "⎢ m ⎥\n", "⎢ ⎥\n", "⎢ d d ⎥\n", "⎢ -g⋅m⋅R(t)⋅sin(θ(t)) - 2⋅m⋅R(t)⋅──(R(t))⋅──(θ(t)) ⎥\n", "⎢ dt dt ⎥\n", "⎢ ──────────────────────────────────────────────── ⎥\n", "⎢ 2 ⎥\n", "⎣ m⋅R (t) ⎦" ] }, "execution_count": 9, "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 $\\theta = 0$, $\\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": 10, "metadata": {}, "outputs": [], "source": [ "# Define the point to linearize around\n", "operating_point = {R: l0, R_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([R, theta], [R_dot, theta_dot],\n", " op_point = operating_point, \n", " A_and_B = True)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left[\\begin{matrix}0 & 0 & 1 & 0\\\\0 & 0 & 0 & 1\\\\- \\frac{1.0 k}{m} & 0 & 0 & 0\\\\- \\frac{2 \\frac{d^{2}}{d t^{2}} \\theta{\\left (t \\right )}}{L_{0}} & - \\frac{g}{L_{0}} & 0 & 0\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ 0 0 1 0⎤\n", "⎢ ⎥\n", "⎢ 0 0 0 1⎥\n", "⎢ ⎥\n", "⎢ -1.0⋅k ⎥\n", "⎢ ─────── 0 0 0⎥\n", "⎢ m ⎥\n", "⎢ ⎥\n", "⎢ 2 ⎥\n", "⎢ d ⎥\n", "⎢-2⋅───(θ(t)) ⎥\n", "⎢ 2 ⎥\n", "⎢ dt -g ⎥\n", "⎢───────────── ─── 0 0⎥\n", "⎣ L₀ L₀ ⎦" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABUAAAAUBAMAAACQZWsAAAAAG1BMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAB4Gco9AAAACHRSTlMAdt3NMolEZgN4ymIAAAAJcEhZcwAADsQAAA7EAZUrDhsA\nAAAgSURBVAgdYyhWYwADRmUHBoYwCJs1AUgPI7YQzI9KDgASXg6/U+SevgAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\left[\\begin{matrix}\\end{matrix}\\right]$$" ], "text/plain": [ "[]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "B" ] }, { "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 we will automate as much as possible. Following a similar procedure on more complicated systems would be necessary." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "# import NumPy with namespace np\n", "import numpy as np\n", "\n", "# import the scipy 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": "code", "execution_count": 14, "metadata": {}, "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 = {R : w1(t),\n", " theta: w2(t),\n", " R_dot : w3(t),\n", " theta_dot: w4(t), \n", " m : 1.0,\n", " g : 9.81,\n", " k : 10.0,\n", " l0 : 2.0}\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": 15, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Set up the initial conditions for the solver\n", "R_init = 2.5 # Initial spring length\n", "R_dot_init = 0.0 # Initial radial velocity\n", "theta_init = 10.0 * np.pi/180 # Initial angle\n", "theta_dot_init = 0.0 # Initial angular velocity\n", "\n", "# Pack the initial conditions into an array\n", "x0 = [R_init, theta_init, R_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": 16, "metadata": {}, "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 radial position of the endpoint, $R$, and the second is angle of the pendulum, $\\theta$. We first plot $R$, then $\\theta$ below, after setting up plotting parameters to make the plot more readable." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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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", "# 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('Displacement (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 = 'R')\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('Spring_Pendulum_Response_Radial.pdf')\n", "\n", "fig.set_size_inches(9, 6) # Resize the figure for better display in the notebook" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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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", "# 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('Spring_Pendulum_Response_Angle.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 maybe get a better understanding of the response by plotting a planar view of the endpoint motion over time. To do so, we need to define the $x$ and $y$ position of the endpoint." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "# Defines the position of the endpoint in x-y\n", "# The origin is set as the pin location\n", "x = response[:,0] * np.sin(response[:,1])\n", "y = -response[:,0] * np.cos(response[:,1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, let's plot the position over time." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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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", "# 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('Horizontal Position (m)', family='serif', fontsize=22, weight='bold', labelpad=5)\n", "plt.ylabel('Vertical Position (m)', family='serif', fontsize=22, weight='bold', labelpad=10)\n", "\n", "# Plot the data\n", "plt.plot(x, y, linewidth=2, linestyle='-')\n", "\n", "# uncomment below and set limits if needed\n", "plt.xlim(-1, 1)\n", "plt.ylim(1.25*np.min(y), 0.01)\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('Spring_Pendulum_Response_Planar.pdf')\n", "\n", "fig.set_size_inches(9, 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", "# 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 }