ADCS.CONOPS.goals.goal module¶
- class ADCS.CONOPS.goals.goal.Goal[source]¶
Bases:
objectBase class for guidance and pointing goals.
This class defines the abstract interface for all guidance and pointing objectives in the ADCS framework. A goal represents a mapping from the current orbital state to a reference definition used by downstream guidance and control laws.
Mathematically, a goal defines a function
\[G : \mathcal{O} \rightarrow \left( \mathbf{r}_{\mathrm{ref}}, \boldsymbol{\omega}_{\mathrm{ref}} \right)\]where \(\mathcal{O}\) denotes the orbital state space, \(\mathbf{r}_{\mathrm{ref}} \in \mathbb{R}^3\) is an inertial reference direction, and \(\boldsymbol{\omega}_{\mathrm{ref}} \in \mathbb{R}^3\) is the reference angular velocity expressed in the same inertial frame.
This base class provides no concrete guidance logic. All subclasses must override the reference generation and error computation methods.
See also
ECI_Goal,Coordinate_Goal,GoalList- error(q, body_boresight, os0)[source]¶
Compute the pointing or attitude error associated with the goal.
This method computes an error quantity suitable for use by a guidance or control law. In general, the error is a function of
the current attitude representation \(\mathbf{q}\)
the spacecraft body-frame boresight vector
the current orbital state
A typical error definition may take the form
\[\mathbf{e} = f\!\left( \mathbf{q}, \mathbf{b}, \mathcal{O}(t) \right)\]where \(\mathbf{b}\) denotes the body-frame boresight vector.
This base method is abstract and must be overridden by all subclasses.
- Parameters:
q (numpy.ndarray) – Current spacecraft attitude representation.
body_boresight (numpy.ndarray) – Boresight direction expressed in the spacecraft body frame.
os0 (Orbital_State) – Current orbital state.
- Returns:
Goal-specific error vector.
- Return type:
numpy.ndarray
- to_ref(os0)[source]¶
Generate inertial reference vectors from the current orbital state.
This method defines the primary mapping implemented by a goal. Given the current orbital state \(\mathcal{O}(t)\), it returns a reference direction and reference angular velocity:
\[\left( \mathbf{r}_{\mathrm{ref}}, \boldsymbol{\omega}_{\mathrm{ref}} \right) = G\!\left( \mathcal{O}(t) \right)\]The exact physical interpretation of these quantities depends on the specific subclass implementation.
This base method is abstract and must be overridden.
- Parameters:
os0 (Orbital_State) – Current orbital state.
- Returns:
Inertial reference direction and reference angular velocity.
- Return type:
Tuple[numpy.ndarray, numpy.ndarray]