Skipped 1, but otherwise finished dynamics

This commit is contained in:
Connor Johnstone
2022-03-10 18:50:50 -07:00
parent 7474b19288
commit 7fcdb26ab7
3 changed files with 164 additions and 69 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 137 KiB

View File

@@ -7,7 +7,7 @@
viewBox="0 0 279.4 215.9" viewBox="0 0 279.4 215.9"
version="1.1" version="1.1"
id="svg5" id="svg5"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20, custom)" inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
sodipodi:docname="kepler.svg" sodipodi:docname="kepler.svg"
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/fig/kepler.png" inkscape:export-filename="/home/connor/projects/thesis/LaTeX/fig/kepler.png"
inkscape:export-xdpi="300" inkscape:export-xdpi="300"
@@ -34,12 +34,12 @@
inkscape:snap-grids="false" inkscape:snap-grids="false"
inkscape:snap-object-midpoints="false" inkscape:snap-object-midpoints="false"
inkscape:zoom="1.4361764" inkscape:zoom="1.4361764"
inkscape:cx="589.76042" inkscape:cx="589.41228"
inkscape:cy="333.17634" inkscape:cy="333.17634"
inkscape:window-width="747" inkscape:window-width="1912"
inkscape:window-height="1024" inkscape:window-height="1040"
inkscape:window-x="1157" inkscape:window-x="0"
inkscape:window-y="40" inkscape:window-y="32"
inkscape:window-maximized="1" inkscape:window-maximized="1"
inkscape:current-layer="layer1" /> inkscape:current-layer="layer1" />
<defs <defs
@@ -537,5 +537,33 @@
style="stroke-width:0.264583" style="stroke-width:0.264583"
x="54.715576" x="54.715576"
y="-221.37309">asin(E)</tspan></text> y="-221.37309">asin(E)</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#marker78240)"
d="m 97.49729,115.91916 c 0,0 6.08805,6.99782 16.02971,7.3682"
id="path990" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="121.56825"
y="171.21143"
id="text3194"
transform="rotate(-16.474023)"><tspan
sodipodi:role="line"
id="tspan3192"
style="font-size:4.23333px;stroke-width:0.264583"
x="121.56825"
y="171.21143">orbit path</tspan></text>
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:sans-serif;stroke-width:0.264583"
x="26.715567"
y="235.20645"
id="text7432"
transform="rotate(-48.488459)"><tspan
sodipodi:role="line"
style="font-size:4.23333px;stroke-width:0.264583"
x="26.715567"
y="235.20645"
id="tspan8368">aux circle</tspan></text>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

