Unless Bosanac has a last minute change, the paper is done!
This commit is contained in:
@@ -264,7 +264,7 @@
|
||||
\item The $v_{\infty,in}$ vector representing excess velocity at the
|
||||
planetary flyby (or completion of mission) at the end of the phase
|
||||
\item The time of flight for the phase
|
||||
\item The unit-thrust profile in a sun-fixed frame represented by a
|
||||
\item The unit-thrust profile in a sun-centered frame represented by a
|
||||
series of vectors with each element ranging from 0 to 1.
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
@@ -397,18 +397,12 @@
|
||||
non-powered flyby.
|
||||
|
||||
From these two velocity vectors the turning angle, and thus the periapsis of the flyby,
|
||||
can then be calculated by Equation~\ref{turning_angle_eq} and the following equation:
|
||||
|
||||
\begin{equation}
|
||||
r_p = \frac{\mu}{\vec{v}_{\infty,in} \cdot \vec{v}_{\infty,out}} \cdot \left(
|
||||
\frac{1}{\sin(\delta/2)} - 1 \right)
|
||||
\end{equation}
|
||||
|
||||
If this radius of periapse is then found to be less than the minimum safe radius
|
||||
(currently set to the radius of the planet plus 100 kilometers), then the process is
|
||||
repeated with new random flyby velocities until a valid seed flyby is found. These
|
||||
checks are also performed each time a mission is perturbed or generated by the NLP
|
||||
solver.
|
||||
can then be calculated by Equation~\ref{turning_angle_eq} and
|
||||
Equation~\ref{periapsis_eq}. If this radius of periapse is then found to be less than
|
||||
the minimum safe radius (currently set to the radius of the planet plus 100 kilometers),
|
||||
then the process is repeated with new random flyby velocities until a valid seed flyby
|
||||
is found. These checks are also performed each time a mission is perturbed or generated
|
||||
by the NLP solver.
|
||||
|
||||
The final requirement then, is the thrust controls, which are actually quite simple.
|
||||
Since the thrust is defined as a 3-vector of values between -1 and 1 representing some
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 43 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 42 KiB |
@@ -121,7 +121,7 @@
|
||||
|
||||
The mission begins in late June of 2024 and proceeds first to an initial gravity assist with
|
||||
Mars after three and one half years to rendezvous in mid-December 2027. Unfortunately, the
|
||||
launch energy required to effectively used the gravity assist with Mars at this time is
|
||||
launch energy required to effectively use the gravity assist with Mars at this time is
|
||||
quite high. The $C_3$ value was found to be $60.4102 \frac{\text{km}^2}{\text{s}^2}$. However,
|
||||
for this phase, the thrust magnitudes are quite low, raising slowly only as the spacecraft
|
||||
approaches Mars, allowing for a nearly-natural trajectory to Mars rendezvous. Note also that
|
||||
|
||||
@@ -366,7 +366,7 @@
|
||||
|
||||
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
|
||||
could be useful, perhaps, for sizing the $\Delta V<$ required during the insertion stage
|
||||
could be useful, perhaps, for sizing the $\Delta V$ required during the insertion stage
|
||||
of the mission if the spacecraft is intended to be captured into an elliptical orbit
|
||||
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
|
||||
@@ -398,20 +398,19 @@
|
||||
|
||||
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
|
||||
$v_\infty$ will be used as a tunable parameter in the NLP solver. This allows the
|
||||
mission designer to include the launch $C_3$ in the cost function and, hopefully,
|
||||
$v_\infty$ will be used as a tunable parameter in the optimization routine. This allows
|
||||
the mission designer to include the launch $C_3$ in the cost function and, hopefully,
|
||||
determine the mission trajectory that includes the least initial launch energy. This can
|
||||
then be fed back into a mass-$C_3$ curve for prospective launch providers to determine
|
||||
what the maximum mass any launch provider is capable of imparting that specific $C_3$
|
||||
to.
|
||||
|
||||
A similar approach is taken at the end of the mission. This algorithm doesn't attempt to
|
||||
exactly match the velocity of the planet at the end of the mission. Instead, the excess
|
||||
hyperbolic velocity is also treated as a parameter that can be minimized by the cost
|
||||
function. If a mission is to then end in insertion, a portion of the mass budget can
|
||||
then be used for an impulsive thrust engine, which can provide a final insertion burn at
|
||||
the end of the mission. This approach also allows flexibility for missions that might
|
||||
end in a flyby rather than insertion.
|
||||
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
|
||||
to then end in insertion, a portion of the mass budget can then be used for an impulsive
|
||||
thrust engine, which can provide a final insertion burn. This approach also allows
|
||||
flexibility for missions that might end in a flyby rather than insertion.
|
||||
|
||||
\subsection{Gravity Assist Maneuvers}
|
||||
|
||||
@@ -472,7 +471,7 @@
|
||||
flyby, however, can provide a useful check on what turning angles are possible for a
|
||||
given flyby, since the periapsis:
|
||||
|
||||
\begin{equation}
|
||||
\begin{equation}\label{periapsis_eq}
|
||||
r_p = \frac{\mu}{v_\infty^2} \left[ \frac{1}{\sin\left(\frac{\delta}{2}\right)} - 1 \right]
|
||||
\end{equation}
|
||||
|
||||
@@ -504,9 +503,9 @@
|
||||
here for its robustness given any initial guess \cite{battin1984elegant}.
|
||||
|
||||
Firstly, some geometric considerations must be accounted for. For any initial
|
||||
position, $\vec{r}_0$, and final position, $\vec{r}_f$, and time of flight $\Delta
|
||||
position, $\vec{r}_1$, and final position, $\vec{r}_2$, and time of flight $\Delta
|
||||
t$, there are actually two separate transfer orbits that can connect the two points
|
||||
with paths that traverse less than one full orbit. For each of these, there are
|
||||
with paths that traverse less than one full orbit. Therefore, there are
|
||||
actually then two trajectories that can connect the points
|
||||
\cite{vallado2001fundamentals}. The first of the two will have a $\Delta \theta$ of
|
||||
less than 180 degrees, which we classify as a Type I trajectory, and the second will
|
||||
@@ -559,7 +558,7 @@
|
||||
|
||||
\begin{equation}
|
||||
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} \\
|
||||
\frac{\sinh\sqrt{-\psi} - \sqrt{-\psi}}{(-\psi)^{3/2}} \quad &\text{if} \, \psi < -10^{-6} \\
|
||||
1/6 \quad &\text{if} \, 10^{-6} > \psi > -10^{-6}
|
||||
\end{cases}
|
||||
@@ -578,7 +577,7 @@
|
||||
flight:
|
||||
|
||||
\begin{equation}
|
||||
\chi = sqrt{\frac{y}{c_2}}
|
||||
\chi = \sqrt{\frac{y}{c_2}}
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
@@ -691,7 +690,7 @@
|
||||
$v_{eq}$, such that the thrust equation becomes:
|
||||
|
||||
\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}
|
||||
\end{align}
|
||||
|
||||
@@ -717,7 +716,7 @@
|
||||
|
||||
\subsection{Sims-Flanagan Transcription}
|
||||
|
||||
this thesis chose to use a model well suited for modeling low-thrust paths: the
|
||||
This thesis chose to use a model well suited for modeling low-thrust paths: the
|
||||
Sims-Flanagan transcription (SFT)\cite{sims1999preliminary}. The SFT allows for
|
||||
flexibility in the trade-off between fidelity and performance, which makes it very
|
||||
useful for this sort of preliminary analysis.
|
||||
@@ -829,10 +828,3 @@
|
||||
\caption{Graphic of an orbit-raising with a high efficiency cutoff}
|
||||
\label{high_efficiency_fig}
|
||||
\end{figure}
|
||||
|
||||
All of this is, of course, also true for impulsive trajectories. However, since the
|
||||
thrust presence for those trajectories are generally taken to be impulse functions, the
|
||||
control laws can afford to be much less complicated for a given mission goal, by simply
|
||||
thrusting only at the moment on the orbit when the transition will be most efficient.
|
||||
For a low-thrust mission, however, the control law must be continuous rather than
|
||||
discrete and therefore the control law inherently gains a lot of complexity.
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
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
|
||||
itself against. The optimal solution is then found by varying the inputs $x$ until the
|
||||
itself against. The optimal solution is then found by varying the inputs $\vec{x}$ until 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
|
||||
in the general case.
|
||||
@@ -48,7 +48,7 @@
|
||||
University. It uses a sparse sequential quadratic programming algorithm as its
|
||||
back-end optimization scheme.
|
||||
|
||||
Another common NLP optimization packages (and the one used in this implementation)
|
||||
Another common NLP optimization package (and the one used in this implementation)
|
||||
is the Interior Point Optimizer or IPOPT\cite{wachter2006implementation}. It uses
|
||||
an Interior Point Linesearch Filter Method and was developed as an open-source
|
||||
project by the organization COIN-OR under the Eclipse Public License.
|
||||
@@ -74,11 +74,6 @@
|
||||
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.
|
||||
|
||||
In this case, the IPOPT algorithm was used, not as an optimizer, but as a solver. For
|
||||
reasons that will be explained in the algorithm description in Section~\ref{algorithm} it
|
||||
was sufficient merely that the non-linear constraints were met, therefore optimization (in
|
||||
the particular step in which IPOPT was used) was unnecessary.
|
||||
|
||||
\subsubsection{Shooting Schemes for Solving a Two-Point Boundary Value Problem}
|
||||
|
||||
One straightforward approach to trajectory corrections is a single shooting
|
||||
@@ -154,8 +149,7 @@
|
||||
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
|
||||
variety of different points along the orbit. This is, however, not an exhaustive
|
||||
description of ways that multiple shooting can be used to optimize a trajectory,
|
||||
simply the most convenient for low-thrust arcs.
|
||||
description of ways that multiple shooting can be used to optimize a trajectory.
|
||||
|
||||
\section{Monotonic Basin Hopping Algorithms}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user