Package org.orekit.estimation.sequential
Class SemiAnalyticalKalmanEstimator
- java.lang.Object
-
- org.orekit.estimation.sequential.AbstractKalmanEstimator
-
- org.orekit.estimation.sequential.SemiAnalyticalKalmanEstimator
-
public class SemiAnalyticalKalmanEstimator extends AbstractKalmanEstimator
Implementation of an Extended Semi-analytical Kalman Filter (ESKF) to perform orbit determination.The filter uses a
DSSTPropagatorBuilder.The estimated parameters are driven by
ParameterDriverobjects. 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).
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 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.
- Since:
- 11.1
- Author:
- Julie Bayard, Bryan Cazabonne, Maxime Journot
- See Also:
- "Folcik Z., Orbit Determination Using Modern Filters/Smoothers and Continuous Thrust Modeling, Master of Science Thesis, Department of Aeronautics and Astronautics, MIT, June, 2008.", "Cazabonne B., Bayard J., Journot M., and Cefola P. J., A Semi-analytical Approach for Orbit Determination based on Extended Kalman Filter, AAS Paper 21-614, AAS/AIAA Astrodynamics Specialist Conference, Big Sky, August 2021."
- Orbital parameters:The position and velocity of the spacecraft, or, more generally, its orbit.
-
-
Constructor Summary
Constructors Constructor Description SemiAnalyticalKalmanEstimator(MatrixDecomposer decomposer, DSSTPropagatorBuilder propagatorBuilder, CovarianceMatrixProvider covarianceMatrixProvider, ParameterDriversList estimatedMeasurementParameters, CovarianceMatrixProvider measurementProcessNoiseMatrix)Kalman filter estimator constructor (package private).
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected KalmanEstimationgetKalmanEstimation()Get the provider for kalman filter estimations.protected KalmanFilter<MeasurementDecorator>getKalmanFilter()Get the Hipparchus filter.KalmanObservergetObserver()Get the observer.protected double[]getScale()Get the parameter scaling factors.DSSTPropagatorprocessMeasurements(List<ObservedMeasurement<?>> observedMeasurements)Process a single measurement.voidsetObserver(KalmanObserver observer)Set the observer.-
Methods inherited from class org.orekit.estimation.sequential.AbstractKalmanEstimator
getBuilders, getCurrentDate, getCurrentMeasurementNumber, getEstimatedMeasurementsParameters, getMatrixDecomposer, getOrbitalParametersDrivers, getPhysicalEstimatedCovarianceMatrix, getPhysicalEstimatedState, getPropagationParametersDrivers, getReferenceDate
-
-
-
-
Constructor Detail
-
SemiAnalyticalKalmanEstimator
public SemiAnalyticalKalmanEstimator(MatrixDecomposer decomposer, DSSTPropagatorBuilder propagatorBuilder, CovarianceMatrixProvider covarianceMatrixProvider, ParameterDriversList estimatedMeasurementParameters, CovarianceMatrixProvider measurementProcessNoiseMatrix)
Kalman filter estimator constructor (package private).- Parameters:
decomposer- decomposer to use for the correction phasepropagatorBuilder- propagator builder used to evaluate the orbit.covarianceMatrixProvider- provider for process noise matrixestimatedMeasurementParameters- measurement parameters to estimatemeasurementProcessNoiseMatrix- provider for measurement process noise matrix
-
-
Method Detail
-
getKalmanEstimation
protected KalmanEstimation getKalmanEstimation()
Get the provider for kalman filter estimations..- Specified by:
getKalmanEstimationin classAbstractKalmanEstimator- Returns:
- the provider for Kalman filter estimations
-
getKalmanFilter
protected KalmanFilter<MeasurementDecorator> getKalmanFilter()
Get the Hipparchus filter..- Specified by:
getKalmanFilterin classAbstractKalmanEstimator- Returns:
- the filter
-
getScale
protected double[] getScale()
Get the parameter scaling factors..- Specified by:
getScalein classAbstractKalmanEstimator- Returns:
- the parameters scale
-
setObserver
public void setObserver(KalmanObserver observer)
Set the observer..- Overrides:
setObserverin classAbstractKalmanEstimator- Parameters:
observer- the observer
-
getObserver
public KalmanObserver getObserver()
Get the observer..- Overrides:
getObserverin classAbstractKalmanEstimator- Returns:
- the observer
-
processMeasurements
public DSSTPropagator processMeasurements(List<ObservedMeasurement<?>> observedMeasurements)
Process a single measurement.Update the filter with the new measurement by calling the estimate method.
- Parameters:
observedMeasurements- the list of measurements to process- Returns:
- estimated propagators
-
-