Class KalmanModel

java.lang.Object
org.orekit.estimation.sequential.KalmanModel
All Implemented Interfaces:
NonLinearProcess<MeasurementDecorator>, KalmanEstimation

public class KalmanModel extends Object implements NonLinearProcess<MeasurementDecorator>
Class defining the process model dynamics to use with a KalmanEstimator.
Since:
9.2
Author:
Romain Gerbaud, Maxime Journot
  • Constructor Details

    • KalmanModel

      public KalmanModel(List<PropagatorBuilder> propagatorBuilders, List<CovarianceMatrixProvider> covarianceMatricesProviders, ParameterDriversList estimatedMeasurementParameters, CovarianceMatrixProvider measurementProcessNoiseMatrix)
      Kalman process model constructor.
      Parameters:
      propagatorBuilders - propagators builders used to evaluate the orbits.
      covarianceMatricesProviders - providers for covariance matrices
      estimatedMeasurementParameters - measurement parameters to estimate
      measurementProcessNoiseMatrix - provider for measurement process noise matrix
  • Method Details

    • updateReferenceTrajectories

      protected void updateReferenceTrajectories(Propagator[] propagators)
      Update the reference trajectories using the propagators as input.
      Parameters:
      propagators - The new propagators to use
    • getEvolution

      public NonLinearEvolution getEvolution(double previousTime, RealVector previousState, MeasurementDecorator measurement)
      Specified by:
      getEvolution in interface NonLinearProcess<MeasurementDecorator>
    • getInnovation

      public RealVector getInnovation(MeasurementDecorator measurement, NonLinearEvolution evolution, RealMatrix innovationCovarianceMatrix)
      Specified by:
      getInnovation in interface NonLinearProcess<MeasurementDecorator>
    • finalizeEstimation

      public void finalizeEstimation(ObservedMeasurement<?> observedMeasurement, ProcessEstimate estimate)
      Finalize estimation.
      Parameters:
      observedMeasurement - measurement that has just been processed
      estimate - corrected estimate
    • getReferenceTrajectories

      public Propagator[] getReferenceTrajectories()
      Getter for the reference trajectories.
      Returns:
      the referencetrajectories
    • setReferenceTrajectories

      public void setReferenceTrajectories(Propagator[] referenceTrajectories)
      Setter for the reference trajectories.
      Parameters:
      referenceTrajectories - the reference trajectories to be setted
    • getPhysicalStateTransitionMatrix

      public RealMatrix getPhysicalStateTransitionMatrix()
      Get physical state transition matrix between previous state and estimated (but not yet corrected) state.
      Specified by:
      getPhysicalStateTransitionMatrix in interface KalmanEstimation
      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 interface KalmanEstimation
      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 interface KalmanEstimation
      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 interface KalmanEstimation
      Returns:
      Kalman gain matrix (may be null for initial process estimate or if the measurement has been ignored)
    • getPredictedSpacecraftStates

      public SpacecraftState[] getPredictedSpacecraftStates()
      Get the predicted spacecraft states.
      Specified by:
      getPredictedSpacecraftStates in interface KalmanEstimation
      Returns:
      predicted spacecraft states
    • getCorrectedSpacecraftStates

      public SpacecraftState[] getCorrectedSpacecraftStates()
      Get the corrected spacecraft states.
      Specified by:
      getCorrectedSpacecraftStates in interface KalmanEstimation
      Returns:
      corrected spacecraft states
    • getCurrentMeasurementNumber

      public int getCurrentMeasurementNumber()
      Get the current measurement number.
      Specified by:
      getCurrentMeasurementNumber in interface KalmanEstimation
      Returns:
      current measurement number
    • getCurrentDate

      public AbsoluteDate getCurrentDate()
      Get the current date.
      Specified by:
      getCurrentDate in interface KalmanEstimation
      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 interface KalmanEstimation
      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 interface KalmanEstimation
      Returns:
      corrected measurement
    • getPhysicalEstimatedState

      public RealVector getPhysicalEstimatedState()
      Get the "physical" estimated state (i.e. not normalized)
      Specified by:
      getPhysicalEstimatedState in interface KalmanEstimation
      Returns:
      the "physical" estimated state
    • getPhysicalEstimatedCovarianceMatrix

      public RealMatrix getPhysicalEstimatedCovarianceMatrix()
      Get the "physical" estimated covariance matrix (i.e. not normalized)
      Specified by:
      getPhysicalEstimatedCovarianceMatrix in interface KalmanEstimation
      Returns:
      the "physical" estimated covariance matrix
    • getEstimatedOrbitalParameters

      public ParameterDriversList getEstimatedOrbitalParameters()
      Get the list of estimated orbital parameters.
      Specified by:
      getEstimatedOrbitalParameters in interface KalmanEstimation
      Returns:
      the list of estimated orbital parameters
    • getEstimatedPropagationParameters

      public ParameterDriversList getEstimatedPropagationParameters()
      Get the list of estimated propagation parameters.
      Specified by:
      getEstimatedPropagationParameters in interface KalmanEstimation
      Returns:
      the list of estimated propagation parameters
    • getEstimatedMeasurementsParameters

      public ParameterDriversList getEstimatedMeasurementsParameters()
      Get the list of estimated measurements parameters.
      Specified by:
      getEstimatedMeasurementsParameters in interface KalmanEstimation
      Returns:
      the list of estimated measurements parameters
    • getEstimate

      public ProcessEstimate getEstimate()
      Get the current corrected estimate.
      Returns:
      current corrected estimate
    • getBuilders

      public List<PropagatorBuilder> getBuilders()
      Getter for the propagators.
      Returns:
      the propagators
    • getEstimatedPropagators

      public Propagator[] getEstimatedPropagators()
      Get the propagators estimated with the values set in the propagators builders.
      Returns:
      propagators based on the current values in the builder
    • getNormalizedProcessNoise

      protected RealMatrix getNormalizedProcessNoise(int stateDimension)
      Get the normalized process noise matrix.
      Parameters:
      stateDimension - state dimension
      Returns:
      the normalized process noise matrix
    • getOrbitsStartColumns

      protected int[] getOrbitsStartColumns()
      Getter for the orbitsStartColumns.
      Returns:
      the orbitsStartColumns
    • getPropagationParameterColumns

      protected Map<String,Integer> getPropagationParameterColumns()
      Getter for the propagationParameterColumns.
      Returns:
      the propagationParameterColumns
    • getMeasurementParameterColumns

      protected Map<String,Integer> getMeasurementParameterColumns()
      Getter for the measurementParameterColumns.
      Returns:
      the measurementParameterColumns
    • getEstimatedPropagationParametersArray

      protected ParameterDriversList[] getEstimatedPropagationParametersArray()
      Getter for the estimatedPropagationParameters.
      Returns:
      the estimatedPropagationParameters
    • getEstimatedOrbitalParametersArray

      protected ParameterDriversList[] getEstimatedOrbitalParametersArray()
      Getter for the estimatedOrbitalParameters.
      Returns:
      the estimatedOrbitalParameters
    • getCovarianceIndirection

      protected int[][] getCovarianceIndirection()
      Getter for the covarianceIndirection.
      Returns:
      the covarianceIndirection
    • getScale

      protected double[] getScale()
      Getter for the scale.
      Returns:
      the scale
    • getCorrectedEstimate

      protected ProcessEstimate getCorrectedEstimate()
      Getter for the correctedEstimate.
      Returns:
      the correctedEstimate
    • setCorrectedEstimate

      protected void setCorrectedEstimate(ProcessEstimate correctedEstimate)
      Setter for the correctedEstimate.
      Parameters:
      correctedEstimate - the correctedEstimate
    • getReferenceDate

      protected AbsoluteDate getReferenceDate()
      Getter for the referenceDate.
      Returns:
      the referenceDate
    • incrementCurrentMeasurementNumber

      protected void incrementCurrentMeasurementNumber()
      Increment current measurement number.
    • setCurrentDate

      protected void setCurrentDate(AbsoluteDate currentDate)
      Setter for the currentDate.
      Parameters:
      currentDate - the currentDate
    • setCorrectedSpacecraftState

      protected void setCorrectedSpacecraftState(SpacecraftState correctedSpacecraftState, int index)
      Set correctedSpacecraftState at index.
      Parameters:
      correctedSpacecraftState - corrected S/C state o set
      index - index where to set in the array
    • setPredictedSpacecraftState

      protected void setPredictedSpacecraftState(SpacecraftState predictedSpacecraftState, int index)
      Set predictedSpacecraftState at index.
      Parameters:
      predictedSpacecraftState - predicted S/C state o set
      index - index where to set in the array
    • setPredictedMeasurement

      protected void setPredictedMeasurement(EstimatedMeasurement<?> predictedMeasurement)
      Setter for the predictedMeasurement.
      Parameters:
      predictedMeasurement - the predictedMeasurement
    • setCorrectedMeasurement

      protected void setCorrectedMeasurement(EstimatedMeasurement<?> correctedMeasurement)
      Setter for the correctedMeasurement.
      Parameters:
      correctedMeasurement - the correctedMeasurement