public class OrbitBlender extends AbstractOrbitInterpolator
其目的是使用混合概念在轨道状态之间插值,该概念在 Sergei Tanygin 的论文“使用近似状态误差转换的混合实现高效的协方差插值”中有所介绍,并将其应用于轨道状态而不是协方差。
它使用给定的推算器将表格化的值传播到插值时间,然后使用 smoothstep 函数混合每个传播的状态。与 Hermite 插值相比,当表格化值之间的时间步长变得显著时(例如在 LEO 中,> 10 分钟),它提供了特别好的结果,如此处所述 here。
在大多数情况下,将使用解析推算器快速填补表格化值之间的间隙,并重新创建密集的星历。
然而,如果初始表格化值是从外部来源获取的,则可以使用完全配置和准确的数值推算器来重新创建更精确的星历。
请注意,在当前实现中,返回的混合轨道必然是笛卡尔坐标系。
SmoothStepFactory
, SmoothStepFactory.SmoothStepFunction
, Propagator
, AbstractAnalyticalPropagator
AbstractTimeInterpolator.InterpolationData
DEFAULT_EXTRAPOLATION_THRESHOLD_SEC, DEFAULT_INTERPOLATION_POINTS
Constructor and Description |
---|
OrbitBlender(org.hipparchus.analysis.polynomials.SmoothStepFactory.SmoothStepFunction blendingFunction, Propagator blendingPropagator, Frame outputInertialFrame)
默认构造函数。
|
Modifier and Type | Method and Description |
---|---|
protected Orbit |
interpolate(AbstractTimeInterpolator.InterpolationData interpolationData)
从给定的插值数据插值实例。
|
checkOrbitsConsistency, getOutputInertialFrame, interpolate
addOptionalSubInterpolatorIfDefined, checkInterpolatorCompatibilityWithSampleSize, getCentralDate, getExtrapolationThreshold, getNbInterpolationPoints, getSubInterpolators, getTimeParameter, interpolate
public OrbitBlender(org.hipparchus.analysis.polynomials.SmoothStepFactory.SmoothStepFunction blendingFunction, Propagator blendingPropagator, Frame outputInertialFrame)
在大多数情况下,将使用解析推算器快速填补表格化值之间的间隙,并重新创建密集的星历。
然而,如果初始表格化值是从外部来源获取的,则可以使用完全配置和准确的数值推算器来重新创建更精确的星历。
blendingFunction
- 用于混合的 smoothstep 函数
blendingPropagator
- 用于将表格化轨道传播到插值时间的推算器
outputInertialFrame
- 输出惯性参考系
OrekitException
- 如果输出参考系不是惯性的
SmoothStepFactory.SmoothStepFunction
protected Orbit interpolate(AbstractTimeInterpolator.InterpolationData interpolationData)
interpolate
在类 AbstractTimeInterpolator<Orbit>
interpolationData
- 插值数据
Copyright © 2002-2023 CS GROUP. All rights reserved.