She did. Now I'm done!

This commit is contained in:
Connor
2022-03-15 22:20:45 -06:00
parent d00b977581
commit 298eb38ff1
7 changed files with 198 additions and 299 deletions

View File

@@ -1,11 +1,10 @@
\chapter{Algorithm Overview} \label{algorithm} \chapter{Algorithm Overview} \label{algorithm}
This thesis will attempt to develop an algorithm for the preliminary analysis of feasibility in This thesis focuses on designing a low-thrust interplanetary mission to an outer planet by
designing a low-thrust interplanetary mission to an outer planet by leveraging a monotonic basin leveraging a monotonic basin hopping algorithm. This section will review the actual execution of
hopping algorithm. In this section, we will review the actual execution of the algorithm the algorithm developed. As an overview, the routine is designed to enable the determination of
developed. As an overview, the routine was designed to enable the determination of an optimized an optimal spacecraft trajectory that minimizes propellant usage and $C_3$ from the selection of
spacecraft trajectory from the selection of some very basic mission parameters. Those parameters some very basic parameters. Those parameters include:
include:
\begin{itemize} \begin{itemize}
\setlength\itemsep{-0.5em} \setlength\itemsep{-0.5em}
@@ -25,7 +24,7 @@
\end{itemize} \end{itemize}
Which allows for an automated approach to optimization of the trajectory, while still providing Which allows for an automated approach to optimization of the trajectory, while still providing
the mission designer with the flexibility to choose the particular flyby planets to investigate. the designer with the flexibility to choose the particular flyby planets to investigate.
This is achieved via an optimal control problem in which the ``inner loop'' involves solving a This is achieved via an optimal control problem in which the ``inner loop'' involves solving a
TPBVP to find the optimal solution given a suitable initial guess. Then an ``outer loop'' TPBVP to find the optimal solution given a suitable initial guess. Then an ``outer loop''
@@ -133,12 +132,11 @@
The following pseudo-code outlines the approach taken for the elliptical case. The The following pseudo-code outlines the approach taken for the elliptical case. The
approach is quite similar when $a<0$: approach is quite similar when $a<0$:
% TODO: Some symbols here aren't recognized by the font
\begin{singlespacing} \begin{singlespacing}
\begin{verbatim} \begin{verbatim}
i = 0 i = 0
# First declare some useful variables from the state # First declare some useful variables from the state
sig0 = (position velocity) / √(mu) sig0 = dot(position, velocity) / √(mu)
a = 1 / ( 2/norm(position) - norm(velocity)^2/mu ) a = 1 / ( 2/norm(position) - norm(velocity)^2/mu )
coeff = 1 - norm(position)/a coeff = 1 - norm(position)/a
@@ -184,7 +182,7 @@
\label{laguerre_plot} \label{laguerre_plot}
\end{figure} \end{figure}
\subsection{Sims-Flanagan Propagator} \subsection{Propagating with Sims-Flanagan Transcription}
Until this point, we've not yet discussed how best to model the low-thrust Until this point, we've not yet discussed how best to model the low-thrust
trajectory arcs themselves. The Laguerre-Conway algorithm efficiently determines trajectory arcs themselves. The Laguerre-Conway algorithm efficiently determines
@@ -228,11 +226,9 @@
and the mass flow rate (a function of the duty cycle percentage ($d$), thrust ($f$), and the mass flow rate (a function of the duty cycle percentage ($d$), thrust ($f$),
and the specific impulse of the thruster ($I_{sp}$), commonly used to measure and the specific impulse of the thruster ($I_{sp}$), commonly used to measure
efficiency)\cite{sutton2016rocket}: efficiency)\cite{sutton2016rocket}:
\begin{equation} \begin{equation}
\Delta m = \Delta t \frac{f d}{I_{sp} g_0} \Delta m = \Delta t \frac{f d}{I_{sp} g_0}
\end{equation} \end{equation}
Where $\Delta m$ is the fuel used in the sub-trajectory, $\Delta t$ is the time of Where $\Delta m$ is the fuel used in the sub-trajectory, $\Delta t$ is the time of
flight of the sub-trajectory, and $g_0$ is the standard gravity at the surface of flight of the sub-trajectory, and $g_0$ is the standard gravity at the surface of
Earth. From knowledge of the mass flow rate, we can then decrement the mass Earth. From knowledge of the mass flow rate, we can then decrement the mass
@@ -272,10 +268,9 @@
From this information, as can be seen in Figure~\ref{nlp}, we can formulate the mission From this information, as can be seen in Figure~\ref{nlp}, we can formulate the mission
in terms of a non-linear programming problem. Specifically, the variables describing the in terms of a non-linear programming problem. Specifically, the variables describing the
trajectory contained within the Guess object can be represented as an input vector, trajectory from the free variable, $\vec{x}$, the cost function produced by an entire
$\vec{x}$, the cost function produced by an entire trajectory propagation as $F$, and trajectory propagation, $F$, and the constraints that the trajectory must satisfy as
the constraints that the trajectory must satisfy as another function $\vec{G}$ such that another function $\vec{G}$ such that $\vec{G}(\vec{x}) = \vec{0}$.
$\vec{G}(\vec{x}) = \vec{0}$.
This is a format that we can apply directly to the IPOPT solver, which Julia (the This is a format that we can apply directly to the IPOPT solver, which Julia (the
programming language used) can utilize via bindings supplied by the SNOW.jl programming language used) can utilize via bindings supplied by the SNOW.jl
@@ -333,12 +328,12 @@
\subsection{Random Trajectory Generation}\label{random_gen_section} \subsection{Random Trajectory Generation}\label{random_gen_section}
At a basic level, the algorithm needs to produce a guess (represented by all of the At a basic level, the algorithm needs to produce a guess for the free variable vector
values described in Section~\ref{inner_loop_section}) that contains random values within (represented by all of the values described in Section~\ref{inner_loop_section}) that
reasonable bounds in the space. However, that still leaves the determination of which contains random values within reasonable bounds in the space. However, that still leaves
distribution function to use for the random values over each of those variables, which the determination of which distribution function to use for the random values over each
bounds to use, as well as the possibilities for any improvements to a purely random of those variables, which bounds to use, as well as the possibilities for any
search. improvements to a purely random search.
Currently, the first value set for the mission guess is that of $n$, which is the Currently, the first value set for the mission guess is that of $n$, which is the
number of sub-trajectories that each arc will be broken into for the Sims-Flanagan number of sub-trajectories that each arc will be broken into for the Sims-Flanagan
@@ -372,18 +367,18 @@
missions with more flybys. missions with more flybys.
Then, the internal components for each phase are generated. It is at this step, that Then, the internal components for each phase are generated. It is at this step, that
the mission guess generator splits the outputs into two separate outputs. The first the trajectory guess generator splits the outputs into two separate outputs. The first
is meant to be truly random, as is generally used as input for a monotonic basin is meant to be truly random, as is generally used as input for a monotonic basin
hopping algorithm. The second utilizes a Lambert's solver to determine the hopping algorithm. The second utilizes a Lambert's solver to determine the
appropriate hyperbolic velocities (both in and out) at each flyby to generate a appropriate hyperbolic velocities (both in and out) at each flyby to generate a
natural trajectory arc. For this Lambert's case, the mission guess is simply seeded natural trajectory arc. For this Lambert's case, the trajectory guess is simply seeded
with zero thrust controls and outputted to the monotonic basin hopper. The intention with zero thrust controls and outputted to the monotonic basin hopper. The intention
here is that if the time of flights are randomly chosen so as to produce a here is that if the time of flights are randomly chosen so as to produce a
trajectory that is possible with a control in the vicinity of a natural trajectory, trajectory that is possible with a control in the vicinity of a natural trajectory,
we want to be sure to find that trajectory. More detail on how this is handled is we want to be sure to find that trajectory. More detail on how this is handled is
available in Section~\ref{mbh_subsection}. available in Section~\ref{mbh_subsection}.
However, for the truly random mission guess, there are still the $v_\infty$ values However, for the truly random trajectory guess, there are still the $v_\infty$ values
and the initial thrust guesses to generate. For each of the phases, the incoming and the initial thrust guesses to generate. For each of the phases, the incoming
excess hyperbolic velocity is calculated in much the same way that the launch excess hyperbolic velocity is calculated in much the same way that the launch
velocity was calculated. However, instead of multiplying the randomly generate unit velocity was calculated. However, instead of multiplying the randomly generate unit
@@ -471,14 +466,11 @@
Because of this, the perturbation used in this implementation follows a Because of this, the perturbation used in this implementation follows a
bi-directional, long-tailed Pareto distribution generated by the following bi-directional, long-tailed Pareto distribution generated by the following
probability density function\cite{englander2014tuning}: probability density function\cite{englander2014tuning}:
\begin{equation} \begin{equation}
1 + 1 +
\left[ \frac{s}{\epsilon} \right] \cdot \left[ \frac{s}{\epsilon} \right] \cdot
\left[ \frac{\alpha - 1}{\frac{\epsilon}{\epsilon + r}^{-\alpha}} \right] \left[ \frac{\alpha - 1}{\frac{\epsilon}{\epsilon + r}^{-\alpha}} \right]
\end{equation} \end{equation}
\noindent
Where $s$ is a random array of signs (either plus one or minus one) with dimension Where $s$ is a random array of signs (either plus one or minus one) with dimension
equal to the perturbed variable and bounds of -1 and 1, $r$ is a uniformly equal to the perturbed variable and bounds of -1 and 1, $r$ is a uniformly
distributed random array with dimension equal to the perturbed variable and bounds distributed random array with dimension equal to the perturbed variable and bounds

View File

