Started writing finally
This commit is contained in:
183
LaTeX/thesis.tex
183
LaTeX/thesis.tex
@@ -4,34 +4,122 @@
|
|||||||
\usepackage{mathtools}
|
\usepackage{mathtools}
|
||||||
\usepackage{geometry}
|
\usepackage{geometry}
|
||||||
\usepackage{setspace}
|
\usepackage{setspace}
|
||||||
|
\usepackage{changepage}
|
||||||
|
\usepackage{fontspec}
|
||||||
|
\usepackage{titlesec}
|
||||||
|
|
||||||
|
% \setmainfont{Adamina}
|
||||||
|
% \setmainfont{Alegreya}
|
||||||
|
\setmainfont[Scale=1.2]{Average}
|
||||||
|
|
||||||
|
\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}
|
\geometry{left=1in, right=1in, top=1in, bottom=1in}
|
||||||
\doublespacing
|
\doublespacing
|
||||||
|
|
||||||
\begin{document}
|
\begin{document}
|
||||||
|
|
||||||
\title{This Will Be The Title Page}
|
\title{\thesisTitle}
|
||||||
\author{Richard Connor Johnstone}
|
\author{Richard Connor Johnstone \\
|
||||||
|
B.S., University of Kentucky, 2016}
|
||||||
|
|
||||||
\maketitle
|
\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
|
\newpage
|
||||||
|
|
||||||
This will be the copyright page.
|
This will be the copyright page.
|
||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
|
|
||||||
This will be the signature page.
|
\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
|
\newpage
|
||||||
|
|
||||||
This will be the Acknowledgments.
|
%TODO: This should be better
|
||||||
|
Dedicated to some people.
|
||||||
|
|
||||||
\newpage
|
\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}
|
\begin{abstract}
|
||||||
|
|
||||||
This will be the overview/summary/abstract page
|
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}
|
\end{abstract}
|
||||||
|
|
||||||
@@ -42,7 +130,16 @@
|
|||||||
\newpage
|
\newpage
|
||||||
|
|
||||||
\section{Introduction}
|
\section{Introduction}
|
||||||
Provide some historical background, motivations, and discussion of the basic problems being investigated. Also a brief overview how the thesis will be laid out.
|
|
||||||
|
Continuous low-thrust arcs utilizing technologies such as Ion propulsion, Halls thrusters, and
|
||||||
|
others can be a powerful tool in the design of space missions. They tend to be particularly
|
||||||
|
suited to missions which require very high total $\Delta V$ values and take place over a
|
||||||
|
particularly long duration. As such, they are well-suited to interplanetary missions. For
|
||||||
|
instance, low thrust ion propulsion was used on the Bepi-Colombo, Dawn, and Deep Space 1
|
||||||
|
missions.
|
||||||
|
|
||||||
|
Provide some historical background, motivations, and discussion of the basic problems being
|
||||||
|
investigated. Also a brief overview how the thesis will be laid out.
|
||||||
|
|
||||||
\section{Trajectory Optimization}
|
\section{Trajectory Optimization}
|
||||||
This section will outline the foundational problem of trajectory optimization.
|
This section will outline the foundational problem of trajectory optimization.
|
||||||
@@ -54,7 +151,8 @@
|
|||||||
Detail Kepler's equations for astrodynamics.
|
Detail Kepler's equations for astrodynamics.
|
||||||
|
|
||||||
\subsection{Analytical Solutions to Kepler's Equations}
|
\subsection{Analytical Solutions to Kepler's Equations}
|
||||||
Discuss how, since the 2BP is analytically solveable, there exists algorithms for solving these equations.
|
Discuss how, since the 2BP is analytically solveable, there exists algorithms for solving
|
||||||
|
these equations.
|
||||||
|
|
||||||
\subsubsection{LaGuerre-Conway Algorithm}
|
\subsubsection{LaGuerre-Conway Algorithm}
|
||||||
Step through the LaGuerre-Conway algorithm, as it's used in this implementation.
|
Step through the LaGuerre-Conway algorithm, as it's used in this implementation.
|
||||||
@@ -69,40 +167,50 @@
|
|||||||
Discuss how the Newton Trust-Region method works.
|
Discuss how the Newton Trust-Region method works.
|
||||||
|
|
||||||
\subsubsection{Linesearch Method}
|
\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.
|
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}
|
\section{Low-Thrust Considerations}
|
||||||
Highlight the differences between high and low-thrust mission profiles.
|
Highlight the differences between high and low-thrust mission profiles.
|
||||||
|
|
||||||
\subsection{Low Thrust Overview}
|
\subsection{Low Thrust Overview}
|
||||||
Dive deeper into the concept of low thrust trajectories, highlighting the added trouble with propagation/integration.
|
Dive deeper into the concept of low thrust trajectories, highlighting the added trouble with
|
||||||
|
propagation/integration.
|
||||||
|
|
||||||
\subsection{Sims-Flanagan Transcription}
|
\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.
|
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}
|
\section{Interplanetary Trajectory Considerations}
|
||||||
Highlight the problems with the 2BP in co-ordinating influences of extra bodies over an interplanetary journey.
|
Highlight the problems with the 2BP in co-ordinating influences of extra bodies over an
|
||||||
|
interplanetary journey.
|
||||||
|
|
||||||
\subsection{Patched Conics}
|
\subsection{Patched Conics}
|
||||||
Describe the method of patched conics.
|
Describe the method of patched conics.
|
||||||
|
|
||||||
\subsection{Gravity Assist Maneuvers}
|
\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.
|
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}
|
\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.
|
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}
|
\subsection{Ephemeris Considerations}
|
||||||
I can quickly mention SPICE here and talk a bit about validation.
|
I can quickly mention SPICE here and talk a bit about validation.
|
||||||
|
|
||||||
\section{Genetic Algorithms}
|
\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.
|
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}
|
\subsection{Decision Vectors}
|
||||||
Discuss what a decision vector is in the context of an optimization problem.
|
Discuss what a decision vector is in the context of an optimization problem.
|
||||||
|
|
||||||
\subsection{Selection and Fitness Evaluation}
|
\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''.
|
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}
|
\subsubsection{Tournament Selection}
|
||||||
Dive deeper into the specific selection algorithm being used here.
|
Dive deeper into the specific selection algorithm being used here.
|
||||||
@@ -117,34 +225,48 @@
|
|||||||
Discuss both the necessity for mutation and the mutation algorithm being used.
|
Discuss both the necessity for mutation and the mutation algorithm being used.
|
||||||
|
|
||||||
\section{Algorithm Overview}
|
\section{Algorithm Overview}
|
||||||
Highlight the algorithm at a high-level. This is likely where flowcharts and diagrams will go to give a high-level overview.
|
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}
|
\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).
|
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}
|
\subsection{Inner Loop Implementation}
|
||||||
Give a better overview of the inner loop specifically. Probably this section will have a more in-depth flowchart.
|
Give a better overview of the inner loop specifically. Probably this section will have a more
|
||||||
|
in-depth flowchart.
|
||||||
|
|
||||||
\subsubsection{LaGuerre-Conway Kepler Solver}
|
\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.
|
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}
|
\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.
|
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}
|
\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.
|
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}
|
\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.
|
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}
|
\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.
|
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}
|
\subsubsection{Inner Loop Calling Function}
|
||||||
The primary reason for including this section is to discuss the error handling.
|
The primary reason for including this section is to discuss the error handling.
|
||||||
|
|
||||||
\subsubsection{Genetic Algorithm Description}
|
\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.
|
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}
|
\section{Results Analysis}
|
||||||
Simply highlight that the algorithm was tested on a sample trajectory to Saturn.
|
Simply highlight that the algorithm was tested on a sample trajectory to Saturn.
|
||||||
@@ -153,23 +275,28 @@
|
|||||||
Give an overview of the trajectory that was ultimately chosen.
|
Give an overview of the trajectory that was ultimately chosen.
|
||||||
|
|
||||||
\subsubsection{Comparison to Less Optimal Solutions}
|
\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.
|
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}
|
\subsubsection{Cost Function Analysis}
|
||||||
Give some real-world context for the mass-use, time-of-flight, etc.
|
Give some real-world context for the mass-use, time-of-flight, etc.
|
||||||
|
|
||||||
\subsubsection{Comparison to Impulsive Trajectories}
|
\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.
|
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}
|
\section{Conclusion}
|
||||||
\subsection{Overview of Results}
|
\subsection{Overview of Results}
|
||||||
Quick re-wording of the previous section in a paragraph or two for reader's convenience.
|
Quick re-wording of the previous section in a paragraph or two for reader's convenience.
|
||||||
|
|
||||||
\subsection{Applications of Algorithm}
|
\subsection{Applications of Algorithm}
|
||||||
Talk a bit about why this work is valuable. Missions that could have benefited, missions that this enables, etc.
|
Talk a bit about why this work is valuable. Missions that could have benefited, missions that
|
||||||
|
this enables, etc.
|
||||||
|
|
||||||
\subsection{Recommendations for Future Work}
|
\subsection{Recommendations for Future Work}
|
||||||
Recommend future work, obviously. There are a \emph{ton} of opportunities for improvement including parallelization, cluster computing, etc.
|
Recommend future work, obviously. There are a \emph{ton} of opportunities for improvement
|
||||||
|
including parallelization, cluster computing, etc.
|
||||||
|
|
||||||
% \bibliography{biblio}{}
|
% \bibliography{biblio}{}
|
||||||
% \bibliographystyle{plain}
|
% \bibliographystyle{plain}
|
||||||
|
|||||||
10
Makefile
10
Makefile
@@ -18,12 +18,18 @@ $(NOTES_PDFS): $(NOTES)
|
|||||||
-f markdown $< \
|
-f markdown $< \
|
||||||
-o $@
|
-o $@
|
||||||
|
|
||||||
$(THESIS_PDF): $(THESIS)
|
thesis_pdf/:
|
||||||
|
mkdir $@
|
||||||
|
|
||||||
|
$(THESIS_PDF): $(THESIS) thesis_pdf/
|
||||||
xelatex $<
|
xelatex $<
|
||||||
rm thesis.aux thesis.log thesis.toc
|
xelatex $<
|
||||||
|
mv thesis.* thesis_pdf/
|
||||||
|
cp thesis_pdf/thesis.pdf .
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf $(THESIS_PDF)
|
rm -rf $(THESIS_PDF)
|
||||||
rm -rf $(NOTES_PDFS)
|
rm -rf $(NOTES_PDFS)
|
||||||
|
rm -rf thesis_pdf
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ end
|
|||||||
|
|
||||||
log(_::Nothing, _::Vector{Mission}, _::Vector{Body}) = println("No Mission Found...")
|
log(_::Nothing, _::Vector{Mission}, _::Vector{Body}) = println("No Mission Found...")
|
||||||
|
|
||||||
planets = [Earth, Venus, Mars, Saturn]
|
planets = [Earth, Venus, Venus Jupiter, Saturn]
|
||||||
best, archive = mbh(planets)
|
best, archive = mbh(planets)
|
||||||
log(best, archive, planets)
|
log(best, archive, planets)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user