Skip to content

Commit 54e89c9

Browse files
author
Cody Allard
committed
Update rst file
1 parent 48bcd75 commit 54e89c9

File tree

1 file changed

+258
-3
lines changed

1 file changed

+258
-3
lines changed

src/fswAlgorithms/attGuidance/hillPointCpp/hillPointCpp.rst

+258-3
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,264 @@ This attitude guidance module computes the orbital Hill reference frame states.
55

66
The orbit can be any type of Keplerian motion, including circular, elliptical or hyperbolic.
77
The module
8-
:download:`PDF Description </../../src/fswAlgorithms/attGuidance/hillPoint/_Documentation/hillPoint.pdf>`
9-
contains further information on this module's function,
10-
how to run it, as well as testing.
8+
Module Input and Output
9+
=======================
10+
11+
Table `1 <#tab:inputNavTable>`__ shows the input message from the
12+
navigation system.
13+
14+
.. container::
15+
:name: tab:inputNavTable
16+
17+
.. table:: Input Navigation Message
18+
19+
+------------------+-----------+--------+----------------------+
20+
| Name | Type | Length | Description |
21+
+==================+===========+========+======================+
22+
| :math:`\boldsymbol{R}_S` | double [] | 3 | Position vector of |
23+
| | | | the spacecraft |
24+
| | | | body-point with |
25+
| | | | respect to the |
26+
| | | | inertial frame in |
27+
| | | | inertial frame |
28+
| | | | components |
29+
| | | | (:math:`\leftexp |
30+
| | | | p{N}{\boldsymbol{r}}_{B/N}`) |
31+
| | | | . |
32+
+------------------+-----------+--------+----------------------+
33+
| :math:`\boldsymbol{v}_S` | double [] | 3 | Velocity vector of |
34+
| | | | the spacecraft point |
35+
| | | | with respect to the |
36+
| | | | inertial frame in |
37+
| | | | inertial frame |
38+
| | | | components |
39+
| | | | (:math:`\leftexp |
40+
| | | | {N}{\boldsymbol{v}}_{B/N}`). |
41+
+------------------+-----------+--------+----------------------+
42+
43+
Table `2 <#tab:inputCelTable>`__ shows the input message from Spice
44+
about the main celestial body.
45+
46+
.. container::
47+
:name: tab:inputCelTable
48+
49+
.. table:: Input Spice Planet Message
50+
51+
+--------------------------+-----------+--------+----------------------+
52+
| Name | Type | Length | Description |
53+
+==========================+===========+========+======================+
54+
| :math:`\boldsymbol{R}_P` | double [] | 3 | Position vector of |
55+
| | | | the main celestial |
56+
| | | | object with respect |
57+
| | | | to the inertial |
58+
| | | | frame in inertial |
59+
| | | | frame components . |
60+
+--------------------------+-----------+--------+----------------------+
61+
| :math:`\boldsymbol{v}_P` | double [] | 3 | Velocity vector of |
62+
| | | | the main celestial |
63+
| | | | object with respect |
64+
| | | | to the inertial |
65+
| | | | frame in inertial |
66+
| | | | frame components . |
67+
+--------------------------+-----------+--------+----------------------+
68+
69+
Table `3 <#tab:outputTable>`__ shows the Attitude Reference output
70+
message of the module Hill Point.
71+
72+
.. container::
73+
:name: tab:outputTable
74+
75+
.. table:: Output Attitude Reference Message
76+
77+
+----------------------+-----------+--------+----------------------+
78+
| Name | Type | Length | Description |
79+
+======================+===========+========+======================+
80+
| :math:`\sigma_{R/N}` | double [] | 3 | MRP attitude set of |
81+
| | | | the reference frame |
82+
| | | | with respect to the |
83+
| | | | reference. |
84+
+----------------------+-----------+--------+----------------------+
85+
| :math:`\omega_{R/N}` | double [] | 3 | Angular rate vector |
86+
| | | | of the reference |
87+
| | | | frame with respect |
88+
| | | | to the inertial |
89+
| | | | expressed in |
90+
| | | | inertial frame |
91+
| | | | components. |
92+
+----------------------+-----------+--------+----------------------+
93+
| :math:`\dot{\omega}_{R/N}}` | double [] | 3 | Angular acceleration |
94+
| | | | vector of the |
95+
| | | | reference frame with |
96+
| | | | respect to the |
97+
| | | | inertial expressed |
98+
| | | | in inertial frame |
99+
| | | | components. |
100+
+-----------------------------+-----------+--------+----------------------+
101+
102+
Hill Frame Definition
103+
=====================
104+
105+
The Hill reference frame takes the spacecraft’s orbital plane as the
106+
principal one and has origin in the centre of the spacecraft. It is
107+
defined by the right-handed set of axes
108+
:math:`\mathcal{H}:\{ \hat{\boldsymbol\imath}_{r}, \hat{\boldsymbol\imath}_{\theta}, \hat{\boldsymbol\imath}_{h} \}`,
109+
where
110+
111+
:math:`\hat {\boldsymbol\imath}_{r}` points radially outward in the direction
112+
that connects the center of the planet with the spacecraft.
113+
114+
:math:`\hat {\boldsymbol\imath}_{h}` is defined normal to the orbital plane in
115+
the direction of the angular momentum.
116+
117+
:math:`\hat {\boldsymbol\imath}_{\theta}` completes the right-handed triode.
118+
119+
.. figure:: Figures/Fig2
120+
name: fig:Fig1
121+
122+
Illustration of the Hill orbit frame
123+
:math:`\mathcal{H}:\{ \hat{\boldsymbol\imath}_{r}, \hat{\boldsymbol\imath}_{\theta}, \hat{\boldsymbol\imath}_{h} \}`,
124+
and the inertial frame
125+
:math:`\mathcal{N}:\{ \hat{\boldsymbol n}_{1}, \hat{\boldsymbol n}_{2}, \hat{\boldsymbol n}_{3} \}`.
126+
127+
Introduction
128+
============
129+
130+
In this module, the output reference frame :math:`\mathcal{R}` is to be
131+
aligned with the Hill reference frame :math:`\mathcal{H}`. Note that the
132+
presented technique does not require the planet-fixed frame to coincide
133+
with the inertial frame
134+
:math:`\mathcal{N}:\{ \hat{\boldsymbol n}_{1}, \hat{\boldsymbol n}_{2}, \hat{\boldsymbol n}_{3} \}`.
135+
Figure 1 illustrates the general situation in which :math:`\boldsymbol{R}_{s}`
136+
is the position vector of the spacecraft with respect to the inertial
137+
frame and :math:`\boldsymbol{R_{p}}` is the position vector of the celestial
138+
body with respect to the inertial frame as well. The relative position
139+
of the spacecraft with respect to the planet is obtained by simple
140+
subtraction:
141+
142+
.. math::
143+
144+
\label{eq:r}
145+
\boldsymbol r = \boldsymbol R_{s} - \boldsymbol R_{p}
146+
147+
The same methodology is applied to compute the relative velocity vector:
148+
149+
.. math::
150+
151+
\label{eq:v}
152+
\boldsymbol v = \boldsymbol v_{s} - \boldsymbol v_{p}
153+
154+
Note that the position and velocity vectors of the spacecraft and the
155+
celestial body, :math:`\boldsymbol{R}_S`, :math:`\boldsymbol{R}_P`, :math:`\boldsymbol{v}_S` and
156+
:math:`\boldsymbol{v}_P` are the only inputs that this module requires. Having
157+
:math:`\boldsymbol r` and :math:`\boldsymbol v`, the Hill frame orientation is
158+
completely defined:
159+
160+
.. math::
161+
162+
\begin{equation}
163+
\hat{\boldsymbol\imath}_{r} = \frac{\boldsymbol r}{r}
164+
\end{equation}
165+
\begin{equation}
166+
\hat{\boldsymbol\imath}_{h} = \frac{\boldsymbol{r}\times{\boldsymbol{v}}}{r v}
167+
\end{equation}
168+
\begin{equation}
169+
\hat{\boldsymbol\imath}_{\theta} = \hat{\boldsymbol\imath}_{h} \times \hat{\boldsymbol\imath}_{r}
170+
\end{equation}
171+
172+
And the Direction Cosine Matrix to map from the reference frame to the
173+
inertial is obtained:
174+
175+
.. math::
176+
177+
= \begin{bmatrix}
178+
\hat{\boldsymbol\imath}_{r} \\
179+
\hat{\boldsymbol\imath}_{\theta} \\
180+
\hat{\boldsymbol\imath}_{h}
181+
\end{bmatrix}
182+
183+
The corresponding MRP attitude set is computed using the following
184+
function from the Rigid Body Kinematics library of Reference :
185+
186+
.. math:: [RN] = \textrm{C2MRP}(\boldsymbol\sigma_{R/N})
187+
188+
Angular Velocity Descriptions
189+
=============================
190+
191+
Let :math:`\mathcal{R}_{0}` reference the Hill orbit frame. The orbit
192+
frame angular rate and acceleration vectors are given by
193+
194+
.. math::
195+
196+
\label{eq:omega_R0}
197+
\boldsymbol\omega_{R_{0}/N} = \dot f \hat{\boldsymbol\imath}_{h}
198+
199+
.. math::
200+
201+
\label{eq:domega_R0}
202+
\dot{\boldsymbol\omega}_{R_{0}/N} = \ddot f \hat{\boldsymbol\imath}_{h}
203+
204+
where :math:`f` is the true anomaly, whose variation is determined
205+
through the general standard astrodynamics relations:
206+
207+
.. math::
208+
209+
\begin{aligned}
210+
\dot f &= \frac{h}{r^{2}}
211+
\\
212+
\ddot f &= - 2 \frac{\boldsymbol v \cdot \hat{\boldsymbol\imath}_{r}}{r} \dot f
213+
\end{aligned}
214+
215+
The angular rate :math:`\boldsymbol\omega_{R/N}` and acceleration
216+
:math:`\dot{\boldsymbol\omega}_{R/N}` of the output reference frame
217+
:math:`\mathcal{R}` still need to be computed. Since the desired
218+
attitude is a fixed-pointing one, :math:`\mathcal{R}` does not move
219+
relative to :math:`\mathcal{R}_{0}`. Thus, the angular velocity of the
220+
reference frame happens to be
221+
222+
.. math::
223+
224+
\label{eq:omega_R}
225+
\boldsymbol\omega_{R/N} = \boldsymbol\omega_{R/R_{0}} + \boldsymbol\omega_{R_{0}/N} = \dot{f} \hat{\boldsymbol\imath}_{h}
226+
227+
Again, given that :math:`\hat{\boldsymbol\imath}_{h}` is fixed as seen by the
228+
reference frame :math:`R`, the acceleration vector of the reference
229+
frame expressed in the reference frame simply becomes:
230+
231+
.. math::
232+
233+
\label{eq:domega_R}
234+
\dot\omega_{R/N} = \ddot{f} \hat{\boldsymbol\imath}_{h}
235+
236+
Both :math:`\boldsymbol\omega_{R/N}` and :math:`\dot\omega_{R/N}` need to be
237+
expressed in the inertial frame :math:`N`. Given
238+
239+
.. math::
240+
241+
\begin{equation}
242+
\leftexp{R}{\boldsymbol \omega_{R/N} } =
243+
\begin{bmatrix}
244+
0\\ 0 \\ \dot{f}
245+
\end{bmatrix}
246+
\end{equation}
247+
\begin{equation}
248+
\leftexp{R}{\boldsymbol\dot{\omega}_{R/N} } =
249+
\begin{bmatrix}
250+
0\\ 0 \\ \ddot{f}
251+
\end{bmatrix}
252+
\end{equation}
253+
254+
Then,
255+
256+
.. math::
257+
258+
\begin{equation}
259+
\leftexp{N} {\boldsymbol{\omega}_{R/N}} = [NR] \textrm{ } \leftexp{R} {\boldsymbol\omega_{R/N} }
260+
\end{equation}
261+
\begin{equation}
262+
\leftexp{N} {\boldsymbol\dot{\omega}_{R/N} }=[NR] \textrm{ } \leftexp{R} {\boldsymbol\dot{\omega}_{R/N}}
263+
\end{equation}
264+
265+
Where :math:`[NR] = [RN]^T`.
11266

12267
Message Connection Descriptions
13268
-------------------------------

0 commit comments

Comments
 (0)