@@ -5,9 +5,264 @@ This attitude guidance module computes the orbital Hill reference frame states.
5
5
6
6
The orbit can be any type of Keplerian motion, including circular, elliptical or hyperbolic.
7
7
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}{\b oldsymbol{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}{\b oldsymbol{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`.
11
266
12
267
Message Connection Descriptions
13
268
-------------------------------
0 commit comments