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 protectedSemiAnalyticalUnscentedKalmanModel(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 voidfinalizeEstimation(ObservedMeasurement<?> observedMeasurement, ProcessEstimate estimate)Finalize estimation.voidfinalizeOperationsObservationGrid()Finalize estimation operations on the observation grid.EstimatedMeasurement<?>getCorrectedMeasurement()Get the estimated measurement.SpacecraftState[]getCorrectedSpacecraftStates()Get the corrected spacecraft states.AbsoluteDategetCurrentDate()Get the current date.intgetCurrentMeasurementNumber()Get the current measurement number.ProcessEstimategetEstimate()Get the current corrected estimate.ParameterDriversListgetEstimatedMeasurementsParameters()Get the list of estimated measurements parameters.ParameterDriversListgetEstimatedOrbitalParameters()Get the list of estimated orbital parameters.ParameterDriversListgetEstimatedPropagationParameters()Get the list of estimated propagation parameters.DSSTPropagatorgetEstimatedPropagator()Get the propagator estimated with the values set in the propagator builder.UnscentedEvolutiongetEvolution(double previousTime, RealVector[] sigmaPoints, MeasurementDecorator measurement)RealVectorgetInnovation(MeasurementDecorator measurement, RealVector predictedMeas, RealVector predictedState, RealMatrix innovationCovarianceMatrix)intgetNumberSelectedMeasurementDrivers()Get the number of estimated measurement parameters.intgetNumberSelectedOrbitalDrivers()Get the number of estimated orbital parameters.intgetNumberSelectedPropagationDrivers()Get the number of estimated propagation parameters.KalmanObservergetObserver()Get the observer for Kalman Filter estimations.RealMatrixgetPhysicalEstimatedCovarianceMatrix()Get the "physical" estimated covariance matrix (i.e. not normalized)RealVectorgetPhysicalEstimatedState()Get the "physical" estimated state (i.e. not normalized)RealMatrixgetPhysicalInnovationCovarianceMatrix()Get the physical innovation covariance matrix.RealMatrixgetPhysicalKalmanGain()Get the physical Kalman gain matrix.RealMatrixgetPhysicalMeasurementJacobian()Get the physical Jacobian of the measurement with respect to the state (H matrix).RealMatrixgetPhysicalStateTransitionMatrix()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.RealMatrixgetProcessNoiseMatrix(double previousTime, RealVector predictedState, MeasurementDecorator measurement)voidinitializeShortPeriodicTerms(SpacecraftState meanState)Initialize the short periodic terms for the Kalman Filter.DSSTPropagatorprocessMeasurements(List<ObservedMeasurement<?>> observedMeasurements, UnscentedKalmanFilter<MeasurementDecorator> filter)Process measurements.voidsetObserver(KalmanObserver observer)Set the observer.voidupdateNominalSpacecraftState(SpacecraftState nominal)Update the nominal spacecraft state.voidupdateShortPeriods(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:
getObserverin 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:
getEvolutionin interfaceUnscentedProcess<MeasurementDecorator>
-
getProcessNoiseMatrix
public RealMatrix getProcessNoiseMatrix(double previousTime, RealVector predictedState, MeasurementDecorator measurement)
- Specified by:
getProcessNoiseMatrixin interfaceUnscentedProcess<MeasurementDecorator>
-
getPredictedMeasurements
public RealVector[] getPredictedMeasurements(RealVector[] predictedSigmaPoints, MeasurementDecorator measurement)
- Specified by:
getPredictedMeasurementsin interfaceUnscentedProcess<MeasurementDecorator>
-
getInnovation
public RealVector getInnovation(MeasurementDecorator measurement, RealVector predictedMeas, RealVector predictedState, RealMatrix innovationCovarianceMatrix)
- Specified by:
getInnovationin interfaceUnscentedProcess<MeasurementDecorator>
-
finalizeEstimation
public void finalizeEstimation(ObservedMeasurement<?> observedMeasurement, ProcessEstimate estimate)
Finalize estimation.- Specified by:
finalizeEstimationin interfaceSemiAnalyticalProcess- Parameters:
observedMeasurement- measurement that has just been processedestimate- corrected estimate
-
finalizeOperationsObservationGrid
public void finalizeOperationsObservationGrid()
Finalize estimation operations on the observation grid.- Specified by:
finalizeOperationsObservationGridin interfaceSemiAnalyticalProcess
-
getEstimatedOrbitalParameters
public ParameterDriversList getEstimatedOrbitalParameters()
Get the list of estimated orbital parameters.- Specified by:
getEstimatedOrbitalParametersin interfaceKalmanEstimation- Returns:
- the list of estimated orbital parameters
-
getEstimatedPropagationParameters
public ParameterDriversList getEstimatedPropagationParameters()
Get the list of estimated propagation parameters.- Specified by:
getEstimatedPropagationParametersin interfaceKalmanEstimation- Returns:
- the list of estimated propagation parameters
-
getEstimatedMeasurementsParameters
public ParameterDriversList getEstimatedMeasurementsParameters()
Get the list of estimated measurements parameters.- Specified by:
getEstimatedMeasurementsParametersin interfaceKalmanEstimation- Returns:
- the list of estimated measurements parameters
-
getPredictedSpacecraftStates
public SpacecraftState[] getPredictedSpacecraftStates()
Get the predicted spacecraft states.Predicted state is osculating.
- Specified by:
getPredictedSpacecraftStatesin interfaceKalmanEstimation- Returns:
- predicted spacecraft states
-
getCorrectedSpacecraftStates
public SpacecraftState[] getCorrectedSpacecraftStates()
Get the corrected spacecraft states.Corrected state is osculating.
- Specified by:
getCorrectedSpacecraftStatesin interfaceKalmanEstimation- Returns:
- corrected spacecraft states
-
getPhysicalEstimatedState
public RealVector getPhysicalEstimatedState()
Get the "physical" estimated state (i.e. not normalized)- Specified by:
getPhysicalEstimatedStatein interfaceKalmanEstimation- Returns:
- the "physical" estimated state
-
getPhysicalEstimatedCovarianceMatrix
public RealMatrix getPhysicalEstimatedCovarianceMatrix()
Get the "physical" estimated covariance matrix (i.e. not normalized)- Specified by:
getPhysicalEstimatedCovarianceMatrixin 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:
getPhysicalStateTransitionMatrixin 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:
getPhysicalMeasurementJacobianin 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:
getPhysicalInnovationCovarianceMatrixin 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:
getPhysicalKalmanGainin 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:
getCurrentMeasurementNumberin interfaceKalmanEstimation- Returns:
- current measurement number
-
getCurrentDate
public AbsoluteDate getCurrentDate()
Get the current date.- Specified by:
getCurrentDatein interfaceKalmanEstimation- Returns:
- current date
-
getPredictedMeasurement
public EstimatedMeasurement<?> getPredictedMeasurement()
Get the predicted measurement.This estimation has been evaluated on the last predicted orbits
- Specified by:
getPredictedMeasurementin interfaceKalmanEstimation- Returns:
- predicted measurement
-
getCorrectedMeasurement
public EstimatedMeasurement<?> getCorrectedMeasurement()
Get the estimated measurement.This estimation has been evaluated on the last corrected orbits
- Specified by:
getCorrectedMeasurementin interfaceKalmanEstimation- Returns:
- corrected measurement
-
updateNominalSpacecraftState
public void updateNominalSpacecraftState(SpacecraftState nominal)
Update the nominal spacecraft state.- Specified by:
updateNominalSpacecraftStatein interfaceSemiAnalyticalProcess- Parameters:
nominal- nominal spacecraft state
-
updateShortPeriods
public void updateShortPeriods(SpacecraftState state)
Update the DSST short periodic terms.- Specified by:
updateShortPeriodsin interfaceSemiAnalyticalProcess- Parameters:
state- current mean state
-
initializeShortPeriodicTerms
public void initializeShortPeriodicTerms(SpacecraftState meanState)
Initialize the short periodic terms for the Kalman Filter.- Specified by:
initializeShortPeriodicTermsin 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
-
-