@@ -81,7 +81,7 @@
\ddot{\vec{r}} = - \frac{\mu}{r^2} \hat{r} \ddot{\vec{r}} = - \frac{\mu}{r^2} \hat{r}
\end{equation} \end{equation}
\subsubsection{Kepler's Laws and Equations} \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,
@@ -132,18 +132,17 @@
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{Analytical Solutions to Kepler's Equations} \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 orbiting body around a primary body as a function of time, which we'll derive now for
for the elliptical case\cite{vallado2001fundamentals}. Since the total area of an the elliptical case\cite{vallado2001fundamentals}. Since the total area of an ellipse is
ellipse is the product of $\pi$, the semi-major axis, and the semi-minor axis ($\pi the product of $\pi$, the semi-major axis, and the semi-minor axis ($\pi a b$), we can
a b$), we can relate (by Kepler's second law) the area swept out by an orbit as a relate (by Kepler's second law) the area swept out by an orbit as a function of time, as
function of time, as we did in Equation~\ref{swept}. we did in Equation~\ref{swept}. This leaves just one unknown variable $k$, which we can
determine through use of the geometric auxiliary circle, which is a circle with radius
This leaves just one unknown variable $k$, which we can determine through use of the equal to the ellipse's semi-major axis and center directly between the two foci, as in
geometric auxiliary circle, which is a circle with radius equal to the ellipse's semi-major Figure~\ref{aux_circ}.
axis and center directly between the two foci, as in Figure~\ref{aux_circ}.
\begin{figure}[H] \begin{figure}[H]
\centering \centering
@@ -151,13 +150,15 @@
\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, $k$, we can take advantage of the fact In order to find the area swept by the spacecraft\cite{vallado2001fundamentals}, $k$, we
that that area is the triangle $k_1$ subtracted from the elliptical segment $PCB$: can take advantage of the fact that that area is the triangle $k_1$ subtracted from the
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}
@@ -165,8 +166,11 @@
&= \frac{ab}{2} \left(e \sin E - \cos E \sin E \right) &= \frac{ab}{2} \left(e \sin E - \cos E \sin E \right)
\end{align} \end{align}
Now we can find the area for the elliptical segment $PCB$ by first finding the circular \noindent
segment $POB'$, subtracting the triangle $COB'$, then applying the fact that an ellipse is Where $E$, notably, is the eccentric anomaly, or the angular distance from the
periapsis to the vertical projection of the spacecraft on the auxiliary circle. Now we
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
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}
@@ -185,10 +189,10 @@
\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}): time (Equation~\ref{swept}) for period of time since the spacecraft left periapsis:
\begin{equation} \begin{equation}
\frac{\Delta t}{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:
@@ -200,18 +204,81 @@
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. algorithm for solving this equation in order to use this equation to propagate a
spacecraft.
\subsubsection{LaGuerre-Conway Algorithm}\label{laguerre} \subsection{LaGuerre-Conway Algorithm}\label{laguerre}
For this application, I used an algorithm known as the LaGuerre-Conway For this thesis, the algorithm used to solve Kepler's equation was the general numeric
algorithm\cite{laguerre_conway}, which was presented in 1986 as a faster and more root-finding scheme first developed by LaGuerre in the 1800s and first applied to
robust algorithm for directly solving Kepler's equation and has been in use in many Kepler's equation by Bruce Conway in 1985\cite{laguerre_conway}. In his paper, Conway
applications since. This algorithm is known for its convergence robustness and also makes a compelling argument for utilizing the less common LaGuerre method over higher
its speed of convergence when compared to higher order Newton methods. order Newton or Newton-Raphson methods.
This thesis will omit a step-through of the algorithm itself, but psuedo-code for The Newton-Raphson methods, while found to generally have quite impressive convergence
the algorithm will be discussed briefly in Section~\ref{conway_pseudocode}. rates (generally successfully solving Kepler's equation correctly within 5 iterations),
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:
\begin{equation}
g(x) = (x - x_1) (x - x_2) ... ( x - x_m)
\end{equation}
\noindent
We can then generate some useful convenience functions as:
\begin{align}
\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 -
x_m} = G_1(x)
\end{align}
and
\begin{align}
\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)
\end{align}
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:
\begin{equation}
x - x_i = b, i=2,3,...,m
\end{equation}
\noindent
We can then rewrite $G_1$ and $G_2$ as:
\begin{align}
G_1 &= \frac{1}{a} + \frac{n-1}{b} \\
G_2 &= \frac{1}{a^2} + \frac{n-1}{b^2}
\end{align}
\noindent
Which may be solved for $a$ in terms of $G_1$, $G_2$:
\begin{equation}
a = \frac{n}{G_1 \pm \sqrt{(n-1)(nG_2 - G_1^2)}}
\end{equation}
\noindent
With corresponding iteration function:
\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)
f''(x_i)}}
\end{equation}
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
Kepler's equation was shown to converge with similar speed to many of the best common
higher order Newton-Raphson solvers. However, LaGuerre's method was also found to be
incredibly robust, converging to the correct value for every one of Conway's 500,000
tests. Because of this robustness, it is very useful for propagating spacecraft states.
\section{Interplanetary Considerations}\label{interplanetary} \section{Interplanetary Considerations}\label{interplanetary}