@@ -10,11 +10,8 @@
In performing this examination, two results were selected for further analysis. These In performing this examination, two results were selected for further analysis. These
results are outlined in Table~\ref{results_table}. As can be seen in the table, both results are outlined in Table~\ref{results_table}. As can be seen in the table, both
resulting trajectories have trade-offs in mission length, launch energy, fuel usage, and resulting trajectories have trade-offs in mission length, launch energy, fuel usage, and
more. However, both results show very interesting trajectories that could indicate some more. Each of these trajectories appear to be within the capabilities of existing launch
favorable possibilities for such a mission profile. Each of these trajectories should be vehicles in terms of $C_3$.
within the capabilities of existing launch vehicles in terms of $C_3$.
\section{Recommendations for Future Work}\label{improvement_section}
In the course of producing this algorithm, a large number of improvement possibilities were In the course of producing this algorithm, a large number of improvement possibilities were
noted. This work was based, in large part, on the work of Jacob Englander in a number of noted. This work was based, in large part, on the work of Jacob Englander in a number of

View File

@@ -1,16 +1,16 @@
\chapter{Introduction} \chapter{Introduction}
Continuous low-thrust engines utilizing technologies such as Ion propulsion, Hall thrusters, and Continuous low-thrust engines utilizing technologies such as Ion propulsion, Hall thrusters, and
others can be a powerful system in the enabling of long-range interplanetary missions with fuel others enable long-range interplanetary missions with fuel efficiencies unrivaled by those that
efficiencies unrivaled by those that employ only impulsive thrust systems. The challenge in employ only impulsive thrust systems. The challenge in utilizing these systems, then, is the
utilizing these systems, then, is the design of trajectories that effectively utilize this design of trajectories that effectively utilize this technology. Continuous thrust propulsive
technology. Continuous thrust propulsive systems tend to be particularly suited to missions systems tend to be particularly suited to missions which require very high total change in
which require very high total change in velocity ($\Delta V$) values and take place over a velocity ($\Delta V$) values and take place over a particularly long duration. Traditional
particularly long duration. Traditional impulsive thrusting techniques can achieve these changes impulsive thrusting techniques can achieve these changes in velocity, but typically have a far
in velocity, but typically have a far lower specific impulse and, as such, are much less fuel lower specific impulse and, as such, are much less fuel efficient, costing the mission valuable
efficient, costing the mission valuable financial resources that could instead be used for financial resources that could instead be used for science. Because of their inherently high
science. Because of their inherently high specific impulse (and thus efficiency), low-thrust specific impulse (and thus efficiency), low-thrust propulsion systems are well-suited to
propagation systems are well-suited to interplanetary missions. interplanetary missions.
The first attempt by NASA to use an electric ion-thruster for an interplanetary mission was the The first attempt by NASA to use an electric ion-thruster for an interplanetary mission was the
Deep Space 1 mission\cite{brophy2002}. This mission was designed to test the ``new'' technology, Deep Space 1 mission\cite{brophy2002}. This mission was designed to test the ``new'' technology,
@@ -29,16 +29,15 @@
in October 2018 and is projected to perform a flyby of Earth, two of Venus, and six of in October 2018 and is projected to perform a flyby of Earth, two of Venus, and six of
Mercury before inserting into an orbit around that planet. Mercury before inserting into an orbit around that planet.
A common theme in mission design is that there always exists a trade-off between efficiency A common theme in mission design is that there is a trade-off between efficiency (particularly
(particularly in terms of fuel use) and the time required to achieve the mission objective. Low in terms of fuel use) and the time required to achieve the mission objective. Low thrust systems
thrust systems in particular tend to produce mission profiles that sacrifice the rate of in particular tend to produce mission profiles that sacrifice the rate of convergence on the
convergence on the target state in order to achieve large increases in fuel efficiency. Often a target state in order to achieve large increases in fuel efficiency. Often a low-thrust transfer
low-thrust mission profile in Earth orbit will require multiple orbital periods to achieve the in Earth orbit will require multiple orbital periods to achieve the desired change in spacecraft
desired change in spacecraft state. Interplanetary missions, though, provide a particularly state. Interplanetary missions, though, provide a particularly useful case for continuous thrust
useful case for continuous thrust technology. The trajectory arcs in interplanetary space are technology. The trajectory arcs in interplanetary space are generally much, much longer than
generally much, much longer than orbital missions around the Earth. Because of this increase, orbital missions around the Earth. Because of this increase, even a small continuous thrust is
even a small continuous thrust is capable of producing large $\Delta V$ values over the course capable of producing large $\Delta V$ values over the course of a single trajectory arc.
of a single trajectory arc.
Another technique often leveraged by interplanetary trajectory designers is the gravity assist. Another technique often leveraged by interplanetary trajectory designers is the gravity assist.
Gravity assists utilize the inertia of a large planetary body to ``slingshot'' a spacecraft, Gravity assists utilize the inertia of a large planetary body to ``slingshot'' a spacecraft,
@@ -58,24 +57,22 @@
routine for producing unconstrained, globally optimal trajectories for realistic interplanetary routine for producing unconstrained, globally optimal trajectories for realistic interplanetary
mission development that utilizes both planetary flybys and efficient low-thrust electric mission development that utilizes both planetary flybys and efficient low-thrust electric
propulsion techniques. Similar studies have also been performed by a number of researchers propulsion techniques. Similar studies have also been performed by a number of researchers
including a team from JPL\cite{sims2006} as well as a Spanish team\cite{morante}, among several including a team from JPL\cite{sims2006}, among several others\cite{morante}.
others.
This thesis will attempt to develop an algorithm for the optimization of low-thrust enabled This thesis focuses on optimization of low-thrust enabled trajectories that use gravity assists.
trajectories for initial feasibility analysis in mission design. The algorithm will utilize The approach uses a non-linear programming solver to directly optimize a set of control thrusts
a non-linear programming solver to directly optimize a set of control thrusts for the for the user-provided flyby planets, for any provided cost function. A monotonic basin hopping
user-provided flyby planets, for any provided cost function. A monotonic basin hopping algorithm algorithm (MBH) is then employed to traverse the search space in an effort to find additional
(MBH) will then be employed to traverse the search space in an effort to find additional local local optima. This approach differs from the work produced earlier by Englander and the other
optima. This approach differs from the work produced earlier by Englander and the other teams, teams, but is largely meant to explore the feasibility of such techniques and propose a few
but is largely meant to explore the feasibility of such techniques and propose a few enhancements. The approach defined in this thesis is then used to design low thrust trajectories
enhancements. The approach defined in this thesis will then be used to investigate an example with gravity assits from the Earth to Saturn.
mission to Saturn.
This thesis will explore these concepts in a number of different sections. Section This thesis is organized as follows: Section \ref{traj_dyn} will explore the basic dynamical
\ref{traj_dyn} will explore the basic dynamical principles of trajectory design, beginning the principles of trajectory design, beginning the with fundamental system dynamics, then exploring
with fundamental system dynamics, then exploring interplanetary system dynamics and gravity interplanetary system dynamics and gravity flybys, and finally the dynamics that are specific to
flybys, and finally the dynamics that are specific to low-thrust enabled trajectories. Section low-thrust enabled trajectories. Section \ref{traj_optimization} will then discuss process of
\ref{traj_optimization} will then discuss process of optimizing spacecraft trajectories in optimizing spacecraft trajectories in general and the tool available for that. Section
general and the tool available for that. Section \ref{algorithm} will cover the implementation \ref{algorithm} will cover the implementation details of the optimization algorithm developed
details of the optimization algorithm developed for this paper. Finally, section \ref{results} for this paper. Finally, section \ref{results} will explore the results of some hypothetical
will explore the results of some hypothetical missions to Saturn. missions to Saturn.

View File

@@ -1,31 +1,29 @@
\chapter{Sample Saturn Trajectory Analysis} \label{results} \chapter{Application: Designing a Trajectory To Saturn} \label{results}
The algorithm described in this thesis is quite flexible in its design and could be used as To consider a relatively simple but representative mission design objective, a sample mission to
a tool for a mission designer on a variety of different mission types. However, to consider Saturn was investigated.
a relatively simple but representative mission design objective, a sample mission to Saturn
was investigated.
\section{Mission Constraints} \section{Mission Scenario}
The sample mission was defined to represent a general case for a near-future low-thrust The sample mission is defined to represent a general case for a near-future low-thrust
trajectory to Saturn. No constraints were placed on the flyby planets, but a number of trajectory to Saturn. No constraints are placed on the flyby planets, but a number of
constraints were placed on the algorithm to represent a realistic mission scenario. constraints were placed on the algorithm to represent a realistic mission scenario.
The first choice required by the application is one not necessarily designable to the The first choice required by the application is one not necessarily designable to the
initial mission designer (though not necessarily fixed in the design either) and is that initial mission designer (though not necessarily fixed in the design either) and is that of
of the spacecraft parameters. The application accepts as input a spacecraft object the spacecraft parameters. The application accepts as input a spacecraft object containing:
containing: the dry mass of the craft, the fuel mass at launch, the number of onboard the dry mass of the spacecraft, the fuel mass at launch, the number of onboard thrusters,
thrusters, and the specific impulse, maximum thrust and duty cycle of each thruster. and the specific impulse, maximum thrust and duty cycle of each thruster.
For this mission, the spacecraft was chosen to have a dry mass of only 200 kilograms for For this mission, the spacecraft was chosen to have a dry mass of only 200 kilograms for a
a fuel mass of 3300 kilograms. This was chosen in order to have an overall mass roughly fuel mass of 3300 kilograms. This was chosen in order to have an overall mass roughly in the
in the same zone as that of the Cassini spacecraft, which launched with 5712 kilograms same zone as that of the Cassini spacecraft, which launched with 5712 kilograms of total
of total mass, with the fuel accounting for 2978 of those kilograms\cite{cassini}. The mass, with the fuel accounting for 2978 of those kilograms\cite{cassini}. The dry mass of
dry mass of the craft was chosen to be extremely low in order to allow for a variety of the spacecraft was chosen to be extremely low in order to allow for a variety of
''successful`` missions in which the craft didn't run out of fuel. That way, the ''successful`` missions in which the spacecraft didn't run out of fuel. That way, the
delivered dry mass to Saturn could be thought of as a metric of success, without delivered dry mass to Saturn could be thought of as a metric of success, without discounting
discounting mission that may have delivered just under whatever more realistic dry mass mission that may have delivered just under whatever more realistic dry mass one might set,
one might set, in case those missions are in the vicinity of actually valid missions. in case those missions are in the vicinity of actually valid missions.
The thruster was chosen to have a specific impulse of 3200 seconds, a maximum thrust of The thruster was chosen to have a specific impulse of 3200 seconds, a maximum thrust of
250 millinewtons, and a 100\% duty cycle. This puts the thruster roughly in line with 250 millinewtons, and a 100\% duty cycle. This puts the thruster roughly in line with
@@ -308,6 +306,6 @@
\centering \centering
\includegraphics[width=\textwidth]{fig/c3} \includegraphics[width=\textwidth]{fig/c3}
\caption{Plot of Delta IV and Atlas V launch vehicle capabilities as they relate to \caption{Plot of Delta IV and Atlas V launch vehicle capabilities as they relate to
payload mass \cite{c3capabilities} from a source from 2007} payload mass \cite{c3capabilities} from Vardaxis, et al, 2007 }
\label{c3} \label{c3}
\end{figure} \end{figure}

