Skipped 1, but otherwise finished dynamics
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 137 KiB |
@@ -7,7 +7,7 @@
|
||||
viewBox="0 0 279.4 215.9"
|
||||
version="1.1"
|
||||
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"
|
||||
inkscape:export-filename="/home/connor/projects/thesis/LaTeX/fig/kepler.png"
|
||||
inkscape:export-xdpi="300"
|
||||
@@ -34,12 +34,12 @@
|
||||
inkscape:snap-grids="false"
|
||||
inkscape:snap-object-midpoints="false"
|
||||
inkscape:zoom="1.4361764"
|
||||
inkscape:cx="589.76042"
|
||||
inkscape:cx="589.41228"
|
||||
inkscape:cy="333.17634"
|
||||
inkscape:window-width="747"
|
||||
inkscape:window-height="1024"
|
||||
inkscape:window-x="1157"
|
||||
inkscape:window-y="40"
|
||||
inkscape:window-width="1912"
|
||||
inkscape:window-height="1040"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="32"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" />
|
||||
<defs
|
||||
@@ -537,5 +537,33 @@
|
||||
style="stroke-width:0.264583"
|
||||
x="54.715576"
|
||||
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>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 25 KiB |
@@ -81,7 +81,7 @@
|
||||
\ddot{\vec{r}} = - \frac{\mu}{r^2} \hat{r}
|
||||
\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
|
||||
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.
|
||||
\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
|
||||
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 product of $\pi$, the semi-major axis, and the semi-minor axis ($\pi
|
||||
a b$), we can relate (by Kepler's second law) the area swept out by an orbit as a
|
||||
function of time, as 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 equal to the ellipse's semi-major
|
||||
axis and center directly between the two foci, as in Figure~\ref{aux_circ}.
|
||||
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 product of $\pi$, the semi-major axis, and the semi-minor axis ($\pi a b$), we can
|
||||
relate (by Kepler's second law) the area swept out by an orbit as a function of time, as
|
||||
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
|
||||
equal to the ellipse's semi-major axis and center directly between the two foci, as in
|
||||
Figure~\ref{aux_circ}.
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
@@ -151,13 +150,15 @@
|
||||
\caption{Geometric Representation of Auxiliary Circle}\label{aux_circ}
|
||||
\end{figure}
|
||||
|
||||
In order to find the area swept by the spacecraft, $k$, we can take advantage of the fact
|
||||
that that area is the triangle $k_1$ subtracted from the elliptical segment $PCB$:
|
||||
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
|
||||
elliptical segment $PCB$:
|
||||
|
||||
\begin{equation}\label{areas_eq}
|
||||
k = area(seg_{PCB}) - area(k_1)
|
||||
\end{equation}
|
||||
|
||||
\noindent
|
||||
Where the area of the triangle $k_1$ can be found easily using geometric formulae:
|
||||
|
||||
\begin{align}
|
||||
@@ -165,8 +166,11 @@
|
||||
&= \frac{ab}{2} \left(e \sin E - \cos E \sin E \right)
|
||||
\end{align}
|
||||
|
||||
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
|
||||
\noindent
|
||||
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}$.
|
||||
|
||||
\begin{align}
|
||||
@@ -185,10 +189,10 @@
|
||||
\end{equation}
|
||||
|
||||
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}
|
||||
\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}
|
||||
|
||||
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 =
|
||||
\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
|
||||
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
|
||||
algorithm\cite{laguerre_conway}, which was presented in 1986 as a faster and more
|
||||
robust algorithm for directly solving Kepler's equation and has been in use in many
|
||||
applications since. This algorithm is known for its convergence robustness and also
|
||||
its speed of convergence when compared to higher order Newton methods.
|
||||
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
|
||||
Kepler's equation by Bruce Conway in 1985\cite{laguerre_conway}. In his paper, Conway
|
||||
makes a compelling argument for utilizing the less common LaGuerre method over higher
|
||||
order Newton or Newton-Raphson methods.
|
||||
|
||||
This thesis will omit a step-through of the algorithm itself, but psuedo-code for
|
||||
the algorithm will be discussed briefly in Section~\ref{conway_pseudocode}.
|
||||
The Newton-Raphson methods, while found to generally have quite impressive convergence
|
||||
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}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user