Source code for ADCS.estimators.attitude_estimators.attitude_AugmentedMEKF

r"""Multiplicative EKF with joint bias and disturbance-parameter estimation.

.. container:: ekf-step ekf-step-input

   **1. Construct the augmented tangent-state estimate**

   Validate the physical state and append bias and disturbance-parameter
   blocks while retaining the three-coordinate right-attitude error.

.. container:: ekf-step ekf-step-predict

   **2. Propagate the augmented nominal state**

   Synchronize the nominal augmented parameters into ``EstimatedSatellite``
   and propagate the nonlinear spacecraft model.

.. container:: ekf-step ekf-step-linearize

   **3. Linearize the augmented process model**

   Construct the tangent error dynamics and discretize physical, bias, and
   disturbance-parameter process noise.

.. container:: ekf-step ekf-step-covariance

   **4. Predict the tangent covariance**

   Apply the linear covariance recursion in the right-error coordinates.

.. container:: ekf-step ekf-step-measurement

   **5. Predict measurements and form the innovation**

   Use the shared measurement stack and its bias-aware residual definitions.

.. container:: ekf-step ekf-step-jacobian

   **6. Form the augmented measurement Jacobian**

   Include physical-state, sensor-bias, and disturbance-parameter sensitivities.

.. container:: ekf-step ekf-step-update

   **7. Apply the Kalman correction**

   Correct the physical state and every enabled augmented parameter block.

.. container:: ekf-step ekf-step-reset

   **8. Retract the attitude and reset the tangent covariance**

   Apply the multiplicative quaternion retraction and transport the covariance
   about the new tangent origin.
"""

from __future__ import annotations

from .attitude_MEKF import MEKF


__all__ = ["AugmentedMEKF"]


[docs] class AugmentedMEKF(MEKF): """MEKF for the full :class:`~ADCS.state.EstimatorState` layout. The state may contain actuator biases, attitude-sensor biases, and estimated disturbance parameters in addition to angular velocity, attitude, and reaction-wheel momentum. Their dynamics and measurement couplings are supplied by ``EstimatedSatellite`` and the shared process model/measurement stack; the covariance remains in right tangent coordinates, just as for :class:`MEKF`. """ supports_augmented_parameters = True