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

Rolling Imbalance

\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": [ "The notebook will form the equations of motion for an unbalanced rolling cylinder, with eccentricity $\\epsilon$ and radius $R$. There is enough friction such that pure rolling (no slip) is maintained. The system is sketched in Figure 1.\n", "\n", "

\n", "\t\"Rolling
\n", " Figure 1: Rolling Cylinder with Imbalance\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, inertia\n", "from sympy.physics.mechanics import LagrangesMethod, Lagrangian\n", "from sympy.physics.mechanics import Particle, Point, ReferenceFrame, RigidBody\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 generalized coordinates - just 1DOF here\n", "theta = dynamicsymbols('theta')\n", "theta_dot = dynamicsymbols('theta', 1)\n", "\n", "# Define the other symbols needed\n", "R, e, m, g, Izz, t = sympy.symbols('R epsilon m g I_{zz} t')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "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", "P = N.orientnew('P', 'Axis', [-theta, N.z])\n", "\n", "# Define the point at the center of the cylinder and set its velocity\n", "A = Point('A')\n", "A.set_vel(N, R * theta_dot * N.x) # Pure rolling" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAS4AAAAaBAMAAAD78qx/AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRImr\nMhBQc+7aAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEu0lEQVRIDe1WXWgcVRT+Zje7STa7s6HRSl/s\nVCIhKBitIKLWFZaC4s++SJGAbLWKgsqqFAWFLIgVX0yCFaVouyIUgoJRrKIVui1IUVaTB6EKlQya\nglJojG1M8+f4nTt35t4mzZLUB33wkNn5zjnfd+bMnTNzA1xgT1zgrdW5NNWy6un6soDluucsZ83w\n0lTLy08Vlkf+9/+tFfD/6YVdU8DxDHavMrgJcjxAqFtCTgydXX4YWdPvBrJ+9pDoDNmEwMZ7Q4e/\nXTyuDRpbb+D5vV9LcbwJEIlQs2HJGI5sH26iYir3psk7fUBm28vAURVTMLP3cd0lcIeEzwKb68jt\nx19GuDqiRFHdgnBi6M7i89VFirpg8i3s4Ec/72NSxRScqnQMaUaiRJCbBbJLSHs4b4SrIpGE1M+E\nY6APaz6YaausWgO4mrmHkK+iQ7EUpNzXknQnQesSy0+jF/hDh5udRBJSfxOaBZepmva1E0gMIe/B\nHaIshJZ+o+AkU4N9eAS5tayXSEJqS82CbrBw6s57GIhtRV/OT3HOKXMpSpioAncxKPA1u8BuYebr\naHsbmXm0zotr7HTD46vXf6iK0899gdzzPQXmKNHUVMmGBxdua5szWvMc3S+PcVYo7lrE92+ceLFC\nUiulH9YwUAPup6ugXUBeQ0wcf3ZmHNnFxte/ixtbZp/ATdXccG4nkpVfgDJ9SjQ1UbBhNhh3gnES\nIovWa6TGiBLfDTxccabpJj1grNE4QNjNQ0G7wGMMYsBHt490AfmCuLFtrgosom0pPYrc0ogPuVVK\nNLWtbMMsFyuokhCZ7stRw6HEtwI3h0OcrgK7ANmQ9/BQ0C6gVoTc/Kj8yePG5KNiMilj/R/zMc4Q\nSWIhffZpQlCiqTkur4FZfm1MXx3F4va9xWKdKzpz2GP/ImZfNwJ8+9FeY8FwnifoKmgXUH0tqs/X\nVBUPkGLZ62d8DpCUGazxI+d+EpSIKdFU6ctAuyxp8Xy1bztDR4nZ19a4L/c8UkPMsK8Q2gXkOeb4\ndRgsYaqm7oSByGSlzHrNXInEPAOUaGqmbMOw7J7AP/CU6OK+8nIzUGLTF5+jO498hZmDvIaCYYHe\nOX9inwyx+nwdqbjttY4yPcs4prQir9Be4jv4CnCMPiWamijYUN/u7e+qZ0Cinq+WOjGU2PSV9GTh\nP5VMNw8FwwLOn2j3cYjBFj6O6yo/pCqbOoVnjLPq83308FHuHbSMvurjeiYp0dTUqA1Z1uV8peeq\nuoLuK7Nf9gEl5kPUz7GjBOxwhoXZz0NBXWCsxr2Ai5i6b9FD6qaKu+NBXTA6ZY73ELpfvdCJyw9/\ng/d7rqnRl3UPqS3jFnSDYHogOAdnzidJTPeFD56pQIlPBt+dDL59aa7OqS0Dp3b7ZEHeMIFRgYkC\n9wK1D0l27WYkarMIhQYmx8q6VtTXRUvz2qE55Qjpc3Kxzo2J67lOMxK1b4dqAxsZfi+UuZ0aXOwk\n+7aycN+OPJ5zgehkYtZpkcQtxEIDe2cRvBXHVwfJqOnJFRyOYPh/4YpM80CXTselua1EV2mutLJO\nn3aiu4xyV+BJgY7Hn/WZ44X8LUZmQRNsjjaE6ej/6Jh85EQ9xv8lcNkt7OZviTyV/BLLxfwAAAAA\nSUVORK5CYII=\n", "text/latex": [ "$$(R \\dot{\\theta} - \\epsilon \\operatorname{cos}\\left(\\theta\\right) \\dot{\\theta})\\mathbf{\\hat{n}_x} + \\epsilon \\operatorname{sin}\\left(\\theta\\right) \\dot{\\theta}\\mathbf{\\hat{n}_y}$$" ], "text/plain": [ "⎛ d d ⎞ d\n", "⎜R⋅──(θ(t)) - ε⋅cos(θ(t))⋅──(θ(t))⎟ n_x + ε⋅sin(θ(t))⋅──(θ(t)) n_y\n", "⎝ dt dt ⎠ dt" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Locate the center of mass relative to the cylinder center\n", "G = A.locatenew('G', -e * (sympy.sin(theta) * N.x + sympy.cos(theta) * N.y))\n", "\n", "# Define its velocity, working from the velocity of point A - needed for kinetic energy calculation\n", "G.v2pt_theory(A, N, P)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Create the inertia diadic for the cylinder. \n", "# Since the system is planar, set Ixx and Iyy to zero for simplicity\n", "Ic = inertia(P, 0, 0, Izz)\n", "\n", "# Define the cylinder as a rigid body\n", "cylinder = RigidBody('cylinder', G, P, m, (Ic, G))\n", "\n", "# Define the potential energy of the cyliner - just gravity here\n", "cylinder.potential_energy =-m * g * e * sympy.cos(theta)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\frac{I_{zz} \\left(\\frac{d}{d t} \\theta{\\left (t \\right )}\\right)^{2}}{2} + \\epsilon g m \\cos{\\left (\\theta{\\left (t \\right )} \\right )} + \\frac{m \\left(R^{2} - 2 R \\epsilon \\cos{\\left (\\theta{\\left (t \\right )} \\right )} + \\epsilon^{2}\\right) \\left(\\frac{d}{d t} \\theta{\\left (t \\right )}\\right)^{2}}{2}$$" ], "text/plain": [ " 2 \n", " ⎛d ⎞ ⎛ 2 2⎞ ⎛d \n", "I_{zz}⋅⎜──(θ(t))⎟ m⋅⎝R - 2⋅R⋅ε⋅cos(θ(t)) + ε ⎠⋅⎜──(θ(t))\n", " ⎝dt ⎠ ⎝dt \n", "────────────────── + ε⋅g⋅m⋅cos(θ(t)) + ───────────────────────────────────────\n", " 2 2 \n", "\n", " 2\n", "⎞ \n", "⎟ \n", "⎠ \n", "──\n", " " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Form the Lagrangian, then simplify and print\n", "L = Lagrangian(N, cylinder)\n", "L.simplify()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxAAAAA4BAMAAACfwAMIAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZqu7IjJ23e9UmRDN\niUTiMbt4AAAACXBIWXMAAA7EAAAOxAGVKw4bAAANAElEQVR4Ae1afYxcVRU/szuz8/FmZhdENATS\nacGNCtiFKhJAGSihiEl3gx8BJe4TsAoJ7IgVEIusgJoAwhBUPv5wR6oVpQ2jEi0C2QnxI8IqK2KN\nhNoJxtg/aHZp6ca2lPV3zr3vvjvz3ptd3Z2VOHsyc9+555x3fued+9699913iZaSXjyjupRwy1gR\nGcgVu2oRqmXxUmYgWUy8tpR4y1gRGUjW429EqDpI/Kbon9OHOijj4Zf65uifk254dB0kbW//nKu3\nSqVT8LQvekznHtvbP8+R4Fd03mOVzm0A/8rb2D/nChomcXrFB/S5WE3xe+gfvrAjuY/cTtTG/vl+\n857WWw7N7wdEmvjdA2eGqjtIeIBoju5jAclw7jInT5kmMSJmtkv7pGZnpxvEnVfJH6I29s/dFZPR\nvxiugUmPNlQ7t5IrURv75zH/MXgmIsc3Rcg7TZyttLN/vlGnM77tM+gCQ2msGCruMOGFO4bLbeyf\nY94C0u5id9Sbc7LSYTkPu9z8bXS233mEWSxMlhxQ5ztfpUwtwlUsqoUi7P8vxdv7aGs7L2y4rrxn\nDlFyMgLImYlQLIU4t/mRpYAxGFF4j1aprWPlwzqC1ACN1000TcxEU30pqy/QSUsJR1F4t5LT1tXn\nW/RVjk/SWOQFjxQjVQtSfGoeZ2+k4Tahh4M34rmekXOY0tNepQ3HxKva6XiZzkoXIxAG+yIUCxMn\n9PjU0stXaLDe0mCRlY14L3venQPUXfuWV1v8Y483acq6sWtzUf5ThSjNguTZ6rxOt9505mW/UCMb\nL2duwd/Q2wqTC3V9Dhz8hF0yQ7EiiqOYI+oelQOR0//nc69RfJMlW5W01X90MKhxuRpG1KjazZb5\nubtufmZzWHEQzhEw8qORRARPa8D7sqf/6dUf7a97lUA66cjZVWtO8dU+l/i6z8cHiPJnPogYwIBO\nwL+riIIIY3QzNVtCn5tuNoqoh6LSWrHuKhpUdXacZ8U9q1//vqo2l7HVe49f0wfwSrPGq1+4+X1g\nI1PgmakjB/H3xytkRSOJaLRCrRHvqoBeBMEk7SMaLIQYJw77wmyR6OJqb5WY+UWRnoTKqaEgGq/I\nwS6aLaGLzXe+EIpKvwLcRkHUqApOXXFvzQa3+d4Biu8lOsaW2Tw+We2qQxCVAtuWOIjEHYS296OR\nRDRaodaINxjQiyCQpASm+F37w42NlF1/nrDIzQzmRjkXxx34Ew27crCLgCWuACgefcdj5joa1FiF\nZMbBiApV+UiV2cXUJJcWGQCObfVQfjI/ZGkttqtKqVEV3JwpkGXTZB8dEIbnPxyJJII9Gkx0HY14\nOCeMAknqQSMkvQE37AyWbcQ9PUq9fczw66EziuN2/NEsZTlYRdASJxz0DayYfWEYZ1CTRZK3dkZU\nqMrHcJVPk5uaGY8MwMgQ0c3FSx+4V+w8tX9MleQenFcKiIN4O9GrwmRqKhJJBDs0mERNeJkB1jdT\nMEk82I6F2cY/Zk6Ol9BYFRouMyOvh3/AMVtngxVDXNoUtIQWPYRHVsyeyD+GodI66PmtnREVqvKB\nvICek9IqDMDpeJD20d2zs5bSZrOHpCEiU2DbShA3UuJAQzTEiWAymNSM1zMqBk1FMEm9BUrfglv2\n+ZX558/b0J/f8UGckrjy6NravXTp7R+/zEW1p4IOoE4jdTD54/f1E/0Y0gykRMFXtaAlzNANe6Ri\nfmpVH6W3XDlAe044/zJ3z+X1aFTCePfy2ae6gqhQlQ88m6DXpbQKkxS0/v0FpfBRLEOwSfT5OgWE\nkCwzZ9uLZXpqw98kGbBEEPk3qOeNhmgkEezRw+TLYvId4WNQCAWTNNx/+UHc1LvrlOs+jcavoftx\n2s+ISvQ00RfcOPda3XC+etWqu4WR18NjIY3VUNCuIpc2BS2hvdO3kJjzd0HwJxqs0OQa15mpp0ej\nUYlndfzWzogKVV33GsgoP8OlTV5SEns3nP0DrfBRbEs1wOgUcEiW2QXlxG2JjdTtSjKIg+jau+qd\n0w3RECeCSWPKZXHdd5QIHYCDSRqp0rFViuNLwiXJGg1O0gq42V0ll04lwrP9KqrJMtEmvvWY4e6R\n7sM/XUJBj1a5tCloCe03fAuJeRCesJ+ht5wob6L4YYpNR6PSl3Ay3/2MqFDVdeNWwXgZuFCvIXrw\nYfJZNsHD5qMogVdeC2ZEUkAIyTaboPR+9IeJ/ZIM4iCQIEzR7GgkEexLY/JlMVmOwrc3BpOEXPdO\nUtfBnX3V8TrhnfB4+Enuu4K4Ic4imkE1VSc6zN0jM7LEOgxpArnDk8IF0axH0yGW0N8gVkQvTUzc\nMDHxNK3e9kd+BRkuOlgJQ4t0DUSjEj89vHDJiPh7PuhGdpqVMJgTMkr1rqnn4BYKOb+9HrRpiM0z\nFRQqBRySZSbTi+EyLlySQRwEEgWJHQ1xIvyA5LJYYjniexynevmRY1iS0I8OFih15hPy9P+QiN/j\nnJdmK9wQePZ1Q2ClJDMqDYHmwqQV/4aGQF1TiCU0XkOAlZvn1ieqNNxHn8UtPk2ZEqXcaFS+dFm4\n1A3h+eDOE5c4wKVN+u7kvp9fI4R8FNuS+3uZSCAFxCH5ZtLjjdUxukkypCGwnPawMCYa1RDwoTHZ\nh5DvKPSJCCaJ1+zGKtRbwel4+m+i/GsO0Yf5DcxvCPRIgO51pWuaIhj8E+b5EkMGuqYQS5hdz7aK\nJGaezq4o0hnS1eEhmypWI1G5M8hPU1UQFaq6bmmIKZdo3bPrKb7psboFABYNnWYcpkyNH2VGsSld\nofNIp4DY1DczT8RBSYZ0TbgHZ4Qx0Ugi2KNuCA/OchS6BT6YJJ5D73KdbAHOvsnpztQ+JG5XWg3R\n3cf3AbZoMPMSfZtkjIrVcE7IYB20hNmdbKtIYuYcjhFejyg1yd8xtsbLfDGhqDw85mrpocBgzb0o\n7Roi+tFxLmXu2aH8e0mhkSHKzaD9mHwUbSSHTxBdQToF8nxZZhN4WFMVzJQkLBmsU/VcSRgTTfNg\nLbdGI17zrEl9NwokiXvYFe4l+TvIwTOEITM7OYlJX5Xey/2S7ppyFaIt8duQDjAPOS7RNoBlYIiR\nbohLm4KW0N7qW0hD7K5SdbzYhTnZYJ3nB7/PRaPynqxM4ecKUaGKD/ocO72Zi8fxd8rMgZRSXjBi\nMwkl9VGUjZTxm3Y+VJJBBingGUrVMrugj15IfA35kGTIxrCMe0FRMV40kgj2pTHZh7j2HeHVrYHU\nd6PmJGWe29tHmdNcevnTbr5EPQVKfw+Z3XP0cfWLZk+8aPYd9/6roDqhX14FBJjQ2iPg99f4Z2GI\nVqxzaVPQElrzzOqY8/1HU75/J/yhl7uM6MG3RqOySfyUPoWoUNV1T2G6d9LsydDWAbHeC0InZevs\nSqLNG5TUR/GscMxi5CyZFHBIlpnz7quLdOHO90gyYAyVs+URxZhoJBHsUWOyDyHfUWZASbxSfTcK\nTZJnEn3klQ0hzcgb9jqR8HimqHHnq22JS9CzF7bUMTPbXeEyigxqsqhMGFGhKh88iRNaT59EYySq\nqmYBaP1iHLwgZImDHXIkkgiuRGNmXdYz8c5XIvu7UWOSWDsHHePpNZNzIdghwmFmFfWWeWVWk22J\nGdaMJyd6zGOHWnzkZhuDyot+TIyoUJUP1U0hHSffM0Dn/vUtYmQB6PriHLwgzKZJjkQSwf7NRQXA\nxvXtAcUBXkPG2GgkjUkKnBoUdBe1TDNPourURCbzLaVFT4HxV5NlCUkao3Iz5Q7xfKAFGVQMWEyM\nqFGlTolRdexJ3Ik30IufVbV2lSoIePejCV8GbwzgSFPFsJ2eRu06I2lMkhFHM/EBrdMMh6KdJGvm\nNEyrtpqKZQlZ7jWjMEx65VVlUwljDKr+FMOIGlWbvyvstHbJ1nqOFSORmMbxdMHjF40oV+JZrf3d\nqDFJxrAFc46nEyZWRPUoJcpwGyt6Rr3/6ppvCUGXb6XV8zkYVP/jpEbVZ/OTuWSkggCcH40konUA\nsUmjz1ZkWcL0uFA0JMkY/leMt4mPd76qldkwN6mBMOmCZenKgl2024F5jnjnK68hN303WjR8rEAJ\nyc5X6QLDXA+6YdKFy767cBdt9sATXia18xVjaNN3I6VdjPIWcaJ2vnIXGEojxVBxBwnVztetge9G\ni5eCR8WV2vmK5Zxwen+4uIOkWJPDAjJ+baOpOrvGIIAVI/xC6X+6CTk0oiUXys5XrOW1j5IV9q12\nvsrKbAgUPtF0OKmdr7Jq265MqGkTluqx81VWZkOAUoUQYUeJ1M5XWbVt23XLCora+SorsyFAY8UQ\nYWeJZOerrCG37bpl6UTtfJWV2RAgvOp1OsnOV1m1bVsm8MI4B6XvmMNgWb0YGYjvn8vL9vpcFsv6\nxcjAfXM5OWMug2X9omQgU2jtJtaehabWoB2pxR7MVvRKK+WybhEzkKm3cuac2Eq7rOMM/BukDFED\nuktaDwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$R \\epsilon m \\sin{\\left (\\theta{\\left (t \\right )} \\right )} \\left(\\frac{d}{d t} \\theta{\\left (t \\right )}\\right)^{2} + \\epsilon g m \\sin{\\left (\\theta{\\left (t \\right )} \\right )} + \\left(I_{zz} + R^{2} m - 2 R \\epsilon m \\cos{\\left (\\theta{\\left (t \\right )} \\right )} + \\epsilon^{2} m\\right) \\frac{d^{2}}{d t^{2}} \\theta{\\left (t \\right )}$$" ], "text/plain": [ " 2 \n", " ⎛d ⎞ ⎛ 2 \n", "R⋅ε⋅m⋅sin(θ(t))⋅⎜──(θ(t))⎟ + ε⋅g⋅m⋅sin(θ(t)) + ⎝I_{zz} + R ⋅m - 2⋅R⋅ε⋅m⋅cos(θ\n", " ⎝dt ⎠ \n", " \n", "\n", " 2 \n", " 2 ⎞ d \n", "(t)) + ε ⋅m⎠⋅───(θ(t))\n", " 2 \n", " dt " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# create an instance of the LagrangesMethod class\n", "LM = LagrangesMethod(L, [theta])\n", "\n", "# Form the equations of motion, then simplify and print\n", "eq_of_motion = LM.form_lagranges_equations()\n", "sympy.collect(sympy.simplify(eq_of_motion)[0], theta)" ] }, { "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": 8, "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": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$$\\left[\\begin{matrix}\\frac{d}{d t} \\theta{\\left (t \\right )}\\\\\\frac{- \\epsilon g m \\sin{\\left (\\theta{\\left (t \\right )} \\right )} + \\frac{m \\left(2 \\epsilon^{2} \\sin{\\left (\\theta{\\left (t \\right )} \\right )} \\cos{\\left (\\theta{\\left (t \\right )} \\right )} \\left(\\frac{d}{d t} \\theta{\\left (t \\right )}\\right)^{2} + 2 \\epsilon \\left(R \\frac{d}{d t} \\theta{\\left (t \\right )} - \\epsilon \\cos{\\left (\\theta{\\left (t \\right )} \\right )} \\frac{d}{d t} \\theta{\\left (t \\right )}\\right) \\sin{\\left (\\theta{\\left (t \\right )} \\right )} \\frac{d}{d t} \\theta{\\left (t \\right )}\\right)}{2} - \\frac{m \\left(4 \\epsilon^{2} \\sin{\\left (\\theta{\\left (t \\right )} \\right )} \\cos{\\left (\\theta{\\left (t \\right )} \\right )} \\left(\\frac{d}{d t} \\theta{\\left (t \\right )}\\right)^{2} + \\epsilon \\left(2 R - 2 \\epsilon \\cos{\\left (\\theta{\\left (t \\right )} \\right )}\\right) \\sin{\\left (\\theta{\\left (t \\right )} \\right )} \\left(\\frac{d}{d t} \\theta{\\left (t \\right )}\\right)^{2} + 2 \\epsilon \\left(R \\frac{d}{d t} \\theta{\\left (t \\right )} - \\epsilon \\cos{\\left (\\theta{\\left (t \\right )} \\right )} \\frac{d}{d t} \\theta{\\left (t \\right )}\\right) \\sin{\\left (\\theta{\\left (t \\right )} \\right )} \\frac{d}{d t} \\theta{\\left (t \\right )}\\right)}{2}}{I_{zz} + \\frac{m \\left(2 \\epsilon^{2} \\sin^{2}{\\left (\\theta{\\left (t \\right )} \\right )} + \\left(R - \\epsilon \\cos{\\left (\\theta{\\left (t \\right )} \\right )}\\right) \\left(2 R - 2 \\epsilon \\cos{\\left (\\theta{\\left (t \\right )} \\right )}\\right)\\right)}{2}}\\end{matrix}\\right]$$" ], "text/plain": [ "⎡ \n", "⎢ \n", "⎢ \n", "⎢ \n", "⎢ ⎛ 2 \n", "⎢ ⎜ 2 ⎛d ⎞ ⎛ d \n", "⎢ m⋅⎜2⋅ε ⋅sin(θ(t))⋅cos(θ(t))⋅⎜──(θ(t))⎟ + 2⋅ε⋅⎜R⋅──(θ(t)) \n", "⎢ ⎝ ⎝dt ⎠ ⎝ dt \n", "⎢-ε⋅g⋅m⋅sin(θ(t)) + ──────────────────────────────────────────────────────────\n", "⎢ 2 \n", "⎢─────────────────────────────────────────────────────────────────────────────\n", "⎢ \n", "⎢ \n", "⎢ \n", "⎣ \n", "\n", " d \n", " ──(θ(t)) \n", " dt \n", " \n", " ⎞ ⎛ \n", " d ⎞ d ⎟ ⎜ 2 ⎛d \n", "- ε⋅cos(θ(t))⋅──(θ(t))⎟⋅sin(θ(t))⋅──(θ(t))⎟ m⋅⎜4⋅ε ⋅sin(θ(t))⋅cos(θ(t))⋅⎜──(\n", " dt ⎠ dt ⎠ ⎝ ⎝dt \n", "─────────────────────────────────────────── - ────────────────────────────────\n", " \n", "──────────────────────────────────────────────────────────────────────────────\n", " ⎛ 2 2 \n", " m⋅⎝2⋅ε ⋅sin (θ(t)) + (R - ε⋅cos(θ(t)))⋅(2⋅R -\n", " I_{zz} + ─────────────────────────────────────────────\n", " 2 \n", "\n", " \n", " \n", " \n", " \n", " 2 2 \n", " ⎞ ⎛d ⎞ ⎛ d \n", "θ(t))⎟ + ε⋅(2⋅R - 2⋅ε⋅cos(θ(t)))⋅sin(θ(t))⋅⎜──(θ(t))⎟ + 2⋅ε⋅⎜R⋅──(θ(t)) - ε⋅\n", " ⎠ ⎝dt ⎠ ⎝ dt \n", "──────────────────────────────────────────────────────────────────────────────\n", " 2 \n", "──────────────────────────────────────────────────────────────────────────────\n", " ⎞ \n", " 2⋅ε⋅cos(θ(t)))⎠ \n", "──────────────── \n", " \n", "\n", " ⎤\n", " ⎥\n", " ⎥\n", " ⎥\n", " ⎞⎥\n", " d ⎞ d ⎟⎥\n", "cos(θ(t))⋅──(θ(t))⎟⋅sin(θ(t))⋅──(θ(t))⎟⎥\n", " dt ⎠ dt ⎠⎥\n", "───────────────────────────────────────⎥\n", " ⎥\n", "───────────────────────────────────────⎥\n", " ⎥\n", " ⎥\n", " ⎥\n", " ⎦" ] }, "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": "code", "execution_count": 10, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Define the states and state vector\n", "w1, w2 = sympy.symbols('w1 w2', cls=sympy.Function)\n", "w = [w1(t), w2(t)]\n", "\n", "# Set up the state definitions and parameter substitution\n", "sub_params = {theta: w1(t), \n", " theta_dot: w2(t), \n", " g : 9.81, \n", " e : 0.5,\n", " R : 1.0,\n", " m : 10.0,\n", " Izz : 0.5 * (0.9 * m) * R**2 + (0.1 * m) * e**2}\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": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Set up the initial conditions for the solver\n", "theta_init = 225 * np.pi/180 # Initial angle\n", "theta_dot_init = 0 # Initial angular velocity\n", "\n", "# Pack the initial conditions into an array\n", "x0 = [theta_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": 12, "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": "code", "execution_count": 13, "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[:, 0] * 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('Simple_Pendulum_Response.pdf')\n", "\n", "fig.set_size_inches(9, 6) # Resize the figure for better display in the notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's plot the planar position of the center of mass." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": true }, "outputs": [], "source": [ "x = 2 * 1.0 * np.pi * response[:,0] - 0.1 * np.sin(response[:,0])\n", "y = -0.1 * np.cos(response[:,0])" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\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": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 16, "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 }