public class KalmanEstimator extends Object
The filter uses a OrbitDeterminationPropagatorBuilder
to initialize its reference trajectory NumericalPropagator
or DSSTPropagator
.
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 and Description |
---|---|
Propagator[] |
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.
|
Propagator[] |
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)
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 returnedpublic ParameterDriversList getPropagationParametersDrivers(boolean estimatedOnly)
estimatedOnly
- if true, only estimated parameters are returnedpublic ParameterDriversList getEstimatedMeasurementsParameters()
public Propagator[] estimationStep(ObservedMeasurement<?> observedMeasurement)
Update the filter with the new measurement by calling the estimate method.
observedMeasurement
- the measurement to processpublic Propagator[] processMeasurements(Iterable<ObservedMeasurement<?>> observedMeasurements)
observedMeasurements
- the measurements to process in chronologically sorted orderCopyright © 2002-2022 CS GROUP. All rights reserved.