diff --git a/LaTeX/approach.tex b/LaTeX/approach.tex index 178ac86..f29b0b0 100644 --- a/LaTeX/approach.tex +++ b/LaTeX/approach.tex @@ -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 diff --git a/LaTeX/fig/EMJS_thrust_components.png b/LaTeX/fig/EMJS_thrust_components.png index 0fd0a94..b4868f1 100644 Binary files a/LaTeX/fig/EMJS_thrust_components.png and b/LaTeX/fig/EMJS_thrust_components.png differ diff --git a/LaTeX/fig/EMS_thrust_components.png b/LaTeX/fig/EMS_thrust_components.png index 6ee1c71..07c0920 100644 Binary files a/LaTeX/fig/EMS_thrust_components.png and b/LaTeX/fig/EMS_thrust_components.png differ diff --git a/LaTeX/results.tex b/LaTeX/results.tex index c611df3..d2b8ec8 100644 --- a/LaTeX/results.tex +++ b/LaTeX/results.tex @@ -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 diff --git a/LaTeX/trajectory_design.tex b/LaTeX/trajectory_design.tex index d82a9f4..3c416bb 100644 --- a/LaTeX/trajectory_design.tex +++ b/LaTeX/trajectory_design.tex @@ -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. diff --git a/LaTeX/trajectory_optimization.tex b/LaTeX/trajectory_optimization.tex index 7d016ec..a3e403f 100644 --- a/LaTeX/trajectory_optimization.tex +++ b/LaTeX/trajectory_optimization.tex @@ -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}