{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "indoor-syndrome", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "plt.style.use('fivethirtyeight')" ] }, { "cell_type": "markdown", "id": "aquatic-grain", "metadata": {}, "source": [ "# Compound pendulum with spring supports\n", "\n", "![creating equations of motion](../images/11_conservative-lagrangian.png)" ] }, { "cell_type": "markdown", "id": "structured-retention", "metadata": {}, "source": [ "In this notebook, you will use the two coupled equations of motion to create a _linear_ solution for $\\theta(t)~and~x(t)$ for a compound pendulum supported by two springs. \n", "\n", "After creating the Lagrangian, $L=T-V$, and setting the variation in $\\delta L=0$, you arrive at 2 coupled equations of motion:\n", "\n", "1. $\\frac{mL^2}{3}\\ddot{\\theta}+\\frac{mL}{4}\\ddot{x}\\cos\\theta-\\frac{mgL}{2}\\sin\\theta = 0$\n", "2. $m\\ddot{x}+\\frac{mL}{4}\\ddot{\\theta}\\cos\\theta-\\frac{ml^2}{4}\\dot{\\theta}^2+2kx = 0$" ] }, { "cell_type": "markdown", "id": "lined-nowhere", "metadata": {}, "source": [ "Here, you can assume $\\theta<<1$ which results in three simplifications:\n", "1. $\\dot{\\theta}^2\\approx 0$ because if $\\theta$ is small, then $\\dot{\\theta}$ small and squaring it is _really_ small\n", "2. $\\sin\\theta \\approx \\theta$ the first term in a Taylor series expanding at $\\theta=0$\n", "3. $\\cos\\theta \\approx 1$ the first term in a Taylor series expanding at $\\theta=0$\n", "\n", "Now, you can separate the equations into a linear system as such\n", "\n", "$\\mathbf{M\\ddot{q}+Kq}=\\mathbf{0}$\n", "\n", "where $\\mathbf{q}=[\\theta,~x]$ are the generalized coordinates for the system. The equations are now\n", "\n", "$\\left[\\begin{array}\n", "~\\frac{mL^2}{3} & \\frac{mL}{4} \\\\\n", "\\frac{mL}{4} & m\\end{array}\\right]\n", "\\left[\\begin{array}\n", "~\\ddot{\\theta} \\\\\n", "\\ddot{x}\\end{array}\\right]+\n", "\\left[\\begin{array}\n", "~\\frac{mgL}{2} & 0 \\\\\n", "0 & 2k \\end{array}\\right]\\left[\\begin{array}\n", "~\\theta \\\\\n", "x\\end{array}\\right]\n", "=0\n", "$" ] }, { "cell_type": "code", "execution_count": 45, "id": "acting-investor", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "mass matrix:\n", "[[0.33333333 0.25 ]\n", " [0.25 1. ]]\n", "stiffness matrix:\n", "[[ 4.905 0. ]\n", " [ 0. 40. ]]\n" ] } ], "source": [ "m = 1 # kg\n", "L = 1 # m\n", "g = 9.81 # m/s/s\n", "k = 20 # N/m\n", "\n", "M = np.array([[m*L**2/3,m*L/4],[m*L/4, m]])\n", "K = np.zeros((2,2))\n", "K[0,0] = m*g*L/2\n", "K[1,1] = 2*k\n", "\n", "print('mass matrix:')\n", "print(M)\n", "print('stiffness matrix:')\n", "print(K)" ] }, { "cell_type": "markdown", "id": "configured-isaac", "metadata": {}, "source": [ "To create a solution, you can either \n", "- solve the eigenvector problem\n", "- create the ode function and solve with `solve_ivp`\n", "\n", "## Eigenvector solution\n", "\n", "The system of equations can be reframed as an eigenvalue-eigenvector problem because it is a linear system\n", "let $\\mathbf{q} = \\mathbf{u}e^{i\\omega t}$\n", "\n", "$(-\\omega^2\\mathbf{Mu+Ku})e^{i\\omega t}=\\mathbf{0}$\n", "\n", "eigenvalue solutions take the [form](http://fourier.eng.hmc.edu/e161/lectures/algebra/node7.html):\n", "\n", "$\\mathbf{(-\\lambda B u+Au)}=\\mathbf{0}.$\n", "\n", "### Solve for eigenvalues and eigenvectors\n", "You can use [`scipy.linalg.eig`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.eig.html) to solve for the eigenvalues and eigenvectors as such" ] }, { "cell_type": "code", "execution_count": 46, "id": "convinced-interpretation", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "natural frequencies are:\n", "[3.66604064+0.j 7.34177666+0.j]\n", "eigenvectors are:\n", "[[-0.99209315 -0.71802945]\n", " [-0.12550371 0.69601272]]\n" ] } ], "source": [ "from scipy.linalg import eig\n", "\n", "e, v = eig(K,M)\n", "w = e**0.5\n", "print('natural frequencies are:')\n", "print(w)\n", "print('eigenvectors are:')\n", "print(v)" ] }, { "cell_type": "markdown", "id": "stopped-student", "metadata": {}, "source": [ "### Define the solution for $\\theta(t)$ and $x(t)$\n", "The eigenvalue solution gives you the form of the equations for $\\mathbf{q}(t)$ as such\n", "\n", "$\\left[\\begin{array}\n", "~\\theta(t) \\\\\n", "x(t)\\end{array}\\right] = a_1\\mathbf{u_1}e^{i\\omega_1 t} + \n", " a_2\\mathbf{u_2}e^{i\\omega_2 t} +\n", " a_3\\mathbf{u_1}e^{-i\\omega_1 t} +\n", " a_4\\mathbf{u_2}e^{-i\\omega_2 t}$\n", " \n", "### Plug in initial conditions and solve for integration constants\n", "There are 4 integration constants because there are two second order differential equations that were integrated two times. You can solve for $\\mathbf{a}=[a_1,~a_2,~a_3,~a_4]$ using the initial conditions as such\n", "\n", "$\\left[\\begin{array}\n", "~\\mathbf{u_1} & \\mathbf{u_2} & \\mathbf{u_1} & \\mathbf{u_2} \\\\\n", "i\\omega_1\\mathbf{u_1} & i\\omega_2\\mathbf{u_2} & -i\\omega_1\\mathbf{u_1} & -i\\omega_2\\mathbf{u_2}\n", "\\end{array}\\right]\n", "\\left[\\begin{array}\n", "~a_1\\\\\n", "a_2\\\\\n", "a_3\\\\\n", "a_4\\end{array}\\right] =\n", "\\left[\\begin{array}\n", "~\\theta(0)\\\\\n", "x(0)\\\\\n", "\\dot{\\theta}(0)\\\\\n", "\\dot{x}(0)\\end{array}\\right]$" ] }, { "cell_type": "code", "execution_count": 47, "id": "agreed-trial", "metadata": {}, "outputs": [], "source": [ "q0 = np.array([np.pi/6, 0, 0, 0])\n", "C = np.block([[v, v], [w*1j*v, -w*1j*v]])" ] }, { "cell_type": "markdown", "id": "manufactured-paris", "metadata": {}, "source": [ "In the above cell, you create the array with initial position and velocity as `q0` and use the array `C` to set up the system of equations using the eigenvectors and natural frequencies. \n", "\n", "Now, use `np.linalg.solve` to determine the constants, $\\mathbf{a}=[a_1,~a_2,~a_3,~a_4]=$ `A`." ] }, { "cell_type": "code", "execution_count": 49, "id": "protective-italic", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-0.2334229 +0.j, -0.04209038-0.j, -0.2334229 -0.j, -0.04209038+0.j])" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A = np.linalg.solve(C, q0)\n", "A" ] }, { "cell_type": "markdown", "id": "banned-farming", "metadata": {}, "source": [ "### Plug in integration constants and plot results\n", "\n", "Now, you have a solution for $\\theta(t)~and~x(t)$. Define your independent variable, time `t`, and plot the solution. The definitions for `theta` and `x` are based upon the eigenvalue solution defined above as such\n", "\n", "$\\left[\\begin{array}\n", "~\\theta(t) \\\\\n", "x(t)\\end{array}\\right] = a_1\\mathbf{u_1}e^{i\\omega_1 t} + \n", " a_2\\mathbf{u_2}e^{i\\omega_2 t} +\n", " a_3\\mathbf{u_1}e^{-i\\omega_1 t} +\n", " a_4\\mathbf{u_2}e^{-i\\omega_2 t}$" ] }, { "cell_type": "code", "execution_count": 50, "id": "boring-emergency", "metadata": {}, "outputs": [], "source": [ "t = np.linspace(0,2)\n", "theta = A[0]*v[0,0]*np.exp(1j*w[0]*t)+\\\n", " A[1]*v[0,1]*np.exp(1j*w[1]*t)+\\\n", " A[2]*v[0,0]*np.exp(-1j*w[0]*t)+\\\n", " A[3]*v[0,1]*np.exp(-1j*w[1]*t)\n", "\n", "x = A[0]*v[1,0]*np.exp(1j*w[0]*t)+\\\n", " A[1]*v[1,1]*np.exp(1j*w[1]*t)+\\\n", " A[2]*v[1,0]*np.exp(-1j*w[0]*t)+\\\n", " A[3]*v[1,1]*np.exp(-1j*w[1]*t)" ] }, { "cell_type": "markdown", "id": "irish-excerpt", "metadata": {}, "source": [ "> __Note__: The general solutions here could include imaginary numbers since the solution is $a e^{-i\\omega t}$. You can check the imaginary components of `theta` and `x` with `.imag`. You should see the maximum and minium are $<10^{-15}.$" ] }, { "cell_type": "code", "execution_count": 54, "id": "acting-passenger", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(t,theta.real,'b-', label=r'$\\theta$')\n", "plt.plot(t,x.real, 'r-', label = 'x')\n", "plt.title('Analytical solutions')\n", "plt.ylabel(r'$\\theta[rad]~and~x[m]$')\n", "plt.xlabel('t (s)')\n", "plt.legend();" ] }, { "cell_type": "markdown", "id": "indirect-value", "metadata": {}, "source": [ "## Numerical solution - `solve_ivp`\n", "\n", "The advantage to solving the system using the eigenvalue method is that you have an exact solution with analytical functions. This is only possible, for most situations, for _linear systems_. For _nonlinear systems_, you have to use a numerical integration technique such as Runge-Kutta or Euler integration. The [`scipy.integrate.solve_ivp`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html) function will create a numerical solution that is accurate for _linear_ and _nonlinear_ systems. \n", "\n", "First, set up a function that represents the two second-order differential equations as 4 first-order differential equations, $\\dot{\\mathbf{y}} = f(t,\\mathbf{y})$, where $\\mathbf{y}=[\\theta,~x,~\\dot{\\theta},~\\dot{x}]$\n", "\n", "1. $\\dot{y}_1 = y_3$\n", "1. $\\dot{y}_2 = y_4$\n", "3. & 4. $\\left[\\begin{array}\n", "~\\frac{mL^2}{3} & \\frac{mL}{4} \\\\\n", "\\frac{mL}{4} & m\\end{array}\\right]\n", "\\left[\\begin{array}\n", "~\\dot{y}_3 ~[\\ddot{\\theta}] \\\\\n", "\\dot{y}_4 ~[\\ddot{x}]\\end{array}\\right]=\n", "-\\left[\\begin{array}\n", "~\\frac{mgL}{2} & 0 \\\\\n", "0 & 2k \\end{array}\\right]\\left[\\begin{array}\n", "~\\theta \\\\\n", "x\\end{array}\\right]\n", "$\n", "\n", "> __Note__: Equations 3 & 4 will work with nonlinear equations too. You can define $\\mathbf{M}=f(\\theta,x)=\\left[\\begin{array}\n", "~\\frac{mL^2}{3} & \\frac{mL}{4}\\cos\\theta \\\\\n", "\\frac{mL}{4}\\cos\\theta & m\\end{array}\\right]$ where $\\theta=y_1$ and $x=y_2$. You can also use $-\\mathbf{Kq}=-\\left[\\frac{mgL}{2}\\sin\\theta,~2kx-\\frac{ml^2}{4}\\dot{\\theta}^2\\right]$ for the nonlinear stiffness component. \n", "\n", "### Set up first-order differential equations\n", "\n", "Below, you set up the 4 differential equations in the function, `couple_ode`" ] }, { "cell_type": "code", "execution_count": 55, "id": "complicated-pavilion", "metadata": {}, "outputs": [], "source": [ "def couple_ode(t, y):\n", " '''\n", " couple_ode(t, y) calculates the derivative of the state variable y \n", " based upon the current time, t, and current state, \n", " y = [theta, x, dtheta/dt, dx/dt]\n", " \n", " It is assumed that M and K were previously defined. If you update the mass\n", " and stiffness arrays, you must rerun this function to update the ode\n", " \n", " Parameters\n", " ----------\n", " t : current time\n", " y : current state variable [theta, x, dtheta/dt, dx/dt]\n", " Returns\n", " -------\n", " dy : the derivative of y [dtheta/dt, dx/dt, ddtheta, ddx] calculated with M and K arrays\n", " \n", " '''\n", " dy = np.zeros(y.shape)\n", " dy[0] = y[2]\n", " dy[1] = y[3]\n", " dy[2:4] = np.linalg.solve(M,-K@y[0:2])\n", " return dy" ] }, { "cell_type": "markdown", "id": "outer-ordinary", "metadata": {}, "source": [ "### Solve initial value problem\n", "\n", "The differential equations now exist as function defined in Python. You can test the function by running `couple_ode(t, q)` (as seen below, try some other value for $\\theta~and~x$). \n", "\n", "Now, you can input initial conditions and time period to create a numerical solution with `solve_ivp(ode_function, [start-time, end-time], [y1(0), y2(0), y3(0), y4(0)])`" ] }, { "cell_type": "code", "execution_count": 57, "id": "federal-roller", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0. , 0. , -1.81107692, 0.45276923])" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "couple_ode(0, np.array([0.1,0,0,0]))" ] }, { "cell_type": "code", "execution_count": 59, "id": "boolean-stocks", "metadata": {}, "outputs": [], "source": [ "from scipy.integrate import solve_ivp\n", "\n", "q0 = np.array([np.pi/6,0,0,0]) # initial conditions copied from above\n", "sol = solve_ivp(couple_ode, [0,2], q0, t_eval = t)" ] }, { "cell_type": "markdown", "id": "ruled-taiwan", "metadata": {}, "source": [ "### Compare analytical and numerical solutions\n", "\n", "Next, you can compare your analytical solution to your numerical solution. In this case, you should expect that the numerical solution will converge to the analytical solution. The analytical is the exact solution based upon the defined linear system. " ] }, { "cell_type": "code", "execution_count": 60, "id": "surgical-gambling", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(t,theta.real,'b-', label=r'$\\theta$')\n", "plt.plot(t,x.real, 'r-', label = 'x')\n", "plt.plot(sol.t, sol.y[0], 'bo')\n", "plt.plot(sol.t, sol.y[1], 'ro')\n", "plt.title('Numerical and analytical solutions\\nmarkers are numerical')\n", "plt.ylabel(r'$\\theta[rad]~and~x[m]$')\n", "plt.xlabel('t (s)')\n", "plt.legend();" ] }, { "cell_type": "code", "execution_count": 61, "id": "guided-chair", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(t, np.abs(sol.y[0]-theta.real))\n", "plt.plot(t, np.abs(sol.y[1]-x.real))" ] }, { "cell_type": "markdown", "id": "separate-homeless", "metadata": {}, "source": [ "## Wrapping up\n", "\n", "In this notebook, you solved a set of coupled second order differential equations using 2 methods:\n", "1. exact solution with eigenvalues and initial conditions\n", "2. approximate solution with `solve_ivp` and initial conditions\n", "\n", "You compared the results by plotting the solutions. " ] } ], "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.9.2" } }, "nbformat": 4, "nbformat_minor": 5 }