Class KalmanEstimator
- java.lang.Object
-
- org.orekit.estimation.sequential.AbstractKalmanEstimator
-
- org.orekit.estimation.sequential.KalmanEstimator
-
public class KalmanEstimator extends AbstractKalmanEstimator
Implementation of a Kalman filter to perform orbit determination.The filter uses a
PropagatorBuilder
to initialize its reference trajectory. The Kalman estimator can be used with aNumericalPropagator
,TLEPropagator
,BrouwerLyddanePropagator
,EcksteinHechlerPropagator
,KeplerianPropagator
, orEphemeris
.Kalman estimation using a
semi-analytical orbit propagator
must be done using theSemiAnalyticalKalmanEstimator
.The estimated parameters are driven by
ParameterDriver
objects. They are of 3 different types:- 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. - Propagation parameters: Some parameters modelling physical processes (SRP or drag coefficients etc...).
They are also retrieved from the propagator builder during the initialization phase. - 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. All the variables seen by Hipparchus (states, covariances, measurement matrices...) are normalized using a specific scale for each estimated parameters or standard deviation noise for each measurement components.
A
KalmanEstimator
object is built using thebuild
method of aKalmanEstimatorBuilder
.- Since:
- 9.2
- Author:
- Romain Gerbaud, Maxime Journot, Luc Maisonobe
- Orbital parameters:The position and velocity of the spacecraft, or, more generally, its orbit.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Propagator[]
estimationStep(ObservedMeasurement<?> observedMeasurement)
Process a single measurement.protected KalmanEstimation
getKalmanEstimation()
Get the provider for kalman filter estimations.Propagator[]
processMeasurements(Iterable<ObservedMeasurement<?>> observedMeasurements)
Process several measurements.void
setObserver(KalmanObserver observer)
Set the observer.-
Methods inherited from class org.orekit.estimation.sequential.AbstractKalmanEstimator
getCurrentDate, getCurrentMeasurementNumber, getEstimatedMeasurementsParameters, getOrbitalParametersDrivers, getPhysicalEstimatedCovarianceMatrix, getPhysicalEstimatedState, getPropagationParametersDrivers
-
-
-
-
Method Detail
-
getKalmanEstimation
protected KalmanEstimation getKalmanEstimation()
Get the provider for kalman filter estimations..- Specified by:
getKalmanEstimation
in classAbstractKalmanEstimator
- Returns:
- the provider for Kalman filter estimations
-
setObserver
public void setObserver(KalmanObserver observer)
Set the observer.- Parameters:
observer
- the observer
-
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 propagators
-
processMeasurements
public Propagator[] processMeasurements(Iterable<ObservedMeasurement<?>> observedMeasurements)
Process several measurements.- Parameters:
observedMeasurements
- the measurements to process in chronologically sorted order- Returns:
- estimated propagators
-
-