public class KalmanEstimator extends Object
The filter uses a NumericalPropagatorBuilder
to initialize its reference trajectory NumericalPropagator
.
The estimated parameters are driven by ParameterDriver
objects. They are of 3 different types:
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 the build
method of a KalmanEstimatorBuilder
.
Modifier and Type | Method | Description |
---|---|---|
NumericalPropagator[] |
estimationStep(ObservedMeasurement<?> observedMeasurement) |
Process a single measurement.
|
AbsoluteDate |
getCurrentDate() |
Get the current date.
|
int |
getCurrentMeasurementNumber() |
Get the current measurement number.
|
ParameterDriversList |
getEstimatedMeasurementsParameters() |
Get the list of estimated measurements parameters.
|
ParameterDriversList |
getOrbitalParametersDrivers(boolean estimatedOnly) |
Get the orbital parameters supported by this estimator.
|
RealMatrix |
getPhysicalEstimatedCovarianceMatrix() |
Get the "physical" estimated covariance matrix (i.e.
|
RealVector |
getPhysicalEstimatedState() |
Get the "physical" estimated state (i.e.
|
ParameterDriversList |
getPropagationParametersDrivers(boolean estimatedOnly) |
Get the propagator parameters supported by this estimator.
|
NumericalPropagator[] |
processMeasurements(Iterable<ObservedMeasurement<?>> observedMeasurements) |
Process several measurements.
|
void |
setObserver(KalmanObserver observer) |
Set the observer.
|
public void setObserver(KalmanObserver observer)
observer
- the observerpublic int getCurrentMeasurementNumber()
public AbsoluteDate getCurrentDate()
public RealVector getPhysicalEstimatedState()
public RealMatrix getPhysicalEstimatedCovarianceMatrix()
public ParameterDriversList getOrbitalParametersDrivers(boolean estimatedOnly) throws OrekitException
If there are more than one propagator builder, then the names of the drivers have an index marker in square brackets appended to them in order to distinguish the various orbits. So for example with one builder generating Keplerian orbits the names would be simply "a", "e", "i"... but if there are several builders the names would be "a[0]", "e[0]", "i[0]"..."a[1]", "e[1]", "i[1]"...
estimatedOnly
- if true, only estimated parameters are returnedOrekitException
- if different parameters have the same namepublic ParameterDriversList getPropagationParametersDrivers(boolean estimatedOnly) throws OrekitException
estimatedOnly
- if true, only estimated parameters are returnedOrekitException
- if different parameters have the same namepublic ParameterDriversList getEstimatedMeasurementsParameters()
public NumericalPropagator[] estimationStep(ObservedMeasurement<?> observedMeasurement) throws OrekitException
Update the filter with the new measurement by calling the estimate method.
observedMeasurement
- the measurement to processOrekitException
- if an error occurred during the estimationpublic NumericalPropagator[] processMeasurements(Iterable<ObservedMeasurement<?>> observedMeasurements) throws OrekitException
observedMeasurements
- the measurements to process in chronologically sorted orderOrekitException
- if an error occurred during the estimationCopyright © 2002-2018 CS Systèmes d'information. All rights reserved.