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

Mass-Spring-Damper System with Direct Force Input

\n", "

MCHE 485: Mechanical Vibrations

\n", "

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

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

\n", "\t\"A
\n", " Figure 1: A Direct Force Mass-Spring-Damper System \n", "

\n", "\n", "This notebook simluates the free vibration of a simple mass-spring-damper system like the one shown in Figure 1. More specifically, we'll look at how system response to non-zero initial conditions. \n", "\n", "The equation of motion for the system is:\n", "\n", "$ \\quad m \\ddot{x} + c \\dot{x} + kx = f $\n", "\n", "We could also rewrite this equation by dividing by the mass, $m$.\n", "\n", "$ \\quad \\ddot{x} + \\frac{c}{m}\\dot{x} + \\frac{k}{m}x = \\frac{f}{m}$\n", "\n", "or equivalently:\n", "\n", "$ \\quad \\ddot{x} = - \\frac{k}{m}x - \\frac{c}{m}\\dot{x} + \\frac{f}{m}$\n", "\n", "For information on how to obtain this equation, you can see the lectures at the [class website](http://www.ucs.louisiana.edu/~jev9637/MCHE485.html)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To simluate this system using a numerical solver, we need to rewrite this equation of motion, which is a 2nd-order differential equation, as a system of 1st-order differential equations.\n", "\n", "To do so, define a state vector as $ \\bar{w} = \\left[x \\ \\dot{x}\\right]^T $. We can also define an input vector as $\\bar{u} = \\left[f \\right]$. Since we only have one input to this system, the input vector only has one element.\n", "\n", "Then, the system of first-order ODEs we have to solve is:\n", "\n", "$ \\quad \\dot{\\bar{w}} = g(\\bar{w}, \\bar{u}, t) $\n", "\n", "Writing these out, we have:\n", "\n", "$ \\quad \\dot{\\bar{w}} = \\left[\\dot{x} \\right.$\n", "\n", "$\\phantom{\\quad \\dot{\\bar{w}} = \\left[\\right.}\\left. -\\frac{k}{m}x - \\frac{c}{m}\\dot{x} - \\frac{f}{m}\\right] $\n", "\n", "Now, we can use that system of 1st-order differential equations to simulate the system.\n", "\n", "To begin we will import the NumPy library, the matplotlib plotting library, and the ```odeint``` ODE solver from the SciPy library." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np # Grab all of the NumPy functions with nickname np" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "# Import the plotting functions \n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Import the ODE solver\n", "from scipy.integrate import odeint" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We need to define two functions for the differential equation solver to use. The first is just the system of differential equations to solve. I've defined it below by ```eq_of_motion()```. It is just the system of equations we wrote above. The second is the input force as a function of time. I have called it ```f()``` below. Here, it is just a pulse input in force, lasting 0.5 second." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def eq_of_motion(w, t, p):\n", " \"\"\"\n", " Defines the differential equations for the direct-force mass-spring-damper system.\n", "\n", " Arguments:\n", " w : vector of the state variables:\n", " t : time\n", " p : vector of the parameters:\n", " \"\"\"\n", " x, x_dot = w\n", " m, k, c, StartTime, F_amp = p\n", "\n", " # Create sysODE = (x', x_dot')\n", " sysODE = [x_dot,\n", " -k/m * x - c/m * x_dot + f(t, p)/m]\n", " return sysODE\n", "\n", "\n", "def f(t, p):\n", " \"\"\"\n", " defines the disturbance force input to the system\n", " \"\"\"\n", " m, k, c, StartTime, F_amp = p\n", " \n", " # Select one of the two inputs below\n", " # Be sure to comment out the one you're not using\n", " \n", " # Input Option 1: \n", " # Just a step in force beginning at t=DistStart\n", " # f = F_amp * (t >= DistStart)\n", " \n", " # Input Option 2:\n", " # A pulse in force beginning at t=StartTime and ending at t=(StartTime + 0.5)\n", " f = F_amp * (t >= StartTime) * (t <= StartTime + 0.5)\n", " \n", " return f" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Define the System Parameters\n", "m = 1.0 # kg\n", "k = (2.0 * np.pi)**2 # N/m (Selected to give an undamped natrual frequency of 1Hz)\n", "wn = np.sqrt(k / m) # Natural Frequency (rad/s)\n", "\n", "z = 0.1 # Define a desired damping ratio\n", "c = 2 * z * wn * m # calculate the damping coeff. to create it (N/(m/s))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Set up simulation parameters\n", "\n", "# ODE solver parameters\n", "abserr = 1.0e-9\n", "relerr = 1.0e-9\n", "max_step = 0.01\n", "stoptime = 10.0\n", "numpoints = 10001\n", "\n", "# Create the time samples for the output of the ODE solver\n", "t = np.linspace(0.0, stoptime, numpoints)\n", "\n", "# Initial conditions\n", "x_init = 0.0 # initial position\n", "x_dot_init = 0.0 # initial velocity\n", "\n", "# Set up the parameters for the input function\n", "StartTime = 0.5 # Time the f(t) input will begin\n", "F_amp = 10.0 # Amplitude of Disturbance force (N)\n", "\n", "# Pack the parameters and initial conditions into arrays \n", "p = [m, k, c, StartTime, F_amp]\n", "x0 = [x_init, x_dot_init]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we will actually call the ode solver, using the ```odeint()``` function from the SciPy library. For more information on ```odeint```, see [the SciPy documentation](http://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.odeint.html)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Call the ODE solver.\n", "resp = odeint(eq_of_motion, x0, t, args=(p,), atol=abserr, rtol=relerr, hmax=max_step)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The solver returns the time history of each state. To plot an individual response, we just simply pick the corresponding column. Below, we'll plot the position of the mass as a function of time." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nCCMiIiJS8P8BWy3F84kbJRoAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Make the figure pretty, then plot the results\n", "# \"pretty\" parameters selected based on pdf output, not screen output\n", "# Many of these setting could also be made default by the .matplotlibrc file\n", "\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", "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('Position', family='serif', fontsize=22, weight='bold', labelpad=10)\n", "\n", "# Plot the first element of resp for all time. It corresponds to the position.\n", "plt.plot(t, resp[:,0], linewidth=2, linestyle = '-', label=r'Response')\n", "\n", "# uncomment below and set limits if needed\n", "# xlim(0,5)\n", "# ylim(0,10)\n", "\n", "# # Create the legend, then fix the fontsize\n", "# leg = plt.legend(loc='upper right', fancybox=True)\n", "# ltext = leg.get_texts()\n", "# plt.setp(ltext,family='serif',fontsize=18)\n", "\n", "# Adjust the page layout filling the page using the new tight_layout command\n", "plt.tight_layout(pad = 0.5)\n", "\n", "# save the figure as a high-res pdf in the current folder\n", "# It's saved at the original 6x4 size\n", "# plt.savefig('MCHE485_DirectForcePulseWithDamping.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": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# This cell will just improve the styling of the notebook\n", "from IPython.core.display import HTML\n", "import urllib.request\n", "response = urllib.request.urlopen(\"https://cl.ly/1B1y452Z1d35\")\n", "HTML(response.read().decode(\"utf-8\"))" ] } ], "metadata": { "anaconda-cloud": {}, "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 }