Files
thesis/LaTeX/thesis.tex
2022-01-02 15:54:25 -07:00

377 lines
17 KiB
TeX

\documentclass{article}
\usepackage{graphicx}
\usepackage{mathtools}
\usepackage{geometry}
\usepackage{setspace}
\usepackage{changepage}
\usepackage{fontspec}
\usepackage{titlesec}
\usepackage{unicode-math}
% \setmainfont{Adamina}
% \setmainfont{Alegreya}
\setmainfont[Scale=1.1]{Average}
\setmathfont[Scale=1.1]{Fira Math}
\newcommand{\sectionbreak}{\clearpage}
\titleformat{\section}
{\bfseries\fontspec{Roboto}\LARGE}
{\thesection}
{0.5em}
{}
\titleformat{\subsection}
{\fontspec{Roboto}\Large}
{\thesubsection}
{0.5em}
{}
\titleformat{\subsubsection}
{\fontspec{Roboto}\large}
{\thesubsubsection}
{0.5em}
{}
\newcommand{\thesisTitle}{Designing Optimal Low-Thrust Interplanetary Trajectories Utilizing
Monotonic Basin Hopping}
\geometry{left=1in, right=1in, top=1in, bottom=1in}
\setstretch{2.5}
\begin{document}
\title{\thesisTitle}
\author{Richard Connor Johnstone \\
B.S., University of Kentucky, 2016}
\maketitle
\vspace{3.5in}
\begin{adjustwidth}{100pt}{100pt}
\begin{center}
A thesis submitted to the Faculty of the Graduate School of the University of Colorado in
partial fulfillment of the requirements for the degree of Master of Science Department of
Aerospace Engineering Sciences \\ 2022
\end{center}
\end{adjustwidth}
\newpage
This will be the copyright page.
\newpage
\begin{center}
This thesis entitled:
\thesisTitle
has been approved for the Department of Aerospace Engineering Sciences
\end{center}
\centerline{\begin{minipage}{4in}
\begin{center}
\vspace{1.5in}
\hrule
Dr. Natasha Bosanac
\vspace{1.5in}
\hrule
Dr. Daniel J. Scheeres
\vspace{1.5in}
\hrule
Dr. Kathryn Davis
\vspace{1.5in}
\end{center}
\end{minipage}}
\hspace{4.25in} Date: \hrulefill
The final copy of this thesis has been examined by the signatories, and we find that both the
content and the form meet acceptable presentation standards of scholarly work in the above
mentioned discipline.
\newpage
%TODO: This should be better
Dedicated to some people.
\newpage
Richard Connor Johnstone
\thesisTitle
%TODO: Don't directly copy Bryce's formatting
Thesis directed by Dr. Natasha Bosanac
%TODO: This is just a quick abstract for now. Rewrite more towards the end.
\begin{abstract}
There are a variety of approaches to finding and optimizing low-thrust trajectories in
interplanetary space. This thesis analyzes one such approach, Sims-Flanagan transcriptions, and
its applications in a multiple-shooting non-linear solver for the purpose of finding valid
low-thrust trajectory arcs between planets given poor initial conditions. These valid arcs are
then fed into a Monotonic Basin Hopping (MBH) algorithm, which combines these arcs in order to
find and optimize interplanetary trajectories, given a set of flyby planets. This allows for a
fairly rapid searching of a very large solution space of low-thrust profiles via a medium
fidelity inner-loop solver and a well-suited optimization routine. The trajectories found by
this method can then be optimized further by feeding the solutions back, once again, into the
non-linear solver, this time allowing the solver to perform optimization.
\end{abstract}
\newpage
\tableofcontents
\newpage
\section{Introduction}
Continuous low-thrust arcs utilizing technologies such as Ion propulsion, Hall thrusters, and
others can be a powerful tool in the design of interplanetary space missions. They tend to be
particularly suited to missions which require very high total change in velocity or $\Delta V$
values and take place over a particularly long duration. Traditional impulsive thrusting
techniques can achieve these changes in velocity, but they typically have a far lower specific
impulse and, as such, are much less efficient and use more fuel, costing the mission valuable
financial resources that could instead be used for science. Because of their inherently high
specific impulse (and thus efficiency), low-thrust fuels are well-suited to interplanetary
missions.
For instance, low thrust ion propulsion was used on the Bepi-Colombo, Dawn, and Deep
Space 1 missions. In general, anytime an interplanetary trajectory is posed, it is advisable to
first explore the possibility of low-thrust technologies. In an interplanetary mission, the
primary downside to low-thrust orbits (that they require significant time to achieve large
$\Delta V$ changes) is made irrelevant by the fact that interplanetary trajectories take such a
long time as a matter of course.
Another technique often leveraged by interplanetary trajectory designers is the gravity assist.
Gravity assists cleverly utilize the inertia of a large planetary body to ''slingshot`` a
spacecraft, modifying the direction of its velocity with respect to the central body, the Sun.
This technique lends itself very well to impulsive trajectories. The gravity assist maneuver
itself can be modeled very effectively by an impulsive maneuver with certain constraints, placed
right at the moment of closest approach to the (flyby) target body. Because of this,
optimization with impulsive trajectories and gravity assists are common.
However, there is no physical reason why low-thrust trajectories can't also incorporate gravity
assists. The optimization problem becomes much more complicated. The separate problems of
optimizing flyby parameters (planet, flyby date, etc.) and optimizing the low-thrust control
arcs don't combine very easily. In this paper, a technique is explored by setting the
dual-problem up as a Hybrid Optimal Control Problem (HOCP).
This thesis will explore these concepts in a number of different sections. Section
\ref{traj_opt} will explore the basic principles of trajectory optimization in a manner agnostic
to the differences between continuous low-thrust and impulsive high-thrust techniques. Section
\ref{low_thrust} will then delve into the different aspects to consider when optimizing a low
thrust mission profile over an impulsive one. Section \ref{interplanetary} provides more detail
on the interplanetary considerations, including force models and gravity assists. Section
\ref{algorithm} will cover the implementation details of the HOCP optimization algorithm
developed for this paper. Finally, section \ref{results} will explore the results of some
hypothetical missions to Saturn.
\section{Trajectory Optimization} \label{traj_opt}
Trajectory optimization is concerned with a narrow problem (namely, optimizing a spaceflight
trajectory to an end state) with a wide range of possible techniques, approaches, and even
solutions. In this section, the foundations for direct optimization of these sorts of problems
will be explored by first introducing the Two-Body Problem, then an algorithm for directly
solving for states in that system, then exploring approaches to Non-Linear Problem (NLP) solving
in general and how they apply to spaceflight trajectories.
\subsection{The Two-Body Problem}
The motion of a spacecraft in space is governed by a large number of forces. When planning and
designing a spacecraft trajectory, we often want to use the most complete (and often complex)
model of these forces that is available. However, in the process of designing these
trajectories, we often have to compute the path of the spacecraft many hundreds, thousands, or
even millions of times. Utilizing very high-fidelity force models that account for aerodynamic
pressures, solar radiation pressures, multi-body effects, and many others may be infeasible
for the method being used if the computations take too long.
Therefore, a common approach (and the one utilized in this implementation) is to first look
simply at the single largest force governing the spacecraft in motion, the gravitational force
due to the primary body around which it is orbiting. This can provide an excellent
low-to-medium fidelity model that can be extremely useful in categorizing the optimization
space as quickly as possible. In many cases, including the algorithm used in this paper, it is
unlikely that local cost-function minima would be missed due to the lack of fidelity of the
Two Body Problem.
In order to explore the Two Body Problem, we must first examine the full set of assumptions
associated with the force model. Firstly, we are only concerned with the nominative two
bodies: the spacecraft and the planetary body around which it is orbiting. Secondly, both of
these bodies are modeled as simple point masses. This removes the need to account for
non-uniform densities and asymmetry. The third assumption is that the mass of the spacecraft
($m_2$) is much much smaller than the mass of the planetary body ($m_1$) and enough so as to be
considered negligible. The only force acting on this system is then the force of gravity that
the primary body enacts upon the secondary. Lastly, we'll assume a fixed inertial frame. This
isn't necessary for the formulation of a solution, but will simplify the derivation.
Reducing the system to two point masses with a single gravitational force acting between them
(and only in one direction) we can model the force on the secondary body as:
\begin{equation}
\ddot{\vec{r}} = - \frac{G \left( m_1 + m_2 \right)}{r^2} \frac{\vec{r}}{\left| r \right|}
\end{equation}
\subsubsection{Kepler's Equations}
Detail Kepler's equations for astrodynamics.
\subsection{Analytical Solutions to Kepler's Equations}
Discuss how, since the 2BP is analytically solvable, there exists algorithms for solving
these equations.
\subsubsection{LaGuerre-Conway Algorithm}
Step through the LaGuerre-Conway algorithm, as it's used in this implementation.
\subsection{Non-Linear Problem Optimization}
Discuss the concept of a non-linear problem as it related to the study of optimization.
\subsubsection{Non-Linear Solvers}
Mention common non-linear solvers (Ipopt, SNOPT, etc.).
\subsubsection{Newton Trust-Region Method}
Discuss how the Newton Trust-Region method works.
\subsubsection{Linesearch Method}
I may take this section out, because I'm not currently using a linesearch. But I would cover
the additions of linesearch methods.
\section{Low-Thrust Considerations} \label{low_thrust}
Highlight the differences between high and low-thrust mission profiles.
\subsection{Low Thrust Overview}
Dive deeper into the concept of low thrust trajectories, highlighting the added trouble with
propagation/integration.
\subsection{Sims-Flanagan Transcription}
Reveal the advantages of Sims-Flanagan transcription as an alternative to higher-fidelity
propagation models. Be sure to mention its uses in many legitimate places.
\section{Interplanetary Trajectory Considerations} \label{interplanetary}
Highlight the problems with the 2BP in co-ordinating influences of extra bodies over an
interplanetary journey.
\subsection{Patched Conics}
Describe the method of patched conics.
\subsection{Gravity Assist Maneuvers}
Describe how a gravity assist maneuver would work in the framework of patched conics. Also
discuss the advantages of such a maneuver.
\subsection{Multiple Gravity Assist Techniques}
Discuss the advantages of chaining together multiple gravity assists and highlight the
difficulties in choosing these assists. Here I can mention porkchop plots, Lambert's problem,
etc. Here I can also talk about Hybrid Optimal Control Problems.
\subsection{Ephemeris Considerations}
I can quickly mention SPICE here and talk a bit about validation.
% \section{Genetic Algorithms}
% I will probably give only a brief overview of genetic algorithms here. I don't personally know
% that much about them. Then in the following subsections I can discuss the parts that are
% relevant to the specific algorithm that I'm using.
% \subsection{Decision Vectors}
% Discuss what a decision vector is in the context of an optimization problem.
% \subsection{Selection and Fitness Evaluation}
% Discuss the costing being used as well as the different types of fitness evaluation that are
% common. Also discuss the concept of generations and ``survival''.
% \subsubsection{Tournament Selection}
% Dive deeper into the specific selection algorithm being used here.
% \subsection{Crossover}
% Discuss the concept of crossover and procreation in a genetic algorithm.
% \subsubsection{Binary Crossover}
% Discuss specific crossover algorithm used here.
% \subsubsection{Mutation}
% Discuss both the necessity for mutation and the mutation algorithm being used.
\section{Algorithm Overview} \label{algorithm}
Highlight the algorithm at a high-level. This is likely where flowcharts and diagrams will go to
give a high-level overview.
\subsection{Trajectory Composition}
Discuss briefly the nomenclature used in defining these trajectories. Currently this isn't
``baked in'' to the code, so I have some freedom to adopt Englander's notation or use my own
(since my intended use case is a little simpler).
\subsection{Inner Loop Implementation}
Give a better overview of the inner loop specifically. Probably this section will have a more
in-depth flowchart.
\subsubsection{LaGuerre-Conway Kepler Solver}
Discuss how the LaGuerre-Conway algorithm is used in the code to provide a fundamental
``natural trajectory'' between two quantized, but not necessarily close points. Mention
validation.
\subsubsection{Sims-Flanagan Propagator}
Discuss how this algorithm can then be expanded by using SFT to propagate any number of
low-thrust steps over a specific arc. Mention validation. Here I can also mention the ``Sc''
object and talk about how those parameters were chosen and effected the propagator.
\subsubsection{Non-Linear Problem Solver}
Mention the package being used to solve NLPs and how it works, highlighting the trust region
method used and error-handling. Mention validation.
\subsubsection{Monotonic Basin Hopping}
Outline the MBH algorithm, going into detail at each step. Mention the long-tailed PDF being
used and go into quite a bit of detail. Englander's paper on the MBH algorithm specifically
should be a good guide. Mention validation.
\subsection{Outer Loop Implementation}
Overview the outer loop. This may require a final flowchart, but might potentially be too
simple to lend itself to one.
\subsubsection{Inner Loop Calling Function}
The primary reason for including this section is to discuss the error handling.
\subsubsection{Genetic Algorithm Description}
Similar to the MBH section, there are a lot of implementation details to go over here. Many
will have already been discussed in the background sections above. But I can step through
each of the decisions, similar to Englander's paper on this.
\section{Results Analysis} \label{results}
Simply highlight that the algorithm was tested on a sample trajectory to Saturn.
\subsection{Sample Trajectory to Saturn}
Give an overview of the trajectory that was ultimately chosen.
\subsubsection{Comparison to Less Optimal Solutions}
I should have a number of elite but less-optimal solutions. Honestly, I may write the
algorithm to keep all of the solutions to provide many points of comparison here.
\subsubsection{Cost Function Analysis}
Give some real-world context for the mass-use, time-of-flight, etc.
\subsubsection{Comparison to Impulsive Trajectories}
I may also remove this section. I could do a quick comparison (using porkchop plots) to
similar impulsive trajectories. Honestly, this is a lot of work for very little gain,
though, so probably the first place to chop if needed.
\section{Conclusion} \label{conclusion}
\subsection{Overview of Results}
Quick re-wording of the previous section in a paragraph or two for reader's convenience.
\subsection{Applications of Algorithm}
Talk a bit about why this work is valuable. Missions that could have benefited, missions that
this enables, etc.
\subsection{Recommendations for Future Work}
Recommend future work, obviously. There are a \emph{ton} of opportunities for improvement
including parallelization, cluster computing, etc.
% \bibliography{biblio}{}
% \bibliographystyle{plain}
\end{document}