View File

@@ -22,14 +22,15 @@
Much work has been performed recently to utilize the increasingly viable technology of Much work has been performed recently to utilize the increasingly viable technology of
low-thrust electric propulsion systems on missions of interplanetary scope. This thesis analyzes low-thrust electric propulsion systems on missions of interplanetary scope. This thesis analyzes
a technique for the initial analysis of feasibility of utilizing a combination of low-thrust a technique for designing trajectories for spacecraft with a low-thrust propulsion system that
propulsion systems and natural gravity flybys for missions to the outer planets. First, a method also use natural gravity flybys for missions to the outer planets. Often, the goal is to find
for finding local optima by utilizing an interior-point linesearch algorithm to directly feasible solutions that also minimize propellant mass requirements. First, locally optimal
optimize the entire trajectory as a Non-Linear Programming problem is presented. Then, a solutions are constructed by using an interior-point linesearch algorithm, along with multiple
Monotonic Basin Hopping algorithm is utilized to traverse the search space, improve the local shooting techniques for optimization. Then, Monotonic Basin Hopping is utilized to traverse the
optima determined by the internal optimizer, and determine the global optima. This allows for a search space, improve the local optima determined by the internal optimizer, and determine the
medium-fidelity, fully automated global optimization of the low thrust controls and flyby global optima. This approach allows for a medium-fidelity, fully automated global optimization
parameters for a given mission objective. of the low thrust controls and flyby parameters for a given target destination. As an
application of this method, two sample trajectories to Saturn are analyzed.
} }

View File

