Class UnscentedKalmanEstimator

java.lang.Object
org.orekit.estimation.sequential.AbstractKalmanEstimator
org.orekit.estimation.sequential.UnscentedKalmanEstimator
All Implemented Interfaces:
ParameterEstimator

public class UnscentedKalmanEstimator extends AbstractKalmanEstimator
Implementation of an Unscented Kalman filter to perform orbit determination.

The filter uses a PropagatorBuilder to initialize its reference trajectory.

The estimated parameters are driven by ParameterDriver objects. They are of 3 different types:

  1. Orbital parameters:The position and velocity of the spacecraft, or, more generally, its orbit.
    These parameters are retrieved from the reference trajectory propagator builder when the filter is initialized.
  2. Propagation parameters: Some parameters modelling physical processes (SRP or drag coefficients etc...).
    They are also retrieved from the propagator builder during the initialization phase.
  3. Measurements parameters: Parameters related to measurements (station biases, positions etc...).
    They are passed down to the filter in its constructor.

The total number of estimated parameters is m, the size of the state vector.

The Kalman filter implementation used is provided by the underlying mathematical library Hipparchus.

An UnscentedKalmanEstimator object is built using the build method of a UnscentedKalmanEstimatorBuilder. The builder is generalized to accept any PropagatorBuilder. Howerver, it is absolutely not recommended to use a DSSTPropagatorBuilder. A specific semi-analytical unscented Kalman Filter is implemented and shall be used.

Since:
11.3
Author:
Gaƫtan Pierre, Bryan Cazabonne
  • Method Details

    • getKalmanEstimation

      protected KalmanEstimation getKalmanEstimation()
      Get the provider for kalman filter estimations..
      Specified by:
      getKalmanEstimation in class AbstractKalmanEstimator
      Returns:
      the provider for Kalman filter estimations
    • getKalmanFilter

      protected KalmanFilter<MeasurementDecorator> getKalmanFilter()
      Get the Hipparchus filter..
      Specified by:
      getKalmanFilter in class AbstractKalmanEstimator
      Returns:
      the filter
    • getScale

      protected double[] getScale()
      Get the parameter scaling factors..
      Specified by:
      getScale in class AbstractKalmanEstimator
      Returns:
      the parameters scale
    • estimationStep

      public Propagator[] estimationStep(ObservedMeasurement<?> observedMeasurement)
      Process a single measurement.

      Update the filter with the new measurement by calling the estimate method.

      Parameters:
      observedMeasurement - the measurement to process
      Returns:
      estimated propagator
    • processMeasurements

      public Propagator[] processMeasurements(Iterable<ObservedMeasurement<?>> observedMeasurements)
      Process several measurements.
      Parameters:
      observedMeasurements - the measurements to process in chronologically sorted order
      Returns:
      estimated propagator