Class UnivariateProcessNoise
- java.lang.Object
-
- org.orekit.estimation.sequential.AbstractCovarianceMatrixProvider
-
- org.orekit.estimation.sequential.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 asUnivariateFunction
. 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 methodgetProcessNoiseMatrix(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
andPositionAngleType
when methodgetProcessNoiseMatrix(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 theKalman estimator
.The propagation and measurements 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 tox -> 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 Summary
Constructors Constructor Description UnivariateProcessNoise(RealMatrix initialCovarianceMatrix, LOFType lofType, PositionAngleType positionAngleType, UnivariateFunction[] lofCartesianOrbitalParametersEvolution, UnivariateFunction[] propagationParametersEvolution)
Simple constructor.UnivariateProcessNoise(RealMatrix initialCovarianceMatrix, LOFType lofType, PositionAngleType positionAngleType, UnivariateFunction[] lofCartesianOrbitalParametersEvolution, UnivariateFunction[] propagationParametersEvolution, UnivariateFunction[] measurementsParametersEvolution)
Simple constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description UnivariateFunction[]
getLofCartesianOrbitalParametersEvolution()
Getter for the lofCartesianOrbitalParametersEvolution.LOFType
getLofType()
Getter for the lofType.UnivariateFunction[]
getMeasurementsParametersEvolution()
Getter for the measurementsParametersEvolution.PositionAngleType
getPositionAngleType()
Getter for the positionAngle.RealMatrix
getProcessNoiseMatrix(SpacecraftState previous, SpacecraftState current)
Get the process noise matrix between previous and current states.UnivariateFunction[]
getPropagationParametersEvolution()
Getter for the propagationParametersEvolution.-
Methods inherited from class org.orekit.estimation.sequential.AbstractCovarianceMatrixProvider
getInitialCovarianceMatrix
-
-
-
-
Constructor Detail
-
UnivariateProcessNoise
public UnivariateProcessNoise(RealMatrix initialCovarianceMatrix, LOFType lofType, PositionAngleType positionAngleType, UnivariateFunction[] lofCartesianOrbitalParametersEvolution, UnivariateFunction[] propagationParametersEvolution)
Simple constructor.- Parameters:
initialCovarianceMatrix
- initial covariance matrixlofType
- the LOF type usedpositionAngleType
- the position angle used for the computation of the process noiselofCartesianOrbitalParametersEvolution
- Array of univariate functions for the six orbital parameters process noise evolution in LOF frame and Cartesian orbit typepropagationParametersEvolution
- Array of univariate functions for the propagation parameters process noise evolution
-
UnivariateProcessNoise
public UnivariateProcessNoise(RealMatrix initialCovarianceMatrix, LOFType lofType, PositionAngleType positionAngleType, UnivariateFunction[] lofCartesianOrbitalParametersEvolution, UnivariateFunction[] propagationParametersEvolution, UnivariateFunction[] measurementsParametersEvolution)
Simple constructor.- Parameters:
initialCovarianceMatrix
- initial covariance matrixlofType
- the LOF type usedpositionAngleType
- the position angle used for the computation of the process noiselofCartesianOrbitalParametersEvolution
- Array of univariate functions for the six orbital parameters process noise evolution in LOF frame and Cartesian orbit typepropagationParametersEvolution
- Array of univariate functions for the propagation parameters process noise evolutionmeasurementsParametersEvolution
- Array of univariate functions for the measurements parameters process noise evolution- Since:
- 10.3
-
-
Method Detail
-
getLofType
public LOFType getLofType()
Getter for the lofType.- Returns:
- the lofType
-
getPositionAngleType
public PositionAngleType getPositionAngleType()
Getter for the positionAngle.- Returns:
- the positionAngle
-
getLofCartesianOrbitalParametersEvolution
public UnivariateFunction[] getLofCartesianOrbitalParametersEvolution()
Getter for the lofCartesianOrbitalParametersEvolution.- Returns:
- the lofCartesianOrbitalParametersEvolution
-
getPropagationParametersEvolution
public UnivariateFunction[] getPropagationParametersEvolution()
Getter for the propagationParametersEvolution.- Returns:
- the propagationParametersEvolution
-
getMeasurementsParametersEvolution
public UnivariateFunction[] getMeasurementsParametersEvolution()
Getter for the measurementsParametersEvolution.- Returns:
- the measurementsParametersEvolution
-
getProcessNoiseMatrix
public 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 statecurrent
- current state- Returns:
- physical (i.e. non normalized) process noise matrix between previous and current states
- See Also:
PropagatorBuilder.getOrbitalParametersDrivers()
,PropagatorBuilder.getPropagationParametersDrivers()
-
-