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.SmoothStepFunctionAbstractTimeInterpolator.InterpolationDataCOLUMN_DIM, DEFAULT_POSITION_ANGLE, ROW_DIMDEFAULT_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, interpolateOrbitaddOptionalSubInterpolatorIfDefined, checkInterpolatorCompatibilityWithSampleSize, getExtrapolationThreshold, getNbInterpolationPoints, getSubInterpolators, getTimeParameter, interpolate, interpolatepublic 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,
PositionAngleTypepublic 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,
PositionAngleTypeprotected StateCovariance computeInterpolatedCovarianceInOrbitFrame(List<TimeStampedPair<Orbit,StateCovariance>> uncertainStates, Orbit interpolatedOrbit)
computeInterpolatedCovarianceInOrbitFrame in class AbstractStateCovarianceInterpolatoruncertainStates - list of orbits and associated covariancesinterpolatedOrbit - interpolated orbitCopyright © 2002-2023 CS GROUP. All rights reserved.