377 lines
17 KiB
TeX
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}
|