Class ParameterDynamics

Inheritance Relationships

Base Type

Class Documentation

class ParameterDynamics : public lupnt::Dynamics

Class for parameter dynamics.

This class provides methods for propagating parameter states, which are assumed to be constant.

Public Functions

ParameterDynamics() = default
inline ParameterDynamics(Config &config)
inline virtual State Propagate(const State &x0, Real t0, Real tf, const State *u = nullptr) override

Propagate the state from t0 to tf without computing a state transition matrix.

This is the core propagation entry point implemented by every concrete dynamics class (e.g. NumericalDynamics::Propagate, AnalyticalDynamics::Propagate, ClockDynamics::Propagate). It is called once per integration/measurement step by simulation drivers in applications/ and by agents/ to advance an object’s true or estimated state.

Parameters:
  • x0 – Initial state at time t0 (layout/units defined by the subclass).

  • t0 – Initial epoch [s, TDB since J2000 for orbit/attitude dynamics].

  • tf – Final epoch [s, TDB since J2000 for orbit/attitude dynamics].

  • u – Optional control/forcing input (e.g. thrust, RTN reference state); nullptr if unused.

Returns:

Propagated state at time tf.

inline virtual State Propagate(const State &x0, Real t0, Real tf, const State *u, MatXd *stm) override

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-STM Propagate overload; otherwise wraps Propagate(x0, t0, tf, u) in an autodiff Jacobian (jacobian(...)) with respect to x0. 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.

inline virtual StateType GetStateType() const override

Return the StateType tag of the state vector this dynamics model operates on (e.g. Cart6::TYPE, Attitude::TYPE, ClockState3::TYPE).

Used by state-converters and asset wiring code to verify that a dynamics object is paired with a compatible state representation.