public class StateCovarianceBlender extends AbstractStateCovarianceInterpolator
Its purpose is to interpolate state covariance between tabulated state covariances by using the concept of blending, exposed in : "Efficient Covariance Interpolation using Blending of Approximate State Error Transitions" by Sergei Tanygin.
It propagates tabulated values to the interpolation date assuming a standard keplerian model and then blend each propagated covariances using a smoothstep function.
It gives accurate results as explained here. In the very poorly tracked test case evolving in a highly dynamical environment mentioned in the linked thread, the user can expect at worst errors of less than 0.25% in position sigmas and less than 0.4% in velocity sigmas with steps of 40mn between tabulated values.
SmoothStepFactory
,
SmoothStepFactory.SmoothStepFunction
AbstractTimeInterpolator.InterpolationData
COLUMN_DIM, DEFAULT_POSITION_ANGLE, ROW_DIM
DEFAULT_EXTRAPOLATION_THRESHOLD_SEC, DEFAULT_INTERPOLATION_POINTS
Constructor and Description |
---|
StateCovarianceBlender(org.hipparchus.analysis.polynomials.SmoothStepFactory.SmoothStepFunction blendingFunction,
TimeInterpolator<Orbit> orbitInterpolator,
Frame outFrame,
OrbitType outOrbitType,
PositionAngleType outPositionAngleType)
Constructor.
|
StateCovarianceBlender(org.hipparchus.analysis.polynomials.SmoothStepFactory.SmoothStepFunction blendingFunction,
TimeInterpolator<Orbit> orbitInterpolator,
LOFType outLOF)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
protected StateCovariance |
computeInterpolatedCovarianceInOrbitFrame(List<TimeStampedPair<Orbit,StateCovariance>> uncertainStates,
Orbit interpolatedOrbit)
Compute the interpolated covariance expressed in the interpolated orbit frame.
|
expressCovarianceInDesiredOutput, getOrbitInterpolator, getOutFrame, getOutLOF, getOutOrbitType, getOutPositionAngleType, interpolate, interpolateOrbit
addOptionalSubInterpolatorIfDefined, checkInterpolatorCompatibilityWithSampleSize, getCentralDate, getExtrapolationThreshold, getNbInterpolationPoints, getSubInterpolators, getTimeParameter, interpolate, interpolate
public StateCovarianceBlender(org.hipparchus.analysis.polynomials.SmoothStepFactory.SmoothStepFunction blendingFunction, TimeInterpolator<Orbit> orbitInterpolator, LOFType outLOF)
BEWARE: If the output local orbital frame is not considered pseudo-inertial, all the covariance components related to the velocity will be poorly interpolated. Only the position covariance should be considered in this case.
blendingFunction
- blending functionorbitInterpolator
- orbit interpolatoroutLOF
- local orbital frameFrame
,
OrbitType
,
PositionAngleType
public StateCovarianceBlender(org.hipparchus.analysis.polynomials.SmoothStepFactory.SmoothStepFunction blendingFunction, TimeInterpolator<Orbit> orbitInterpolator, Frame outFrame, OrbitType outOrbitType, PositionAngleType outPositionAngleType)
blendingFunction
- blending functionorbitInterpolator
- orbit interpolatoroutFrame
- desired output covariance frameoutPositionAngleType
- desired output position angleoutOrbitType
- desired output orbit typeFrame
,
OrbitType
,
PositionAngleType
protected StateCovariance computeInterpolatedCovarianceInOrbitFrame(List<TimeStampedPair<Orbit,StateCovariance>> uncertainStates, Orbit interpolatedOrbit)
computeInterpolatedCovarianceInOrbitFrame
in class AbstractStateCovarianceInterpolator
uncertainStates
- list of orbits and associated covariancesinterpolatedOrbit
- interpolated orbitCopyright © 2002-2023 CS GROUP. All rights reserved.