DynamicModelCompensation#

class DynamicModelCompensation(continuous_time_covariance: CovarianceMatrix, state_definition=None, sequence_definition=None, beta: ndarray | None = None)#

Bases: ProcessNoise

Dynamic Model Compensation (DMC) process noise model.

An alternative to SNC that models process noise through direct augmentation of the state vector with stochastic parameters representing unmodeled accelerations or forces, allowing their estimation alongside the spacecraft state.

Augmented state and dynamics

DMC augments the state vector with a stochastic acceleration vector \(\mathbf{w} \in \mathbb{R}^3\):

\[\mathbf{x}^T = [\,\mathbf{r}^T \quad \mathbf{v}^T \quad \mathbf{w}^T\,]\]

The stochastic acceleration obeys a first-order Gauss-Markov (exponentially correlated) process:

\[\dot{\mathbf{w}} = -\mathbf{B}\,\mathbf{w} + \mathbf{v}(t)\]

where \(\mathbf{B} = \mathrm{diag}(\beta_x, \beta_y, \beta_z)\) contains the inverse correlation times (decay rates), and \(\mathbf{v}(t)\) is zero-mean white noise with continuous-time PSD \(\mathbf{Q}\) (3×3).

Exact discretization (gamma matrix)

The mapping from the white-noise input \(\mathbf{v}(t)\) to the state perturbation over a step \(\Delta t\) is given by the exact analytic gamma matrix \(\mathbf{\Gamma}_k\) (9×3):

\[\mathbf{\Gamma}_r = \frac{\Delta t^2}{2}\,\mathbf{B}^{-1} - \Delta t\,\mathbf{B}^{-2} + \mathbf{B}^{-3}\Bigl(\mathbf{I} - e^{-\mathbf{B}\Delta t}\Bigr)\]
\[\mathbf{\Gamma}_v = \Delta t\,\mathbf{B}^{-1} - \mathbf{B}^{-2}\Bigl(\mathbf{I} - e^{-\mathbf{B}\Delta t}\Bigr)\]
\[\mathbf{\Gamma}_w = \mathbf{B}^{-1}\Bigl(\mathbf{I} - e^{-\mathbf{B}\Delta t}\Bigr)\]

All matrices are diagonal because \(\mathbf{B}\) is diagonal, so every block is computed element-wise. The full discrete-time process noise covariance is:

\[\mathbf{Q}_k = \mathbf{\Gamma}_k\,\mathbf{Q}\,\mathbf{\Gamma}_k^T\]

Covariance propagation

The propagated covariance is augmented identically to SNC:

\[\bar{\mathbf{P}}_{k+1} = \mathbf{\Phi}_{k+1,k}\,\mathbf{P}_k\,\mathbf{\Phi}_{k+1,k}^T + \mathbf{Q}_k\]

where \(\mathbf{\Phi}_{k+1,k}\) is now the STM of the augmented \([\mathbf{r}, \mathbf{v}, \mathbf{w}]\) system, including the exponential decay \(e^{-\mathbf{B}\Delta t}\) in the \(\mathbf{w}\) partition.

Comparison with SNC

Unlike SNC, which treats the unmodeled acceleration as a purely random impulse reset at each epoch, DMC retains memory of the stochastic acceleration across epochs via the exponential decay \(e^{-\mathbf{B}\Delta t}\). As \(\beta \to \infty\) (very short correlation time) DMC approaches SNC; as \(\beta \to 0\) (long correlation time) the stochastic acceleration becomes nearly constant and is effectively solved for as a deterministic parameter.

Parameters:
  • continuous_time_covariance (CovarianceMatrix) – The continuous-time process noise covariance matrix.

  • state_definition (optional) – State vector definition. Defaults to None.

  • sequence_definition (optional) – Sequence definition for multi-leg trajectories. Defaults to None.

  • beta (np.ndarray) – Time-constant vector (inverse correlation times) for the Gauss-Markov process. Can be a scalar (isotropic) or a 3-element vector for x, y, z components.

Notes

As \(\beta \to \infty\) (very short correlation time) DMC approaches SNC; as \(\beta \to 0\) (long correlation time) the stochastic acceleration becomes nearly constant and is effectively estimated as a deterministic parameter.

See also

scarabaeus.StateNoiseCompensation

Simpler piecewise-constant SNC variant.

scarabaeus.ProcessNoise

Abstract base class.

scarabaeus.ProcessNoiseSettings

Configuration object consumed by the filter.

References

Tapley, B. D., Schutz, B. E., & Born, G. H. (2004). Statistical Orbit Determination. Elsevier Academic Press. ISBN 978-0-12-683630-1.

Attributes:
frame

The reference frame of the process noise covariance.

Methods

transform_from_rtn(Q)

Rotate the process noise covariance from RTN frame to the inertial frame.