First draft of presentation

This commit is contained in:
Connor
2022-03-21 09:39:47 -06:00
parent e731ed16f5
commit 30fc2fbac8
26 changed files with 1393 additions and 68 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
LaTeX/fig/bepicolombo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

BIN
LaTeX/fig/cassini.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

BIN
LaTeX/fig/thrust_angle.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

226
LaTeX/fig/thrust_angle.svg Normal file
View File

@@ -0,0 +1,226 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg5"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
sodipodi:docname="thrust_angle.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
showborder="false"
inkscape:snap-object-midpoints="true"
inkscape:zoom="3.0823513"
inkscape:cx="270.08602"
inkscape:cy="226.28829"
inkscape:window-width="1912"
inkscape:window-height="1040"
inkscape:window-x="0"
inkscape:window-y="32"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs2">
<marker
style="overflow:visible;"
id="marker2450"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:isstock="true">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;fill:context-stroke;stroke:context-stroke;stroke-width:1.0pt;"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path2448" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Mstart"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mstart"
inkscape:isstock="true">
<path
transform="scale(0.4) translate(10,0)"
style="fill-rule:evenodd;fill:context-stroke;stroke:context-stroke;stroke-width:1.0pt"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path1415" />
</marker>
<marker
style="overflow:visible;"
id="Arrow1Mend"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:isstock="true">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;fill:context-stroke;stroke:context-stroke;stroke-width:1.0pt;"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path1418" />
</marker>
<marker
style="overflow:visible;"
id="Arrow1Lend"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Lend"
inkscape:isstock="true">
<path
transform="scale(0.8) rotate(180) translate(12.5,0)"
style="fill-rule:evenodd;fill:context-stroke;stroke:context-stroke;stroke-width:1.0pt;"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path1412" />
</marker>
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<circle
style="fill:#000000;stroke:#000000;stroke-width:0.520999;stroke-linecap:round"
id="path846"
cx="78.636162"
cy="86.182404"
r="1.0282457" />
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#marker2450)"
d="M 78.636161,86.182403 V 35.76552"
id="path2163" />
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#marker2450)"
d="M 78.636161,86.182403 103.24016,61.578407"
id="path2278" />
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#marker2450)"
d="M 78.636161,86.182403 34.533318,74.365082"
id="path2280" />
<path
style="fill:none;stroke:#ff0000;stroke-width:0.6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2450)"
d="M 78.636161,86.182403 55.079978,43.543193"
id="path2282"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:0.3,0.3;stroke-dashoffset:0"
d="M 78.636161,86.182403 54.721836,70.081134"
id="path2286" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 56.141209,80.228846 c 0,0 -2.270866,-5.042291 7.398176,-4.194047"
id="path2545" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 63.539385,76.034799 c 0,0 -2.85624,-7.976354 4.024622,-9.938026"
id="path2660" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 61.134738,74.440568 c 0,0 -2.576589,-7.072128 5.405424,-10.345661"
id="path2662" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="105.1789"
y="59.616859"
id="text5950"><tspan
sodipodi:role="line"
id="tspan5948"
style="stroke-width:0.264583"
x="105.1789"
y="59.616859">r</tspan></text>
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="77.378998"
y="33.542519"
id="text8960"><tspan
sodipodi:role="line"
id="tspan8958"
style="stroke-width:0.264583"
x="77.378998"
y="33.542519">h</tspan></text>
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="29.955662"
y="74.996872"
id="text12198"><tspan
sodipodi:role="line"
id="tspan12196"
style="stroke-width:0.264583"
x="29.955662"
y="74.996872">θ</tspan></text>
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="53.598591"
y="76.51889"
id="text32530"><tspan
sodipodi:role="line"
id="tspan32528"
style="stroke-width:0.264583"
x="53.598591"
y="76.51889">α</tspan></text>
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="58.892441"
y="66.168266"
id="text38018"><tspan
sodipodi:role="line"
id="tspan38016"
style="stroke-width:0.264583"
x="58.892441"
y="66.168266">β</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 105.21678,56.69539 0.92033,-1.115951 0.86649,1.056716"
id="path40461" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 77.795012,29.236892 0.92033,-1.115951 0.86649,1.056716"
id="path40461-6" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 30.254464,70.925813 0.92033,-1.115951 0.86649,1.056716"
id="path40461-7" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="51.783405"
y="40.3876"
id="text44510"><tspan
sodipodi:role="line"
id="tspan44508"
style="stroke-width:0.264583"
x="51.783405"
y="40.3876">F</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 51.599761,36.292107 H 54.15286 L 53.502877,35.310574"
id="path47813" />
<path
style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:0.3,0.3;stroke-dashoffset:0"
d="m 54.721836,70.081134 0.03089,-27.183389"
id="path47928" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.6 KiB

BIN
LaTeX/fig/voyager.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

25
LaTeX/presentation.bib Normal file
View File

@@ -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}
}

View File

@@ -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}

View File

@@ -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 .

0
ipopt.out Normal file
View File

View File

@@ -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")

View File

@@ -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

View File

@@ -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, , fh = xyz_to_rθh(phase.thrust_profile[i,1:3], xyz_to_oe(path[i+1,1:6],Sun.μ))
push!(comps1, )
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 ) )

13
temp/presentation.bbl Normal file
View File

@@ -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}

48
temp/presentation.blg Normal file
View File

@@ -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)

102
temp/presentation.nav Normal file
View File

@@ -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}}

17
temp/presentation.out Normal file
View File

@@ -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

0
temp/presentation.snm Normal file
View File

198
temp/thesis.bbl Normal file
View File

@@ -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 Nasas 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 Nasas 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}

62
temp/thesis.blg Normal file
View File

@@ -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)

41
temp/thesis.out Normal file
View File

@@ -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