@@ -16,24 +16,24 @@
very high-fidelity force models that account for aerodynamic pressure, solar radiation very high-fidelity force models that account for aerodynamic pressure, solar radiation
pressure, multi-body effects, and other forces may be too time intensive for a pressure, multi-body effects, and other forces may be too time intensive for a
particular application. Initial surveys of the solution space often don't require such particular application. Initial surveys of the solution space often don't require such
complex models in order to gain valuable insight. complex models in order to gain valuable preliminary insight.
Therefore, a common approach (and the one utilized in this implementation) is to first A common approach (and the one utilized in this implementation) is to first use a
use a lower-fidelity dynamical model that captures only the gravitational force due to lower-fidelity dynamical model that captures only the gravitational force due to the
the primary body around which the spacecraft is orbiting. This approach can provide an primary body around which the spacecraft is orbiting. This approach can provide an
excellent low-to-medium fidelity model that is useful as an underlying model in an excellent low-to-medium fidelity model that is useful as an underlying model in an
algorithm for quickly categorizing a search space for initial mission feasibility algorithm for quickly categorizing a search space for initial mission feasibility
explorations. explorations.
In order to explore the Two Body Problem, we must first examine the full set of In order to explore the Two Body Problem, we must first examine the full set of
assumptions associated with the force model\cite{vallado2001fundamentals}. Firstly, we assumptions associated with the force model\cite{vallado2001fundamentals}. Firstly, we
are only concerned with the nominative two bodies: the spacecraft and the planetary body are only concerned with the gravitational influence between the nominative two bodies:
around which it is orbiting. Secondly, both of these bodies are modeled as point masses the spacecraft and the planetary body around which it is orbiting. Secondly, both of
with constant mass. This removes the need to account for non-uniform densities and these bodies are modeled as point masses with constant mass. This removes the need to
asymmetry. Finally, for convenience in notation at the end, we'll also assume that the account for non-uniform densities and asymmetry. Finally, for convenience in notation at
mass of the spacecraft ($m_2$) is much much smaller than the mass of the planetary body the end, we'll also assume that the mass of the spacecraft ($m_2$) is much much smaller
($m_1$) and enough so as to be considered negligible. The only force acting on this than the mass of the planetary body ($m_1$) and enough so as to be considered
system is then the force of gravity that the primary body enacts upon the secondary. negligible.
\begin{figure}[H] \begin{figure}[H]
\centering \centering
@@ -45,7 +45,6 @@
Under these assumptions, the force acting on the body due to the law of universal Under these assumptions, the force acting on the body due to the law of universal
gravitation is: gravitation is:
\begin{align} \begin{align}
F_2 &= - \frac{G m_1 m_2}{r^2} \frac{\vec{r}}{\left| r \right|} \\ F_2 &= - \frac{G m_1 m_2}{r^2} \frac{\vec{r}}{\left| r \right|} \\
F_1 &= \frac{G m_2 m_1}{r^2} \frac{\vec{r}}{\left| r \right|} F_1 &= \frac{G m_2 m_1}{r^2} \frac{\vec{r}}{\left| r \right|}
@@ -53,7 +52,6 @@
And by Newton's second law (force is the product of mass and acceleration), we can And by Newton's second law (force is the product of mass and acceleration), we can
derive the following differential equations for $r_1$ and $r_2$: derive the following differential equations for $r_1$ and $r_2$:
\begin{align} \begin{align}
m_2 \ddot{\vec{r}}_2 &= - \frac{G m_1 m_2}{r^2} \frac{\vec{r}}{\left| r \right|} \\ m_2 \ddot{\vec{r}}_2 &= - \frac{G m_1 m_2}{r^2} \frac{\vec{r}}{\left| r \right|} \\
m_1 \ddot{\vec{r}}_1 &= \frac{G m_2 m_1}{r^2} \frac{\vec{r}}{\left| r \right|} m_1 \ddot{\vec{r}}_1 &= \frac{G m_2 m_1}{r^2} \frac{\vec{r}}{\left| r \right|}
@@ -65,7 +63,6 @@
inertial frame. $G$ is the universal gravitational parameter, $m_1$ is the mass of the inertial frame. $G$ is the universal gravitational parameter, $m_1$ is the mass of the
planetary body, and $m_2$ is the mass of the spacecraft. From these equations, we can planetary body, and $m_2$ is the mass of the spacecraft. From these equations, we can
then determine the acceleration of the spacecraft relative to the planet: then determine the acceleration of the spacecraft relative to the planet:
\begin{equation} \begin{equation}
\ddot{\vec{r}} = \ddot{\vec{r}}_2 - \ddot{\vec{r}}_1 = \ddot{\vec{r}} = \ddot{\vec{r}}_2 - \ddot{\vec{r}}_1 =
- \frac{G \left( m_1 + m_2 \right)}{r^2} \frac{\vec{r}}{\left| r \right|} - \frac{G \left( m_1 + m_2 \right)}{r^2} \frac{\vec{r}}{\left| r \right|}
@@ -76,27 +73,19 @@
negligible $m_2$ term. We can also introduce, for convenience, a gravitational parameter negligible $m_2$ term. We can also introduce, for convenience, a gravitational parameter
$\mu$ which represents the gravity constant for the system about the center of motion $\mu$ which represents the gravity constant for the system about the center of motion
($\mu = G (m_1 + m_2) \approx G m_1$). Doing so and simplifying produces: ($\mu = G (m_1 + m_2) \approx G m_1$). Doing so and simplifying produces:
\begin{equation} \begin{equation}
\ddot{\vec{r}} = - \frac{\mu}{r^2} \hat{r} \ddot{\vec{r}} = - \frac{\mu}{r^2} \hat{r}
\end{equation} \end{equation}
We may also wish to utilize the total orbital energy for a spacecraft within this model.
Since the spacecraft is acting only under the gravitational influence of the planet and Since the spacecraft is acting only under the gravitational influence of the planet and
no other forces, we can define the total specific mechanical energy as: no other forces, we can define the total specific mechanical energy as
\cite{vallado2001fundamentals}: \cite{vallado2001fundamentals}:
\begin{equation} \label{energy} \begin{equation} \label{energy}
\xi = \frac{v^2}{2} - \frac{\mu}{r} \xi = \frac{v^2}{2} - \frac{\mu}{r}
\end{equation} \end{equation}
\noindent
Where the first term represents the kinetic energy of the spacecraft and the second term Where the first term represents the kinetic energy of the spacecraft and the second term
represents the gravitational potential energy. represents the gravitational potential energy.
\subsection{Kepler's Laws}
Now that we've fully qualified the forces acting within the Two Body Problem, we can concern Now that we've fully qualified the forces acting within the Two Body Problem, we can concern
ourselves with more practical applications of it as a force model. It should be noted, ourselves with more practical applications of it as a force model. It should be noted,
firstly, that the spacecraft's position and velocity (given an initial position and velocity firstly, that the spacecraft's position and velocity (given an initial position and velocity
@@ -105,6 +94,8 @@
one-dimensional equations (one for each component of the three-dimensional space) and one-dimensional equations (one for each component of the three-dimensional space) and
three unknowns (the three components of the second derivative of the position). three unknowns (the three components of the second derivative of the position).
\subsection{Kepler's Laws}
In the early 1600s, Johannes Kepler produced just such a solution, by taking advantages of In the early 1600s, Johannes Kepler produced just such a solution, by taking advantages of
what is also known as ``Kepler's Laws'' which are\cite{murray1999solar}: what is also known as ``Kepler's Laws'' which are\cite{murray1999solar}:
@@ -113,68 +104,61 @@
expanded to any orbit by re-wording as ``all orbital paths follow a conic section expanded to any orbit by re-wording as ``all orbital paths follow a conic section
(circle, ellipse, parabola, or hyperbola) with a primary mass at one of the foci''. (circle, ellipse, parabola, or hyperbola) with a primary mass at one of the foci''.
Specifically the path of the orbit follows the trajectory equation: The conic trajectory equation explains this observation and offers a description
of the path as:
\begin{equation} \begin{equation}
r = \frac{\sfrac{h^2}{\mu}}{1 + e \cos(\theta)} r = \frac{\sfrac{h^2}{\mu}}{1 + e \cos(\theta)}
\end{equation} \end{equation}
where $h$ is the angular momentum of the satellite, $e$ is the
Where $h$ is the angular momentum of the satellite, $e$ is the
eccentricity of the orbit, and $\theta$ is the true anomaly, or simply eccentricity of the orbit, and $\theta$ is the true anomaly, or simply
the angular distance the satellite has traversed along the orbit path. the angular distance the satellite has traversed along the orbit path from
periapsis.
\item The area swept out by the imaginary line connecting the primary and secondary \item The area swept out by the imaginary line connecting the primary and secondary
bodies increases linearly with respect to time. This implies that the magnitude of the bodies increases linearly with respect to time. This implies that the magnitude of the
orbital speed is not constant. For the moment, we'll just take this orbital speed is not constant. For the moment, we'll just take this
value to be a constant: value to be a constant:
\begin{equation}\label{swept} \begin{equation}\label{swept}
\frac{\Delta t}{T} = \frac{k}{\pi a b} \frac{\Delta t}{T} = \frac{k}{\pi a b}
\end{equation} \end{equation}
where $k$ is the constant value, $a$ and $b$ are the semi-major and
Where $k$ is the constant value, $a$ and $b$ are the semi-major and
semi-minor axis of the conic section, and $T$ is the period. In the semi-minor axis of the conic section, and $T$ is the period. In the
following section, we'll derive the value for $k$. following section, we'll derive the value for $k$.
\item The square of the orbital period is proportional to the cube of the semi-major \item The square of the orbital period is proportional to the cube of the semi-major
axis of the orbit, regardless of eccentricity. Specifically, the relationship is: axis of the orbit, regardless of eccentricity. For an elliptical orbit this
observation connects to the following known expression for the orbit period:
\begin{equation} \begin{equation}
T = 2 \pi \sqrt{\frac{a^3}{\mu}} T = 2 \pi \sqrt{\frac{a^3}{\mu}}
\end{equation} \end{equation}
where $T$ is the period and $a$ is the semi-major axis.
Where $T$ is the period and $a$ is the semi-major axis.
\end{enumerate} \end{enumerate}
\subsection{Kepler's Equation} \subsection{Kepler's Equation}
Kepler was able to produce an equation to represent the angular displacement of an Kepler was able to produce an equation to represent the angular displacement of an
orbiting body around a primary body as a function of time, which we'll derive now for orbiting body around a primary body as a function of time, which we'll derive now for
the elliptical case\cite{vallado2001fundamentals}. Since the total area of an ellipse is the elliptical case\cite{vallado2001fundamentals}. Because the total area of an ellipse
the product of $\pi$, the semi-major axis, and the semi-minor axis ($\pi a b$), we can is the product of $\pi$, the semi-major axis, and the semi-minor axis ($\pi a b$), we
relate (by Kepler's second law) the area swept out by an orbit as a function of time, as can relate (by Kepler's second law) the area swept out by an orbit as a function of
we did in Equation~\ref{swept}. This leaves just one unknown variable $k$, which we can time, as we did in Equation~\ref{swept}. This leaves just one unknown variable $k$,
determine through use of the geometric auxiliary circle, which is a circle with radius which we can determine through use of the geometric auxiliary circle, which is a circle
equal to the ellipse's semi-major axis and center directly between the two foci, as in with radius equal to the ellipse's semi-major axis and center directly between the two
Figure~\ref{aux_circ}. foci, as in Figure~\ref{aux_circ}.
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=0.8\textwidth]{fig/kepler} \includegraphics[width=0.8\textwidth]{fig/kepler}
\caption{Geometric Representation of Auxiliary Circle}\label{aux_circ} \caption{Geometric representation of auxiliary circle}\label{aux_circ}
\end{figure} \end{figure}
In order to find the area swept by the spacecraft\cite{vallado2001fundamentals}, $k$, we In order to find the area swept by the spacecraft\cite{vallado2001fundamentals}, $k$, we
can take advantage of the fact that that area is the triangle $k_1$ subtracted from the can take advantage of the fact that that area is the triangle $k_1$ subtracted from the
elliptical segment $PCB$: elliptical segment $PCB$:
\begin{equation}\label{areas_eq} \begin{equation}\label{areas_eq}
k = area(seg_{PCB}) - area(k_1) k = area(seg_{PCB}) - area(k_1)
\end{equation} \end{equation}
\noindent
Where the area of the triangle $k_1$ can be found easily using geometric formulae: Where the area of the triangle $k_1$ can be found easily using geometric formulae:
\begin{align} \begin{align}
area(k_1) &= \frac{1}{2} \left( ae - a \cos E \right) \left( \frac{b}{a} a \sin E \right) \\ area(k_1) &= \frac{1}{2} \left( ae - a \cos E \right) \left( \frac{b}{a} a \sin E \right) \\
&= \frac{ab}{2} \left(e \sin E - \cos E \sin E \right) &= \frac{ab}{2} \left(e \sin E - \cos E \sin E \right)
@@ -186,7 +170,6 @@
can find the area for the elliptical segment $PCB$ by first finding the circular segment can find the area for the elliptical segment $PCB$ by first finding the circular segment
$POB'$, subtracting the triangle $COB'$, then applying the fact that an ellipse is $POB'$, subtracting the triangle $COB'$, then applying the fact that an ellipse is
merely a vertical scaling of a circle by the amount $\frac{b}{a}$. merely a vertical scaling of a circle by the amount $\frac{b}{a}$.
\begin{align} \begin{align}
area(PCB) &= \frac{b}{a} \left( area(POB') - area(COB') \right) \\ area(PCB) &= \frac{b}{a} \left( area(POB') - area(COB') \right) \\
&= \frac{b}{a} \left( \frac{a^2 E}{2} - \frac{1}{2} \left( a \cos E \right) &= \frac{b}{a} \left( \frac{a^2 E}{2} - \frac{1}{2} \left( a \cos E \right)
@@ -197,26 +180,20 @@
By substituting the two areas back into Equation~\ref{areas_eq} we can get the $k$ area By substituting the two areas back into Equation~\ref{areas_eq} we can get the $k$ area
swept out by the spacecraft: swept out by the spacecraft:
\begin{equation} \begin{equation}
k = \frac{ab}{2} \left( E - e \sin E \right) k = \frac{ab}{2} \left( E - e \sin E \right)
\end{equation} \end{equation}
Which we can then substitute back into the equation for the swept area as a function of Which we can then substitute back into the equation for the swept area as a function of
time (Equation~\ref{swept}) for period of time since the spacecraft left periapsis: time (Equation~\ref{swept}) for period of time since the spacecraft left periapsis:
\begin{equation} \begin{equation}
\frac{\Delta t}{T} = \frac{t_2 - t_{peri}}{T} = \frac{E - e \sin E}{2 \pi} \frac{\Delta t}{T} = \frac{t_2 - t_{peri}}{T} = \frac{E - e \sin E}{2 \pi}
\end{equation} \end{equation}
Which is, effectively, Kepler's equation. It is commonly known by a different form: Which is, effectively, Kepler's equation. It is commonly known by a different form:
\begin{equation} \begin{equation}
M = \sqrt{\frac{\mu}{a^3}} \Delta t = E - e \sin E M = \sqrt{\frac{\mu}{a^3}} \Delta t = E - e \sin E
\end{equation} \end{equation}
where we've defined the mean anomaly as $M$ and used the fact that $T =
Where we've defined the mean anomaly as $M$ and used the fact that $T = \sqrt{\frac{a^3}{\mu}}$. This provides us a useful relationship between eccentric anomaly
\sqrt{\frac{a^3}{\mu}}$. This provides us a useful relationship between Eccentric Anomaly
($E$) which can be related to spacecraft position, and time, but we still need a useful ($E$) which can be related to spacecraft position, and time, but we still need a useful
algorithm for solving this equation in order to use this equation to propagate a algorithm for solving this equation in order to use this equation to propagate a
spacecraft. spacecraft.
@@ -224,34 +201,25 @@
\subsection{LaGuerre-Conway Algorithm}\label{laguerre} \subsection{LaGuerre-Conway Algorithm}\label{laguerre}
For this thesis, the algorithm used to solve Kepler's equation was the general numeric For this thesis, the algorithm used to solve Kepler's equation was the general numeric
root-finding scheme first developed by LaGuerre in the 1800s and first applied to root-finding scheme first developed by LaGuerre in the 1800s and first applied to Kepler's
Kepler's equation by Bruce Conway in 1985\cite{laguerre_conway}. In his paper, Conway equation by Bruce Conway in 1985\cite{laguerre_conway}. In his paper, Conway makes a
makes a compelling argument for utilizing the less common LaGuerre method over higher compelling argument for utilizing the less common LaGuerre method over higher order Newton
order Newton or Newton-Raphson methods. or Newton-Raphson methods. The Newton-Raphson methods, while found to generally have quite
impressive convergence rates (generally successfully solving Kepler's equation correctly
The Newton-Raphson methods, while found to generally have quite impressive convergence within 5 iterations), were prone to failures in convergence given certain specific initial
rates (generally successfully solving Kepler's equation correctly within 5 iterations), conditions. Therefore LaGuerre's algorithm is proposed as an alternative.
were prone to failures in convergence given certain specific initial conditions.
Therefore LaGuerre's algorithm is proposed as an alternative.
The algorithm can be relatively easily derived by examining the polynomial equation with
$m$ roots:
The algorithm can be derived by examining the polynomial equation with $m$ roots:
\begin{equation} \begin{equation}
g(x) = (x - x_1) (x - x_2) ... ( x - x_m) g(x) = (x - x_1) (x - x_2) ... ( x - x_m)
\end{equation} \end{equation}
\noindent
We can then generate some useful convenience functions as: We can then generate some useful convenience functions as:
\begin{align} \begin{align}
\ln|g(x)| &= \ln|(x - x_1)| + \ln|(x - x_2)| + ... + \ln|( x - x_m)| \\ \ln|g(x)| &= \ln|(x - x_1)| + \ln|(x - x_2)| + ... + \ln|( x - x_m)| \\
\frac{d\ln|g(x)|}{dx} &= \frac{1}{x - x_1} + \frac{1}{x - x_2} + ... + \frac{1}{x - \frac{d\ln|g(x)|}{dx} &= \frac{1}{x - x_1} + \frac{1}{x - x_2} + ... + \frac{1}{x -
x_m} = G_1(x) x_m} = G_1(x)
\end{align} \end{align}
and and
\begin{align} \begin{align}
\frac{-d^2\ln|g(x)|}{dx^2} &= \frac{1}{(x - x_1)^2} + \frac{1}{(x - x_2)^2} + ... + \frac{-d^2\ln|g(x)|}{dx^2} &= \frac{1}{(x - x_1)^2} + \frac{1}{(x - x_2)^2} + ... +
\frac{1}{(x - x_m)^2} = G_2(x) \frac{1}{(x - x_m)^2} = G_2(x)
@@ -259,42 +227,32 @@
Now we define the targeted root as $x_1$ and make the approximation that all of the Now we define the targeted root as $x_1$ and make the approximation that all of the
other roots are equidistant from the targeted root, which means: other roots are equidistant from the targeted root, which means:
\begin{equation} \begin{equation}
x - x_i = b, i=2,3,...,m x - x_i = b, i=2,3,...,m
\end{equation} \end{equation}
\noindent
We can then rewrite $G_1$ and $G_2$ as: We can then rewrite $G_1$ and $G_2$ as:
\begin{align} \begin{align}
G_1 &= \frac{1}{a} + \frac{n-1}{b} \\ G_1 &= \frac{1}{a} + \frac{n-1}{b} \\
G_2 &= \frac{1}{a^2} + \frac{n-1}{b^2} G_2 &= \frac{1}{a^2} + \frac{n-1}{b^2}
\end{align} \end{align}
\noindent
Which may be solved for $a$ in terms of $G_1$, $G_2$: Which may be solved for $a$ in terms of $G_1$, $G_2$:
\begin{equation} \begin{equation}
a = \frac{n}{G_1 \pm \sqrt{(n-1)(nG_2 - G_1^2)}} a = \frac{n}{G_1 \pm \sqrt{(n-1)(nG_2 - G_1^2)}}
\end{equation} \end{equation}
\noindent
With corresponding iteration function: With corresponding iteration function:
\begin{equation} \begin{equation}
x_{i+1} = x_i - \frac{n g(x_i)}{g'(x_i) \pm \sqrt{(n-1)^2 f'(x_i)^2 - n (n-1) f(x_i) x_{i+1} = x_i - \frac{n g(x_i)}{g'(x_i) \pm \sqrt{(n-1)^2 f'(x_i)^2 - n (n-1) f(x_i)
f''(x_i)}} f''(x_i)}}
\end{equation} \end{equation}
This iteration scheme can be shown to be globally convergent, regardless of the initial This iteration scheme can be shown to be globally convergent, regardless of the initial
guess. More relevantly, Conway also showed that the application of this method to guess. Conway also showed that the application of this method to Kepler's equation was shown
Kepler's equation was shown to converge with similar speed to many of the best common to converge with similar speed to many of the best common higher order Newton-Raphson
higher order Newton-Raphson solvers. However, LaGuerre's method was also found to be solvers. However, LaGuerre's method was also found to be incredibly robust, converging to
incredibly robust, converging to the correct value for every one of Conway's 500,000 the correct value for every one of Conway's 500,000 tests. Because of this robustness, it is
tests. Because of this robustness, it is very useful for propagating spacecraft states. useful for solving Kepler's equation.
\section{Interplanetary Considerations}\label{interplanetary} \section{Interplanetary Trajectories}\label{interplanetary}
In interplanetary travel, the primary body most responsible for gravitational forces might In interplanetary travel, the primary body most responsible for gravitational forces might
be a number of different bodies, dependent on the phase of the mission. In fact, at some be a number of different bodies, dependent on the phase of the mission. In fact, at some
@@ -346,14 +304,15 @@
This effectively breaks the trajectory into a series of arcs each governed by a distinct This effectively breaks the trajectory into a series of arcs each governed by a distinct
Two-Body problem patched together by distinct transition points. These transition points Two-Body problem patched together by distinct transition points. These transition points
occur along the spheres of influence of the planets nearest to the spacecraft. occur along the spheres of influence of the planets nearest to the spacecraft. A
conceptual example of this process, labeled the method of patched conics, appears in
Figure~\ref{patched_conics_fig}.
Therefore, we must understand how to convert our spacecraft's state from the Sun frame Therefore, we must understand how to convert our spacecraft's state from the Sun frame
to the planetary frame as it crosses this boundary. An elliptical orbit about the sun to the planetary frame as it crosses this boundary. An elliptical orbit about the sun
will have enough orbital energy to represent a hyperbolic orbit around the planet. So we will have enough orbital energy to represent a hyperbolic orbit around the planet. So we
first need to determine the velocity of the spacecraft relative to the planet as it first need to determine the velocity of the spacecraft relative to the planet as it
crosses the SOI, which we can determine by subtraction \cite{vallado2001fundamentals}: crosses the SOI, which we can determine by subtraction \cite{vallado2001fundamentals}:
\begin{equation} \begin{equation}
\vec{v}_{sc/p} = \vec{v}_{sc/sun} - \vec{v}_{planet/sun} \vec{v}_{sc/p} = \vec{v}_{sc/sun} - \vec{v}_{planet/sun}
\end{equation} \end{equation}
@@ -361,8 +320,8 @@
Since the orbit around the planet is hyperbolic, in order to characterize the hyperbola Since the orbit around the planet is hyperbolic, in order to characterize the hyperbola
we must determine the velocity of the spacecraft when it has infinite distance relative we must determine the velocity of the spacecraft when it has infinite distance relative
to the planet. Since this never occurs, a further approximation is made that the to the planet. Since this never occurs, a further approximation is made that the
velocity that the spacecraft has (relative to the planet) as it crosses the SOI can be velocity of the spacecraft (relative to the planet) as it crosses the SOI can be modeled
modeled as the $\vec{v}_\infty$ of that hyperbolic arc. as the $\vec{v}_\infty$ of that hyperbolic arc.
As an example, we may wish to determine the velocity relative to the planet that the As an example, we may wish to determine the velocity relative to the planet that the
spacecraft has at the periapsis of its hyperbolic trajectory during the flyby. This spacecraft has at the periapsis of its hyperbolic trajectory during the flyby. This
@@ -371,14 +330,12 @@
around its target planet. For a given incoming hyperbolic $\vec{v}_\infty$, we can first around its target planet. For a given incoming hyperbolic $\vec{v}_\infty$, we can first
determine the specific mechanical energy of the hyperbola at infinite distance by using determine the specific mechanical energy of the hyperbola at infinite distance by using
Equation~\ref{energy}: Equation~\ref{energy}:
\begin{equation} \begin{equation}
\xi = \frac{v^2}{2} - \frac{\mu}{r} = \frac{v_\infty^2}{2} \xi = \frac{v^2}{2} - \frac{\mu}{r} = \frac{v_\infty^2}{2}
\end{equation} \end{equation}
We can then leverage the conservation of energy to determine the velocity at a We can then leverage the conservation of energy to determine the velocity at a
particular point, $r_{ins}$: particular point, $r_{ins}$:
\begin{align} \begin{align}
\xi_{ins} &= \frac{v_{ins}^2}{2} - \frac{\mu}{r_{ins}} \\ \xi_{ins} &= \frac{v_{ins}^2}{2} - \frac{\mu}{r_{ins}} \\
\xi_{ins} &= \xi_\infty = \frac{v_\infty^2}{2} \\ \xi_{ins} &= \xi_\infty = \frac{v_\infty^2}{2} \\
@@ -387,14 +344,13 @@
\subsection{Launch Considerations} \subsection{Launch Considerations}
Generally speaking, an interplanetary mission begins with launch. For a satellite of For a satellite of given size, a certain amount of orbital energy can be imparted to the
given size, a certain amount of orbital energy can be imparted to the satellite by the satellite by the launch vehicle. In practice, this value, for a particular mission, is
launch vehicle. In practice, this value, for a particular mission, is actually actually determined as a parameter of the mission trajectory to be optimized. The excess
determined as a parameter of the mission trajectory to be optimized. The excess velocity velocity at infinity of the hyperbolic orbit of the spacecraft that leaves the Earth can
at infinity of the hyperbolic orbit of the spacecraft that leaves the Earth can be used be used to derive the launch energy. This is usually qualified as the quantity $C_3$,
to derive the launch energy. This is usually qualified as the quantity $C_3$, which is which is actually double the kinetic orbital energy with respect to the Sun, or simply
actually double the kinetic orbital energy with respect to the Sun, or simply the square the square of the excess hyperbolic velocity at infinity\cite{wie1998space}.
of the excess hyperbolic velocity at infinity\cite{wie1998space}.
This algorithm will assume that the initial trajectory at the beginning of the mission This algorithm will assume that the initial trajectory at the beginning of the mission
will be some hyperbolic orbit with velocity enough to leave the Earth. That initial will be some hyperbolic orbit with velocity enough to leave the Earth. That initial
@@ -405,12 +361,12 @@
what the maximum mass any launch provider is capable of imparting that specific $C_3$ what the maximum mass any launch provider is capable of imparting that specific $C_3$
to. to.
A similar approach is taken at the end of the mission. This algorithm doesn't attempt to A similar approach is taken at the end of the trajectory. This algorithm doesn't attempt
exactly match the velocity of the planet. Instead, the excess hyperbolic velocity is to exactly match the velocity of the planet. Instead, the excess hyperbolic velocity is
also treated as a parameter that can be minimized by the cost function. If a mission is also treated as a parameter that can be minimized by the cost function. If a trajectory
to then end in insertion, a portion of the mass budget can then be used for an impulsive is to then end in insertion, a portion of the mass budget can then be used for an
thrust engine, which can provide a final insertion burn. This approach also allows impulsive thrust engine, which can provide a final insertion burn. This approach also
flexibility for missions that might end in a flyby rather than insertion. allows flexibility for missions that might end in a flyby rather than insertion.
\subsection{Gravity Assist Maneuvers} \subsection{Gravity Assist Maneuvers}
@@ -441,7 +397,7 @@
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=0.8\textwidth]{fig/flyby} \includegraphics[width=0.8\textwidth]{fig/flyby}
\caption{Visualization of velocity changes during a gravity assist} \caption{Velocity changes during a gravity assist}
\label{grav_assist_fig} \label{grav_assist_fig}
\end{figure} \end{figure}
@@ -451,7 +407,7 @@
turning angle of this bend. In doing so, one can effectively achieve a (restricted) free turning angle of this bend. In doing so, one can effectively achieve a (restricted) free
impulsive thrust event. impulsive thrust event.
\subsection{Flyby Periapsis} \subsection{Flyby Periapsis Altitude}
Now that we understand gravity assists, the natural question is then how to leverage Now that we understand gravity assists, the natural question is then how to leverage
them for achieving certain velocity changes\cite{cho2017b}. But first, we must consider them for achieving certain velocity changes\cite{cho2017b}. But first, we must consider
@@ -460,7 +416,6 @@
mentioned in the previous section, given an excess hyperbolic velocity entering the mentioned in the previous section, given an excess hyperbolic velocity entering the
planet's sphere of influence ($\vec{v}_{\infty, in}$) and a target excess hyperbolic planet's sphere of influence ($\vec{v}_{\infty, in}$) and a target excess hyperbolic
velocity as the spacecraft leaves the sphere of influence ($\vec{v}_{\infty, out}$): velocity as the spacecraft leaves the sphere of influence ($\vec{v}_{\infty, out}$):
\begin{equation}\label{turning_angle_eq} \begin{equation}\label{turning_angle_eq}
\delta = \arccos \left( \frac{\vec{v}_{\infty,in} \cdot \delta = \arccos \left( \frac{\vec{v}_{\infty,in} \cdot
\vec{v}_{\infty,out}}{|\vec{v}_{\infty,in}| |\vec{v}_{\infty,out}|} \right) \vec{v}_{\infty,out}}{|\vec{v}_{\infty,in}| |\vec{v}_{\infty,out}|} \right)
@@ -470,12 +425,10 @@
that we must target in order to achieve the required turning angle. The periapsis of the that we must target in order to achieve the required turning angle. The periapsis of the
flyby, however, can provide a useful check on what turning angles are possible for a flyby, however, can provide a useful check on what turning angles are possible for a
given flyby, since the periapsis: given flyby, since the periapsis:
\begin{equation}\label{periapsis_eq} \begin{equation}\label{periapsis_eq}
r_p = \frac{\mu}{v_\infty^2} \left[ \frac{1}{\sin\left(\frac{\delta}{2}\right)} - 1 \right] r_p = \frac{\mu}{v_\infty^2} \left[ \frac{1}{\sin\left(\frac{\delta}{2}\right)} - 1 \right]
\end{equation} \end{equation}
cannot be lower than some safe value that accounts for the radius of the planet and
Cannot be lower than some safe value that accounts for the radius of the planet and
perhaps its atmosphere if applicable. perhaps its atmosphere if applicable.
\subsection{Multiple Gravity Assist Techniques} \subsection{Multiple Gravity Assist Techniques}
@@ -511,7 +464,9 @@
less than 180 degrees, which we classify as a Type I trajectory, and the second will less than 180 degrees, which we classify as a Type I trajectory, and the second will
have a $\Delta \theta$ of greater than 180 degrees, which we call a Type II have a $\Delta \theta$ of greater than 180 degrees, which we call a Type II
trajectory. They will also differ in their direction of motion (clockwise or trajectory. They will also differ in their direction of motion (clockwise or
counter-clockwise about the focus). This can be seen in Figure~\ref{type1type2}. counter-clockwise about the focus). This can be seen in Figure~\ref{type1type2},
where both of the Lambert's solutions are presented for sample points in an orbit
around the Sun.
\begin{figure}[H] \begin{figure}[H]
\centering \centering
@@ -523,7 +478,6 @@
The iteration used in this thesis will start by first calculating the change in true The iteration used in this thesis will start by first calculating the change in true
anomaly, $\Delta \theta$, as well as the cosine of this value, which can be found anomaly, $\Delta \theta$, as well as the cosine of this value, which can be found
by: by:
\begin{align} \begin{align}
\cos (\Delta \theta) &= \frac{\vec{r}_1 \cdot \vec{r}_2}{|\vec{r}_1| |\vec{r}_2|} \\ \cos (\Delta \theta) &= \frac{\vec{r}_1 \cdot \vec{r}_2}{|\vec{r}_1| |\vec{r}_2|} \\
\Delta \theta &= \arctan(y_2/x_2) - \arctan(y_1/x_1) \Delta \theta &= \arctan(y_2/x_2) - \arctan(y_1/x_1)
@@ -532,7 +486,6 @@
The direction of motion is then chosen such that counter-clockwise orbits are The direction of motion is then chosen such that counter-clockwise orbits are
considered, as travelling in the same direction as the planets is generally more considered, as travelling in the same direction as the planets is generally more
efficient. Next, the variable $A$ is defined: efficient. Next, the variable $A$ is defined:
\begin{equation} \begin{equation}
A = DM \sqrt{|r_1| |r_2| (1 - \cos(\Delta \theta))} A = DM \sqrt{|r_1| |r_2| (1 - \cos(\Delta \theta))}
\end{equation} \end{equation}
@@ -547,7 +500,6 @@
time of flight matches the expected value to within a provided tolerance. In order time of flight matches the expected value to within a provided tolerance. In order
to calculate the time of flight at each step, we must first calculate some useful to calculate the time of flight at each step, we must first calculate some useful
coefficients: coefficients:
\begin{equation}\label{loop_start} \begin{equation}\label{loop_start}
c_2 = \begin{cases} c_2 = \begin{cases}
\frac{1-\cos(\sqrt{\psi})}{\psi} \quad &\text{if} \, \psi > 10^{-6} \\ \frac{1-\cos(\sqrt{\psi})}{\psi} \quad &\text{if} \, \psi > 10^{-6} \\
@@ -555,7 +507,6 @@
1/2 \quad &\text{if} \, 10^{-6} > \psi > -10^{-6} 1/2 \quad &\text{if} \, 10^{-6} > \psi > -10^{-6}
\end{cases} \end{cases}
\end{equation} \end{equation}
\begin{equation} \begin{equation}
c_3 = \begin{cases} c_3 = \begin{cases}
\frac{\sqrt{\psi} - \sin \sqrt{\psi}}{\psi^{3/2}} \quad &\text{if} \, \psi > 10^{-6} \\ \frac{\sqrt{\psi} - \sin \sqrt{\psi}}{\psi^{3/2}} \quad &\text{if} \, \psi > 10^{-6} \\
@@ -563,23 +514,18 @@
1/6 \quad &\text{if} \, 10^{-6} > \psi > -10^{-6} 1/6 \quad &\text{if} \, 10^{-6} > \psi > -10^{-6}
\end{cases} \end{cases}
\end{equation} \end{equation}
\noindent
Where the conditions of this piecewise function represent the elliptical, Where the conditions of this piecewise function represent the elliptical,
hyperbolic, and parabolic cases, respectively. Once we have these, we can calculate hyperbolic, and parabolic cases, respectively. Once we have these, we can calculate
another variable, $y$: another variable, $y$:
\begin{equation} \begin{equation}
y = |r_1| + |r_2| + \frac{A (c_3 \psi - 1)}{\sqrt{c_2}} y = |r_1| + |r_2| + \frac{A (c_3 \psi - 1)}{\sqrt{c_2}}
\end{equation} \end{equation}
We can then finally calculate the variable $\chi$, and from that, the time of We can then finally calculate the variable $\chi$, and from that, the time of
flight: flight:
\begin{equation} \begin{equation}
\chi = \sqrt{\frac{y}{c_2}} \chi = \sqrt{\frac{y}{c_2}}
\end{equation} \end{equation}
\begin{equation} \begin{equation}
\Delta t = \frac{c_3 \chi^3 + A \sqrt{y}}{\sqrt{c_2}} \Delta t = \frac{c_3 \chi^3 + A \sqrt{y}}{\sqrt{c_2}}
\end{equation} \end{equation}
@@ -592,22 +538,17 @@
The resulting $f$ and $g$ functions (and the derivative of $g$, $\dot{g}$) can then The resulting $f$ and $g$ functions (and the derivative of $g$, $\dot{g}$) can then
be calculated: be calculated:
\begin{align} \begin{align}
f &= 1 - \frac{y}{|r_1|} \\ f &= 1 - \frac{y}{|r_1|} \\
g &= A \sqrt{\frac{y}{\mu}} \\ g &= A \sqrt{\frac{y}{\mu}} \\
\dot{g} &= 1 - \frac{y}{|r_2|} \dot{g} &= 1 - \frac{y}{|r_2|}
\end{align} \end{align}
And from these, we can calculate the velocities of the transfer points as: And from these, we can calculate the velocities of the transfer points as:
\begin{align} \begin{align}
\vec{v}_1 &= \frac{\vec{r}_1 - f \vec{r}_2}{g} \\ \vec{v}_1 &= \frac{\vec{r}_1 - f \vec{r}_2}{g} \\
\vec{v}_2 &= \frac{\dot{g} \vec{r}_2 - \vec{r}_1}{g} \vec{v}_2 &= \frac{\dot{g} \vec{r}_2 - \vec{r}_1}{g}
\end{align} \end{align}
Fully describing the connecting path with the specified flight time.
\noindent
Fully constraining the connecting orbit.
\subsubsection{Planetary Ephemeris} \subsubsection{Planetary Ephemeris}
@@ -620,8 +561,8 @@
The primary use of SPICE in this thesis, however, was to determine the planetary The primary use of SPICE in this thesis, however, was to determine the planetary
ephemeris at a known epoch. Using the NAIF0012 and DE430 kernels, ephemeris in the ephemeris at a known epoch. Using the NAIF0012 and DE430 kernels, ephemeris in the
ecliptic plane J2000 frame (ICRF) could be easily determined for a given epoch, provided as International Celestial Reference Frame could be easily determined for a given
a decimal Julian Day since the J2000 epoch. epoch, provided as a decimal Julian Day since the J2000 epoch.
\subsubsection{Porkchop Plots} \subsubsection{Porkchop Plots}
@@ -641,10 +582,9 @@
Using porkchop plots such as the one in Figure~\ref{porkchop}, mission designers can Using porkchop plots such as the one in Figure~\ref{porkchop}, mission designers can
quickly visualize which natural trajectories are possible between planets. Using the quickly visualize which natural trajectories are possible between planets. Using the
fact that incoming and outgoing $v_\infty$ magnitudes must be the same for a flyby, fact that incoming and outgoing $v_\infty$ magnitudes must be the same for a flyby,
a savvy mission designer can even begin to work out what combinations of flybys a mission designer can even begin to work out what combinations of flybys might be
might be possible for a given timeline, spacecraft state, and planet selection. possible for a given timeline, spacecraft state, and planet selection.
%TODO: Create my own porkchop plot
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=\textwidth]{fig/porkchop} \includegraphics[width=\textwidth]{fig/porkchop}
@@ -652,13 +592,7 @@
\label{porkchop} \label{porkchop}
\end{figure} \end{figure}
However, this is an impulsive thrust-centered approach. The solution to Lambert's \section{Modeling Low Thrust Control} \label{low_thrust}
problem assumes a natural trajectory. A natural trajectory is unnecessary when the
trajectory can be modified by a continuous thrust profile along the arc. Therefore,
for the hybrid problem of optimizing both flyby selection and thrust profiles,
porkchop plots are less helpful, and an algorithmic approach is preferred.
\section{Low Thrust Considerations} \label{low_thrust}
In this section, we'll discuss the intricacies of continuous low-thrust trajectories in In this section, we'll discuss the intricacies of continuous low-thrust trajectories in
particular. There are many methods for optimizing such profiles and we'll briefly discuss particular. There are many methods for optimizing such profiles and we'll briefly discuss
@@ -666,7 +600,7 @@
as introduce the concept of a control law and the notation used in this thesis for modelling as introduce the concept of a control law and the notation used in this thesis for modelling
low-thrust trajectories more simply. low-thrust trajectories more simply.
\subsection{Specific Impulse} \subsection{Engine Model}
The primary advantage of continuous thrust methods over their impulsive counterparts is The primary advantage of continuous thrust methods over their impulsive counterparts is
in their fuel-efficiency in generating changes in velocity. Put specifically, all in their fuel-efficiency in generating changes in velocity. Put specifically, all
@@ -678,45 +612,34 @@
This efficiency is often captured in a single variable called specific impulse, often This efficiency is often captured in a single variable called specific impulse, often
denoted as $I_{sp}$. We can derive the specific impulse by starting with the rocket denoted as $I_{sp}$. We can derive the specific impulse by starting with the rocket
thrust equation\cite{sutton2016rocket}: thrust equation\cite{sutton2016rocket}:
\begin{equation} \begin{equation}
F = \dot{m} v_e + \Delta p A_e F = \dot{m} v_e + \Delta p A_e
\end{equation} \end{equation}
\noindent
Where $F$ is the thrust imparted, $\dot{m}$ is the fuel mass rate, $v_e$ is the exhaust Where $F$ is the thrust imparted, $\dot{m}$ is the fuel mass rate, $v_e$ is the exhaust
velocity of the fuel, $\Delta p$ is the change in pressure across the exhaust opening, velocity of the fuel, $\Delta p$ is the change in pressure across the exhaust opening,
and $A_e$ is the area of the exhaust opening. We can then define a new variable and $A_e$ is the area of the exhaust opening. We can then define a new variable
$v_{eq}$, such that the thrust equation becomes: $v_{eq}$, such that the thrust equation becomes:
\begin{align} \begin{align}
v_{eq} &= v_e + \frac{\Delta p A_e}{\dot{m}} \\ v_{eq} &= v_e + \frac{\Delta p A_e}{\dot{m}} \\
F &= \dot{m} v_{eq} \label{isp_1} F &= \dot{m} v_{eq} \label{isp_1}
\end{align} \end{align}
\noindent
And we can then take the integral of this value with respect to time to find the total And we can then take the integral of this value with respect to time to find the total
impulse, dividing by the weight of the fuel to derive the specific impulse: impulse, dividing by the weight of the fuel to derive the specific impulse:
\begin{align} \begin{align}
I &= \int F dt = \int \dot{m} v_{eq} dt = m_e v_{eq} \\ I &= \int F dt = \int \dot{m} v_{eq} dt = m_e v_{eq} \\
I_{sp} &= \frac{I}{m_e g_0} = \frac{m_e v_{eq}}{m_e g_0} = \frac{v_{eq}}{g_0} I_{sp} &= \frac{I}{m_e g_0} = \frac{m_e v_{eq}}{m_e g_0} = \frac{v_{eq}}{g_0}
\end{align} \end{align}
Plugging Equation~\ref{isp_1} into the previous equation we can derive the following Plugging Equation~\ref{isp_1} into the previous equation we can derive the following
formula for $I_{sp}$: formula for $I_{sp}$:
\begin{equation} \label{isp_real} \begin{equation} \label{isp_real}
I_{sp} = \frac{F}{\dot{m} g_0} I_{sp} = \frac{F}{\dot{m} g_0}
\end{equation} \end{equation}
\noindent
Which is generally taken to be a value with units of seconds and effectively represents Which is generally taken to be a value with units of seconds and effectively represents
the efficiency with which a thruster converts mass to thrust. the efficiency with which a thruster converts mass to thrust.
\subsection{Sims-Flanagan Transcription} \subsection{Sims-Flanagan Transcription}
This thesis chose to use a model well suited for modeling low-thrust paths: the In this thesis the following approach is used for modeling low-thrust paths: the
Sims-Flanagan transcription (SFT)\cite{sims1999preliminary}. The SFT allows for Sims-Flanagan transcription (SFT)\cite{sims1999preliminary}. The SFT allows for
flexibility in the trade-off between fidelity and performance, which makes it very flexibility in the trade-off between fidelity and performance, which makes it very
useful for this sort of preliminary analysis. useful for this sort of preliminary analysis.
@@ -752,7 +675,7 @@
continuous low-thrust trajectory within the Two-Body Problem, with only continuous low-thrust trajectory within the Two-Body Problem, with only
linearly-increasing computation time\cite{sims1999preliminary}. linearly-increasing computation time\cite{sims1999preliminary}.
\subsection{Low-Thrust Control Laws} \subsection{Low-Thrust Control Vector Description}
In determining a low-thrust arc, a number of variables must be accounted for and, In determining a low-thrust arc, a number of variables must be accounted for and,
ideally, optimized. Generally speaking, this means that a control law must be determined ideally, optimized. Generally speaking, this means that a control law must be determined
@@ -765,24 +688,23 @@
The methods for determining this direction varies greatly depending on the particular The methods for determining this direction varies greatly depending on the particular
control law chosen for that mission. Often, this process involves first determining a control law chosen for that mission. Often, this process involves first determining a
useful frame to think about the kinematics of the spacecraft. In this case, we'll use a useful frame to think about the kinematics of the spacecraft. In this case, we'll use a
frame often used in these low-thrust control laws: the spacecraft $\hat{R} \hat{\theta} frame often used in these low-thrust control laws: the spacecraft-centered $\hat{R}
\hat{H}$ frame. In this frame, the $\hat{R}$ direction is the radial direction from the \hat{\theta} \hat{H}$ frame. In this frame, the $\hat{R}$ direction is the radial
center of the primary to the center of the spacecraft. The $\hat{H}$ hat is direction from the center of the primary to the center of the spacecraft. The $\hat{H}$
perpendicular to this, in the direction of orbital momentum (out-of-plane) and the hat is perpendicular to this, in the direction of orbital momentum (out-of-plane) and
$\hat{\theta}$ direction completes the right-handed orthonormal frame. the $\hat{\theta}$ direction completes the right-handed orthonormal triad.
This frame is useful because, for a given orbit, especially a nearly circular one, the This frame is useful because, for a given orbit, especially a nearly circular one, the
$\hat{\theta}$ direction is nearly aligned with the velocity direction for that orbit at $\hat{\theta}$ direction is nearly aligned with the velocity direction for that orbit at
that moment. This allows us to define a set of two angles, which we'll call $\alpha$ and that moment. This allows us to define a set of two angles, which we'll call $\alpha$ and
$\beta$, to represent the in and out of plane pointing direction of the thrusters. This $\beta$, to represent the in and out of plane pointing direction of the thrusters. This
convention is useful because a $(0,0)$ set represents a thrust force more or less convention is useful because, in a near-circular path, a $(0,0)$ set represents a thrust
directly in line with the direction of the velocity, a commonly useful thrusting force more or less directly in line with the direction of the velocity, a commonly
direction for most effectively increasing (or decreasing if negative) the angular useful thrusting direction for most effectively increasing (or decreasing if negative)
momentum and orbital energy of the trajectory. the angular momentum and orbital energy of the trajectory.
Using these conventions, we can then redefine our thrust vector in terms of the $\alpha$ Using these conventions, we can then redefine our thrust vector in terms of the $\alpha$
and $\beta$ angles in the chosen frame: and $\beta$ angles in the chosen frame:
\begin{align} \begin{align}
F_r &= F \cos(\beta) \sin (\alpha) \\ F_r &= F \cos(\beta) \sin (\alpha) \\
F_\theta &= F \cos(\beta) \cos (\alpha) \\ F_\theta &= F \cos(\beta) \cos (\alpha) \\
@@ -791,12 +713,12 @@
\subsubsection{Thrust Magnitude} \subsubsection{Thrust Magnitude}
However, there is actually another variable that can be varied by the majority of There is another variable that can be varied by the majority of electric thrusters.
electric thrusters. Either by controlling the input power of the thruster or the duty Either by controlling the input power of the thruster or the duty cycle, the thrust
cycle, the thrust magnitude can also be varied, limited by the maximum thrust available magnitude can also be varied, limited by the maximum thrust available to the thruster.
to the thruster. Not all control laws allow for this fine-tuned control of the thruster. Not all control laws allow for this fine-tuned control of the thruster.
The algorithm used in this thesis does vary the magnitude of the thrust control. In The approach used in this thesis does vary the magnitude of the thrust control. In
certain cases it actually can be useful to have some fine-tuned control over the certain cases it actually can be useful to have some fine-tuned control over the
magnitude of the thrust. Since the optimization in this algorithm is automatic, it is magnitude of the thrust. Since the optimization in this algorithm is automatic, it is
relatively straightforward to consider the control thrust as a 3-dimensional vector in relatively straightforward to consider the control thrust as a 3-dimensional vector in

View File

@@ -6,10 +6,11 @@
highly non-linear, unpredictable systems such as this. The field that developed to highly non-linear, unpredictable systems such as this. The field that developed to
approach this problem is known as Non-Linear Programming (NLP) Optimization. approach this problem is known as Non-Linear Programming (NLP) Optimization.
A Non-Linear Programming Problem is defined by an attempt to optimize a function A Non-Linear Programming Problem involves finding a solution that optimizes a function
$f(\vec{x})$, subject to constraints $\vec{g}(\vec{x}) \le 0$ and $\vec{h}(\vec{x}) = 0$ $f(\vec{x})$, subject to constraints $\vec{g}(\vec{x}) \le 0$ and $\vec{h}(\vec{x}) = 0$
where $n$ is a positive integer, $x$ is any subset of $R^n$, $g$ and $h$ can be vector where $n$ is a positive integer, $x$ is any subset of $R^n$, $g$ and $h$ can be vector
valued functions of any size, and at least one of $f$, $g$, and $h$ must be non-linear. valued functions of any size, and at least one of $f$, $\vec{g}$, and $\vec{h}$ must be
non-linear.
There are, however, two categories of approaches to solving an NLP. The first category, There are, however, two categories of approaches to solving an NLP. The first category,
indirect methods, involve declaring a set of necessary and/or sufficient conditions for indirect methods, involve declaring a set of necessary and/or sufficient conditions for
@@ -20,10 +21,10 @@
The other category is the direct methods. In a direct optimization problem, the cost The other category is the direct methods. In a direct optimization problem, the cost
function itself provides a value that an iterative numerical optimizer can measure function itself provides a value that an iterative numerical optimizer can measure
itself against. The optimal solution is then found by varying the inputs $\vec{x}$ until the itself against. The optimal solution is then found by varying the inputs $\vec{x}$ until
cost function is reduced to a minimum value, often determined by its derivative the cost function is reduced to a minimum value, often determined by its derivative
jacobian. A number of tools have been developed to optimize NLPs via this direct method jacobian. A number of tools have been developed to formulate NLPs for optimization via
in the general case. this direct method in the general case.
Both of these methods have been applied to the problem of low-thrust interplanetary Both of these methods have been applied to the problem of low-thrust interplanetary
trajectory optimization \cite{Casalino2007IndirectOM} to find local optima over trajectory optimization \cite{Casalino2007IndirectOM} to find local optima over
@@ -40,7 +41,7 @@
Therefore, a direct optimization method was leveraged by transcribing the problem into Therefore, a direct optimization method was leveraged by transcribing the problem into
an NLP and using IPOPT to find the local minima. an NLP and using IPOPT to find the local minima.
\subsubsection{Non-Linear Solvers} \subsection{Non-Linear Solvers}
One of the most common packages for the optimization of NLP problems is One of the most common packages for the optimization of NLP problems is
SNOPT\cite{gill2005snopt}, which is a proprietary package written primarily using a SNOPT\cite{gill2005snopt}, which is a proprietary package written primarily using a
@@ -63,7 +64,7 @@
libraries that port these are quite modular in the sense that multiple algorithms can be libraries that port these are quite modular in the sense that multiple algorithms can be
tested without changing much source code. tested without changing much source code.
\subsubsection{Interior Point Linesearch Method} \subsection{Interior Point Linesearch Method}
As mentioned above, this project utilized IPOPT which leveraged an Interior Point As mentioned above, this project utilized IPOPT which leveraged an Interior Point
Linesearch method. A linesearch algorithm is one which attempts to find the optimum Linesearch method. A linesearch algorithm is one which attempts to find the optimum
@@ -74,7 +75,7 @@
step the initial guess, now labeled $x_{k+1}$ after the addition of the ``step'' step the initial guess, now labeled $x_{k+1}$ after the addition of the ``step''
vector and iterates this process until predefined termination conditions are met. vector and iterates this process until predefined termination conditions are met.
\subsubsection{Shooting Schemes for Solving a Two-Point Boundary Value Problem} \subsection{Shooting Schemes for Solving a Two-Point Boundary Value Problem}
One straightforward approach to trajectory corrections is a single shooting One straightforward approach to trajectory corrections is a single shooting
algorithm, which propagates a state, given some control variables forward in time to algorithm, which propagates a state, given some control variables forward in time to
@@ -82,31 +83,22 @@
iterative process, using the correction scheme, until the target state and the iterative process, using the correction scheme, until the target state and the
propagated state matches. propagated state matches.
As an example, we can consider the Two-Point Boundary Value Problem (TPBVP) defined As an example, we can consider the one-dimensional Two-Point Boundary Value Problem
by: (TPBVP) defined by:
\begin{equation} \begin{equation}
y''(t) = f(t, y(t), y'(t)), y(t_0) = y_0, y(t_f) = y_f y''(t) = f(t, y(t), y'(t)), y(t_0) = y_0, y(t_f) = y_f
\end{equation} \end{equation}
\noindent
We can then redefine the problem as an initial-value problem: We can then redefine the problem as an initial-value problem:
\begin{equation} \begin{equation}
y''(t) = f(t, y(t), y'(t)), y(t_0) = y_0, y'(t_0) = x y''(t) = f(t, y(t), y'(t)), y(t_0) = y_0, y'(t_0) = \dot{y}_0
\end{equation} \end{equation}
\noindent
With $y(t,x)$ as a solution to that problem. Furthermore, if $y(t_f, x) = y_f$, then With $y(t,x)$ as a solution to that problem. Furthermore, if $y(t_f, x) = y_f$, then
the solution to the initial-value problem is also the solution to the TPBVP as well. the solution to the initial-value problem is also the solution to the TPBVP as well.
Therefore, we can use a root-finding algorithm, such as the bisection method, Therefore, we can use a root-finding algorithm, such as the bisection method,
Newton's Method, or even Laguerre's method, to find the roots of: Newton's Method, or even Laguerre's method, to find the roots of:
\begin{equation} \begin{equation}
F(x) = y(t_f, x) - y_f F(x) = y(t_f, x) - y_f
\end{equation} \end{equation}
\noindent
To find the solution to the IVP at $x_0$, $y(t_f, x_0)$ which also provides a To find the solution to the IVP at $x_0$, $y(t_f, x_0)$ which also provides a
solution to the TPBVP. This technique for solving a Two-Point Boundary Value solution to the TPBVP. This technique for solving a Two-Point Boundary Value
Problem can be visualized in Figure~\ref{single_shoot_fig}. Problem can be visualized in Figure~\ref{single_shoot_fig}.
@@ -114,7 +106,7 @@
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=\textwidth]{fig/single_shoot} \includegraphics[width=\textwidth]{fig/single_shoot}
\caption{Visualization of a single shooting technique over a trajectory arc} \caption{Single shooting over a trajectory arc}
\label{single_shoot_fig} \label{single_shoot_fig}
\end{figure} \end{figure}
@@ -133,8 +125,8 @@
each of these points we can then define a separate control, which may include the each of these points we can then define a separate control, which may include the
states themselves. The end state of each arc and the beginning state of the next states themselves. The end state of each arc and the beginning state of the next
must then be equal for a valid arc (with the exception of velocity discontinuities must then be equal for a valid arc (with the exception of velocity discontinuities
if allowed for maneuvers at that point), as well as the final state matching the if allowed for maneuvers or gravity assists at that point), as well as the final
target final state. state matching the target final state.
\begin{figure}[H] \begin{figure}[H]
\centering \centering
@@ -144,7 +136,7 @@
\end{figure} \end{figure}
In this example, it can be seen that there are now more constraints (places where In this example, it can be seen that there are now more constraints (places where
the states need to match up, creating an $x_{error}$ term) as well as control the states need to match up, creating an $\vec{x}_{error}$ term) as well as control
variables (the $\Delta V$ terms in the figure). This technique actually lends itself variables (the $\Delta V$ terms in the figure). This technique actually lends itself
very well to low-thrust arcs and, in fact, Sims-Flanagan Transcribed low-thrust arcs very well to low-thrust arcs and, in fact, Sims-Flanagan Transcribed low-thrust arcs
in particular, because there actually are control thrusts to be optimized at a in particular, because there actually are control thrusts to be optimized at a