diff --git a/orbital-mechanics/Lecture2/.DS_Store b/orbital-mechanics/Lecture2/.DS_Store deleted file mode 100644 index 4917e71..0000000 Binary files a/orbital-mechanics/Lecture2/.DS_Store and /dev/null differ diff --git a/orbital-mechanics/Lecture2/images/.DS_Store b/orbital-mechanics/Lecture2/images/.DS_Store deleted file mode 100644 index 5008ddf..0000000 Binary files a/orbital-mechanics/Lecture2/images/.DS_Store and /dev/null differ diff --git a/orbital-mechanics/Lecture8/Lecture8.ipynb b/orbital-mechanics/Lecture8/Lecture8.ipynb new file mode 100644 index 0000000..7f81ce2 --- /dev/null +++ b/orbital-mechanics/Lecture8/Lecture8.ipynb @@ -0,0 +1,357 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Orbital Manuevers and Transfers 2\n", + "Prepared by: [Emmanuel Airiofolo](https://github.com/Emma-airi), [Joost Hubbard](https://github.com/Joosty), [Ceyda Alan](https://github.com/calan04) and [Angadh Nanjangud](https://www.angadhn.com/)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this lecture we cover the following topics:\n", + "1. [](content:Hyperbolic-Orbit)\n", + "2. [](content:Interplanetary-Missions:-Patched-Conics-Model)\n", + "3. [](content:Gravity-Assist)\n", + "4. [](content:Use-of-Gravity-Assists)\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(content:Hyperbolic-Orbit)=\n", + "## Hyperbolic Orbit" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "- When $e>1$ the equation of the orbit describes a hyperbola:\n", + "\n", + "```{math} \n", + ":label: L8_1\n", + "r=\\frac{h^2/\\mu}{1+e\\cos\\theta}\n", + "```\n", + "\n", + "- The orbit radius must be $>0$ thus $1+e\\cos\\theta\\ge0\\Rightarrow\\cos\\theta\\ge-\\frac{1}{e}$ for $-\\theta_{Max}\\le\\theta\\le\\theta_{Max}$\n", + "\n", + "- When $\\theta=\\theta_{Max}\\Rightarrow r\\rightarrow\\infty$, we call $\\theta_{Max}=\\theta_{\\infty}$ \n", + "\n", + "```{math} \n", + ":label: L8_2 \n", + "\\theta_{\\infty}=\\arccos\\frac{1}{e}\n", + "```\n", + "\n", + "- When $r=r_{\\infty}$, $v=v_{\\infty}$ and\n", + "\n", + "```{math} \n", + ":label: L8_3 \n", + "\\frac{1}{2}v_{\\infty}^2 - \\frac{\\mu}{r_{\\infty}} =E\n", + "``` \n", + "\n", + "but\n", + "\n", + "```{math} \n", + ":label: L8_4\n", + "\\frac{\\mu}{r_{\\infty}} = 0\n", + "``` \n", + "\n", + "hence;\n", + "\n", + "```{math} \n", + ":label: L8_5 \n", + " E= \\frac{1}{2}v_{\\infty}^2\\ge0\n", + "```\n", + "\n", + "- The hyperbola is the locus of points for which the difference of the distance from the two foci is constant $=2a$.\n", + "- If we work with negative $a$ we can use the same formulae of the ellipse:\n", + "\n", + "```{math} \n", + ":label: L8_6 \n", + "\\rightarrow\\theta=90^\\circ \\Rightarrow r=p=\\frac{h^2}{\\mu}=a(1-e^2)\n", + "```\n", + "\n", + "```{math} \n", + ":label: L8_7 \n", + "\\rightarrow\\theta=0^\\circ \\Rightarrow r_p=\\frac{\\frac{h^2}{\\mu}}{1+e}=\\frac{p}{1+e}=a(1-e)\n", + "```\n", + "\n", + "```{math} \n", + ":label: L8_8 \n", + "\\rightarrow E=\\frac{1}{2}v_{\\infty}^2=-\\frac{\\mu}{2a}\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![Figure 1](images/L8_1.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(content:Interplanetary-Missions:-Patched-Conics-Model)=\n", + "## Interplanetary Missions: Patched Conics Model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "- Preliminary mission design uses patched conics approximation:\n", + "\n", + "1. The whole transfer is split into legs described with two-body dynamics.\n", + "2. The planets' sphere of influences are infinitely large in planetary reference frame but points in heliocentric reference frame. \n", + "3. Planetary legs are instantaneous hyperbolic arcs.\n", + "4. Different legs are patched together either by gravity assist maneuvers or impulse $\\Delta v$.\n", + "\n", + "![Figure 2](images/L8_2.png)\n", + "\n", + "- $1$ and $2$ are heliocentric arcs (two-body problem under the gravitational pull of the sun).\n", + "- If we zoom in at Earth's departure, Mars encounter and Jupiter arrival we see hyperbolic arcs in which the spacecraft feels the gravitational pull only of the Earth, Mars and Jupiter respectively.\n", + "- At Mars we perform a **Gravity Assist Maneuver**:\n", + "\n", + "> A close passage with a celestial body (in this case it's Mars) is exploited to change the heliocentric velocity of the spacecraft from\n", + "$\\bf{V^-}$ to $\\bf{V^+}$: a $\\Delta \\bf{v} = \\bf{V^+}-\\bf{V^-}$ for free!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(content:Gravity-Assist)=\n", + "## Gravity Assist" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "![Figure 3](images/L8_3.png)\n", + "\n", + "![Figure 4](images/L8_4.png)\n", + "\n", + "- $\\bf{V_M}$ is the heliocentric velocity of Mars.\n", + "- $\\bf{v_{\\infty}^-} = \\bf{V^-} - \\bf{V_M}$ is the incoming velocity vector $\\underline{relative}$ to Mars.\n", + "- $\\bf{v_{\\infty}^+} = \\bf{V^+} - \\bf{V_M}$ is the outgoing velocity vector $\\underline{relative}$ to Mars.\n", + "- As the planetary sphere of influence is infinitely large it follows, hence a hyperbolic arc!\n", + "\n", + "```{math} \n", + ":label: L8_9 \n", + "\\frac{1}{2}(v_{\\infty}^-)^2 - \\frac{\\mu}{r_{\\infty}} = \\frac{1}{2}(v_{\\infty}^-)^2>0 \\Rightarrow E>0\n", + "```\n", + "\n", + "> Note $\\frac{\\mu}{r_{\\infty}} = 0$\n", + "- In the two-body problem: \n", + "\n", + "```{math} \n", + ":label: L8_10 \n", + "E=constant \\Rightarrow \\frac{1}{2}(v_{\\infty}^-)^2 - \\frac{\\mu}{r_{\\infty}} = \\frac{1}{2}(v_{\\infty}^+)^2 - \\frac{\\mu}{r_{\\infty}}\n", + "```\n", + "\n", + "```{math} \n", + ":label: L8_11\n", + "\\frac{\\mu}{r_{\\infty}} = 0\n", + "```\n", + "\n", + "```{math} \n", + ":label: L8_12\n", + "\\Rightarrow v_\\infty^+ = v_\\infty^-\n", + "```\n", + "\n", + "- The absolute velocity $\\bf{V^-}$ and $\\bf{V^+}$ are different because the gravity assist steers the velocity $\\bf{v_{\\infty}^-}$\n", + "- The turn angle $\\delta$ determines the velocity change $\\Delta\\bf{v}=\\bf{V^+}-\\bf{V^-}$\n", + "> We obtain $\\Delta\\bf{v}$ without propellent consumption.\n", + "\n", + "\n", + "![Figure 5](images/L8_5.png)\n", + "\n", + "![Figure 6](images/L8_6.png)\n", + "\n", + "- the turn angle $\\delta$ determines the velocity change.\n", + "\n", + "**NOTE That:**\n", + "\n", + "```{math} \n", + ":label: L8_13\n", + "\\theta_{\\infty}=90^\\circ + \\delta\n", + "```\n", + "\n", + "and \n", + "\n", + "```{math}\n", + ":label: L8_14\n", + "1+e\\cos\\theta_{\\infty}=0 \\Rightarrow 1+e\\cos(90+\\delta)=0 \\Rightarrow 1-e\\sin\\delta = 0\n", + "```\n", + "\n", + "```{math} \n", + ":label: L8_15\n", + "\\sin\\delta=\\frac{1}{e}\n", + "```\n", + "\n", + ">1. We get a parabola when $e\\rightarrow 1$ , $\\delta\\Rightarrow 90^\\circ \\Rightarrow 2\\delta \\rightarrow 180^\\circ$ maximum turn! \n", + ">2. $e\\rightarrow \\infty \\Rightarrow \\delta \\rightarrow 0 \\Rightarrow$ minimum turn!\n", + "\n", + "- With $v_\\infty$ and $e$ the gravity assist is fully determined.\n", + "\n", + "```{math} \n", + ":label: L8_16\n", + "\\rightarrow \\frac{1}{2}v_{\\infty}^2 - \\frac{\\mu}{r_{\\infty}} = -\\frac{\\mu}{2a}\n", + "```\n", + "\n", + "```{math} \n", + ":label: L8_17\n", + "\\frac{\\mu}{r_{\\infty}} = 0\n", + "```\n", + "\n", + "```{math} \n", + ":label: L8_18\n", + "\\Rightarrow a=-\\frac{\\mu}{v_{\\infty}^2}\n", + "```\n", + "\n", + "```{math} \n", + ":label: L8_19\n", + "r_p=a(1-e)=-\\frac{\\mu}{v_{\\infty}^2}(1-e)\\Rightarrow e=1+\\frac{r_{p}v_{\\infty}^2}{\\mu}\n", + "```\n", + "\n", + ">$r_p$ is the main design parameter" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**To Maximise $\\delta$**\n", + "- Low $r_p$ (limited by planetary radius)\n", + "- Low $v_{\\infty}$\n", + "- High $\\mu$ (massive planet!)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Velocity at perigee $v_p$**\n", + "\n", + "```{math} \n", + ":label: L8_20\n", + "\\frac{1}{2}v_{p}^2 - \\frac{\\mu}{r_{p}} = \\frac{1}{2}v_{\\infty}^2\n", + "```\n", + "\n", + "```{math} \n", + ":label: L8_21 \n", + "r_p=\\frac{\\mu}{v_{\\infty}^2}(e-1)\n", + "```\n", + "\n", + "```{math} \n", + ":label: L8_22\n", + "\\Rightarrow v_p^2=v_{\\infty}^2+\\frac{2\\mu v_{\\infty}^2}{\\mu (e-1)} \\Rightarrow v_p=v_{\\infty}\\sqrt{\\frac{e-1+2}{e-1}} \n", + "```\n", + "\n", + "```{math} \n", + ":label: L8_23\n", + "\\Rightarrow v_p=v_{\\infty}\\sqrt{\\frac{e+1}{e-1}} \n", + "```\n", + "\n", + "**Sometimes it is more practical to work with the aiming distance $\\Delta$ as design parameter**\n", + "\n", + "\n", + "![Figure 7](images/L8_7.png)\n", + "\n", + "```{math} \n", + ":label: L8_24\n", + "h=v_{\\infty}\\Delta = r_p v_p\n", + "```\n", + "\n", + "```{math} \n", + ":label: L8_25\n", + "\\rightarrow r_p=\\frac{\\mu}{v_{\\infty}^2}(e-1)\n", + "```\n", + "\n", + "```{math} \n", + ":label: L8_26\n", + "\\rightarrow v_p = v_{\\infty}\\sqrt{\\frac{e+1}{e-1}}\n", + "```\n", + "\n", + "```{math} \n", + ":label: L8_27\n", + "h = \\frac{\\mu}{v_{\\infty}^2} (e-1) \\cdot v_{\\infty}\\sqrt{\\frac{e+1}{e-1}} = \\frac{\\mu}{v_{\\infty}} \\sqrt{e^2-1}\n", + "```\n", + "\n", + "```{math} \n", + ":label: L8_28\n", + "\\Rightarrow \\Delta = \\frac{\\mu}{v_{\\infty}^2}\\sqrt{e^2-1}\n", + "``` \n", + "\n", + "```{math} \n", + ":label: L8_29\n", + "e^2=1+\\frac{\\Delta^2 v_{\\infty}^4}{\\mu^2} \n", + "```\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**To Maximise $\\delta$**\n", + "- Low $\\Delta$ (limited by planetary radius)\n", + "- Low $v_{\\infty}$\n", + "- High $\\mu$ (massive planet!)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(content:Use-of-Gravity-Assists)=\n", + "## Use of Gravity Assists" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "- A passage behind the planet increases the heliocentric velocity.\n", + "\n", + "![Figure 8](images/L8_8.png)\n", + "- A passage ahead decreases the heliocentric velocity. \n", + "\n", + "![Figure 9](images/L8_9.png)\n", + "- A passage can leave the module of the heliocentric velocity unchanged.\n", + "\n", + "![Figure 10](images/L8_10.png)\n", + "- A gravity assist can be used to perform inclination change maneuver.\n", + "\n", + "![Figure 11](images/L8_11.png)" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/orbital-mechanics/Lecture8/images/L8_1.png b/orbital-mechanics/Lecture8/images/L8_1.png new file mode 100644 index 0000000..70ec0a7 Binary files /dev/null and b/orbital-mechanics/Lecture8/images/L8_1.png differ diff --git a/orbital-mechanics/Lecture8/images/L8_10.png b/orbital-mechanics/Lecture8/images/L8_10.png new file mode 100644 index 0000000..732f33a Binary files /dev/null and b/orbital-mechanics/Lecture8/images/L8_10.png differ diff --git a/orbital-mechanics/Lecture8/images/L8_11.png b/orbital-mechanics/Lecture8/images/L8_11.png new file mode 100644 index 0000000..cc9964a Binary files /dev/null and b/orbital-mechanics/Lecture8/images/L8_11.png differ diff --git a/orbital-mechanics/Lecture8/images/L8_2.png b/orbital-mechanics/Lecture8/images/L8_2.png new file mode 100644 index 0000000..7b383f7 Binary files /dev/null and b/orbital-mechanics/Lecture8/images/L8_2.png differ diff --git a/orbital-mechanics/Lecture8/images/L8_3.png b/orbital-mechanics/Lecture8/images/L8_3.png new file mode 100644 index 0000000..e93fab4 Binary files /dev/null and b/orbital-mechanics/Lecture8/images/L8_3.png differ diff --git a/orbital-mechanics/Lecture8/images/L8_4.png b/orbital-mechanics/Lecture8/images/L8_4.png new file mode 100644 index 0000000..dcc382a Binary files /dev/null and b/orbital-mechanics/Lecture8/images/L8_4.png differ diff --git a/orbital-mechanics/Lecture8/images/L8_5.png b/orbital-mechanics/Lecture8/images/L8_5.png new file mode 100644 index 0000000..306e338 Binary files /dev/null and b/orbital-mechanics/Lecture8/images/L8_5.png differ diff --git a/orbital-mechanics/Lecture8/images/L8_6.png b/orbital-mechanics/Lecture8/images/L8_6.png new file mode 100644 index 0000000..0911d97 Binary files /dev/null and b/orbital-mechanics/Lecture8/images/L8_6.png differ diff --git a/orbital-mechanics/Lecture8/images/L8_7.png b/orbital-mechanics/Lecture8/images/L8_7.png new file mode 100644 index 0000000..0e897af Binary files /dev/null and b/orbital-mechanics/Lecture8/images/L8_7.png differ diff --git a/orbital-mechanics/Lecture8/images/L8_8.png b/orbital-mechanics/Lecture8/images/L8_8.png new file mode 100644 index 0000000..441d1d2 Binary files /dev/null and b/orbital-mechanics/Lecture8/images/L8_8.png differ diff --git a/orbital-mechanics/Lecture8/images/L8_9.png b/orbital-mechanics/Lecture8/images/L8_9.png new file mode 100644 index 0000000..77fda61 Binary files /dev/null and b/orbital-mechanics/Lecture8/images/L8_9.png differ