Class UnivariateProcessNoise

  • All Implemented Interfaces:
    CovarianceMatrixProvider

    public class UnivariateProcessNoise
    extends AbstractCovarianceMatrixProvider
    Provider for a temporal evolution of the process noise matrix. All parameters (orbital or propagation) are time dependent and provided as UnivariateFunction. The argument of the functions is a duration in seconds (between current and previous spacecraft state). The output of the functions must be of the dimension of a standard deviation. The method getProcessNoiseMatrix(org.orekit.propagation.SpacecraftState, org.orekit.propagation.SpacecraftState) then square the values so that they are consistent with a covariance matrix.

    The orbital parameters evolutions are provided in LOF frame and Cartesian (PV); then converted in inertial frame and current OrbitType and PositionAngle when method getProcessNoiseMatrix(org.orekit.propagation.SpacecraftState, org.orekit.propagation.SpacecraftState) is called.

    The time-dependent functions define a process noise matrix that is diagonal in the Local Orbital Frame, corresponds to Cartesian elements, abd represents the temporal evolution of (the standard deviation of) the process noise model. The first function is therefore the standard deviation along the LOF X axis, the second function represents the standard deviation along the LOF Y axis... This allows to set up simply a process noise representing an uncertainty that grows mainly along the track. The 6x6 upper left part of output matrix will however not be diagonal as it will be converted to the same inertial frame and orbit type as the state used by the Kalman estimator.

    The propagation parameters are not associated to a specific frame and are appended as is in the lower right part diagonal of the output matrix. This implies this simplified model does not include correlation between the parameters and the orbit, but only evolution of the parameters themselves. If such correlations are needed, users must set up a custom covariance matrix provider. In most cases, the parameters are constant and their evolution noise is always 0, so the functions can be set to x -> 0.

    This class always provides one initial noise matrix or initial covariance matrix and one process noise matrix.

    Since:
    9.2
    Author:
    Luc Maisonobe, Maxime Journot
    • Constructor Detail

      • UnivariateProcessNoise

        public UnivariateProcessNoise​(org.hipparchus.linear.RealMatrix initialCovarianceMatrix,
                                      LOFType lofType,
                                      PositionAngle positionAngle,
                                      org.hipparchus.analysis.UnivariateFunction[] lofCartesianOrbitalParametersEvolution,
                                      org.hipparchus.analysis.UnivariateFunction[] propagationParametersEvolution)
        Simple constructor.
        Parameters:
        initialCovarianceMatrix - initial covariance matrix
        lofType - the LOF type used
        positionAngle - the position angle used for the computation of the process noise
        lofCartesianOrbitalParametersEvolution - Array of univariate functions for the six orbital parameters process noise evolution in LOF frame and Cartesian orbit type
        propagationParametersEvolution - Array of univariate functions for the propagation parameters process noise evolution
    • Method Detail

      • getLofType

        public LOFType getLofType()
        Getter for the lofType.
        Returns:
        the lofType
      • getPositionAngle

        public PositionAngle getPositionAngle()
        Getter for the positionAngle.
        Returns:
        the positionAngle
      • getLofCartesianOrbitalParametersEvolution

        public org.hipparchus.analysis.UnivariateFunction[] getLofCartesianOrbitalParametersEvolution()
        Getter for the lofCartesianOrbitalParametersEvolution.
        Returns:
        the lofCartesianOrbitalParametersEvolution
      • getPropagationParametersEvolution

        public org.hipparchus.analysis.UnivariateFunction[] getPropagationParametersEvolution()
        Getter for the propagationParametersEvolution.
        Returns:
        the propagationParametersEvolution
      • getProcessNoiseMatrix

        public org.hipparchus.linear.RealMatrix getProcessNoiseMatrix​(SpacecraftState previous,
                                                                      SpacecraftState current)
        Get the process noise matrix between previous and current states.

        The process noise matrix is a covariance matrix corresponding to the parameters managed by the Kalman estimator. The number of rows/columns and their order are as follows:

        • The first 6 components correspond to the 6 orbital parameters of the associated propagator. All 6 parameters must always be present, regardless of the fact they are estimated or not.
        • The following components correspond to the subset of propagation parameters of the associated propagator that are estimated.
        • The remaining components correspond to the subset of measurements parameters that are estimated, considering all measurements, even the ones that correspond to spacecrafts not related to the associated propagator

        In most cases, the process noise for the part corresponding to measurements (the final rows and columns) will be set to 0 for the process noise corresponding to the evolution between a non-null previous and current state.

        Parameters:
        previous - previous state
        current - current state
        Returns:
        physical (i.e. non normalized) process noise matrix between previous and current states
        See Also:
        PropagatorBuilder.getOrbitalParametersDrivers(), PropagatorBuilder.getPropagationParametersDrivers()