diff --git a/LaTeX/fig/EMJS_plot.png b/LaTeX/fig/EMJS_plot.png index fddb2e2..ac81ab9 100644 Binary files a/LaTeX/fig/EMJS_plot.png and b/LaTeX/fig/EMJS_plot.png differ diff --git a/LaTeX/fig/EMJS_plot_noplanets.png b/LaTeX/fig/EMJS_plot_noplanets.png index 81e1db9..021601a 100644 Binary files a/LaTeX/fig/EMJS_plot_noplanets.png and b/LaTeX/fig/EMJS_plot_noplanets.png differ diff --git a/LaTeX/fig/EMJS_thrust_components_vnb.png b/LaTeX/fig/EMJS_thrust_components_vnb.png new file mode 100644 index 0000000..ffcf43f Binary files /dev/null and b/LaTeX/fig/EMJS_thrust_components_vnb.png differ diff --git a/LaTeX/fig/EMS_plot.png b/LaTeX/fig/EMS_plot.png index c88dca8..e5be634 100644 Binary files a/LaTeX/fig/EMS_plot.png and b/LaTeX/fig/EMS_plot.png differ diff --git a/LaTeX/fig/EMS_plot_noplanets.png b/LaTeX/fig/EMS_plot_noplanets.png index bfe7aff..4e85651 100644 Binary files a/LaTeX/fig/EMS_plot_noplanets.png and b/LaTeX/fig/EMS_plot_noplanets.png differ diff --git a/LaTeX/fig/EMS_thrust_components_vnb.png b/LaTeX/fig/EMS_thrust_components_vnb.png new file mode 100644 index 0000000..0e46bfe Binary files /dev/null and b/LaTeX/fig/EMS_thrust_components_vnb.png differ diff --git a/LaTeX/fig/bepicolombo.png b/LaTeX/fig/bepicolombo.png new file mode 100644 index 0000000..03d9ec5 Binary files /dev/null and b/LaTeX/fig/bepicolombo.png differ diff --git a/LaTeX/fig/cassini.png b/LaTeX/fig/cassini.png new file mode 100644 index 0000000..ac44e36 Binary files /dev/null and b/LaTeX/fig/cassini.png differ diff --git a/LaTeX/fig/thrust_angle.png b/LaTeX/fig/thrust_angle.png new file mode 100644 index 0000000..dae669c Binary files /dev/null and b/LaTeX/fig/thrust_angle.png differ diff --git a/LaTeX/fig/thrust_angle.svg b/LaTeX/fig/thrust_angle.svg new file mode 100644 index 0000000..69aa6e1 --- /dev/null +++ b/LaTeX/fig/thrust_angle.svg @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + r + h + θ + α + β + + + + F + + + + diff --git a/LaTeX/fig/voyager.jpg b/LaTeX/fig/voyager.jpg new file mode 100644 index 0000000..3abe5f2 Binary files /dev/null and b/LaTeX/fig/voyager.jpg differ diff --git a/LaTeX/presentation.bib b/LaTeX/presentation.bib new file mode 100644 index 0000000..f5047d2 --- /dev/null +++ b/LaTeX/presentation.bib @@ -0,0 +1,25 @@ +@misc{nasa_voyager, + title={Voyager - Mission Overview}, + url={https://voyager.jpl.nasa.gov/mission/}, + journal={NASA}, + publisher={NASA} +} + +@phdthesis{dhanasarCassini, + author = {Dhanasar, Mookesh}, + year = {2005}, + month = {12}, + pages = {}, + title = {A METHOD FOR THE DESIGN AND ANALYSIS OF DEEP SPACE NUCLEAR PROPULSION SYSTEMS} +} + +@article{jehnBepi, + author = {Jehn, Rüdiger and García Yárnoz, Daniel and Schoenmaekers, Johannes and Companys, Vicente}, + year = {2012}, + month = {01}, + pages = {1-9}, + title = {Trajectory Design for BepiColombo Based on Navigation Requirements}, + volume = {4}, + journal = {Journal of Aerospace Engineering, Sciences and Applications}, + doi = {10.7446/jaesa.0401.01} +} diff --git a/LaTeX/presentation.tex b/LaTeX/presentation.tex index 4a1836e..224a2cc 100644 --- a/LaTeX/presentation.tex +++ b/LaTeX/presentation.tex @@ -1,25 +1,26 @@ \documentclass{beamer} -\usetheme{Luebeck} +\usetheme{Antibes} + +\usepackage{xfrac} \definecolor{color1}{HTML}{3A4040} \definecolor{color2}{HTML}{F5F2F8} -\definecolor{color3}{HTML}{B65D4E} +\definecolor{color3}{HTML}{C47B6E} \definecolor{color4}{HTML}{B6AD96} -\definecolor{color5}{HTML}{A96041} +\definecolor{color5}{HTML}{B65D4E} \setbeamercolor*{structure}{bg=color3,fg=color3} \setbeamercolor*{palette primary}{fg=color1,bg=color4} -\setbeamercolor*{palette secondary}{fg=color1,bg=color2} -\setbeamercolor*{palette tertiary}{fg=color1,bg=color2} -\setbeamercolor*{palette quaternary}{fg=color1,bg=color3} +\setbeamercolor*{palette secondary}{fg=color1,bg=color4} +\setbeamercolor*{palette tertiary}{fg=color1,bg=color3} +\setbeamercolor*{palette quaternary}{fg=color1,bg=color5} \setbeamercolor{alerted text}{fg=color1,bg=color3} \setbeamercolor{titlelike}{bg=color2,fg=color1} \setbeamercolor*{titlelike}{bg=color2,fg=color1} \setbeamercolor{frametitle}{bg=color1,fg=color2} \setbeamercolor{background canvas}{bg=color2,fg=color2} -\title{Designing Optimal Low-Thrust Interplanetary Trajectories} -\subtitle{Utilizing Monotonic Basin Hopping} +\title{Designing Optimal Low-Thrust Interplanetary Trajectories Utilizing Monotonic Basin Hopping} \author{Richard Connor Johnstone} \institute{University of Colorado -- Boulder} \date{\today} @@ -32,19 +33,589 @@ \section{Introduction} - \begin{frame} \frametitle{First Frame} - \begin{itemize} - \item Item 1 - \item Item 2 - \end{itemize} + \subsection{Motivation} + + \begin{frame} \frametitle{Motivation} + How can we leverage existing technologies and techniques to determine + optimally-controlled trajectories to targets in interplanetary space? + \end{frame} + + \note{Today I'll be discussing my research in determining optimal trajectories + for interplanetary mission objectives. Numerous scientific and engineering advances have + been made possible by the recognition of optimal trajectories in interplanetary space.} + + \begin{frame} \frametitle{Voyager} + \begin{figure} + \centering + \includegraphics[height=0.6\paperheight]{LaTeX/fig/voyager} + \caption{Voyager mission trajectory\cite{nasa_voyager}} + \end{figure} + \end{frame} + + \note{For instance, the Voyagers I and II missions were launched in 1977 because of a + once-in-a-lifetime window in which the spacecraft were able to, on a single tour, visit all + four gas giant outer planets. These tours were only made possible because of the ability to + compute planetary ephemeris and map out a chain of gravity assists.} + + \begin{frame} \frametitle{Bepi-Colombo} + \begin{figure} + \centering + \includegraphics[height=0.6\paperheight]{LaTeX/fig/bepicolombo} + \caption{Bepi-Colombo mission trajectory\cite{jehnBepi}} + \end{figure} + \end{frame} + + \note{More recently, ESA has also been able to take advantage of gravity assists to send the + spacecraft Bepi-Colombo into a trajectory that rendezvous 6 times with Mercury. While this + mission did utilize a number of gravity assists, it also utilized another technology + well-suited to interplanetary travel: low-thrust electric propulsion systems} + + \subsection{Context} + + \begin{frame} \frametitle{Low Thrust Electric Propulsion} + Allows for some advantages in achieving more interesting mission objectives: + \begin{itemize} + \item Much higher thrusting efficiency (in terms of fuel usage) compared to high + thrust propulsive systems + \item Allows for a greater overall $\Delta V$ budget for a given mission + \end{itemize} + + \pause + But requires some additional considerations: + \begin{itemize} + \item Requires significantly more time to achieve the same velocity change + \item Defines a new system dynamics control, which must be accounted for + continuously at each point in time, requiring additional computation for + optimization + \end{itemize} + \end{frame} + + \note{Thanks to their ability to provide thrust extremely efficiently, these low-thrust + engines can be a powerful tool for enabling impressive scientific objectives, but they do + provide an additional layer of complexity for the mission designer, as their continuous + thrust nature changes the underlying system dynamics that would have been used to optimize a + mission such as Voyager, which did not employ low-thrust engines.} + + % \begin{frame} \frametitle{Current tools} + % Indirect Methods: + % \begin{itemize} + % \item CHEBYTOP + % \item NEWSEP + % \item SEPTOP + % \item VARITOP + % \end{itemize} + + % Direct Methods: + % \begin{itemize} + % \item EMTG + % \item GALLOP + % \item MALTO + % \item PAGMO + % \end{itemize} + % \end{frame} + + % \note{However, many interesting techniques have been developed to combat this issue, + % particularly in recent years. A number of different algorithms have been developed } + + % \subsection{Scope} + + % \begin{frame} \frametitle{First Frame} + % \begin{itemize} + % \item Item 1 + % \item Item 2 + % \end{itemize} + % \end{frame} + + % \subsection{Problem Statement} + + % \begin{frame} \frametitle{First Frame} + % \begin{itemize} + % \item Item 1 + % \item Item 2 + % \end{itemize} + % \end{frame} + +\section{Trajectory Optimization Background} + + \subsection{System Dynamics} + + \begin{frame} \frametitle{Two Body Problem} + \begin{columns} + \begin{column}{0.45\paperwidth} + Assumptions: + \begin{itemize} + \item There are only two bodies in the system + \item The only force acting between the two bodies is gravitational + \item The two masses are to be modeled as constant point masses + \end{itemize} + \end{column} + \begin{column}{0.45\paperwidth} + \begin{figure} + \centering + \includegraphics[width=0.45\paperwidth]{LaTeX/fig/2bp} + \end{figure} + \end{column} + \end{columns} + \end{frame} + + \note{In order to understand how to optimize these trajectories, we'll first have to + understand the underlying system dynamics. I won't spend too long on this, as most of you + should have a good grasp on spacecraft dynamics, but we'll briefly analyse the most basic + model for spaceflight dynamics: the two body problem. This model requires us to make a + couple of basic assumptions. First that we are only concerned with the gravitational + influence between the nominative two bodies: the spacecraft and the planetary body around + which it is orbiting. Secondly, both of these bodies are modeled as point masses with + constant mass. This removes the need to account for non-uniform densities and asymmetry.} + + \begin{frame} \frametitle{Two Body Problem} + \begin{columns} + \begin{column}{0.45\paperwidth} + \begin{align*} + m_2 \ddot{\vec{r}}_2 &= - \frac{G m_1 m_2}{r^2} \frac{\vec{r}}{\left| r \right|} \\ + m_1 \ddot{\vec{r}}_1 &= \frac{G m_2 m_1}{r^2} \frac{\vec{r}}{\left| r \right|} + \end{align*} + \end{column} + \begin{column}{0.45\paperwidth} + \begin{figure} + \centering + \includegraphics[width=0.45\paperwidth]{LaTeX/fig/2bp} + \end{figure} + \end{column} + \end{columns} + \end{frame} + + \note{From Newton's second law and the law of universal gravitation, we can then model this + force with this equation. Where...} + + \begin{frame} \frametitle{Two Body Problem} + \begin{columns} + \begin{column}{0.45\paperwidth} + \begin{equation*} + \ddot{\vec{r}} = \ddot{\vec{r}}_2 - \ddot{\vec{r}}_1 = + - \frac{G \left( m_1 + m_2 \right)}{r^2} \frac{\vec{r}}{\left| r \right|} + \end{equation*} + \end{column} + \begin{column}{0.45\paperwidth} + \begin{figure} + \centering + \includegraphics[width=0.45\paperwidth]{LaTeX/fig/2bp} + \end{figure} + \end{column} + \end{columns} + \end{frame} + + \note{Dividing by the mass, we can derive the acceleration...} + + \begin{frame} \frametitle{Two Body Problem} + \begin{columns} + \begin{column}{0.45\paperwidth} + \begin{align*} + \mu &= G (m_1 + m_2) \approx G m_1 \\ + \ddot{\vec{r}} &= - \frac{\mu}{r^2} \hat{r} + \end{align*} + \end{column} + \begin{column}{0.45\paperwidth} + \begin{figure} + \centering + \includegraphics[width=0.45\paperwidth]{LaTeX/fig/2bp} + \end{figure} + \end{column} + \end{columns} + \end{frame} + + \note{Finally, we'll make the assumption that the mass of the spacecraft, is significantly + smaller than the mass of the planet. This allows us to represents the gravitational + parameter as a function of the planetary mass alone, rather than both combined. With this + assumption, we can model the system dynamics with this analytically solvable equation} + + \begin{frame} \frametitle{Kepler's Laws} + \begin{itemize} + \item Each planet's orbit is an ellipse with the Sun at one of the foci. + \item The area swept out by the imaginary line connecting the primary and secondary + bodies increases linearly with respect to time. + \item The square of the orbital period is proportional to the cube of the semi-major + axis of the orbit, regardless of eccentricity. + \end{itemize} + \end{frame} + + \note{In the early 1600s, Johannes Kepler determined three laws in order to describe the + motion of a satellite. These are:} + + \begin{frame} \frametitle{Kepler's Laws} + \begin{equation*} + r = \frac{\sfrac{h^2}{\mu}}{1 + e \cos(\theta)} + \end{equation*} + + \vspace{1em} + + \begin{equation*} + \frac{\Delta t}{T} = \frac{E - e \sin E}{2 \pi} + \end{equation*} + + \vspace{1em} + + \begin{equation*} + T = 2 \pi \sqrt{\frac{a^3}{\mu}} + \end{equation*} + \end{frame} + + \note{By utilizing these laws and some geometric properties of conic sections, we can + actually take them a step further, producing the following extremely useful equations for + representing spacecraft motion:} + + \begin{frame} \frametitle{Kepler's Equation} + \begin{equation*} + \frac{\Delta t}{T} = \frac{E - e \sin E}{2 \pi} + \end{equation*} + + \vspace{1em} + + \begin{equation*} + T = 2 \pi \sqrt{\frac{a^3}{\mu}} + \end{equation*} + + \vspace{1em} + + \begin{equation*} + M = \sqrt{\frac{\mu}{a^3}} \Delta t = E - e \sin E + \end{equation*} + \end{frame} + + \note{The second of these, which we'll take particular notice of, is considered Kepler's + equation. It provides a method for relating the time since periapsis of a satellite in an + orbit to the satellite's position along that orbit. The solution to this equatin can then be + used to solve for a spacecraft's position, which is very useful for direct optimization + methods.} + + % \note{Finally, though, we'll need to actually solve Kepler's equation. For this purpose + % we'll use a generic root-finding method first proposed by Laguerre in the 19th century. + % Conway first explored its application on Kepler's equation in the 1980s and found it to be + % more robust at converging to a solution, with similar convergence speed, to the more common + % variations of the Newton-Raphson method} + + \subsection{Interplanetary Trajectories} + + \begin{frame} \frametitle{Patched Conics} + \begin{figure}[H] + \centering + \includegraphics[height=0.7\paperheight]{LaTeX/fig/patched_conics} + \end{figure} + \end{frame} + + \note{Now that we have a grasp on the underlying system dynamics, we can consider the + additions needed for interplanetary travel specifically. To this end, we'll consider the + method of patched conics, a technique for reconciling the fact that the spacecraft will not + be under the influence of a single body, but actually a number of different bodies over the + course of its trajectory. To achieve this, we'll break the trajectory up into different + sub-trajectories, each governed by a distinct single body when the spacecraft is within the + sphere of influence of that particular body...} + + \begin{frame} \frametitle{Gravity Assist} + \begin{figure}[H] + \centering + \includegraphics[height=0.7\paperheight]{LaTeX/fig/flyby} + \end{figure} + \end{frame} + + \note{You'll notice, though, that the trajectories within the sphere of influence aren't + elliptical orbits. They're hyperbolic. Because of this fact, we can take advantage of the + gravity flyby effect. Because of the nature of the hyperbolic arc the spacecraft takes + around the planet, the spacecraft leaves in a different direction than it arrives. This + effect can be targeted up to a point, and a free "maneuver" can be achieved, changing the + direction of the spacecraft's motion relative to the Sun.} + + \subsection{Low Thrust Trajectories} + + \begin{frame} \frametitle{Sims-Flanagan Transcription} + \begin{columns} + \begin{column}{0.45\paperwidth} + \begin{itemize} + \item Each trajectory broken into $n$ segments + \item Impulsive thrust at the center of each one, assuming equal thrust + over the segment + \item Mass decremented over the duration of the segment + \end{itemize} + \end{column} + \begin{column}{0.45\paperwidth} + \begin{figure} + \centering + \includegraphics[width=0.45\paperwidth]{LaTeX/fig/sft} + \end{figure} + \end{column} + \end{columns} + \end{frame} + + \note{We'll also need to discretize the low-thrust controls in order to apply a direct + optimization. This is achieved, in this thesis and many other implementations, with the + Sims-Flanagan transcription. The trajectory is broken up into a number of smaller + trajectories with a single impulsive thrust in the center of each. Effectively, this + allows...} + + \begin{frame} \frametitle{Control Vector Description} + \begin{columns} + \begin{column}{0.45\paperwidth} + \begin{align*} + F_r &= F \cos(\beta) \sin (\alpha) \\ + F_\theta &= F \cos(\beta) \cos (\alpha) \\ + F_h &= F \sin(\beta) + \end{align*} + \end{column} + \begin{column}{0.45\paperwidth} + \begin{figure} + \centering + \includegraphics[width=0.45\paperwidth]{LaTeX/fig/thrust_angle} + \end{figure} + \end{column} + \end{columns} + \end{frame} + + \note{Finally, in order to better understand the thrust control vector, we need a useful + frame. For this purpose, I use the r theta h frame in which the r axis is... This is useful + because the theta axis is aligned fairly close to the velocity direction. That allows for a + useful framework in which to analyze the control thrusts. Thrusts with a low alpha angle are + useful for raising the energy of the orbit, while other thrusts (either alpha around pi/2 or + high beta) are useful for steering controls.} + +\section{Algorithm Overview} + + \subsection{Trajectory Composition} + + \begin{frame} \frametitle{Input Description} + \footnotesize{ + \begin{itemize} + \item \textbf<1>{Spacecraft dry mass in kilograms} + \item \textbf<1>{Total starting mass of the Spacecraft in kilograms} + \item \textbf<2>{Thruster Specific Impulse in seconds} + \item \textbf<2>{Thruster Maximum Thrusting Force in Newtons} + \item \textbf<2>{Thruster Duty Cycle Percentage} + \item \textbf<2>{Number of Thrusters on Spacecraft} + \item \textbf<3>{The Launch Window Boundaries} + \item \textbf<3>{The Latest Arrival Date} + \item \textbf<4>{A Maximum Acceptable $V_\infty$ at arrival in kilometers per + second} + \item \textbf<4>{A Maximum Acceptable $C_3$ at launch in kilometers per second + squared} + \item \textbf<4>{A cost function relating the mass usage, $v_\infty$ at arrival, and + $C_3$ at launch to a cost} + \item \textbf<5>{A list of flyby planets starting with Earth and ending with the + destination} + \end{itemize} + } + \end{frame} + + \note{In order to fully understand the optimization algorithm, it makes sense to first + understand the variables that won't be optimized. These will represent the mission + parameters used as inputs to the algorithm. These first two will essentially size the + spacecraft that we'll be using. Then the next groups will define the thrusters, the launch + and arrival windows, the cost function to be used by the direct optimizer, and finally the + flybys that the spacecraft will leverage on its trajectory.} + + \subsection{Inner Loop Implementation} + + \begin{frame} \frametitle{Non-Linear Programming Approach - Definition} + A Non-Linear Programming Problem involves finding a solution that optimizes a function: + + \begin{equation*} + f(\vec{x}) + \end{equation*} + + Subject to constraints: + \begin{align*} + \vec{g}(\vec{x}) &\le 0 \\ + \vec{h}(\vec{x}) &= 0 + \end{align*} + + \end{frame} + + \note{Now we'll treat the trajectory as a direct non-linear programming optimization + problem. This provides a general approach to determining a local optima to a scalar function + f of a vector-valued input, x, subject to constraints g and h, defined as can be seen here.} + + \begin{frame} \frametitle{Non-Linear Programming Approach - Input Vector} + \begin{figure} + \centering + \includegraphics[height=0.7\paperheight]{LaTeX/flowcharts/nlp} + \end{figure} + \end{frame} + + \note{So we need simply to define the function, constraints, and the input vector. Starting + with the input vector, we need to determine...} + + \begin{frame} \frametitle{Non-Linear Programming Approach - Constraints} + \begin{itemize} + \item For every phase other than the final: + \begin{itemize} + \item The minimum periapsis of the hyperbolic flyby arc must be above some + user-specified minimum safe altitude. + \item The magnitude of the incoming hyperbolic velocity must match the magnitude + of the outgoing hyperbolic velocity. + \item The spacecraft position must match the planet's position (within bounds) + at the end of the phase. + \end{itemize} + \item For the final phase: + \begin{itemize} + \item The spacecraft position must match the planet's position (within bounds) + at the end of the phase. + \item The final mass must be greater than the dry mass of the craft. + \end{itemize} + \end{itemize} + \end{frame} + + \note{And we can also determine a series of constraints...} + + \begin{frame} \frametitle{Non-Linear Programming Approach - Cost Function} + \begin{equation*} + J(\vec{x}, m_{dry}, C_{3,max}) = 3 \left| \frac{m(\vec{x})}{m_{dry}} \right| + + \left| \frac{C_3(\vec{x})}{C_{3,max}} \right| + \end{equation*} + \end{frame} + + \note{Finally, the cost function was designed to be user-specified. However, for the + implementation of this particular project, I utilized a combination of the normalized fuel + usage and launch c3. Now we have a fully-defined non-linear programming problem that can be + optimized using any direct method optimization scheme.} + + \subsection{Outer Loop Implementation} + + \begin{frame} \frametitle{Monotonic Basin Hopping} + \begin{figure} + \centering + \includegraphics[height=0.7\textheight]{LaTeX/flowcharts/mbh} + \end{figure} + \end{frame} + + \note{Now we have a method for finding local optima in the vicinity of an input vector, but + what we're after is the global optima, meaning that we need a method for testing a variety + of input vectors, each of which could either fail to produce a valid trajectory after the + inner loop or produce a valid solution that may or may not be in a "basin", or collection of + nearby valid solutions with a single "regional" optimum. In order to approach this problem, + I've employed a Monotonic Basin Hopping algorithm. (Step through each of the steps)} + + \begin{frame} \frametitle{Monotonic Basin Hopping - Perturbation PDF} + Pareto Distribution: + \begin{equation*} + 1 + + \left[ \frac{s}{\epsilon} \right] \cdot + \left[ \frac{\alpha - 1}{\frac{\epsilon}{\epsilon + r}^{-\alpha}} \right] + \end{equation*} + \end{frame} + +\section{Sample Mission Analysis} + + \subsection{Mission Scenario} + + \begin{frame} \frametitle{Mission Scenario} + \begin{itemize} + \item Spacecraft starting mass: 3500 kg + \item Thruster Specific Impulse: 3200 s + \item Thruster Maximum Thrusting Force: 250 mN + \item Thruster Duty Cycle: 100\% + \item Number of Thrusters: 1 + \item The Launch Window: 2023 and 2024 + \item The Latest Arrival Date: December 31st, 2044 + \item Maximum $C_3$ at launch: $100 \frac{\text{km}^2}{\text{s}^2}$ + \end{itemize} + \end{frame} + + \begin{frame} \frametitle{Flybys Analyzed} + \begin{itemize} + \item EJS + \item EMJS + \item EMMJS + \item EMS + \item ES + \item EVMJS + \item EVMS + \item EVVJS + \end{itemize} + \end{frame} + + \subsection{Trajectory 1} + + \begin{frame} \frametitle{Trajectory 1 - Earth → Mars → Saturn} + \begin{figure} + \includegraphics<1>[height=0.5\paperheight]{LaTeX/fig/EMS_plot} + \includegraphics<2>[height=0.5\paperheight]{LaTeX/fig/EMS_plot_noplanets} + \includegraphics<3>[height=0.5\paperheight]{LaTeX/fig/EMS_thrust_mag} + \includegraphics<4>[height=0.5\paperheight]{LaTeX/fig/EMS_thrust_components_vnb} + \end{figure} + \vspace{-1em} + \begin{table}\begin{tiny} + \begin{tabular}{ | c c c c c c | } + \hline + \bfseries Flyby Selection & + \bfseries Launch Date & + \bfseries Mission Length & + \bfseries Launch $C_3$ & + \bfseries Arrival $V_\infty$ & + \bfseries Fuel Usage \\ + & & (years) & $\left( \frac{km}{s} \right)^2$ & ($\frac{km}{s}$) & (kg) \\ + \hline + EMS & 2024-06-27 & 7.9844 & 60.41025 & 5.816058 & 446.9227 \\ + \hline + \end{tabular} + \end{tiny}\end{table} + \end{frame} + + \subsection{Trajectory 2} + + \begin{frame} \frametitle{Trajectory 2 - Earth → Mars → Jupiter → Saturn} + \begin{figure} + \includegraphics<1>[height=0.5\paperheight]{LaTeX/fig/EMJS_plot} + \includegraphics<2>[height=0.5\paperheight]{LaTeX/fig/EMJS_plot_noplanets} + \includegraphics<3>[height=0.5\paperheight]{LaTeX/fig/EMJS_thrust_mag} + \includegraphics<4>[height=0.5\paperheight]{LaTeX/fig/EMJS_thrust_components_vnb} + \end{figure} + \vspace{-1em} + \begin{table}\begin{tiny} + \begin{tabular}{ | c c c c c c | } + \hline + \bfseries Flyby Selection & + \bfseries Launch Date & + \bfseries Mission Length & + \bfseries Launch $C_3$ & + \bfseries Arrival $V_\infty$ & + \bfseries Fuel Usage \\ + & & (years) & $\left( \frac{km}{s} \right)^2$ & ($\frac{km}{s}$) & (kg) \\ + \hline + EMJS & 2023-11-08 & 14.1072 & 40.43862 & 3.477395 & 530.6683 \\ + \hline + \end{tabular} + \end{tiny}\end{table} + \end{frame} + + \subsection{Results Analysis} + + \begin{frame} \frametitle{Results Review} + \begin{table}\begin{tiny} + \begin{tabular}{ | c c c c c c | } + \hline + \bfseries Flyby Selection & + \bfseries Launch Date & + \bfseries Mission Length & + \bfseries Launch $C_3$ & + \bfseries Arrival $V_\infty$ & + \bfseries Fuel Usage \\ + & & (years) & $\left( \frac{km}{s} \right)^2$ & ($\frac{km}{s}$) & (kg) \\ + \hline + EMS & 2024-06-27 & 7.9844 & 60.41025 & 5.816058 & 446.9227 \\ + EMJS & 2023-11-08 & 14.1072 & 40.43862 & 3.477395 & 530.6683 \\ + \hline + \end{tabular} + \end{tiny}\end{table} + \end{frame} + +\section{Conclusion} + + \begin{frame} + \begin{center} + \begin{Huge} + Thank You! + \end{Huge} + \end{center} \end{frame} -\section{Introduction} - -\section{Introduction} - -\section{Introduction} - -\section{Introduction} + \bibliographystyle{plain} + \bibliography{LaTeX/presentation} \end{document} diff --git a/Makefile b/Makefile index 508a010..d5792d9 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ SRC_DIR = LaTeX/ THESIS_SRC_NAMES = thesis.tex thesis.bib approach.tex conclusion.tex introduction.tex \ results.tex trajectory_design.tex trajectory_optimization.tex THESIS_SRC = $(addprefix $(SRC_DIR)/,$(THESIS_SRC_NAMES)) -THESIS_PRES_SRC_NAMES = presentation.tex +THESIS_PRES_SRC_NAMES = presentation.tex presentation.bib THESIS_PRES_SRC = $(addprefix $(SRC_DIR)/,$(THESIS_PRES_SRC_NAMES)) THESIS_PRES = presentation.pdf THESIS_PDF = thesis.pdf @@ -21,6 +21,9 @@ $(BUILD_DIR)/$(THESIS_PDF): $(BUILD_DIR) $(THESIS_SRC) $(BUILD_DIR)/$(THESIS_PRES): $(BUILD_DIR) $(THESIS_PRES_SRC) xelatex --output-directory $(BUILD_DIR) $(SRC_DIR)/presentation + bibtex $(BUILD_DIR)/presentation + xelatex --output-directory $(BUILD_DIR) $(SRC_DIR)/presentation + xelatex --output-directory $(BUILD_DIR) $(SRC_DIR)/presentation $(THESIS_PDF): $(BUILD_DIR)/$(THESIS_PDF) cp $(BUILD_DIR)/thesis.pdf . diff --git a/ipopt.out b/ipopt.out new file mode 100644 index 0000000..e69de29 diff --git a/julia/ingest_mission.jl b/julia/ingest_mission.jl index e7a0964..ed55f0d 100644 --- a/julia/ingest_mission.jl +++ b/julia/ingest_mission.jl @@ -64,22 +64,22 @@ println(get_id.(sorted_missions2[1:5])) # camera=((-0.2, -0.3, -0.2),(1.75,-1.75,1.5)))); # Save Orbit Plot -savefig(Thesis.plot(short, title="EMS Mission Profile", mode="light", planet_colors=false, - phase_colors=["#F00","#F0F","#6AF"], markers=false, legend=false, - camera=((-0.2, 0.1, -0.3),(-2.,-2.,1.))), - "/home/connor/projects/thesis/LaTeX/fig/EMS_plot.png", - width=850, height=400) -savefig(Thesis.plot(short, title="EMS Mission Profile", mode="light", planet_colors=false, - phase_colors=["#F00","#F0F","#6AF"], markers=false, planets=false, legend=false, - camera=((-0.2, 0.1, -0.3),(-2.,-2.,1.))), - "/home/connor/projects/thesis/LaTeX/fig/EMS_plot_noplanets.png", - width=850, height=400) -savefig(Thesis.plot(long, title="EMS Mission Profile", mode="light", planet_colors=false, +# savefig(Thesis.plot(short, title="EMS Mission Profile", mode="light", planet_colors=false, +# phase_colors=["#F00","#F0F","#6AF"], markers=false, legend=false, +# camera=((-0.2, 0.1, -0.3),(-2.,-2.,1.))), +# "/home/connor/projects/thesis/LaTeX/fig/EMS_plot.png", +# width=850, height=400) +# savefig(Thesis.plot(short, title="EMS Mission Profile", mode="light", planet_colors=false, +# phase_colors=["#F00","#F0F","#6AF"], markers=false, planets=false, legend=false, +# camera=((-0.2, 0.1, -0.3),(-2.,-2.,1.))), +# "/home/connor/projects/thesis/LaTeX/fig/EMS_plot_noplanets.png", +# width=850, height=400) +savefig(Thesis.plot(long, title="EMJS Mission Profile", mode="light", planet_colors=false, phase_colors=["#F00","#F0F","#6AF"], markers=false, legend=false, camera=((-0.2, -0.3, -0.2),(1.75,-1.75,1.5))), "/home/connor/projects/thesis/LaTeX/fig/EMJS_plot.png", width=850, height=400) -savefig(Thesis.plot(long, title="EMS Mission Profile", mode="light", planet_colors=false, +savefig(Thesis.plot(long, title="EMJS Mission Profile", mode="light", planet_colors=false, phase_colors=["#F00","#F0F","#6AF"], markers=false, planets=false, legend=false, camera=((-0.2, -0.3, -0.2),(2.,-2.,1.5))), "/home/connor/projects/thesis/LaTeX/fig/EMJS_plot_noplanets.png", @@ -89,18 +89,22 @@ savefig(Thesis.plot(long, title="EMS Mission Profile", mode="light", planet_colo # display(plot_thrust_components(display_mission, title="Thrust Components vs Time", mode="light")) # Save Thrust Plots -savefig(plot_thrust(short, title="Thrust Magnitude vs Time", mode="light", legend=false), - "/home/connor/projects/thesis/LaTeX/fig/EMS_thrust_mag.png", - width=850, height=400) -savefig(plot_thrust_components(short, title="Thrust Components vs Time", mode="light", legend=false), - "/home/connor/projects/thesis/LaTeX/fig/EMS_thrust_components.png", - width=850, height=400) -savefig(plot_thrust(long, title="Thrust Magnitude vs Time", mode="light", legend=false), - "/home/connor/projects/thesis/LaTeX/fig/EMJS_thrust_mag.png", - width=850, height=400) -savefig(plot_thrust_components(long, title="Thrust Components vs Time", mode="light", legend=false), - "/home/connor/projects/thesis/LaTeX/fig/EMJS_thrust_components.png", - width=850, height=400) +# savefig(plot_thrust(short, title="Thrust Magnitude vs Time", mode="light", legend=false), +# "/home/connor/projects/thesis/LaTeX/fig/EMS_thrust_mag.png", +# width=850, height=400) +# savefig(plot_thrust_components(short, title="Thrust Components vs Time", mode="light", legend=false), +# "/home/connor/projects/thesis/LaTeX/fig/EMS_thrust_components.png", +# width=850, height=400) +# savefig(plot_thrust(long, title="Thrust Magnitude vs Time", mode="light", legend=false), +# "/home/connor/projects/thesis/LaTeX/fig/EMJS_thrust_mag.png", +# width=850, height=400) +# savefig(plot_thrust_components(long, title="Thrust Components vs Time", mode="light", legend=false), +# "/home/connor/projects/thesis/LaTeX/fig/EMJS_thrust_components.png", +# width=850, height=400) + +# Save Thrust Plots (VNB) +# display(plot_thrust_components(short, title="Thrust Components vs Time", mode="light", vnb=true)) +# display(plot_thrust_components(long, title="Thrust Components vs Time", mode="light", vnb=true)) # Save mission # store(display_mission, "/home/connor/projects/thesis/archive/best/long_mission") diff --git a/julia/src/utilities/conversions.jl b/julia/src/utilities/conversions.jl index 170d3d2..c429f51 100644 --- a/julia/src/utilities/conversions.jl +++ b/julia/src/utilities/conversions.jl @@ -1,4 +1,15 @@ -export oe_to_rθh, rθh_to_xyz, oe_to_xyz, xyz_to_oe, xyz_to_rθh, conv_T, spiral, gen_orbit +export oe_to_rθh, rθh_to_xyz, oe_to_xyz, xyz_to_oe, xyz_to_rθh, xyz_to_vnb, conv_T, spiral, gen_orbit + +function xyz_to_vnb(vec::Vector, rv::Vector) + r = rv[1:3] + v = rv[4:6] + h = cross(r,v) + n_hat = h/norm(h) + v_hat = v/norm(v) + b = cross(h,v) + b_hat = b/norm(b) + return [ dot(vec,v_hat), dot(vec,n_hat), dot(vec,b_hat) ] +end function oe_to_rθh(oe::Vector,μ::Real) :: Vector diff --git a/julia/src/utilities/plotting.jl b/julia/src/utilities/plotting.jl index d786473..0e501f8 100644 --- a/julia/src/utilities/plotting.jl +++ b/julia/src/utilities/plotting.jl @@ -481,30 +481,32 @@ end function plot_thrust_components(m::Union{Mission, Mission_Guess}; title::String="Mission Plot", mode::String="dark", - legend=true, + vnb=false, ) traces = Vector{PlotlyJS.AbstractTrace}() times = Vector{String}() - xs = Vector{Float64}() - ys = Vector{Float64}() - zs = Vector{Float64}() - αs = Vector{Float64}() - βs = Vector{Float64}() + comps1 = Vector{Float64}() + comps2 = Vector{Float64}() + comps3 = Vector{Float64}() time = datetime2julian(m.launch_date) start = state(Earth, time, m.launch_v∞, m.start_mass) for phase in m.phases n = size(phase.thrust_profile)[1] path = prop(phase.thrust_profile, start, m.sc, phase.tof) for i in 1:n - push!(times, format(julian2datetime(time + i*phase.tof/(86400n)),"yyyy-mm-dd HH:MM:SS")) - push!(xs, phase.thrust_profile[i,1]) - push!(ys, phase.thrust_profile[i,2]) - push!(zs, phase.thrust_profile[i,3]) - r, θ, h = xyz_to_rθh(phase.thrust_profile[i,1:3], xyz_to_oe(path[i+1,1:6],Sun.μ)) - β = asin(h) - α = atan(r/cos(β),θ/cos(β)) - push!(αs, α) - push!(βs, β) + if !vnb + push!(times, format(julian2datetime(time + i*phase.tof/(86400n)),"yyyy-mm-dd HH:MM:SS")) + fr, fθ, fh = xyz_to_rθh(phase.thrust_profile[i,1:3], xyz_to_oe(path[i+1,1:6],Sun.μ)) + push!(comps1, fθ) + push!(comps2, fh) + push!(comps3, fr) + else + push!(times, format(julian2datetime(time + i*phase.tof/(86400n)),"yyyy-mm-dd HH:MM:SS")) + fv, fn, fb = xyz_to_vnb(phase.thrust_profile[i,1:3], path[i+1,1:6]) + push!(comps1, fv) + push!(comps2, fn) + push!(comps3, fb) + end end time += phase.tof/86400. time_string = format(julian2datetime(time),"yyyy-mm-dd HH:MM:SS") @@ -512,21 +514,23 @@ function plot_thrust_components(m::Union{Mission, Mission_Guess}; y=[-10.0,10.0], mode="lines", line_color="#000", - name=phase.planet.name*" Flyby")) + name=phase.planet.name*" Flyby", + showlegend=false)) mass = path[end,end] start = state(phase.planet, time, phase.v∞_out, mass) end - push!(traces, scatter(;x=times, y=αs, name="in-plane angle")) - push!(traces, scatter(;x=times, y=βs, name="out-of-plane angle")) + push!(traces, scatter(;x=times, y=comps1, name="velocity component")) + push!(traces, scatter(;x=times, y=comps2, name="out of plane component")) + push!(traces, scatter(;x=times, y=comps3, name="cross-track component")) # Determine layout details layout = Layout(;title=title, xaxis_title="Year", yaxis_title="Thrust Angle (Radians)", - yaxis_range=[min(minimum(αs),minimum(βs))*1.02,max(maximum(αs),maximum(βs))*1.02], - ) - - layout["showlegend"] = legend + yaxis_range=[minimum(minimum.([comps1, comps2, comps3]))*1.02, + maximum(maximum.([comps1, comps2, comps3]))*1.02], + legend_orientation="h", + ) # Plot PlotlyJS.plot( PlotlyJS.Plot( traces, layout ) ) diff --git a/temp/presentation.bbl b/temp/presentation.bbl new file mode 100644 index 0000000..19a90d2 --- /dev/null +++ b/temp/presentation.bbl @@ -0,0 +1,13 @@ +\begin{thebibliography}{1} + +\bibitem{nasa_voyager} +Voyager - mission overview. + +\bibitem{jehnBepi} +Rüdiger Jehn, Daniel García~Yárnoz, Johannes Schoenmaekers, and Vicente + Companys. +\newblock Trajectory design for bepicolombo based on navigation requirements. +\newblock {\em Journal of Aerospace Engineering, Sciences and Applications}, + 4:1--9, 01 2012. + +\end{thebibliography} diff --git a/temp/presentation.blg b/temp/presentation.blg new file mode 100644 index 0000000..685d214 --- /dev/null +++ b/temp/presentation.blg @@ -0,0 +1,48 @@ +This is BibTeX, Version 0.99d (TeX Live 2021/Arch Linux) +Capacity: max_strings=200000, hash_size=200000, hash_prime=170003 +The top-level auxiliary file: temp//presentation.aux +The style file: plain.bst +Database file #1: LaTeX/presentation.bib +Warning--to sort, need author or key in nasa_voyager +You've used 2 entries, + 2118 wiz_defined-function locations, + 508 strings with 4311 characters, +and the built_in function-call counts, 514 in all, are: += -- 44 +> -- 24 +< -- 0 ++ -- 10 +- -- 8 +* -- 36 +:= -- 85 +add.period$ -- 4 +call.type$ -- 2 +change.case$ -- 10 +chr.to.int$ -- 0 +cite$ -- 3 +duplicate$ -- 18 +empty$ -- 46 +format.name$ -- 8 +if$ -- 107 +int.to.chr$ -- 0 +int.to.str$ -- 2 +missing$ -- 1 +newline$ -- 11 +num.names$ -- 2 +pop$ -- 13 +preamble$ -- 1 +purify$ -- 8 +quote$ -- 0 +skip$ -- 17 +stack$ -- 0 +substring$ -- 19 +swap$ -- 2 +text.length$ -- 0 +text.prefix$ -- 0 +top$ -- 0 +type$ -- 8 +warning$ -- 1 +while$ -- 3 +width$ -- 3 +write$ -- 18 +(There was 1 warning) diff --git a/temp/presentation.nav b/temp/presentation.nav new file mode 100644 index 0000000..395b1df --- /dev/null +++ b/temp/presentation.nav @@ -0,0 +1,102 @@ +\headcommand {\slideentry {0}{0}{1}{1/1}{}{0}} +\headcommand {\beamer@framepages {1}{1}} +\headcommand {\beamer@sectionpages {1}{1}} +\headcommand {\beamer@subsectionpages {1}{1}} +\headcommand {\sectionentry {1}{Introduction}{2}{Introduction}{0}} +\headcommand {\beamer@subsectionpages {2}{1}} +\headcommand {\beamer@subsectionentry {0}{1}{1}{2}{Motivation}} +\headcommand {\slideentry {1}{1}{1}{2/2}{Motivation}{0}} +\headcommand {\beamer@framepages {2}{2}} +\headcommand {\slideentry {1}{1}{2}{3/3}{Motivation}{0}} +\headcommand {\beamer@framepages {3}{3}} +\headcommand {\slideentry {1}{1}{3}{4/4}{Motivation}{0}} +\headcommand {\beamer@framepages {4}{4}} +\headcommand {\beamer@subsectionpages {2}{4}} +\headcommand {\beamer@subsectionentry {0}{1}{2}{5}{Context}} +\headcommand {\slideentry {1}{2}{1}{5/6}{Context}{0}} +\headcommand {\beamer@framepages {5}{6}} +\headcommand {\beamer@sectionpages {2}{6}} +\headcommand {\beamer@subsectionpages {5}{6}} +\headcommand {\sectionentry {2}{Trajectory Optimization Background}{7}{Trajectory Optimization Background}{0}} +\headcommand {\beamer@subsectionpages {7}{6}} +\headcommand {\beamer@subsectionentry {0}{2}{1}{7}{System Dynamics}} +\headcommand {\slideentry {2}{1}{1}{7/7}{System Dynamics}{0}} +\headcommand {\beamer@framepages {7}{7}} +\headcommand {\slideentry {2}{1}{2}{8/8}{System Dynamics}{0}} +\headcommand {\beamer@framepages {8}{8}} +\headcommand {\slideentry {2}{1}{3}{9/9}{System Dynamics}{0}} +\headcommand {\beamer@framepages {9}{9}} +\headcommand {\slideentry {2}{1}{4}{10/10}{System Dynamics}{0}} +\headcommand {\beamer@framepages {10}{10}} +\headcommand {\slideentry {2}{1}{5}{11/11}{System Dynamics}{0}} +\headcommand {\beamer@framepages {11}{11}} +\headcommand {\slideentry {2}{1}{6}{12/12}{System Dynamics}{0}} +\headcommand {\beamer@framepages {12}{12}} +\headcommand {\slideentry {2}{1}{7}{13/13}{System Dynamics}{0}} +\headcommand {\beamer@framepages {13}{13}} +\headcommand {\beamer@subsectionpages {7}{13}} +\headcommand {\beamer@subsectionentry {0}{2}{2}{14}{Interplanetary Trajectories}} +\headcommand {\slideentry {2}{2}{1}{14/14}{Interplanetary Trajectories}{0}} +\headcommand {\beamer@framepages {14}{14}} +\headcommand {\slideentry {2}{2}{2}{15/15}{Interplanetary Trajectories}{0}} +\headcommand {\beamer@framepages {15}{15}} +\headcommand {\beamer@subsectionpages {14}{15}} +\headcommand {\beamer@subsectionentry {0}{2}{3}{16}{Low Thrust Trajectories}} +\headcommand {\slideentry {2}{3}{1}{16/16}{Low Thrust Trajectories}{0}} +\headcommand {\beamer@framepages {16}{16}} +\headcommand {\slideentry {2}{3}{2}{17/17}{Low Thrust Trajectories}{0}} +\headcommand {\beamer@framepages {17}{17}} +\headcommand {\beamer@sectionpages {7}{17}} +\headcommand {\beamer@subsectionpages {16}{17}} +\headcommand {\sectionentry {3}{Algorithm Overview}{18}{Algorithm Overview}{0}} +\headcommand {\beamer@subsectionpages {18}{17}} +\headcommand {\beamer@subsectionentry {0}{3}{1}{18}{Trajectory Composition}} +\headcommand {\slideentry {3}{1}{1}{18/22}{Trajectory Composition}{0}} +\headcommand {\beamer@framepages {18}{22}} +\headcommand {\beamer@subsectionpages {18}{22}} +\headcommand {\beamer@subsectionentry {0}{3}{2}{23}{Inner Loop Implementation}} +\headcommand {\slideentry {3}{2}{1}{23/23}{Inner Loop Implementation}{0}} +\headcommand {\beamer@framepages {23}{23}} +\headcommand {\slideentry {3}{2}{2}{24/24}{Inner Loop Implementation}{0}} +\headcommand {\beamer@framepages {24}{24}} +\headcommand {\slideentry {3}{2}{3}{25/25}{Inner Loop Implementation}{0}} +\headcommand {\beamer@framepages {25}{25}} +\headcommand {\slideentry {3}{2}{4}{26/26}{Inner Loop Implementation}{0}} +\headcommand {\beamer@framepages {26}{26}} +\headcommand {\beamer@subsectionpages {23}{26}} +\headcommand {\beamer@subsectionentry {0}{3}{3}{27}{Outer Loop Implementation}} +\headcommand {\slideentry {3}{3}{1}{27/27}{Outer Loop Implementation}{0}} +\headcommand {\beamer@framepages {27}{27}} +\headcommand {\slideentry {3}{3}{2}{28/28}{Outer Loop Implementation}{0}} +\headcommand {\beamer@framepages {28}{28}} +\headcommand {\beamer@sectionpages {18}{28}} +\headcommand {\beamer@subsectionpages {27}{28}} +\headcommand {\sectionentry {4}{Sample Mission Analysis}{29}{Sample Mission Analysis}{0}} +\headcommand {\beamer@subsectionpages {29}{28}} +\headcommand {\beamer@subsectionentry {0}{4}{1}{29}{Mission Scenario}} +\headcommand {\slideentry {4}{1}{1}{29/29}{Mission Scenario}{0}} +\headcommand {\beamer@framepages {29}{29}} +\headcommand {\slideentry {4}{1}{2}{30/30}{Mission Scenario}{0}} +\headcommand {\beamer@framepages {30}{30}} +\headcommand {\beamer@subsectionpages {29}{30}} +\headcommand {\beamer@subsectionentry {0}{4}{2}{31}{Trajectory 1}} +\headcommand {\slideentry {4}{2}{1}{31/34}{Trajectory 1}{0}} +\headcommand {\beamer@framepages {31}{34}} +\headcommand {\beamer@subsectionpages {31}{34}} +\headcommand {\beamer@subsectionentry {0}{4}{3}{35}{Trajectory 2}} +\headcommand {\slideentry {4}{3}{1}{35/38}{Trajectory 2}{0}} +\headcommand {\beamer@framepages {35}{38}} +\headcommand {\beamer@subsectionpages {35}{38}} +\headcommand {\beamer@subsectionentry {0}{4}{4}{39}{Results Analysis}} +\headcommand {\slideentry {4}{4}{1}{39/39}{Results Analysis}{0}} +\headcommand {\beamer@framepages {39}{39}} +\headcommand {\beamer@sectionpages {29}{39}} +\headcommand {\beamer@subsectionpages {39}{39}} +\headcommand {\sectionentry {5}{Conclusion}{40}{Conclusion}{0}} +\headcommand {\slideentry {5}{0}{1}{40/40}{}{0}} +\headcommand {\beamer@framepages {40}{40}} +\headcommand {\beamer@partpages {1}{41}} +\headcommand {\beamer@subsectionpages {40}{41}} +\headcommand {\beamer@sectionpages {40}{41}} +\headcommand {\beamer@documentpages {41}} +\headcommand {\gdef \inserttotalframenumber {29}} diff --git a/temp/presentation.out b/temp/presentation.out new file mode 100644 index 0000000..e348233 --- /dev/null +++ b/temp/presentation.out @@ -0,0 +1,17 @@ +\BOOKMARK [2][]{Outline0.1}{\376\377\000I\000n\000t\000r\000o\000d\000u\000c\000t\000i\000o\000n}{}% 1 +\BOOKMARK [3][]{Outline0.1.1.2}{\376\377\000M\000o\000t\000i\000v\000a\000t\000i\000o\000n}{Outline0.1}% 2 +\BOOKMARK [3][]{Outline0.1.2.5}{\376\377\000C\000o\000n\000t\000e\000x\000t}{Outline0.1}% 3 +\BOOKMARK [2][]{Outline0.2}{\376\377\000T\000r\000a\000j\000e\000c\000t\000o\000r\000y\000\040\000O\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n\000\040\000B\000a\000c\000k\000g\000r\000o\000u\000n\000d}{}% 4 +\BOOKMARK [3][]{Outline0.2.1.7}{\376\377\000S\000y\000s\000t\000e\000m\000\040\000D\000y\000n\000a\000m\000i\000c\000s}{Outline0.2}% 5 +\BOOKMARK [3][]{Outline0.2.2.14}{\376\377\000I\000n\000t\000e\000r\000p\000l\000a\000n\000e\000t\000a\000r\000y\000\040\000T\000r\000a\000j\000e\000c\000t\000o\000r\000i\000e\000s}{Outline0.2}% 6 +\BOOKMARK [3][]{Outline0.2.3.16}{\376\377\000L\000o\000w\000\040\000T\000h\000r\000u\000s\000t\000\040\000T\000r\000a\000j\000e\000c\000t\000o\000r\000i\000e\000s}{Outline0.2}% 7 +\BOOKMARK [2][]{Outline0.3}{\376\377\000A\000l\000g\000o\000r\000i\000t\000h\000m\000\040\000O\000v\000e\000r\000v\000i\000e\000w}{}% 8 +\BOOKMARK [3][]{Outline0.3.1.18}{\376\377\000T\000r\000a\000j\000e\000c\000t\000o\000r\000y\000\040\000C\000o\000m\000p\000o\000s\000i\000t\000i\000o\000n}{Outline0.3}% 9 +\BOOKMARK [3][]{Outline0.3.2.23}{\376\377\000I\000n\000n\000e\000r\000\040\000L\000o\000o\000p\000\040\000I\000m\000p\000l\000e\000m\000e\000n\000t\000a\000t\000i\000o\000n}{Outline0.3}% 10 +\BOOKMARK [3][]{Outline0.3.3.27}{\376\377\000O\000u\000t\000e\000r\000\040\000L\000o\000o\000p\000\040\000I\000m\000p\000l\000e\000m\000e\000n\000t\000a\000t\000i\000o\000n}{Outline0.3}% 11 +\BOOKMARK [2][]{Outline0.4}{\376\377\000S\000a\000m\000p\000l\000e\000\040\000M\000i\000s\000s\000i\000o\000n\000\040\000A\000n\000a\000l\000y\000s\000i\000s}{}% 12 +\BOOKMARK [3][]{Outline0.4.1.29}{\376\377\000M\000i\000s\000s\000i\000o\000n\000\040\000S\000c\000e\000n\000a\000r\000i\000o}{Outline0.4}% 13 +\BOOKMARK [3][]{Outline0.4.2.31}{\376\377\000T\000r\000a\000j\000e\000c\000t\000o\000r\000y\000\040\0001}{Outline0.4}% 14 +\BOOKMARK [3][]{Outline0.4.3.35}{\376\377\000T\000r\000a\000j\000e\000c\000t\000o\000r\000y\000\040\0002}{Outline0.4}% 15 +\BOOKMARK [3][]{Outline0.4.4.39}{\376\377\000R\000e\000s\000u\000l\000t\000s\000\040\000A\000n\000a\000l\000y\000s\000i\000s}{Outline0.4}% 16 +\BOOKMARK [2][]{Outline0.5}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n}{}% 17 diff --git a/temp/presentation.snm b/temp/presentation.snm new file mode 100644 index 0000000..e69de29 diff --git a/temp/thesis.bbl b/temp/thesis.bbl new file mode 100644 index 0000000..56dbacf --- /dev/null +++ b/temp/thesis.bbl @@ -0,0 +1,198 @@ +\begin{thebibliography}{10} + +\bibitem{bate2020fundamentals} +Roger~R Bate, Donald~D Mueller, Jerry~E White, and William~W Saylor. +\newblock {\em Fundamentals of astrodynamics}. +\newblock Courier Dover Publications, 2020. + +\bibitem{battin1984elegant} +Richard~H Battin and Robin~M Vaughan. +\newblock An elegant lambert algorithm. +\newblock {\em Journal of Guidance, Control, and Dynamics}, 7(6):662--670, + 1984. + +\bibitem{benkhoff2010bepicolombo} +Johannes Benkhoff, Jan Van~Casteren, Hajime Hayakawa, Masaki Fujimoto, Harri + Laakso, Mauro Novara, Paolo Ferri, Helen~R Middleton, and Ruth Ziethe. +\newblock Bepicolombo—comprehensive exploration of mercury: Mission overview + and science goals. +\newblock {\em Planetary and Space Science}, 58(1-2):2--20, 2010. + +\bibitem{blanchard1969unified} +RC~Blanchard and ER~Lancaster. +\newblock A unified form of lambert's theorem. +\newblock Technical report, 1969. + +\bibitem{brophy2002} +John~R. Brophy. +\newblock Nasa’s deep space 1 ion engine (plenary). +\newblock {\em Review of Scientific Instruments}, 73(2):1071--1078, 2002. + +\bibitem{Casalino2007IndirectOM} +Lorenzo Casalino, Guido Colasurdo, and Matteo~Rosa Sentinella. +\newblock Indirect optimization method for low-thrust interplanetary + trajectories. +\newblock 2007. + +\bibitem{cho2017b} +Dong-Hyun Cho, Donghun Lee, Hyochoong Bang, and Hae-Dong Kim. +\newblock B-plane targeting method for orbit maneuver using low thrust. +\newblock {\em International Journal of Control, Automation and Systems}, + 15(4):1729--1737, 2017. + +\bibitem{laguerre_conway} +Bruce~A Conway. +\newblock An improved algorithm due to laguerre for the solution of kepler's + equation. +\newblock {\em Celestial mechanics}, 39(2):199--211, 1986. + +\bibitem{cybulski1965results} +Ronald~J Cybulski, Daniel~M Shellhammer, Robert~R Lovell, Edward~J Domino, + Joseph~T Kotnik, J~Cybulski, and Robert~R Loveli. +\newblock Results from sert i ion rocket flight test. +\newblock 1965. + +\bibitem{englander2017automated} +Jacob~A Englander and Bruce~A Conway. +\newblock Automated solution of the low-thrust interplanetary trajectory + problem. +\newblock {\em Journal of Guidance, Control, and Dynamics}, 40(1):15--27, 2017. + +\bibitem{englander2012automated} +Jacob~A Englander, Bruce~A Conway, and Trevor Williams. +\newblock Automated mission planning via evolutionary algorithms. +\newblock {\em Journal of Guidance, Control, and Dynamics}, 35(6):1878--1887, + 2012. + +\bibitem{englander2014tuning} +Jacob~A Englander and Arnold~C Englander. +\newblock Tuning monotonic basin hopping: improving the efficiency of + stochastic search as applied to low-thrust trajectory optimization. +\newblock In {\em International Symposium on Space Flight Dynamics 2014}, + number GSFC-E-DAA-TN14154, 2014. + +\bibitem{euler1767motu} +Leonhard Euler. +\newblock De motu rectilineo trium corporum se mutuo attrahentium. +\newblock {\em Novi commentarii academiae scientiarum Petropolitanae}, pages + 144--151, 1767. + +\bibitem{gill2005snopt} +Philip~E Gill, Walter Murray, and Michael~A Saunders. +\newblock Snopt: An sqp algorithm for large-scale constrained optimization. +\newblock {\em SIAM review}, 47(1):99--131, 2005. + +\bibitem{hohmann1960attainability} +Walter Hohmann. +\newblock {\em The attainability of heavenly bodies}. +\newblock Number~44. National Aeronautics and Space Administration, 1960. + +\bibitem{jezewski1975primer} +Donald~J Jezewski. +\newblock Primer vector theory and applications. +\newblock Technical report, 1975. + +\bibitem{jordan1964application} +JF~JORDAN. +\newblock The application of lambert's theorem to the solution of + interplanetary transfer problems(lambert theorem applied to solution of + interplanetary transfer problems). +\newblock 1964. + +\bibitem{cassini} +NASA Jet~Propulsion Laboratory. +\newblock Cassini mission fact sheet, 2018. + +\bibitem{morante} +David Morante, Manuel Sanjurjo~Rivo, and Manuel Soler. +\newblock Multi-objective low-thrust interplanetary trajectory optimization + based on generalized logarithmic spirals. +\newblock {\em Journal of Guidance, Control, and Dynamics}, 42(3):476--490, + 2019. + +\bibitem{murray1999solar} +Carl~D Murray and Stanley~F Dermott. +\newblock {\em Solar system dynamics}. +\newblock Cambridge university press, 1999. + +\bibitem{negri2020historical} +Rodolfo~Batista Negri and Antonio Fernando Bertachini de~Almeida Prado. +\newblock A historical review of the theory of gravity-assists in the + pre-spaceflight era. +\newblock {\em Journal of the Brazilian Society of Mechanical Sciences and + Engineering}, 42(8):1--10, 2020. + +\bibitem{snow} +Andrew Ning. +\newblock Snow.jl. + +\bibitem{polk2001performance} +J~Polk, R~Kakuda, J~Anderson, J~Brophy, V~Rawlin, M~Patterson, J~Sovey, and + J~Hamley. +\newblock Performance of the nstar ion propulsion system on the deep space one + mission. +\newblock In {\em 39th Aerospace Sciences Meeting and Exhibit}, page 965, 2001. + +\bibitem{rayman2006dawn} +Marc~D Rayman, Thomas~C Fraschetti, Carol~A Raymond, and Christopher~T Russell. +\newblock Dawn: A mission in development for exploration of main belt asteroids + vesta and ceres. +\newblock {\em Acta Astronautica}, 58(11):605--616, 2006. + +\bibitem{RevelsLubinPapamarkou2016} +J.~{Revels}, M.~{Lubin}, and T.~{Papamarkou}. +\newblock Forward-mode automatic differentiation in {J}ulia. +\newblock {\em arXiv:1607.07892 [cs.MS]}, 2016. + +\bibitem{sims2006} +Jon Sims, Paul Finlayson, Edward Rinderle, Matthew Vavrina, and Theresa + Kowalkowski. +\newblock {\em Implementation of a Low-Thrust Trajectory Optimization Algorithm + for Preliminary Design}. + +\bibitem{sims1999preliminary} +Jonathan Sims and S~Flanagan. +\newblock Preliminary design of low-thrust interplanetary missions. +\newblock 1999. + +\bibitem{stough2021nasa} +Robert~W Stough, Kimberly~F Robinson, James~B Holt, David~A Smith, W~David + Hitt, and Beverly~A Perry. +\newblock Nasa’s space launch system: Capabilities for ultra-high c3 + missions. +\newblock 2021. + +\bibitem{sutton2016rocket} +George~P Sutton and Oscar Biblarz. +\newblock {\em Rocket propulsion elements}. +\newblock John Wiley \& Sons, 2016. + +\bibitem{vallado2001fundamentals} +David~A Vallado. +\newblock {\em Fundamentals of astrodynamics and applications}, volume~12. +\newblock Springer Science \& Business Media, 2001. + +\bibitem{c3capabilities} +George Vardaxis, Alan Pitz, and Bong Wie. +\newblock Aas 12-128 conceptual design and analysis of planetary defense + technology (pdt) demonstration missions. +\newblock 02 2022. + +\bibitem{wachter2006implementation} +Andreas W{\"a}chter and Lorenz~T Biegler. +\newblock On the implementation of an interior-point filter line-search + algorithm for large-scale nonlinear programming. +\newblock {\em Mathematical programming}, 106(1):25--57, 2006. + +\bibitem{wales1997global} +David~J Wales and Jonathan~PK Doye. +\newblock Global optimization by basin-hopping and the lowest energy structures + of lennard-jones clusters containing up to 110 atoms. +\newblock {\em The Journal of Physical Chemistry A}, 101(28):5111--5116, 1997. + +\bibitem{wie1998space} +Bong Wie. +\newblock {\em Space vehicle dynamics and control}. +\newblock Aiaa, 1998. + +\end{thebibliography} diff --git a/temp/thesis.blg b/temp/thesis.blg new file mode 100644 index 0000000..3206b28 --- /dev/null +++ b/temp/thesis.blg @@ -0,0 +1,62 @@ +This is BibTeX, Version 0.99d (TeX Live 2021/Arch Linux) +Capacity: max_strings=200000, hash_size=200000, hash_prime=170003 +The top-level auxiliary file: temp//thesis.aux +The style file: plain.bst +Database file #1: LaTeX/thesis.bib +Warning--entry type for "snow" isn't style-file defined +--line 12 of file LaTeX/thesis.bib +Warning--empty institution in blanchard1969unified +Warning--empty booktitle in Casalino2007IndirectOM +Warning--empty journal in cybulski1965results +Warning--there's a number but no series in englander2014tuning +Warning--there's a number but no series in hohmann1960attainability +Warning--empty institution in jezewski1975primer +Warning--empty journal in jordan1964application +Warning--empty chapter and pages in sims2006 +Warning--empty publisher in sims2006 +Warning--empty year in sims2006 +Warning--empty journal in sims1999preliminary +Warning--empty journal in stough2021nasa +Warning--empty journal in c3capabilities +You've used 34 entries, + 2118 wiz_defined-function locations, + 690 strings with 9651 characters, +and the built_in function-call counts, 10595 in all, are: += -- 992 +> -- 567 +< -- 5 ++ -- 230 +- -- 190 +* -- 743 +:= -- 1825 +add.period$ -- 100 +call.type$ -- 34 +change.case$ -- 192 +chr.to.int$ -- 0 +cite$ -- 47 +duplicate$ -- 386 +empty$ -- 800 +format.name$ -- 190 +if$ -- 2143 +int.to.chr$ -- 0 +int.to.str$ -- 34 +missing$ -- 37 +newline$ -- 170 +num.names$ -- 68 +pop$ -- 231 +preamble$ -- 1 +purify$ -- 163 +quote$ -- 0 +skip$ -- 259 +stack$ -- 0 +substring$ -- 522 +swap$ -- 48 +text.length$ -- 5 +text.prefix$ -- 0 +top$ -- 0 +type$ -- 122 +warning$ -- 13 +while$ -- 96 +width$ -- 36 +write$ -- 346 +(There were 14 warnings) diff --git a/temp/thesis.out b/temp/thesis.out new file mode 100644 index 0000000..8c1778a --- /dev/null +++ b/temp/thesis.out @@ -0,0 +1,41 @@ +\BOOKMARK [0][-]{chapter.1}{\376\377\000I\000n\000t\000r\000o\000d\000u\000c\000t\000i\000o\000n}{}% 1 +\BOOKMARK [0][-]{chapter.2}{\376\377\000I\000n\000t\000e\000r\000p\000l\000a\000n\000e\000t\000a\000r\000y\000\040\000T\000r\000a\000j\000e\000c\000t\000o\000r\000y\000\040\000D\000e\000s\000i\000g\000n}{}% 2 +\BOOKMARK [1][-]{section.2.1}{\376\377\000S\000y\000s\000t\000e\000m\000\040\000D\000y\000n\000a\000m\000i\000c\000s}{chapter.2}% 3 +\BOOKMARK [2][-]{subsection.2.1.1}{\376\377\000T\000h\000e\000\040\000T\000w\000o\000-\000B\000o\000d\000y\000\040\000P\000r\000o\000b\000l\000e\000m}{section.2.1}% 4 +\BOOKMARK [2][-]{subsection.2.1.2}{\376\377\000K\000e\000p\000l\000e\000r\000'\000s\000\040\000L\000a\000w\000s}{section.2.1}% 5 +\BOOKMARK [2][-]{subsection.2.1.3}{\376\377\000K\000e\000p\000l\000e\000r\000'\000s\000\040\000E\000q\000u\000a\000t\000i\000o\000n}{section.2.1}% 6 +\BOOKMARK [2][-]{subsection.2.1.4}{\376\377\000L\000a\000G\000u\000e\000r\000r\000e\000-\000C\000o\000n\000w\000a\000y\000\040\000A\000l\000g\000o\000r\000i\000t\000h\000m}{section.2.1}% 7 +\BOOKMARK [1][-]{section.2.2}{\376\377\000I\000n\000t\000e\000r\000p\000l\000a\000n\000e\000t\000a\000r\000y\000\040\000T\000r\000a\000j\000e\000c\000t\000o\000r\000i\000e\000s}{chapter.2}% 8 +\BOOKMARK [2][-]{subsection.2.2.1}{\376\377\000P\000a\000t\000c\000h\000e\000d\000\040\000C\000o\000n\000i\000c\000s}{section.2.2}% 9 +\BOOKMARK [2][-]{subsection.2.2.2}{\376\377\000L\000a\000u\000n\000c\000h\000\040\000C\000o\000n\000s\000i\000d\000e\000r\000a\000t\000i\000o\000n\000s}{section.2.2}% 10 +\BOOKMARK [2][-]{subsection.2.2.3}{\376\377\000G\000r\000a\000v\000i\000t\000y\000\040\000A\000s\000s\000i\000s\000t\000\040\000M\000a\000n\000e\000u\000v\000e\000r\000s}{section.2.2}% 11 +\BOOKMARK [2][-]{subsection.2.2.4}{\376\377\000F\000l\000y\000b\000y\000\040\000P\000e\000r\000i\000a\000p\000s\000i\000s\000\040\000A\000l\000t\000i\000t\000u\000d\000e}{section.2.2}% 12 +\BOOKMARK [2][-]{subsection.2.2.5}{\376\377\000M\000u\000l\000t\000i\000p\000l\000e\000\040\000G\000r\000a\000v\000i\000t\000y\000\040\000A\000s\000s\000i\000s\000t\000\040\000T\000e\000c\000h\000n\000i\000q\000u\000e\000s}{section.2.2}% 13 +\BOOKMARK [1][-]{section.2.3}{\376\377\000M\000o\000d\000e\000l\000i\000n\000g\000\040\000L\000o\000w\000\040\000T\000h\000r\000u\000s\000t\000\040\000C\000o\000n\000t\000r\000o\000l}{chapter.2}% 14 +\BOOKMARK [2][-]{subsection.2.3.1}{\376\377\000E\000n\000g\000i\000n\000e\000\040\000M\000o\000d\000e\000l}{section.2.3}% 15 +\BOOKMARK [2][-]{subsection.2.3.2}{\376\377\000S\000i\000m\000s\000-\000F\000l\000a\000n\000a\000g\000a\000n\000\040\000T\000r\000a\000n\000s\000c\000r\000i\000p\000t\000i\000o\000n}{section.2.3}% 16 +\BOOKMARK [2][-]{subsection.2.3.3}{\376\377\000L\000o\000w\000-\000T\000h\000r\000u\000s\000t\000\040\000C\000o\000n\000t\000r\000o\000l\000\040\000V\000e\000c\000t\000o\000r\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n}{section.2.3}% 17 +\BOOKMARK [0][-]{chapter.3}{\376\377\000T\000r\000a\000j\000e\000c\000t\000o\000r\000y\000\040\000O\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n}{}% 18 +\BOOKMARK [1][-]{section.3.1}{\376\377\000O\000p\000t\000i\000m\000i\000z\000a\000t\000i\000o\000n\000\040\000o\000f\000\040\000B\000o\000u\000n\000d\000a\000r\000y\000\040\000V\000a\000l\000u\000e\000\040\000P\000r\000o\000b\000l\000e\000m\000s}{chapter.3}% 19 +\BOOKMARK [2][-]{subsection.3.1.1}{\376\377\000N\000o\000n\000-\000L\000i\000n\000e\000a\000r\000\040\000S\000o\000l\000v\000e\000r\000s}{section.3.1}% 20 +\BOOKMARK [2][-]{subsection.3.1.2}{\376\377\000I\000n\000t\000e\000r\000i\000o\000r\000\040\000P\000o\000i\000n\000t\000\040\000L\000i\000n\000e\000s\000e\000a\000r\000c\000h\000\040\000M\000e\000t\000h\000o\000d}{section.3.1}% 21 +\BOOKMARK [2][-]{subsection.3.1.3}{\376\377\000S\000h\000o\000o\000t\000i\000n\000g\000\040\000S\000c\000h\000e\000m\000e\000s\000\040\000f\000o\000r\000\040\000S\000o\000l\000v\000i\000n\000g\000\040\000a\000\040\000T\000w\000o\000-\000P\000o\000i\000n\000t\000\040\000B\000o\000u\000n\000d\000a\000r\000y\000\040\000V\000a\000l\000u\000e\000\040\000P\000r\000o\000b\000l\000e\000m}{section.3.1}% 22 +\BOOKMARK [1][-]{section.3.2}{\376\377\000M\000o\000n\000o\000t\000o\000n\000i\000c\000\040\000B\000a\000s\000i\000n\000\040\000H\000o\000p\000p\000i\000n\000g\000\040\000A\000l\000g\000o\000r\000i\000t\000h\000m\000s}{chapter.3}% 23 +\BOOKMARK [0][-]{chapter.4}{\376\377\000A\000l\000g\000o\000r\000i\000t\000h\000m\000\040\000O\000v\000e\000r\000v\000i\000e\000w}{}% 24 +\BOOKMARK [1][-]{section.4.1}{\376\377\000T\000r\000a\000j\000e\000c\000t\000o\000r\000y\000\040\000C\000o\000m\000p\000o\000s\000i\000t\000i\000o\000n}{chapter.4}% 25 +\BOOKMARK [1][-]{section.4.2}{\376\377\000I\000n\000n\000e\000r\000\040\000L\000o\000o\000p\000\040\000I\000m\000p\000l\000e\000m\000e\000n\000t\000a\000t\000i\000o\000n}{chapter.4}% 26 +\BOOKMARK [2][-]{subsection.4.2.1}{\376\377\000L\000a\000G\000u\000e\000r\000r\000e\000-\000C\000o\000n\000w\000a\000y\000\040\000K\000e\000p\000l\000e\000r\000\040\000S\000o\000l\000v\000e\000r}{section.4.2}% 27 +\BOOKMARK [2][-]{subsection.4.2.2}{\376\377\000P\000r\000o\000p\000a\000g\000a\000t\000i\000n\000g\000\040\000w\000i\000t\000h\000\040\000S\000i\000m\000s\000-\000F\000l\000a\000n\000a\000g\000a\000n\000\040\000T\000r\000a\000n\000s\000c\000r\000i\000p\000t\000i\000o\000n}{section.4.2}% 28 +\BOOKMARK [2][-]{subsection.4.2.3}{\376\377\000N\000o\000n\000-\000L\000i\000n\000e\000a\000r\000\040\000P\000r\000o\000b\000l\000e\000m\000\040\000S\000o\000l\000v\000e\000r}{section.4.2}% 29 +\BOOKMARK [1][-]{section.4.3}{\376\377\000O\000u\000t\000e\000r\000\040\000L\000o\000o\000p\000\040\000I\000m\000p\000l\000e\000m\000e\000n\000t\000a\000t\000i\000o\000n}{chapter.4}% 30 +\BOOKMARK [2][-]{subsection.4.3.1}{\376\377\000R\000a\000n\000d\000o\000m\000\040\000T\000r\000a\000j\000e\000c\000t\000o\000r\000y\000\040\000G\000e\000n\000e\000r\000a\000t\000i\000o\000n}{section.4.3}% 31 +\BOOKMARK [2][-]{subsection.4.3.2}{\376\377\000M\000o\000n\000o\000t\000o\000n\000i\000c\000\040\000B\000a\000s\000i\000n\000\040\000H\000o\000p\000p\000i\000n\000g}{section.4.3}% 32 +\BOOKMARK [0][-]{chapter.5}{\376\377\000A\000p\000p\000l\000i\000c\000a\000t\000i\000o\000n\000:\000\040\000D\000e\000s\000i\000g\000n\000i\000n\000g\000\040\000a\000\040\000T\000r\000a\000j\000e\000c\000t\000o\000r\000y\000\040\000T\000o\000\040\000S\000a\000t\000u\000r\000n}{}% 33 +\BOOKMARK [1][-]{section.5.1}{\376\377\000M\000i\000s\000s\000i\000o\000n\000\040\000S\000c\000e\000n\000a\000r\000i\000o}{chapter.5}% 34 +\BOOKMARK [2][-]{subsection.5.1.1}{\376\377\000C\000o\000s\000t\000\040\000F\000u\000n\000c\000t\000i\000o\000n}{section.5.1}% 35 +\BOOKMARK [2][-]{subsection.5.1.2}{\376\377\000F\000l\000y\000b\000y\000s\000\040\000A\000n\000a\000l\000y\000z\000e\000d}{section.5.1}% 36 +\BOOKMARK [1][-]{section.5.2}{\376\377\000F\000a\000s\000t\000e\000r\000,\000\040\000L\000e\000s\000s\000\040\000E\000f\000f\000i\000c\000i\000e\000n\000t\000\040\000T\000r\000a\000j\000e\000c\000t\000o\000r\000y}{chapter.5}% 37 +\BOOKMARK [1][-]{section.5.3}{\376\377\000S\000l\000o\000w\000e\000r\000,\000\040\000M\000o\000r\000e\000\040\000E\000f\000f\000i\000c\000i\000e\000n\000t\000\040\000T\000r\000a\000j\000e\000c\000t\000o\000r\000y}{chapter.5}% 38 +\BOOKMARK [1][-]{section.5.4}{\376\377\000F\000i\000n\000a\000l\000\040\000T\000r\000a\000j\000e\000c\000t\000o\000r\000y\000\040\000A\000n\000a\000l\000y\000s\000i\000s}{chapter.5}% 39 +\BOOKMARK [0][-]{chapter.6}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n}{}% 40 +\BOOKMARK [-1][-]{chapter*.5}{\376\377\000\040\000B\000i\000b\000l\000i\000o\000g\000r\000a\000p\000h\000y}{}% 41