ADCS.CONOPS.goals.vector_goals.perpbfield_goal module¶
- class ADCS.CONOPS.goals.vector_goals.perpbfield_goal.PerpBField_Goal(boresight_name=None)[source]¶
Bases:
Vector_GoalPerpendicular-to-B-field vector goal.
This goal commands alignment with a direction perpendicular to the local geomagnetic field in the inertial frame. A common choice is to form a perpendicular direction using the cross product with the velocity direction:
\[\hat{\mathbf{B}} = \frac{\mathbf{B}_{ECI}}{\|\mathbf{B}_{ECI}\|}, \qquad \hat{\mathbf{v}} = \frac{\mathbf{v}}{\|\mathbf{v}\|}, \qquad \mathbf{r}_{goal} = \frac{\hat{\mathbf{B}} \times \hat{\mathbf{v}}} {\|\hat{\mathbf{B}} \times \hat{\mathbf{v}}\|}.\]This direction is often useful for magnetorquer-only control since magnetic torque authority satisfies \(\boldsymbol{\tau} = \mathbf{m}\times\mathbf{B}\) and is maximized for commands perpendicular to \(\mathbf{B}\).
A practical feed-forward reference angular velocity may be approximated using the dominant orbital angular rate:
\[\boldsymbol{\omega}_{ref} \approx \frac{\mathbf{r}\times\mathbf{v}}{\|\mathbf{r}\|^2}.\]- Parameters:
boresight_name (str | None)
- to_ref(os0)[source]¶
Generate a reference inertial direction and angular velocity.
Subclasses must implement this method to compute a desired inertial reference vector
\[\mathbf{v}_{\mathrm{ref}} \in \mathbb{R}^3\]based on the current orbital state. The returned vector is expected to be nonzero and will typically be normalized by the downstream error computation.
- Parameters:
os0 (Orbital_State) – Current orbital state.
- Returns:
Reference inertial direction and reference angular velocity.
- Return type:
Tuple[numpy.ndarray, numpy.ndarray]