Class FixedAttitudeDynamics¶
Defined in File attitude_dynamics.h
Inheritance Relationships¶
Base Type¶
public lupnt::AttitudeDynamics(Class AttitudeDynamics)
Class Documentation¶
-
class FixedAttitudeDynamics : public lupnt::AttitudeDynamics¶
Attitude dynamics that holds the attitude state constant (no rotation).
Used as a placeholder/default attitude model for objects whose orientation is not tracked or is irrelevant to the simulation (e.g. point-mass agents).
Public Functions
-
FixedAttitudeDynamics() = default¶
-
FixedAttitudeDynamics(Config &config)¶
Construct from a YAML configuration node (forwards to
AttitudeDynamics(config)).
-
virtual State Propagate(const State &qw, Real t0, Real tf, const State *u = nullptr) override¶
Return the attitude state unchanged (
xf = x0).
-
inline virtual StateType GetStateType() const override¶
Return
Attitude::TYPE.
-
virtual State Propagate(const State &qw, Real t0, Real tf, const State &rv)¶
Propagate the attitude state, given the object’s translational state.
Default implementation ignores
rvand forwards toPropagate(qw, t0, tf, nullptr); pointing-dependent subclasses (e.g. FixedPointingDynamics) override this to compute the attitude fromrv.- Parameters:
qw – Initial attitude state (
Attitude: quaternion + angular velocity) at timet0.t0 – Initial epoch [s, TDB since J2000].
tf – Final epoch [s, TDB since J2000].
rv – Object’s Cartesian position/velocity state (
Cart6), used by pointing laws that depend on the object’s location (e.g. nadir, sun, or target pointing).
- Returns:
Propagated attitude state at time
tf.
-
virtual State Propagate(const State &x0, Real t0, Real tf, const State *u, MatXd *stm)¶
Propagate the state and compute the state transition matrix (STM) d(xf)/d(x0) via automatic differentiation.
Default implementation: if
stm == nullptr, forwards to the no-STMPropagateoverload; otherwise wrapsPropagate(x0, t0, tf, u)in an autodiff Jacobian (jacobian(...)) with respect tox0. Used by filters (filters/) that need the linearized state transition for covariance propagation (e.g. EKF/UKF time updates).- Parameters:
x0 – Initial state at time
t0.t0 – Initial epoch [s, TDB since J2000].
tf – Final epoch [s, TDB since J2000].
u – Optional control/forcing input; nullptr if unused.
stm – Output: state transition matrix d(xf)/d(x0); left unmodified if nullptr.
- Returns:
Propagated state at time
tf.
-
virtual MatX Propagate(const State &x0, const VecX &tfs, const State *u = nullptr)¶
Propagate the state to a sequence of output epochs.
Repeatedly calls
Propagate(x0, t0, tf, u)between consecutive entries oftfs, accumulating each result as a row of the returned matrix. Used by applications/ and analysis scripts to generate a full trajectory time history in one call, with optional progress-bar output (see SetPrintProgress).- Parameters:
x0 – Initial state at
tfs(0).tfs – Vector of output epochs [s, TDB since J2000], including the initial epoch as
tfs(0).u – Optional control/forcing input applied at every step; nullptr if unused.
- Returns:
Matrix whose i-th row is the propagated state at
tfs(i).
-
FixedAttitudeDynamics() = default¶