{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\"AeroPython\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Salto de Felix Baumgartner desde la estratosfera" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "\n", "\n", "

\n", "\n", "

El 14 de octubre de 2012 Felix Baumgartner saltó de una sonda estratosférica a casi 40000 metros, batiendo los récords de vuelo en globo tripulado a mayor altura y salto a mayor altura. **¿Rompió además la barrera del sonido?**

\n", "\n", "

¡**Python**! ;)

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Inspiración: http://pybonacci.wordpress.com/2012/10/15/el-salto-de-felix-baumgartner-en-python/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "La ecuación que gobierna la caída de Felix es:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\\displaystyle m \\frac{d^2 y}{d t^2} = -m g + D$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Siendo\n", "\n", "$$D = \\frac{1}{2} \\rho v^2 C_D A$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "donde\n", "\n", "* $m$ es la masa de Félix y la tomaremos $m = 80~\\text{kg}$,\n", "* $\\rho$ es la densidad del aire **y depende de la altura**,\n", "* $v = |\\dot{y}|$ es la velocidad,\n", "* $C_D$ es el coeficiente de rozamiento, que tomaremos* $C_D = 0.4$, y\n", "* $A$ es un área de referencia y tomaremos $A = 1~\\text{m}^2$.\n", "\n", "\\* Fuente: http://fisicadepelicula.blogspot.com.es/2012/10/la-fisica-del-salto-baumgartner.html\n", "\n", "Además, necesitaremos la altura inicial $h_0 = 39000~\\text{m}$." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Atmósfera estándar" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Necesitamos escribir funciones que nos den las condiciones en la atmósfera estándar." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$T(h) = \\begin{cases} T_0 + \\lambda h & 0 <= h <= 11000 \\\\ T(11000) & 11000 < h \\end{cases}\n", "\\\\ ~\\\\ T_0 = 288.16 K \\\\\n", "\\lambda = -6.5 \\cdot 10^{-3}~\\text{K/m}$$" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# aeropython: preserve\n", "\n", "def T_ISA(h):\n", " \"\"\"Temperatura en función de la altitud según modelo ISA.\n", "\n", " Argumentos\n", " ----------\n", " h : Altura en metros.\n", "\n", " Devuelve\n", " --------\n", " T : Temperatura en Kelvin.\n", "\n", " \"\"\"\n", " T0 = 288.16 # K\n", " ll = -6.5e-3 # K / m\n", " if 0 <= h <= 11000:\n", " T = T0 + ll * h\n", " elif 11000 < h:\n", " T = T0 + ll * 11000\n", " # Es preferible que la función tenga solo un `return`\n", " return T" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on function T_ISA in module __main__:\n", "\n", "T_ISA(h)\n", " Temperatura en función de la altitud según modelo ISA.\n", " \n", " Argumentos\n", " ----------\n", " h : Altura en metros.\n", " \n", " Devuelve\n", " --------\n", " T : Temperatura en Kelvin.\n", "\n" ] } ], "source": [ "help(T_ISA)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Si quieres comprobar que tus funciones hacen lo que deben, puedes ejecutar estos tests:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "from numpy.testing import assert_almost_equal\n", "\n", "assert_almost_equal(T_ISA(0), 288.16)\n", "assert_almost_equal(T_ISA(11000), 216.66)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
**¡Importante!** Si utilizas condicionales para comprobar las capas de la atmósfera, seguramente tus funciones fallarán si las quieres representar utilizando un `linspace`. Para estos casos es mejor utilizar la función `np.select`:
" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# aeropython: preserve\n", "def T_ISA(h):\n", " \"\"\"Temperatura en función de la altitud según modelo ISA.\n", "\n", " Argumentos\n", " ----------\n", " h : Altura en metros.\n", "\n", " Devuelve\n", " --------\n", " T : Temperatura en Kelvin.\n", "\n", " \"\"\"\n", " # Con esta línea convertimos la entrada a un array\n", " h = np.asarray(h)\n", "\n", " T0 = 288.16 # K\n", " ll = -6.5e-3 # K / m\n", "\n", " T1 = T0 + ll * h\n", " T2 = T0 + ll * 11000\n", "\n", " # 0 <= h <= 110000 no funciona para arrays\n", " T = np.select([(0 <= h) & (h <= 11000), 11000 < h], [T1, T2])\n", " return T" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(288.16)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# aeropython: preserve\n", "T_ISA(0)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([288.16, 216.66, 216.66])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# aeropython: preserve\n", "T_ISA(np.array([0, 11000, 20000]))" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([288.16, 216.66, 216.66])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# aeropython: preserve\n", "# Como hemos puesto `h = np.asarray(h)`, podemos hacer esto\n", "T_ISA([0, 11000, 20000])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Otra forma alternativa (idea de Alfredo y Laura):" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "# aeropython: preserve\n", "def T_ISA(h):\n", " \"\"\"Temperatura en función de la altitud según modelo ISA.\n", "\n", " Argumentos\n", " ----------\n", " h : Altura en metros.\n", "\n", " Devuelve\n", " --------\n", " T : Temperatura en Kelvin.\n", "\n", " \"\"\"\n", " # Con esta línea convertimos la entrada a un array\n", " h = np.atleast_1d(h)\n", "\n", " T0 = 288.16 # K\n", " ll = -6.5e-3 # K / m\n", "\n", " T = np.zeros_like(h, dtype=float)\n", "\n", " T[(0 <= h) & (h <= 11000)] = T0 + ll * h[(0 <= h) & (h <= 11000)]\n", " T[11000 < h] = T0 + ll * 11000\n", "\n", " return T" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([288.16])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# aeropython: preserve\n", "T_ISA(0)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([288.16, 216.66, 216.66])" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# aeropython: preserve\n", "T_ISA([0, 11000, 20000])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$ \\rho(h) = \\begin{cases} \\rho_0 \\left( \\frac{T}{T_0} \\right)^{-\\frac{g}{\\lambda R} - 1} & 0 <= h <= 11000 \\\\ \\rho(11000)~e^{\\frac{-g(z - 11000)}{R T}} & 11000 < h <= 20000 \\end{cases} $$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\\rho_0 = 1.225~\\text{[SI]} \\\\\n", "R = 287~\\text{[SI]}$$" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "# aeropython: preserve\n", "def rho_ISA(h):\n", " h = np.asarray(h)\n", "\n", " T0 = 288.16 # K\n", " ll = -6.5e-3 # K / m\n", " g = 9.8 # m / s2\n", " rho0 = 1.225 # kg / m3\n", " R = 287.0 # [SI]\n", "\n", " rho1 = rho0 * (T_ISA(h) / T0) ** (-g / (ll * R) - 1)\n", " \n", " rho2 = rho0 * (T_ISA(11000) / T0) ** (-g / (ll * R) - 1) * np.exp(-g * (h - 11000) / (R * T_ISA(h)))\n", "\n", " rho = np.select([(0 <= h) & (h <= 11000), 11000 < h], [rho1, rho2])\n", " return rho" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1.225 , 0.36420497, 0.08817176])" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# aeropython: preserve\n", "rho_ISA([0, 11000, 20000])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Ecuación diferencial" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Recuerda de la clase 4b que `integrate.odeint` resuelve ecuaciones del tipo:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$ \\frac{d\\mathbf{y}}{dt}=\\mathbf{f}\\left(\\mathbf{y},t\\right)$$\n", "\n", "con condiciones iniciales $\\mathbf{y}(\\mathbf{0}) = \\mathbf{y_0}$. Por tanto, y al tratarse esta de una ecuación en derivada segunda, hay que hacer una reducción de orden." ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Importamos el modulo necesario de scipy para poder integrar:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "from scipy import integrate\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "# Función del sistema\n", "def f(t, y):\n", " g = 9.8 # m / s2\n", " C_D = 0.4\n", " A = 1.0 # m^2\n", " m = 80 # kg\n", " return np.array([\n", " y[1],\n", " -g + rho_ISA(y[0]) * y[1] ** 2 * C_D * A / (2 * m)\n", " ])\n", "\n", "# Condiciones iniciales\n", "y0 = np.array([39000, 0])\n", "\n", "# Vector de tiempos\n", "t = np.linspace(0, 250)\n", "\n", "# Integramos la ecuación\n", "sol = integrate.solve_ivp(f, (0, 250), y0, t_eval=t)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "pos = sol.y[0, :] # Primera columna: posición\n", "vel = sol.y[1, :] # Segunda columna: velocidad\n", "\n", "# Representamos la solución\n", "fig, axes = plt.subplots(2, 1, sharex=True, figsize=(6, 6))\n", "line, = axes[0].plot(t, pos / 1e3, label=\"Position $y$\")\n", "axes[0].set_ylabel(\"Position (km)\")\n", "axes[1].plot(t, vel, '--', color=line.get_color(), label=\"Velocity $\\dot{y}$\")\n", "axes[1].set_ylabel(\"Velocity (m / s)\")\n", "axes[1].set_xlabel(\"Time (s)\")\n", "axes[0].legend()\n", "axes[1].legend()\n", "axes[0].set_title(\"Felix Baumgartner free fall\")\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Barrera del sonido" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "La velocidad del sonido en el aire variará también, y lo hará de esta forma:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$M = \\frac{v}{c}$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "siendo\n", "\n", "$$c = \\sqrt{\\gamma R T}$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Como paso final, representa $M$ en función de $t$ y en la misma gráfica incluye una línea horizontal de trazo discontinuo donde $M = 1$." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Mach number')" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "gamma = 1.4\n", "R = 287.0 # [SI]\n", "c = np.sqrt(gamma * R * T_ISA(pos))\n", "\n", "M = np.abs(vel) / c\n", "\n", "plt.plot(t, M)\n", "plt.plot(t, np.ones_like(t), 'k--')\n", "plt.ylabel('Mach number')\n", "plt.xlabel('Time (s)')\n", "plt.title(\"Mach number\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Barrera del sonido superada** ;)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "####

¡Síguenos en Twitter!\n", "
\n", "###### Follow @AeroPython \n", "
\n", "###### Este notebook ha sido realizado por: Juan Luis Cano\n", "
\n", "##### \"Licencia
Curso AeroPython por Juan Luis Cano Rodriguez y Alejandro Sáez Mollejo se distribuye bajo una Licencia Creative Commons Atribución 4.0 Internacional." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "_Las siguientes celdas contienen configuración del Notebook_\n", "\n", "_Para visualizar y utlizar los enlaces a Twitter el notebook debe ejecutarse como [seguro](http://ipython.org/ipython-doc/dev/notebook/security.html)_\n", "\n", " File > Trusted Notebook" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ "/* This template is inspired in the one used by Lorena Barba\n", "in the numerical-mooc repository: https://github.com/numerical-mooc/numerical-mooc\n", "We thank her work and hope you also enjoy the look of the notobooks with this style */\n", "\n", "\n", "\n", "El estilo se ha aplicado =)\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Esta celda da el estilo al notebook\n", "from IPython.core.display import HTML\n", "css_file = '../styles/aeropython.css'\n", "HTML(open(css_file, \"r\").read())" ] } ], "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.7.2" } }, "nbformat": 4, "nbformat_minor": 1 }