{ "cells": [ { "cell_type": "markdown", "id": "25f4d4ba", "metadata": {}, "source": [ "# Example - 58 - User-defined CD Mach Function - Earth Re-entry" ] }, { "cell_type": "markdown", "id": "fa4d33d1", "metadata": {}, "source": [ "This example illustrates using a user-defined CD Mach function for Earth re-entry." ] }, { "cell_type": "code", "execution_count": 1, "id": "1244ffef", "metadata": {}, "outputs": [], "source": [ "from AMAT.planet import Planet\n", "from AMAT.vehicle import Vehicle" ] }, { "cell_type": "code", "execution_count": 2, "id": "42b8d6dc", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from scipy.interpolate import interp1d" ] }, { "cell_type": "code", "execution_count": 3, "id": "27047ead", "metadata": {}, "outputs": [], "source": [ "planet = Planet(\"EARTH\")\n", "planet.loadAtmosphereModel(\"../atmdata/Earth/earth-gram-avg.dat\", 0, 1, 2, 3)" ] }, { "cell_type": "code", "execution_count": 4, "id": "42032804", "metadata": {}, "outputs": [], "source": [ "vehicle1 = Vehicle(\"Apollo-AS-201-A\", 5400.0, 400.0, 0.3, 12.0, 0.0, 3.0, planet)\n", "vehicle2 = Vehicle(\"Apollo-AS-201-B\", 5400.0, 400.0, 0.3, 12.0, 0.0, 3.0, planet, userDefinedCDMach=True)\n", "vehicle3 = Vehicle(\"Apollo-AS-201-C\", 5400.0, 400.0, 0.3, 12.0, 0.0, 3.0, planet, userDefinedCDMach=True)" ] }, { "cell_type": "code", "execution_count": 5, "id": "d76ba0b4", "metadata": {}, "outputs": [], "source": [ "# Example of user defined function for CD(M)\n", "def f(M):\n", " return 0.9 + 0.5 * np.tanh(M - 1.0)" ] }, { "cell_type": "code", "execution_count": 6, "id": "fd76fcde", "metadata": {}, "outputs": [], "source": [ "# Example of user defined function derived from look up table for Mach no. vs CD\n", "xx = np.linspace(0,30,101) # replace with mach no. array, if needed\n", "yy = f(xx) # replace with CD array, if needed\n", "\n", "# create interpolation function\n", "f_int = interp1d(xx, yy, kind=\"linear\", fill_value=(xx[0], xx[-1]), bounds_error=False)\n", "\n", "# vectorize interpolation function.\n", "\n", "# **Note**: important, function must return scalar for scalar input, and array for array input!\n", "\n", "def g(x):\n", " # return scalar for scalar input\n", " if np.size(x) == 1:\n", " return float(f_int(x))\n", " # return array for array input\n", " else:\n", " return f_int(x)" ] }, { "cell_type": "code", "execution_count": 7, "id": "43d34ace", "metadata": {}, "outputs": [], "source": [ "#set user-defined Mach number function\n", "\n", "vehicle2.setCDMachFunction(f) # vehicle2 - set function f\n", "vehicle3.setCDMachFunction(g) # vehicle3 - set function g" ] }, { "cell_type": "code", "execution_count": 8, "id": "a84820b8", "metadata": {}, "outputs": [], "source": [ "# set initial states, copied from Example-15: Apollo AS-201\n", "\n", "vehicle1.setInitialState(120.0, 0.0, 0.0, 7.67, 0.0, -9.03, 0.0, 0.0)\n", "vehicle2.setInitialState(120.0, 0.0, 0.0, 7.67, 0.0, -9.03, 0.0, 0.0)\n", "vehicle3.setInitialState(120.0, 0.0, 0.0, 7.67, 0.0, -9.03, 0.0, 0.0)" ] }, { "cell_type": "code", "execution_count": 9, "id": "a1e8bc0d", "metadata": {}, "outputs": [], "source": [ "# set solver params\n", "\n", "vehicle1.setSolverParams(1e-6)\n", "vehicle2.setSolverParams(1e-6)\n", "vehicle3.setSolverParams(1e-6)" ] }, { "cell_type": "code", "execution_count": 10, "id": "8f874214", "metadata": {}, "outputs": [], "source": [ "# propogate vehicle(s) entry;\n", "# t = 2400s\n", "# timestep_max = 0.1 s\n", "# bank_angle = 60 deg\n", "\n", "vehicle1.propogateEntry(2400.0, 0.1, 60.0)\n", "vehicle2.propogateEntry(2400.0, 0.1, 60.0)\n", "vehicle3.propogateEntry(2400.0, 0.1, 60.0)" ] }, { "cell_type": "code", "execution_count": 11, "id": "3ab4d6b2", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 12, "id": "f3f7263d", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "The PostScript backend does not support transparency; partially transparent artists will be rendered opaque.\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfwAAAF4CAYAAACxc0vdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABUcklEQVR4nO3deVxXVf7H8deHRQRExQXcUdPcl5RymdKxzPxlabstM2pZ1ozT1NRMZctk2bRNm9NumbZn2TKZlWa5ZaZpmpqaG2qiCAgiKDvn98f3K4OIiQLfL8v7+XjcB9x7z/eez4Xywzn33HPMOYeIiIhUbwH+DkBEREQqnhK+iIhIDaCELyIiUgMo4YuIiNQASvgiIiI1gBK+iIhIDRDk7wAqUqNGjVzr1q1P6DNJSUk0bty4YgLyk+p4T6D7qkqq4z2B7qsqqY73BCXf18qVK5Odc0fdbLVO+K1bt2bFihUn9JnY2NgT/kxlVx3vCXRfVUl1vCfQfVUl1fGeoOT7MrMdJZVVl76IiEgNoIQvIiJSAyjhFzNu3Dh/h1DuquM9ge6rKqmO9wS6r6qkOt4TnNh9WXWeSz82NtZVx2c2IiIix2JmK51zscWPq4UvIiJSA1TrUfrHc+DAARITE8nNzfV3KHIcwcHBREVFUbduXX+HIiJSJdXYhH/gwAH27t1L8+bNCQ0Nxcz8HZIcg3OOzMxM4uPjAZT0RUROQo3t0k9MTKR58+aEhYUp2VdyZkZYWBjNmzcnMTHR3+GIiFRJNTbh5+bmEhoa6u8w5ASEhobq8YuIyEnyacI3swFm9qmZxZuZM7MxRc4Fm9ljZrbGzA6a2R4ze8fMWhW7RoiZPWtmyd5yn5pZi5OMp4x3JL6k35eIyMnzdQu/DrAOuAXILHYuDOgF/Mv7dQTQEvjSzIqONXgGuBS4CjgLqAt8ZmaBFRq5iIhIFebThO+c+9w5d7dzbiZQUOxcmnPuXOfcDOfcL8655cCNQCfvhpnVA8YC/3DOfeWc+xH4I9AdGOzLe6mqxowZwwUXXFDmMkWZGTNnzixraCIiNUJORgYZCQm4goLjFy5Hlf0Z/uHh2Kner72BYGDu4QLOuV+BDUB/34bme8OHD+ecc84p8dyGDRswM+bOnVvi+RMxefJk3nrrrTJf51j27NnD1VdfTceOHQkMDGTMmDEVVpeISGWTEdEAmrYjfU+CT+uttAnfzGoBTwKznHO7vIebAPlAcrHie73njpCUlERsbGzhNmXKlAqNuaKNHTuW+fPns3379qPOTZ06lZiYGAYPLntHR7169ahfv36Zr3Ms2dnZNGrUiLvuuos+ffpUWD0iIpVRO/YQQQaJ8cWfbJ+8KVOmFOY6oFFJZSplwvc+s38LqA9ce7LXady4MStWrCjcqvpcysOGDSM6Oppp06YdcTw3N5c333yT6667jo0bNzJs2DAiIiKIioriqquuIiHh6L8iJ0+eTPPmzYmMjOTaa6/l0KFDheeKd+k753jyySdp3749ISEhtGjRggkTJhwzzvj4eK688koiIyOJjIxk2LBhbN68ufB869at+c9//sOYMWNo0KBBWX4kIiJVThCet40OpZVfwh83blxhruPoRjFQCRO+N9m/i+e5/DnOuX1FTicAgRz910u091y1FhQUxOjRo5k+fToFRZ79zJo1i+TkZK699loGDBhA165dWb58OfPmzSMjI4MRI0YcUX7x4sWsW7eOefPmMWPGDD7++GMmT558zHrvvvtuJk2axIQJE/j555/54IMPaNmyZYllDx06xKBBg6hduzYLFy5k6dKlNG3alMGDBx/xR4WISE0VTA4Ahw5k+bTeSpXwzSwYmIEn2Q9yzhVP4iuBXODcIp9pgWdQ33flUL9fthMxduxYdu7cybx58wqPTZ06lSFDhvDKK6/Qo0cPHnvsMTp16kT37t154403WL58OUUXEapbty4vvfQSnTp1YsiQIVx++eV8/fXXJdaXkZHB008/zaOPPsp1111Hu3bt6NevH3/+859LLP/ee+/hnGPatGl0796djh078vLLL5ORkcFnn312QvcqIlIdHU74menZPq3X1+/h1zGznmbW01t3K+9+K2/L/gOgL55X7pyZNfFuoeAZyQ9MBR43s8FmdhrwJrAGmFdSndVN+/btGThwIK+99hoAu3fvZs6cOYwdO5aVK1eyaNEi6tSpU7gdbolv3bq18BqdO3cmMPB/bzE2a9bsmDPYrV+/nuzs7GMOFixu5cqVxMXFERERURhDvXr1SE1NPSIGEZGa6nCXflZGjo/r9a1YYH6R/Qe82+vARDzv3oOnJV/UtcB07/e3Anl4egJCga+BUc65/LIGV1WWCh47diw33HADKSkpTJ8+nQYNGjBixAimTp3KsGHDeOKJ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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize=(8,6))\n", "\n", "plt.plot(vehicle1.v_kmsc, vehicle1.h_kmc, 'k', linewidth=2.0, label='Vehicle1')\n", "plt.plot(vehicle2.v_kmsc, vehicle2.h_kmc, 'r-', linewidth=2.0, label='Vehicle2')\n", "plt.plot(vehicle3.v_kmsc, vehicle3.h_kmc, 'b--', linewidth=2.0, label='Vehicle3')\n", "\n", "plt.xlabel('Speed, km/s',fontsize=14)\n", "plt.ylabel('Altitude, km', fontsize=14)\n", "ax=plt.gca()\n", "ax.tick_params(direction='in')\n", "ax.yaxis.set_ticks_position('both')\n", "ax.xaxis.set_ticks_position('both')\n", "ax.tick_params(axis='x',labelsize=14)\n", "ax.tick_params(axis='y',labelsize=14)\n", "plt.legend(loc='upper left', fontsize=14)\n", "\n", "\n", "plt.savefig('../plots/example-58-user-defined-cd-earth-reentry.png',bbox_inches='tight')\n", "plt.savefig('../plots/example-58-user-defined-cd-earth-reentry.pdf', dpi=300,bbox_inches='tight')\n", "plt.savefig('../plots/example-58-user-defined-cd-earth-reentry.eps', dpi=300,bbox_inches='tight')\n", "\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.8.10" } }, "nbformat": 4, "nbformat_minor": 5 }