Continuing section 5

This commit is contained in:
Connor Johnstone
2022-02-09 16:51:10 -07:00
parent bf198a6fe4
commit 661aa7d58a
2 changed files with 88 additions and 5 deletions

View File

@@ -602,12 +602,95 @@
The most basic building block of any trajectory is a physical model for simulating
natural trajectories from one point forward in time. The approach taken by this
paper uses the solution to Kepler's equation put forward by
Conway\cite{laguerre_conway} in 1986.
Conway\cite{laguerre_conway} in 1986 in order to provide simple and very
processor-efficient propagation without the use of integration. The code logic
itself is actually quite simple, providing an approach similar to the Newton-Raphson
approach for finding the roots of the Battin form of Kepler's equation.
The following pseudo-code outlines the approach taken for the elliptical case. The
approach is quite similar when $a<0$:
% TODO: Some symbols here aren't recognized by the font
\begin{singlespacing}
\begin{verbatim}
i = 0
# First declare some useful variables from the state
σ0 = (position ⋅ velocity) / √(μ)
a = 1 / ( 2/norm(position) - norm(velocity)^2/μ )
coeff = 1 - norm(position)/a
# This loop is essentially a second-order Newton solver for ΔE
ΔM = ΔE_new = √(μ/a^3) * time
ΔE = 1000
while abs(ΔE - ΔE_new) > 1e-10
ΔE = ΔE_new
F = ΔE - ΔM + σ0 / √(a) * (1-cos(ΔE)) - coeff * sin(ΔE)
dF = 1 + σ0 / √(a) * sin(ΔE) - coeff * cos(ΔE)
d2F = σ0 / √(a) * cos(ΔE) + coeff * sin(ΔE)
ΔE_new = ΔE - n*F / ( dF + sign(dF) * √(abs((n-1)^2*dF^2 - n*(n-1)*F*d2F )))
i += 1
end
# ΔE can then be used to determine the F/Ft and G/Gt coefficients
F = 1 - a/norm(position) * (1-cos(ΔE))
G = a * σ0/ √(μ) * (1-cos(ΔE)) + norm(position) * √(a) / √(μ) * sin(ΔE)
r = a + (norm(position) - a) * cos(ΔE) + σ0 * √(a) * sin(ΔE)
Ft = -√(a)*√(μ) / (r*norm(position)) * sin(ΔE)
Gt = 1 - a/r * (1-cos(ΔE))
# Which provide transformations from the original position and velocity to the
# final
final_position = F*position + G*velocity
final_velocity = Ft*position + Gt*velocity
\end{verbatim}
\end{singlespacing}
This approach was validated by generating known good orbits in the 2 Body Problem.
For example, from the orbital parameters of a certain state, the orbital period can
be determined. If the system is then propagated for an integer multiple of the orbit
period, the state should remain exactly the same as it began. In
Figure~\ref{laguerre_plot} an example of such an orbit is provided.
\begin{figure}
\centering
\includegraphics[width=\textwidth]{fig/kepler}
\caption{Example of a natural trajectory propagated via the Laguerre-Conway
approach to solving Kepler's Problem}
\label{laguerre_plot}
\end{figure}
% TODO: Generate an orbit figure for here
% TODO: Consider adding a paragraph about the improvements in processor time
\subsection{Sims-Flanagan Propagator}
Discuss how this algorithm can then be expanded by using SFT to propagate any number of
low-thrust steps over a specific arc. Mention validation. Here I can also mention the ``Sc''
object and talk about how those parameters were chosen and effected the propagator.
Until this point, we've not yet discussed how best to model the low-thrust
trajectory arcs themselves. The Laguerre-Conway algorithm efficiently determines
natural trajectories given an initial state, but it still remains, given a control
law, that we'd like to determine the trajectory of a system with continuous input
thrust.
For this, we leverage the Sims-Flanagan transcription mentioned earlier. This allows
us to break a single phase into a number of ($n$) different arcs. At the center of
each of these arcs we can place a small impulsive burn, scaled appropriately for the
thruster configured on the spacecraft of interest. Therefore, for any given phase,
we actually split the trajectory into $2n$ sub-trajectories, with $n$ scaled
impulsive thrust events. As $n$ is increased, the trajectory becomes increasingly
accurate as a model of low-thrust propulsion in the 2BP. This allows the mission
designer to trade-off speed of propagation and the fidelity of the results quite
effectively.
\begin{figure}
\centering
\includegraphics[width=\textwidth]{fig/kepler}
\caption{An example trajectory showing that classic continuous-thrust orbit
shapes, such as this orbit spiral, are easily achievable using a Sims-Flanagan
model}
\label{sft_plot}
\end{figure}
% TODO: Generate an orbit figure for here
Figure~\ref{sft_plot} shows that the Sims-Flanagan transcription model can be used
to effectively model these types of orbit trajectories.
\subsection{Non-Linear Problem Solver}
Mention the package being used to solve NLPs and how it works, highlighting the trust region

View File

@@ -22,7 +22,7 @@ thesis_pdf/:
mkdir $@
$(THESIS_PDF): $(THESIS) LaTeX/thesis.bib
mkdir temp
mkdir -p temp
cp -r LaTeX/fig .
cp -r LaTeX/flowcharts .
cp -r LaTeX/thesis.tex .