\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} Where $\vec{r}$ is the position of the spacecraft, $G$ is the universal gravitational parameter, $m_1$ is the mass of the planetary body, and $m_2$ is the mass of the spacecraft. Due to our assumption that the mass of the spacecraft is significantly smaller than the mass of the primary body ($m_1 >> m_2$) we can reduce that formulation to simply: \begin{equation} \ddot{\vec{r}} = - \frac{\mu}{r^2} \hat{r} \end{equation} Where $\mu = G m_1$ is the specific gravitational parameter for our primary body of interest. \subsubsection{Kepler's Equations} Now that we've fully qualified the forces acting within the Two Body Problem, we can note that the Problem is actually analytically solvable in the case when the position of the spacecraft and the $\mu$ value of the primary body are known. This can be easily observed by noting that there are three one-dimensional equations (one for each component of the three-dimensional position) and three unknowns (the three components of the second derivative of the position). Therefore, we can use this analytically solvable force model to model the spacecraft's motion in time, a more useful re-interpretation of the equations of motion. \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}