Package org.orekit.estimation.sequential
Class SemiAnalyticalUnscentedKalmanModel
- java.lang.Object
-
- org.orekit.estimation.sequential.SemiAnalyticalUnscentedKalmanModel
-
- All Implemented Interfaces:
UnscentedProcess<MeasurementDecorator>
,KalmanEstimation
,SemiAnalyticalProcess
public class SemiAnalyticalUnscentedKalmanModel extends Object implements KalmanEstimation, UnscentedProcess<MeasurementDecorator>, SemiAnalyticalProcess
Class defining the process model dynamics to use with aSemiAnalyticalUnscentedKalmanEstimator
.- Since:
- 11.3
- Author:
- Gaƫtan Pierre, Bryan Cazabonne
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
SemiAnalyticalUnscentedKalmanModel(DSSTPropagatorBuilder propagatorBuilder, CovarianceMatrixProvider covarianceMatrixProvider, ParameterDriversList estimatedMeasurementParameters, CovarianceMatrixProvider measurementProcessNoiseMatrix)
Unscented Kalman process model constructor (package private).
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
finalizeEstimation(ObservedMeasurement<?> observedMeasurement, ProcessEstimate estimate)
Finalize estimation.void
finalizeOperationsObservationGrid()
Finalize estimation operations on the observation grid.EstimatedMeasurement<?>
getCorrectedMeasurement()
Get the estimated measurement.SpacecraftState[]
getCorrectedSpacecraftStates()
Get the corrected spacecraft states.AbsoluteDate
getCurrentDate()
Get the current date.int
getCurrentMeasurementNumber()
Get the current measurement number.ProcessEstimate
getEstimate()
Get the current corrected estimate.ParameterDriversList
getEstimatedMeasurementsParameters()
Get the list of estimated measurements parameters.ParameterDriversList
getEstimatedOrbitalParameters()
Get the list of estimated orbital parameters.ParameterDriversList
getEstimatedPropagationParameters()
Get the list of estimated propagation parameters.DSSTPropagator
getEstimatedPropagator()
Get the propagator estimated with the values set in the propagator builder.UnscentedEvolution
getEvolution(double previousTime, RealVector[] sigmaPoints, MeasurementDecorator measurement)
RealVector
getInnovation(MeasurementDecorator measurement, RealVector predictedMeas, RealVector predictedState, RealMatrix innovationCovarianceMatrix)
int
getNumberSelectedMeasurementDrivers()
Get the number of estimated measurement parameters.int
getNumberSelectedOrbitalDrivers()
Get the number of estimated orbital parameters.int
getNumberSelectedPropagationDrivers()
Get the number of estimated propagation parameters.KalmanObserver
getObserver()
Get the observer for Kalman Filter estimations.RealMatrix
getPhysicalEstimatedCovarianceMatrix()
Get the "physical" estimated covariance matrix (i.e.RealVector
getPhysicalEstimatedState()
Get the "physical" estimated state (i.e.RealMatrix
getPhysicalInnovationCovarianceMatrix()
Get the physical innovation covariance matrix.RealMatrix
getPhysicalKalmanGain()
Get the physical Kalman gain matrix.RealMatrix
getPhysicalMeasurementJacobian()
Get the physical Jacobian of the measurement with respect to the state (H matrix).RealMatrix
getPhysicalStateTransitionMatrix()
Get physical state transition matrix between previous state and estimated (but not yet corrected) state.EstimatedMeasurement<?>
getPredictedMeasurement()
Get the predicted measurement.RealVector[]
getPredictedMeasurements(RealVector[] predictedSigmaPoints, MeasurementDecorator measurement)
SpacecraftState[]
getPredictedSpacecraftStates()
Get the predicted spacecraft states.void
initializeShortPeriodicTerms(SpacecraftState meanState)
Initialize the short periodic terms for the Kalman Filter.DSSTPropagator
processMeasurements(List<ObservedMeasurement<?>> observedMeasurements, UnscentedKalmanFilter<MeasurementDecorator> filter)
Process measurements.void
setObserver(KalmanObserver observer)
Set the observer.void
updateNominalSpacecraftState(SpacecraftState nominal)
Update the nominal spacecraft state.void
updateShortPeriods(SpacecraftState state)
Update the DSST short periodic terms.
-
-
-
Constructor Detail
-
SemiAnalyticalUnscentedKalmanModel
protected SemiAnalyticalUnscentedKalmanModel(DSSTPropagatorBuilder propagatorBuilder, CovarianceMatrixProvider covarianceMatrixProvider, ParameterDriversList estimatedMeasurementParameters, CovarianceMatrixProvider measurementProcessNoiseMatrix)
Unscented Kalman process model constructor (package private).- Parameters:
propagatorBuilder
- propagators builders used to evaluate the orbits.covarianceMatrixProvider
- provider for covariance matrixestimatedMeasurementParameters
- measurement parameters to estimatemeasurementProcessNoiseMatrix
- provider for measurement process noise matrix
-
-
Method Detail
-
getObserver
public KalmanObserver getObserver()
Get the observer for Kalman Filter estimations.- Specified by:
getObserver
in interfaceSemiAnalyticalProcess
- Returns:
- the observer for Kalman Filter estimations
-
setObserver
public void setObserver(KalmanObserver observer)
Set the observer.- Parameters:
observer
- the observer
-
getEstimate
public ProcessEstimate getEstimate()
Get the current corrected estimate.For the Unscented Semi-analytical Kalman Filter it corresponds to the corrected filter correction. In other words, it doesn't represent an orbital state.
- Returns:
- current corrected estimate
-
processMeasurements
public DSSTPropagator processMeasurements(List<ObservedMeasurement<?>> observedMeasurements, UnscentedKalmanFilter<MeasurementDecorator> filter)
Process measurements.- Parameters:
observedMeasurements
- the list of measurements to processfilter
- Unscented Kalman Filter- Returns:
- estimated propagator
-
getEstimatedPropagator
public DSSTPropagator getEstimatedPropagator()
Get the propagator estimated with the values set in the propagator builder.- Returns:
- propagator based on the current values in the builder
-
getEvolution
public UnscentedEvolution getEvolution(double previousTime, RealVector[] sigmaPoints, MeasurementDecorator measurement)
- Specified by:
getEvolution
in interfaceUnscentedProcess<MeasurementDecorator>
-
getPredictedMeasurements
public RealVector[] getPredictedMeasurements(RealVector[] predictedSigmaPoints, MeasurementDecorator measurement)
- Specified by:
getPredictedMeasurements
in interfaceUnscentedProcess<MeasurementDecorator>
-
getInnovation
public RealVector getInnovation(MeasurementDecorator measurement, RealVector predictedMeas, RealVector predictedState, RealMatrix innovationCovarianceMatrix)
- Specified by:
getInnovation
in interfaceUnscentedProcess<MeasurementDecorator>
-
finalizeEstimation
public void finalizeEstimation(ObservedMeasurement<?> observedMeasurement, ProcessEstimate estimate)
Finalize estimation.- Specified by:
finalizeEstimation
in interfaceSemiAnalyticalProcess
- Parameters:
observedMeasurement
- measurement that has just been processedestimate
- corrected estimate
-
finalizeOperationsObservationGrid
public void finalizeOperationsObservationGrid()
Finalize estimation operations on the observation grid.- Specified by:
finalizeOperationsObservationGrid
in interfaceSemiAnalyticalProcess
-
getEstimatedOrbitalParameters
public ParameterDriversList getEstimatedOrbitalParameters()
Get the list of estimated orbital parameters.- Specified by:
getEstimatedOrbitalParameters
in interfaceKalmanEstimation
- Returns:
- the list of estimated orbital parameters
-
getEstimatedPropagationParameters
public ParameterDriversList getEstimatedPropagationParameters()
Get the list of estimated propagation parameters.- Specified by:
getEstimatedPropagationParameters
in interfaceKalmanEstimation
- Returns:
- the list of estimated propagation parameters
-
getEstimatedMeasurementsParameters
public ParameterDriversList getEstimatedMeasurementsParameters()
Get the list of estimated measurements parameters.- Specified by:
getEstimatedMeasurementsParameters
in interfaceKalmanEstimation
- Returns:
- the list of estimated measurements parameters
-
getPredictedSpacecraftStates
public SpacecraftState[] getPredictedSpacecraftStates()
Get the predicted spacecraft states.Predicted state is osculating.
- Specified by:
getPredictedSpacecraftStates
in interfaceKalmanEstimation
- Returns:
- predicted spacecraft states
-
getCorrectedSpacecraftStates
public SpacecraftState[] getCorrectedSpacecraftStates()
Get the corrected spacecraft states.Corrected state is osculating.
- Specified by:
getCorrectedSpacecraftStates
in interfaceKalmanEstimation
- Returns:
- corrected spacecraft states
-
getPhysicalEstimatedState
public RealVector getPhysicalEstimatedState()
Get the "physical" estimated state (i.e. not normalized)- Specified by:
getPhysicalEstimatedState
in interfaceKalmanEstimation
- Returns:
- the "physical" estimated state
-
getPhysicalEstimatedCovarianceMatrix
public RealMatrix getPhysicalEstimatedCovarianceMatrix()
Get the "physical" estimated covariance matrix (i.e. not normalized)- Specified by:
getPhysicalEstimatedCovarianceMatrix
in interfaceKalmanEstimation
- Returns:
- the "physical" estimated covariance matrix
-
getPhysicalStateTransitionMatrix
public RealMatrix getPhysicalStateTransitionMatrix()
Get physical state transition matrix between previous state and estimated (but not yet corrected) state.- Specified by:
getPhysicalStateTransitionMatrix
in interfaceKalmanEstimation
- Returns:
- state transition matrix between previous state and estimated state (but not yet corrected) (may be null for initial process estimate)
-
getPhysicalMeasurementJacobian
public RealMatrix getPhysicalMeasurementJacobian()
Get the physical Jacobian of the measurement with respect to the state (H matrix).- Specified by:
getPhysicalMeasurementJacobian
in interfaceKalmanEstimation
- Returns:
- physical Jacobian of the measurement with respect to the state (may be null for initial process estimate or if the measurement has been ignored)
-
getPhysicalInnovationCovarianceMatrix
public RealMatrix getPhysicalInnovationCovarianceMatrix()
Get the physical innovation covariance matrix.- Specified by:
getPhysicalInnovationCovarianceMatrix
in interfaceKalmanEstimation
- Returns:
- physical innovation covariance matrix (may be null for initial process estimate or if the measurement has been ignored)
-
getPhysicalKalmanGain
public RealMatrix getPhysicalKalmanGain()
Get the physical Kalman gain matrix.- Specified by:
getPhysicalKalmanGain
in interfaceKalmanEstimation
- Returns:
- Kalman gain matrix (may be null for initial process estimate or if the measurement has been ignored)
-
getCurrentMeasurementNumber
public int getCurrentMeasurementNumber()
Get the current measurement number.- Specified by:
getCurrentMeasurementNumber
in interfaceKalmanEstimation
- Returns:
- current measurement number
-
getCurrentDate
public AbsoluteDate getCurrentDate()
Get the current date.- Specified by:
getCurrentDate
in interfaceKalmanEstimation
- Returns:
- current date
-
getPredictedMeasurement
public EstimatedMeasurement<?> getPredictedMeasurement()
Get the predicted measurement.This estimation has been evaluated on the last predicted orbits
- Specified by:
getPredictedMeasurement
in interfaceKalmanEstimation
- Returns:
- predicted measurement
-
getCorrectedMeasurement
public EstimatedMeasurement<?> getCorrectedMeasurement()
Get the estimated measurement.This estimation has been evaluated on the last corrected orbits
- Specified by:
getCorrectedMeasurement
in interfaceKalmanEstimation
- Returns:
- corrected measurement
-
updateNominalSpacecraftState
public void updateNominalSpacecraftState(SpacecraftState nominal)
Update the nominal spacecraft state.- Specified by:
updateNominalSpacecraftState
in interfaceSemiAnalyticalProcess
- Parameters:
nominal
- nominal spacecraft state
-
updateShortPeriods
public void updateShortPeriods(SpacecraftState state)
Update the DSST short periodic terms.- Specified by:
updateShortPeriods
in interfaceSemiAnalyticalProcess
- Parameters:
state
- current mean state
-
initializeShortPeriodicTerms
public void initializeShortPeriodicTerms(SpacecraftState meanState)
Initialize the short periodic terms for the Kalman Filter.- Specified by:
initializeShortPeriodicTerms
in interfaceSemiAnalyticalProcess
- Parameters:
meanState
- mean state for auxiliary elements
-
getNumberSelectedOrbitalDrivers
public int getNumberSelectedOrbitalDrivers()
Get the number of estimated orbital parameters.- Returns:
- the number of estimated orbital parameters
-
getNumberSelectedPropagationDrivers
public int getNumberSelectedPropagationDrivers()
Get the number of estimated propagation parameters.- Returns:
- the number of estimated propagation parameters
-
getNumberSelectedMeasurementDrivers
public int getNumberSelectedMeasurementDrivers()
Get the number of estimated measurement parameters.- Returns:
- the number of estimated measurement parameters
-
-