diff --git a/LaTeX/thesis.tex b/LaTeX/thesis.tex index 9f7c0c3..661f0d9 100644 --- a/LaTeX/thesis.tex +++ b/LaTeX/thesis.tex @@ -4,34 +4,122 @@ \usepackage{mathtools} \usepackage{geometry} \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} \doublespacing \begin{document} - \title{This Will Be The Title Page} - \author{Richard Connor Johnstone} + \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 - 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 - This will be the Acknowledgments. + %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} - 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} @@ -42,7 +130,16 @@ \newpage \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} This section will outline the foundational problem of trajectory optimization. @@ -54,7 +151,8 @@ Detail Kepler's equations for astrodynamics. \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} 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. \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} 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. + 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. + 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} - 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} 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. + 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. + 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. + 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''. + 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. @@ -117,34 +225,48 @@ Discuss both the necessity for mutation and the mutation algorithm being used. \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} - 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} - 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} - 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} - 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} - 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} - 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} - 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} 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. + 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} 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. \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} 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. + 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} \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. + 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. + Recommend future work, obviously. There are a \emph{ton} of opportunities for improvement + including parallelization, cluster computing, etc. % \bibliography{biblio}{} % \bibliographystyle{plain} diff --git a/Makefile b/Makefile index 85c2158..2d8a3fa 100644 --- a/Makefile +++ b/Makefile @@ -18,12 +18,18 @@ $(NOTES_PDFS): $(NOTES) -f markdown $< \ -o $@ -$(THESIS_PDF): $(THESIS) +thesis_pdf/: + mkdir $@ + +$(THESIS_PDF): $(THESIS) thesis_pdf/ xelatex $< - rm thesis.aux thesis.log thesis.toc + xelatex $< + mv thesis.* thesis_pdf/ + cp thesis_pdf/thesis.pdf . .PHONY: clean clean: rm -rf $(THESIS_PDF) rm -rf $(NOTES_PDFS) + rm -rf thesis_pdf diff --git a/julia/find_neptune.jl b/julia/find_neptune.jl index bb86365..58bebc9 100644 --- a/julia/find_neptune.jl +++ b/julia/find_neptune.jl @@ -55,7 +55,7 @@ end 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) log(best, archive, planets)