Class JointState

Class Documentation

class JointState

Concatenation of multiple State/Dynamics/ParamState triples (e.g. one per agent or per orbit+clock sub-state) into a single combined state vector, dynamics function, and process-noise function for use by a Filter (EKF/UKF/batch least squares).

Built up incrementally via Add() (one call per sub-state), then queried via GetStmState/GetDynamicsFunction/GetProcessNoiseFunction to obtain the propagation function and initial state/STM the filter integrates each step. Per-parameter EstType (ESTIMATED / CONSIDERED / FIXED) and first-order Gauss-Markov time constants (tauq) control which parameters appear in the filter’s state-transition matrix and how their process noise evolves.

Public Functions

inline int GetSize() const
inline int GetStateSize() const
inline int GetParamSize() const
inline int GetStmSize() const
inline int GetEstimatedParamSize() const
inline int GetConsideredParamSize() const
inline int GetFixedParamSize() const
State GetState() const
State GetStmState() const
ParamState GetParams() const
void Add(const State &state, Ptr<Dynamics> &&dynamics, Ptr<ProcessNoiseFunction> &&proc_noise = nullptr, const ParamState &param = ParamState(0), std::vector<EstType> est_types = {}, std::vector<std::pair<double, double>> tauq = {})

Add a new state to the joint state.

Parameters:
  • state – The state to add

  • dynamics – The dynamics associated with the state

  • proc_noise – The process noise function associated with the state

  • param – The parameters associated with the state

  • est_types – The estimation types for the parameters

  • tauq – The time constants and sigmas for the parameters (first-order Gauss-Markov)

FilterDynamicsFunction GetDynamicsFunction()
ProcessNoiseFunction GetProcessNoiseFunction()
MatXd GetProcessNoiseMappingMatrix()