Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Initial Value Problems - Project\n",
"\n",
"![Initial condition of firework with FBD and sum of momentum](../images/firework.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We are going to end this module with a __bang__ by looking at the flight path of a firework. Shown above is the initial condition of a firework, the _Freedom Flyer_ in (a), its final height where it detonates in (b), the applied forces in the __Free Body Diagram (FBD)__ in (c), and the __momentum__ of the firework $m\\mathbf{v}$ and the propellent $dm \\mathbf{u}$ in (d). \n",
"\n",
"The resulting equation of motion is that the acceleration is proportional to the speed of the propellent and the mass rate change $\\frac{dm}{dt}$ as such\n",
"\n",
"$$\\begin{equation}\n",
"m\\frac{dv}{dt} = u\\frac{dm}{dt} -mg - cv^2.~~~~~~~~(1)\n",
"\\end{equation}$$\n",
"\n",
"If we assume that the acceleration and the propellent momentum are much greater than the forces of gravity and drag, then the equation is simplified to the conservation of momentum. A further simplification is that the speed of the propellant is constant, $u=constant$, then the equation can be integrated to obtain an analytical rocket equation solution of [Tsiolkovsky](https://www.math24.net/rocket-motion/) [1,2], \n",
"\n",
"$$\\begin{equation}\n",
"m\\frac{dv}{dt} = u\\frac{dm}{dt}~~~~~(2.a)\n",
"\\end{equation}$$\n",
"\n",
"$$\\begin{equation}\n",
"\\frac{m_{f}}{m_{0}}=e^{-\\Delta v / u},~~~~~(2.b) \n",
"\\end{equation}$$\n",
"\n",
"where $m_f$ and $m_0$ are the mass at beginning and end of flight, $u$ is the speed of the propellent, and $\\Delta v=v_{final}-v_{initial}$ is the change in speed of the rocket from beginning to end of flight. Equation 2.b only relates the final velocity to the change in mass and propellent speed. When you integrate Eqn 2.a, you will have to compare the velocity as a function of mass loss. \n",
"\n",
"Your first objective is to integrate a numerical model that converges to equation (2.b), the Tsiolkovsky equation. Next, you will add drag and gravity and compare the results _between equations (1) and (2)_. Finally, you will vary the mass change rate to achieve the desired detonation height. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1. Create a `simplerocket` function that returns the velocity, $v$, the acceleration, $a$, and the mass rate change $\\frac{dm}{dt}$, as a function of the $state = [position,~velocity,~mass] = [y,~v,~m]$ using eqn (2.a). Where the mass rate change $\\frac{dm}{dt}$ and the propellent speed $u$ are constants. The average velocity of gun powder propellent used in firework rockets is $u=250$ m/s [3,4]. \n",
"\n",
"$\\frac{d~state}{dt} = f(state)$\n",
"\n",
"$\\left[\\begin{array}{c} v\\\\a\\\\ \\frac{dm}{dt} \\end{array}\\right] = \\left[\\begin{array}{c} v\\\\ \\frac{u}{m}\\frac{dm}{dt} \\\\ \\frac{dm}{dt} \\end{array}\\right]$\n",
"\n",
"Use [two integration methods](../notebooks/03_Get_Oscillations.ipynb) to integrate the `simplerocket` function, one explicit method and one implicit method. Demonstrate that the solutions converge to equation (2.b) the Tsiolkovsky equation. Use an initial state of y=0 m, v=0 m/s, and m=0.25 kg. \n",
"\n",
"Integrate the function until mass, $m_{f}=0.05~kg$, using a mass rate change of $\\frac{dm}{dt}=0.05$ kg/s. \n",
"\n",
"_Hint: your integrated solution will have a current mass that you can use to create $\\frac{m_{f}}{m_{0}}$ by dividing state[2]/(initial mass), then your plot of velocity(t) vs mass(t)/mass(0) should match Tsiolkovsky's_"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"plt.rcParams.update({'font.size': 22})\n",
"plt.rcParams['lines.linewidth'] = 3"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def simplerocket(state,dmdt=0.05, u=250):\n",
" '''Computes the right-hand side of the differential equation\n",
" for the acceleration of a rocket, without drag or gravity, in SI units.\n",
" \n",
" Arguments\n",
" ---------- \n",
" state : array of three dependent variables [y v m]^T\n",
" dmdt : mass rate change of rocket in kilograms/s default set to 0.05 kg/s\n",
" u : speed of propellent expelled (default is 250 m/s)\n",
" \n",
" Returns\n",
" -------\n",
" derivs: array of three derivatives [v (u/m*dmdt) -dmdt]^T\n",
" '''\n",
" \n",
" dstate = np.array([state[1], (u/state[2])*dmdt, -dmdt])\n",
" return dstate"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"#explicit method\n",
"def rk2_step(state, rhs, dt):\n",
" '''Update a state to the next time increment using modified Euler's method.\n",
" \n",
" Arguments\n",
" ---------\n",
" state : array of dependent variables\n",
" rhs : function that computes the RHS of the DiffEq\n",
" dt : float, time increment\n",
" \n",
" Returns\n",
" -------\n",
" next_state : array, updated after one time increment'''\n",
" \n",
" mid_state = state + rhs(state) * dt*0.5 \n",
" next_state = state + rhs(mid_state)*dt\n",
" \n",
" return next_state"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"#implicit method\n",
"def heun_step(state,rhs,dt,etol=0.000001,maxiters = 100):\n",
" '''Update a state to the next time increment using the implicit Heun's method.\n",
" \n",
" Arguments\n",
" ---------\n",
" state : array of dependent variables\n",
" rhs : function that computes the RHS of the DiffEq\n",
" dt : float, time increment\n",
" etol : tolerance in error for each time step corrector\n",
" maxiters: maximum number of iterations each time step can take\n",
" \n",
" Returns\n",
" -------\n",
" next_state : array, updated after one time increment'''\n",
" e=1\n",
" eps=np.finfo('float64').eps\n",
" next_state = state + rhs(state)*dt\n",
" ################### New iterative correction #########################\n",
" for n in range(0,maxiters):\n",
" next_state_old = next_state\n",
" next_state = state + (rhs(state)+rhs(next_state))/2*dt\n",
" e=np.sum(np.abs(next_state-next_state_old)/np.abs(next_state+eps))\n",
" if e<etol:\n",
" break\n",
" ############### end of iterative correction #########################\n",
" return next_state"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"y0 = 0\n",
"v0 = 0\n",
"m0 = 0.25\n",
"mf = dmdt = 0.05\n",
"u = 250\n",
"dm = m0-mf\n",
"T = dm/dmdt\n",
"N = 50\n",
"dt = T/N\n",
"\n",
"num_heun_s = np.zeros([N,3])\n",
"num_rk2_s = np.zeros([N,3])\n",
"\n",
"num_heun_s[0,0] = y0\n",
"num_heun_s[0,1] = v0\n",
"num_heun_s[0,2] = m0\n",
"\n",
"num_rk2_s[0,0] = y0\n",
"num_rk2_s[0,1] = v0\n",
"num_rk2_s[0,2] = m0\n",
"\n",
"for i in range(N-1):\n",
" num_heun_s[i+1] = heun_step(num_heun_s[i], simplerocket, dt)\n",
" num_rk2_s[i+1] = rk2_step(num_rk2_s[i], simplerocket, dt)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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X//6lwI6bNgwj783p06d0po1a6qI6M6dO1VVNSMjI+fnjI+P1yuvvFKHDBmiSUlJetZZZymgx48fz7nHxo0bFdD27dvnufeOHTu0VatWCuiDDz6oWVnOd0FKSopGRkZqfHy8pqene4yre/fuCujs2bM9XvfElz87wHr18J0Y8jkVqtqssGsiMgW4GXhQVf+dq89uEfkSuAC4DpiWr18PoDFO1cw1gfYrbf3Pb8S4j7/nyMkM9qSms2TLPvq0bxCqcIwpV5qNWRjqEPyWMu7KUv/Mo0eP8sILLxAfH8+GDRsKzJPYsmWLx5UZnjz00EOsXbuWjh07smjRIurXrw84Kzyuv/56PvroI2655RY+/fRTv2Ldv38//fr1Y926dQwbNow33niD6OjonOspKSnceuutZGRkMGnSJO64446cax999BEDBgzg4Ycfplu3blxyySUA3HjjjTz88MPMnTuXiRMnUq1a3snz8+fP58iRI/Ts2ZPmzZ3h608++YS1a9fSvXt3Fi9enGcYKCsri5UrVxIbG+v1Z/niiy/o168fhw4dYvz48SQnJ+dcS0hI4KqrrmLevHm88847BVbpfPvtt6xatYpGjRrRv39/334TAxQOwx/+esp9fFpEWmafFJF6wET323GqmhWkfqUmLiaSwRf+tqrElpcaY0Ll8OHDZGZm0rZtW48TL9u2bUuTJk0KdsznyJEjvPHGGwC8/PLLOQkFOJtZvfrqq8TGxrJ48WK++eYbn+Pctm0bXbt2Zd26dfzlL3/hrbfeypNQZH9ueno6ffr0yZNQAFx++eXcfvvtqCrPPfdczvn69evTt29fTp48ybvvFqiZmDPBNfcX+759zmT7nj17FphXEhERQY8ePQrEltv7779PUlISaWlpzJ07N09CkW3UqFEATJw4scC1CRMmADBixAiiokr32UGZTSpUdTbwMk71y40iskBE5gLbccp8z8PZICwo/UrbjV0TiHCvVVn9wyG27g3JvFFjTAWXkJBA/fr1Wb16NY888gg7duzw6z5r167l9OnTtG7dmq5duxa43rhxY/7whz8AzqoUX6xatYpu3bqxa9cuXnnlFZ544gmP7VasWAFQaP2NW2+91ePnZ7fPv0Jm7969fPLJJ1StWjXPktzsOSUTJkzgtdde86mOxsSJExk4cCBVqlRh2bJlhT5p6NWrF+3bt2fdunV55q4cO3aM6dOnEx0dzR//+Mdif27QeBoTCZcXzsZiCvzZS5uhwCqcJakngA1AMhBRxL396pf/VRJzKrLd+db6nLkVY+Z8W2KfY0x5YnMqiq+4cyo++eQTjY+Pz5nfVr9+fR0wYIBOmjQpz9yAbJ7mVLz22msK6GWXXVbo59x777058weyFWdORVRUlAI6YcIErz9H48aNFdA1a9Z4vJ6amprzM544cSLn/OnTp7V27doqIvrDDz/knM+ebzF8+PAC9xo3blxOXLjni9x88806b948dblcedpmz6nIbh8ZGanfflv03/mTJk1SQG+55Zaccy+++KICesMNNxTZP79gzKkI6ycVqjpcVUVzzafw0GaGqnZX1eqqWkVVO6vqBC1i+MLffqVpeLdmOb9+76s9HDl5JnTBGGMqrD/84Q/s2rWLGTNmcMcdd1C3bl3mz5/PnXfeSatWrdiyZUuR93C+h7zvhpndxlc33XQTAE8++SRbt24NKAZPYmJiGDp0KKrK1KlTc85n/9rTk4/Ro0eTkpLC+PHjGTx4MKdOnWLq1KkMGDCA7t27k55ecKeIpk2b0qNHD1wuF/fccw9paWkF2uQ2bNgwatasyTvvvENqairgDPEA3H13ccs+BVdYJxUV3e+ax9P2rOoAnMrI4r/rbHmpMSY0qlatypAhQ5g0aRIbN27kp59+on///uzdu5d77y1quyZneANg586dhbb58ccfAWjUqJFPsT399NP87W9/4+eff+bSSy9l48aNfsWQfb5mzZpUrlw5z7XsxGHatGmoKhs2bGDTpk00b96cSy+91OP9GjVqRHJyMjNnzmT37t2sW7eO1q1bs3btWv7zn/8UaB8XF8dHH33EZZddxvLly+nTp4/XZbZVqlTh1ltvJT09nTfffJOlS5eyZcsWzj333EJjKmmWVIQxEeGWXE8rpq3ZRaYrbB6kGGMqsMaNG+fUZSjOxMouXboQGxvLtm3b+N///lfg+i+//JKz6qNnz54+x/OPf/yDcePGsX//fpKSktiwYUOBNj169ACcxMCTN998s9DPv+CCC+jQoQMpKSmsWLEi5ynFzTffXOwnH4mJiTlPEAr7PYuLi+P9999nwIABrFmzhl69enHo0KFC75mcnExERASTJk3KmaDpaWJnabGkIsxdfX5DalV2ZgkfP3KA7xeOhxXPwIYpkJ4a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69fn5ptv5qeffvIplqLmVCxatIhrrrmGhg0bEhMTQ4MGDejevTtPP/006em/rWzzNKdi+PDhNG/eHIBdu3blmVvSrFkzn+Ks6OxJRUVnW6MbE5BDpw75dL4sERHeeustzj//fCZPnkxSUhJDhgzJuf7444+zdOlSOnXqxLPPPuvxHjfccAMffPABPXv2pGPHjqxatYpp06bx8ccf89lnn3HOOed47Fdcqsrdd9/NpEmTAEhMTKRHjx4cPnyYLVu2MGbMGG644QavycHFF19MWloac+bMoUqVKlx77bU51+rUqRNQfBWNJRUVnW2NbuCV58sAACAASURBVIzxok6dOrzzzjv07NmTO+64g8TERFq1asWyZcsYO3Ys1apVY9asWcTGxhbou2vXLtLT0/nqq69o187ZceHMmTPcdtttvP3229x444188cUXAcX3/PPPM2nSJOrXr8+8efPo0qVLzjVVZfny5dSqVcvrPW6//XZ+//vfM2fOHOrUqcOUKVMCiqkis+GPis62RjemQkpKSip0OWnNmnnnT1188cU8/vjjHD9+nOuvv56ffvqJoUOHkpWVxeTJk2nZsvC9gx599NGchAIgJiaG8ePHU6NGDdatW8eqVav8/hkyMzN58sknAWdYI3dCAc6TlqSkJJtDUYrsSUVFl701espMZ1JmPrY1ujHlk7clpZUrF9y3+OGHH+azzz5j0aJFdOjQgaNHj3LHHXdwww03eP2cYcOGFThXo0YN+vXrx/Tp01m+fDndu3f362dYv349Bw8epHHjxvTt29eve5jgsqTCeN0afQpXceDaP1M31DEaY4LK1yWl2fMrWrRowdGjR2nXrh3PP/+81z41a9Ys8NQjW/Ychz179hQ7hvx27doFEPC8DBM8llSYAlujZx3bxyv/O8qUI+dzjCrsWryNp67pEOoojQlLtSvV9jgps3al2iGIpmTNmzePtLQ0wEkGfv75Z84+++yA7umpeqYpuyypML9xb40eCVzQcD8vvrkOgP+u281NXZvR9qzqoY3PmDC0/IbloQ6hVGzatIl7772XmJgYrrvuOqZPn84NN9zA6tWriYmJ8djnyJEjHD161OOchuyqlQ0bNvQ7poSEBAC2bt3q9z1McNlETeNRz3Pq0aO1M+iRpfDEwi2oaoijMsaEwokTJ7j++utJT0/n6aefZtq0aSQlJbFh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\n",
"text/plain": [
"<Figure size 576x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"m = np.linspace(mf, m0, N)/m0\n",
"dv=-np.log(m)*u\n",
"\n",
"plt.figure(figsize=(8,8))\n",
"plt.plot(m, dv, label='Tsiolkovsky')\n",
"plt.plot(num_heun_s[:,2]/m0, num_heun_s[:,1], 'o',markersize=9, label='Implicit')\n",
"plt.plot(num_heun_s[:,2]/m0, num_rk2_s[:,1], 's', label='Explicit')\n",
"plt.xlabel('Mass Ratio $m/m_o$')\n",
"plt.ylabel('Velocity [m/s]')\n",
"plt.legend();"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"2. You should have a converged solution for integrating `simplerocket`. Now, create a more relastic function, `rocket` that incorporates gravity and drag and returns the velocity, $v$, the acceleration, $a$, and the mass rate change $\\frac{dm}{dt}$, as a function of the $state = [position,~velocity,~mass] = [y,~v,~m]$ using eqn (1). Where the mass rate change $\\frac{dm}{dt}$ and the propellent speed $u$ are constants. The average velocity of gun powder propellent used in firework rockets is $u=250$ m/s [3,4]. \n",
"\n",
"$\\frac{d~state}{dt} = f(state)$\n",
"\n",
"$\\left[\\begin{array}{c} v\\\\a\\\\ \\frac{dm}{dt} \\end{array}\\right] = \n",
"\\left[\\begin{array}{c} v\\\\ \\frac{u}{m}\\frac{dm}{dt}-g-\\frac{c}{m}v^2 \\\\ \\frac{dm}{dt} \\end{array}\\right]$\n",
"\n",
"Use [two integration methods](../notebooks/03_Get_Oscillations.ipynb) to integrate the `rocket` function, one explicit method and one implicit method. Demonstrate that the solutions converge to equation (2.b) the Tsiolkovsky equation. Use an initial state of y=0 m, v=0 m/s, and m=0.25 kg. \n",
"\n",
"Integrate the function until mass, $m_{f}=0.05~kg$, using a mass rate change of $\\frac{dm}{dt}=0.05$ kg/s, . \n",
"\n",
"Compare solutions between the `simplerocket` and `rocket` integration, what is the height reached when the mass reaches $m_{f} = 0.05~kg?$\n"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"def rocket(state,dmdt=0.05, u=250,c=0.18e-3):\n",
" '''Computes the right-hand side of the differential equation\n",
" for the acceleration of a rocket, with drag, in SI units.\n",
" \n",
" Arguments\n",
" ---------- \n",
" state : array of three dependent variables [y v m]^T\n",
" dmdt : mass rate change of rocket in kilograms/s default set to 0.05 kg/s\n",
" u : speed of propellent expelled (default is 250 m/s)\n",
" c : drag constant for a rocket set to 0.18e-3 kg/m\n",
" Returns\n",
" -------\n",
" derivs: array of three derivatives [v (u/m*dmdt-g-c/mv^2) -dmdt]^T\n",
" '''\n",
" \n",
" g = 9.81\n",
" \n",
" dstate = np.array([state[1], (u/state[2])*dmdt-g-c*(state[1]**2/state[2]), -dmdt])\n",
" return dstate"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"y0 = 0\n",
"v0 = 0\n",
"m0 = 0.25\n",
"mf = dmdt = 0.05\n",
"dm = m0-mf\n",
"T = dm/dmdt\n",
"N = 50\n",
"dt = T/N\n",
"\n",
"num_heun_r = np.zeros([N,3])\n",
"num_rk2_r = np.zeros([N,3])\n",
"\n",
"num_heun_r[0,0] = y0\n",
"num_heun_r[0,1] = v0\n",
"num_heun_r[0,2] = m0\n",
"\n",
"num_rk2_r[0,0] = y0\n",
"num_rk2_r[0,1] = v0\n",
"num_rk2_r[0,2] = m0\n",
"\n",
"for i in range(N-1):\n",
" num_heun_r[i+1] = heun_step(num_heun_r[i], rocket, dt)\n",
" num_rk2_r[i+1] = rk2_step(num_rk2_r[i], rocket, dt)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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QYMGjB49mhMnThQrzoLmVIgICxcupGfPnvj5+eHp6Un9+vXp3r07b7/9tl1bR3MqIiIi6NatGwAbNmywzR8o6uWQv//+G7CsBukooShIfnMqcsaZnJzMsGHDqFu3LpUqVaJDhw58+eWXtrZbtmzhtttuo1atWlSqVIlu3bqxffv2PMfKOWclIyODqVOn0qJFCypWrIi/vz8xMTEklWBifnp6OrNmzeKmm26iRo0aVKxYkeuuu45HH32UY8eOFXu8sqBJhQt6/PHHiYqK4rvvvuOZZ55xdjhKqcsoLi6Of/3rX/z22290796dZs2asWXLFqKioti0aRNvvfUWd955JyJCVFQUNWvWZPny5XTt2jXfBCEtLc32xd66dWvuuOMOLl68yNtvv01YWBhHjx4tddxpaWn06dOHQYMG8f3339O0aVP69+9P8+bN2b17N6NHjy50jB49ehAVFQVg+3K1Pnr06FFo/8DsyeynT58u8wmXiYmJhISEsGnTJsLDw+nQoQM7d+5k4MCBzJ8/n8WLF9OtWzeOHz/OLbfcQlBQEOvXr6dbt2789ttv+Y47aNAgJkyYQGBgIH369MHT05N58+bRsWNHfv311yLHd+bMGSIjIxkxYgS7du2iQ4cO3H777WRkZPD6668TGhpa6sm1JSIi+ijFIyQkRJS6Vu3du7fQNhMmTBBAAJkwYUKe+kcffdRW/+qrr+apv++++2z1/+///b889UOGDLHVx8bG5qnv1auXrX7ZsmV56sPDw23169atK/T9FFdQUJDDsWNiYmzHnTFjhl3dk08+KYA0bdpUqlWrJhs3brTVpaamyk033SSATJo0ya7funXrbGM2bdpUkpOTbXVnzpyR7t27CyADBgyw63fw4EEBJCgoKN/4Dx48aFf+8MMP244THx9vV5eRkSFLly61K7P+O8j9b8Aac3h4eJ5jF8Udd9xhe88dO3aU8ePHy+LFi+XQoUMF9rN+/h9//LHDOAEZM2aMZGRk2OreffddASQgIEBq1KghCxcutNVlZmbKoEGDBJD//ve/dmNaP19A/Pz8ZM+ePba6S5cuSXR0tC3+3Kz9crMeq3///nLy5ElbeUZGhu3fT3E/06L8PueIK04cfCfqmQqllHKisLAwHn30UbuycePGAfDbb78xcuRIbrrpJltdxYoVGTt2LIDdJZLcZsyYYTe5smrVqsyaNQt3d3e++uorDh06VOKY//77b9577z3c3NxYtGgRzZs3t6t3d3end+/eJR6/OD755BMGDx6MMYbt27czZcoU+vbtS4MGDWjWrBnTpk0r0Z0fQUFBTJ8+3W6C5/3330+tWrVITk6mR48eDBgwwFbn5ubGU089BRT8c3nuuedo2bKl7bWnpydvv/02Pj4+bN++nS1bthQa2969e1mwYAFBQUHMmzePGjVq2Orc3d15+eWXadOmDRs2bGDXrl3Fet+lpUmFUko5kaPT/DVq1KBWrVr51l933XUAHD582OGY1atXp1evXnnKmzRpQqdOncjKymLjxo0ljnnt2rWkp6cTFhZGq1atSjxOWfDx8eHzzz/nt99+45VXXqFPnz40aNAAsCRl48aNIywsjNOnTxdr3MjISDw9Pe3K3N3dbWt5lOTnAhAdHe3wPVh/XkVZz+Sbb74BoFevXnh7e+epd3Nzo0uXLgBs3bq10PHKkiYV5cD27dt56qmnsJxxUqp8mThxou3UqKOFj2bMmGGrf+yxx/LUz54921Z/v3VPnBw+++wzW/3dd9+dp3758uW2+jvuuCNP/fr16231JV0roTQCAgIcllu3lHdUb627ePGiw76OFrHKXZecnFyMKO0lJiYC5DlD4UxNmjTh8ccfZ/HixSQlJbFv3z5Gjx6NMYb//e9/jC/mtgel+blcunTJYd/q1atTvXp1h3XF+bn88ccfALzzzjt2k1tzPt59912AKz5hU28pdWEiwm233ca3334LQFRUFJGRkU6OSilVltzcCv7brrD6kipPqzSWRLNmzZg5cybGGGbOnMmSJUt45513itzflX8u1tVBQ0JCaN26dYFtr/SZJE0qXJgxhkaNGtlez5gxQ5MKpVShCpr1b62rV69eiccPCgoCKNbdCs5y6623MnPmTKfdYpnT6dOnSUlJwcfHJ09dcX4u1ss73bp145VXXinTGEtLL3+4uLFjx+Ll5UV0dDQvvviis8NRSpUDp0+fZuXKlXnK//jjD7Zt24Yxhq5du5Z4/MjISDw8PPjhhx+Ij48vTai2eQsZGRnF7luUS8LW9R/yu5xxpcXGxuYpS0lJYcWKFQBFugTXs2dPAJYsWVKiz+1y0qTCxTVp0oTDhw/zySef0L59e2eHo5QqJx577DH++usv2+tz584xYsQIMjMz6du3r22Nh5Lw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N90eXSl12a1fvx5jDBEREaUap23btsTExBATE0O/fv2oU6cOa9asYdiwYdx1111OTyyuhGeffRZjDC+++KLTYtA5FQrIvsU0NtayHbpuj66UyrZmzRrS09OpX79+qcYZNWoUgwcPxtfXt4wis9enT588Z0E+/fRT/v3vf7NkyRK++OILBg4ceFmOrf6hZyrUP3R7dKVULo0bN6Z58+Z4eHiUahxfX1+aN29+2ZIKR6Kjo7n55psBWLFixRU77rVMkwr1D90eXakrxjoXYM6cOezZs4d+/fpRu3ZtqlSpQpcuXVi3bp2t7YoVKwgPD8fHx4dq1arRu3dv9u/fn2fMnJcSzp8/z7hx42jUqBFeXl40aNCA0aNHc+LEiWLFWdCcChFh4cKF9OzZEz8/Pzw9Palfvz7du3fn7bfftmvraE5FREQE3bp1A2DDhg128yJKeznEqm3btgC2O9wcvYd58+YRHh5O9erVqVixIk2aNGH06NH8+eef+Y577tw5pk+fTqdOnahevTre3t40atSIQYMGsWrVqiLFlpWVxdixYzHG0LJlSxITE+3qjx8/zjPPPMP1119PlSpVqFy5MqGhobz55pukp6fb2mVkZGCMYcqUKQA899xzdp/llbwcopc/1D8CAy2XPByVK6Uui7i4OEaOHEmjRo3o3r07+/fvZ8uWLURFRbFmzRp+/vlnHnnkETp37kxUVBQ//vgjy5cvZ/v27ezevZtatWrlGTMtLY3u3buze/duIiMj6dChAxs2bODtt99m1apVbNq0CX9//1LFnZaWxoABA1i2bBnu7u506tSJwMBAjh49yu7du1m7di2jRo0qcIwePXpQsWJFVq1ahb+/Pz169LDVNW/evFTxWaWkpAA4fL9ZWVkMGTKEhQsX4unpSUREBDVq1OD//u//ePvtt/n888/57rvv6NChg12/gwcPEhUVxf79+6latSqdO3fGx8eHpKQkVqxYwYkTJ4iKiiowrosXLxIdHc1XX33FTTfdxNKlS6lRo4at/n//+x89e/bkr7/+okGDBnTr1o3MzEy2bdvGI488wsqVK1mxYgUeHh64ubkRExPDzp07+eWXX2jfvj1t2rSxjWVNrK4IEdFHKR4hISFy1fj0U5FKlUTA9kjz8LCUK+XA3r17C6wHyu2jrAQFBQkg69atsyuPiYmxHWvGjBl2dU8++aQA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+mu+fdLS0pg1axYRERHUrFkTLy8vgoKCuOOOO5g/f36R45sxYwZubm7Uq1ePn3/+2a7u3LlzTJ06ldDQUKpVq4a3tzetW7dm0qRJnD9vvx9mQEAA9913HwAffvih3Wd57733FjmesqCXP1TZGjoUhg7Vyx3qssjvu6GA74xyxxjDJ598Qrt27Xj//ffp1q0bQ4YMsdVPmjSJtWvX0r59e2bMmOFwjEGDBrFixQoiIiJo27YtW7ZsYd68eXz77bds3LiRZs2alSpGEeGhhx5i1qxZAISGhhIeHs7JkyeJj49n3LhxDBo0qMDkoEuXLpw7d46vvvqKypUr079/f1udr69vqeKzSklJAcDf399h/RNPPMGrr76Km5sbXbp0oV69evzvf/9jzpw5LFiwgEWLFtGjRw+7PidOnOC2227jxx9/pGLFinTu3JnatWtz+PBhNm3aRHx8PIMHDy4wrqysLB555BHeeustWrZsyTfffGN3iSkpKYmoqCj27duHn58fN954I15eXvz4449MmDCBxYsXs379etvlpIEDB/J///d//PDDD1x33XXceOONtrE6d+5cos+uxEREH6V4hISEiCqatLQ0Z4egytjevXuv6PEg/4erCgoKEkDWrVtXrH6bNm0Sd3d3qVq1qvz2228iIrJ27Vpxc3OTqlWryv79++3aHzx4ULDsvix+fn6yZ88eW92lS5ckOjpaAOnYsWOeY1n75RYeHu4w9tdee00A8ff3l61bt9rVZWVlydq1a+X06dO2so8//lgAiYmJcRhzUFBQUT6SPCZMmOBwXGscYWFhAsi0adPy1C9dulQAqVKlimzevNmu7qWXXhJAatSoIceOHbOru+222wSQLl26yOHDh+3qUlNTZeXKlXZlnTt3FkA2bdokIiIXLlyQPn36CCDh4eFy6tSpPHF37NhRABkzZoxcuHDBVnf+/HkZMmSIADJ8+HC7fu+//77D8uIozu8zECcOvhOd/qVc3h+aVBQuKytL5s+fLwEBAbJr1y5nh6PKkCYVhbMmFQU9fHx8HPadMmWKANKuXTtJTEyUOnXqCCDz58/P0zZnUvHWW2/lqT99+rT4+PgIkOdLtDhJRXp6uvj6+gog33zzTZE+gyuZVFy6dEn27NljS6IiIyPl/Pnzefp27dpVAHn++ecdjh0SEiKATJ061Va2fft2AaRatWpy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evTqlTTr080wJXMWjB5/iIhIyXrxxRc58shh1NRYZJ2LHj16RBbQmuvOqaeeWsAeSzIKKkREpES0kXMBSQtorQIuAXbeeedgQ0NDUI1TVTkLTkGFiIgURFTORd++zYwdOzblsevWrQu+SEjmbNpmG+494ABe2G674ByxESRK5CwK5VRkSTkVIiK5kSrnYsCAgVx44YV8//vfp2vX1tM2rVy5Mng8MnhwEEgkGjQoSPyUnIjKqVBQkSUFFSIiudF2nQswW4T7lq32bqh1UVOTPJETMH3e5YwSNUVEpOwlCyggLu8iIpFzdZ8+eeqRxFNQISIiJSEq52LLLZ2bbrqJAQMGtH2SJImcn9XUUHfDDRs3hImcrkTOnFNQISIiJWHhwuDJReKyaJExZswY3nnnnZTHn3baaczae+9WVTlrp0zBYmW84xI5TYmcOaeciiwpp0JEpHCynl9EiZw5oZwKERGpAm3Uupg3L/lhUdslLQoqRESkbETlXWy++TpGjBiR8timpqbIRM7E7evvvVcFtDKgoEJERMpGVN7F0qWdeOyxx1Ieu+OOO3LrwQezOrHORV1dkOAZeuPSS1l/2mkqoJUB5VRkSTkVIiKlI9uci5aWFhZ17cpWsQqe8ZR3sYFyKkRERNrIuZgzZw71yQIKUN5FOyioEBGRihFd66KFm266KeWxL774Ittttx1E1cMYOJDm5mbmKbiIpKBCREQqRnStixrGjBmT8th99tmH4cOHs8XS/2J4q6XfJ29y3333scMOO9BwxBE0DxigRM4EyqnIknIqRETKR3vmFwlmCklum236c9CHHzIZ6Ba/o64uKLoVK7JV4ZRTISIikkKHDh3abDNgwACuICGgAFi9GsaNy0e3yoqCChERqRpRORf19fDee+9xwQUXpDx+ypQpDIq43eHz5vH73/+ean4CoMcfWdLjDxGRytLWI5JOLGBdklEkW9oiPvZ+7L///tx7+OEMufvuYMTIwIFBHYwKejQS9fij7Xs9IiIiskGygALgYw9ugwz65z8ZPHMmxIamxopnQUUFFsno8YeIiEicqEcknTsvx1LfxqBjx45c27EjHRJrXVRJzoWCChERkThRw1LXrNmMt956K+WxRx55JIvWr0+6z+fOZdGGmc0qk4IKERGRdtphhx1S7n/kkUfYiwVJ61xsyQK233577r777gL1tvAU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\n",
"text/plain": [
"<Figure size 576x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(8,8))\n",
"plt.plot(num_heun_s[:,2]/m0, num_heun_s[:,1], 'k:', label='Implicit Simple')\n",
"plt.plot(num_heun_s[:,2]/m0, num_rk2_s[:,1], 'ro', label='Explicit Simple')\n",
"plt.plot(num_heun_r[:,2]/m0, num_heun_r[:,1], 'k-', label='Implicit Rocket')\n",
"plt.plot(num_heun_r[:,2]/m0, num_rk2_r[:,1], 'bs', label='Explicit Rocket')\n",
"plt.xlabel('Mass Ratio $m/m_o$')\n",
"plt.ylabel('Velocity [m/s]')\n",
"plt.legend();"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SimpleRocket Height 566.404 m\n",
"Rocket Height 407.415 m\n"
]
}
],
"source": [
"print('SimpleRocket Height {:.3f} m'.format(num_heun_s[-1,0]))\n",
"print('Rocket Height {:.3f} m'.format(num_heun_r[-1,0]))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"3. Solve for the mass change rate that results in detonation at a height of 300 meters. Create a function `f_dm` that returns the final height of the firework when it reaches $m_{f}=0.05~kg$. The inputs should be \n",
"\n",
"$f_{m}= f_{m}(\\frac{dm}{dt},~parameters)$\n",
"\n",
"where $\\frac{dm}{dt}$ is the variable we are using to find a root and $parameters$ are the known values, `m0=0.25, c=0.18e-3, u=250`. When $f_{m}(\\frac{dm}{dt}) = 0$, we have found the correct root. \n",
"\n",
"Plot the height as a function of time and use a star to denote detonation at the correct height with a `'*'`-marker\n",
"\n",
"Approach the solution in two steps, use the incremental search [`incsearch`](../notebooks/04_Getting_to_the_root.ipynb) with 5-10 sub-intervals _we want to limit the number of times we call the function_. Then, use the modified secant method to find the true root of the function.\n",
"\n",
"a. Use the incremental search to find the two closest mass change rates within the interval $\\frac{dm}{dt}=0.05-0.4~kg/s.$\n",
"\n",
"b. Use the modified secant method to find the root of the function $f_{m}$.\n",
"\n",
"c. Plot your solution for the height as a function of time and indicate the detonation with a `*`-marker."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"def f_dm(dmdt,m0=0.25, c=0.18e-3, u=250):\n",
" ''' define a function f_dm(dmdt) that returns \n",
" height_desired-height_predicted[-1]\n",
" here, the time span is based upon the value of dmdt\n",
" \n",
" arguments:\n",
" ---------\n",
" dmdt: the unknown mass change rate\n",
" m0: the known initial mass\n",
" c: the known drag in kg/m\n",
" u: the known speed of the propellent\n",
" \n",
" returns:\n",
" --------\n",
" error: the difference between height_desired and height_predicted[-1]\n",
" when f_m(dmdt)= 0, the correct mass change rate was chosen\n",
" '''\n",
" y0 = 0\n",
" v0 = 0\n",
" \n",
" mf = 0.05\n",
" dm = m0-mf\n",
" T = dm/dmdt\n",
" N = 100\n",
" dt = T/N\n",
" \n",
" num_f_dm = np.zeros([N,3])\n",
" num_f_dm[0,0]=y0\n",
" num_f_dm[0,1]=v0\n",
" num_f_dm[0,2]=m0\n",
" \n",
" for i in range(N-1):\n",
" num_f_dm[i+1] = heun_step(num_f_dm[i],lambda state: rocket(state, dmdt=dmdt), dt)\n",
" \n",
" height_desired = 300\n",
" height_predicted = num_f_dm[-1,0]\n",
" error = np.abs(height_desired - height_predicted)\n",
" \n",
" return error"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"def incsearch(func,xmin,xmax,ns=50):\n",
" '''incsearch: incremental search root locator\n",
" xb = incsearch(func,xmin,xmax,ns):\n",
" finds brackets of x that contain sign changes\n",
" of a function on an interval\n",
" arguments:\n",
" ---------\n",
" func = name of function\n",
" xmin, xmax = endpoints of interval\n",
" ns = number of subintervals (default = 50)\n",
" returns:\n",
" ---------\n",
" xb(k,1) is the lower bound of the kth sign change\n",
" xb(k,2) is the upper bound of the kth sign change\n",
" If no brackets found, xb = [].'''\n",
" x = np.linspace(xmin,xmax,ns)\n",
" \n",
" f = np.zeros(ns)\n",
" for i in range(ns):\n",
" f[i] = func(x[i])\n",
" \n",
" sign_f = np.sign(f)\n",
" delta_sign_f = sign_f[1:]-sign_f[0:-1]\n",
" i_zeros = np.nonzero(delta_sign_f!=0)\n",
" nb = len(i_zeros[0])\n",
" xb = np.block([[ x[i_zeros[0]+1]],[x[i_zeros[0]] ]] )\n",
"\n",
" \n",
" if nb==0:\n",
" print('no brackets found\\n')\n",
" print('check interval or increase ns\\n')\n",
" else:\n",
" print('number of brackets: {}\\n'.format(nb))\n",
" return xb"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"def mod_secant(func,dx,x0,es=0.0001,maxit=50):\n",
" '''mod_secant: Modified secant root location zeroes\n",
" root,[fx,ea,iter]=mod_secant(func,dfunc,xr,es,maxit,p1,p2,...):\n",
" uses modified secant method to find the root of func\n",
" arguments:\n",
" ----------\n",
" func = name of function\n",
" dx = perturbation fraction\n",
" xr = initial guess\n",
" es = desired relative error (default = 0.0001 )\n",
" maxit = maximum allowable iterations (default = 50)\n",
" p1,p2,... = additional parameters used by function\n",
" returns:\n",
" --------\n",
" root = real root\n",
" fx = func evaluated at root\n",
" ea = approximate relative error ( )\n",
" iter = number of iterations'''\n",
"\n",
" iter = 0;\n",
" xr=x0\n",
" for iter in range(0,maxit):\n",
" xrold = xr;\n",
" dfunc=(func(xr+dx)-func(xr))/dx;\n",
" xr = xr - func(xr)/dfunc;\n",
" if xr != 0:\n",
" ea = abs((xr - xrold)/xr) * 100;\n",
" else:\n",
" ea = abs((xr - xrold)/1) * 100;\n",
" if ea <= es:\n",
" break\n",
" return xr,[func(xr),ea,iter]"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"no brackets found\n",
"\n",
"check interval or increase ns\n",
"\n",
"[]\n"
]
}
],
"source": [
"dmin = 0.05\n",
"dmax = 0.4\n",
"dmb = incsearch(f_dm,dmin,dmax, ns=7)\n",
"print(dmb)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Note: Should produce a bracket around the mod_secant value of 0.0769 but I'm not too sure why it is not**"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.07691792479380134\n"
]
}
],
"source": [
"print(mod_secant(f_dm,0.001,0.07)[0])"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 720x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"y0 = 0\n",
"v0 = 0\n",
"dmdt = mod_secant(f_dm,0.001,0.07)[0]\n",
"\n",
"mf = 0.05\n",
"dm = m0-mf\n",
"T = dm/dmdt\n",
"N = 100\n",
"g = 9.81\n",
"dt = T/N\n",
"\n",
"num_f_dm = np.zeros([N,3])\n",
"num_f_dm[0,0]=y0\n",
"num_f_dm[0,1]=v0\n",
"num_f_dm[0,2]=m0\n",
"\n",
"for i in range(N-1):\n",
" num_f_dm[i+1] = heun_step(num_f_dm[i],lambda state: rocket(state, dmdt=dmdt), dt)\n",
"\n",
"plt.figure(figsize=(10,10))\n",
"plt.plot(num_f_dm[:,2],num_f_dm[:,0], '*')\n",
"plt.xlabel('Mass Ratio $m/m_o$')\n",
"plt.ylabel('Height [m]');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## References\n",
"\n",
"1. Math 24 _Rocket Motion_. <https://www.math24.net/rocket-motion/\\>\n",
"\n",
"2. Kasdin and Paley. _Engineering Dynamics_. [ch 6-Linear Momentum of a Multiparticle System pp234-235](https://www.jstor.org/stable/j.ctvcm4ggj.9) Princeton University Press \n",
"\n",
"3. <https://en.wikipedia.org/wiki/Specific_impulse>\n",
"\n",
"4. <https://www.apogeerockets.com/Rocket_Motors/Estes_Motors/13mm_Motors/Estes_13mm_1_4A3-3T>"
]
}
],
"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.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}