public abstract class TLEPropagator extends AbstractAnalyticalPropagator
所使用的模型是SGP4和SDP4,最初由NORAD提出作为TLE的唯一便捷传播器。该传播器的输入和输出仅适用于NORAD的两行元素集,因为它仅使用适用于TLE的估计和均值。
根据NORAD的建议,内部选择深空或近空传播器,因此用户无需担心所使用的计算方法。为每个TLE创建一个实例(此实例只能使用selectExtrapolator(TLE)
方法获取),并且可以在任何时间计算位置和速度坐标
。在提供的TLE时刻之前和之后的24小时范围内保证最大精度(当然,这种精度实际上是不可测量的,也是不可预测的:根据CelesTrak,精度接近一公里,误差可能不会超过2公里)。
此实现在很大程度上受到论文和源代码重新审视Spacetrack报告#3的启发,并且完全符合其结果和测试用例。
TLE
Modifier and Type | Field and Description |
---|---|
protected double |
a
最终半长轴。
|
protected double |
a0dp
原始恢复的半长轴。
|
protected double |
beta0
sqrt (1 - e2)。
|
protected double |
beta02
1 - e2。
|
protected double |
c1
SPTRCK#3中的C1。
|
protected double |
c2
SPTRCK#3中的C2。
|
protected double |
c4
SPTRCK#3中的C4。
|
protected double |
coef
用于SGP C3计算的系数。
|
protected double |
coef1
用于SGP C5计算的系数。
|
protected double |
cosi0
原始倾角的余弦。
|
protected double |
e
最终离心率。
|
protected double |
e0sq
原始离心率的平方。
|
protected double |
eeta
原始离心率 * eta。
|
protected double |
eta
SPTRCK#3中的eta。
|
protected double |
etasq
eta的平方。
|
protected double |
i
最终倾角。
|
protected double |
omega
最终近地点参数。
|
protected double |
omgdot
近地点参数(omega)计算的公共参数。
|
protected double |
perige
近地点,以KM和海拔表示。
|
protected double |
s4
s*常数s的新值。
|
protected double |
sini0
原始倾角的正弦。
|
protected double |
t2cof
3/2 * C1。
|
protected double |
theta2
倾角余弦的平方。
|
protected TLE |
tle
初始状态。
|
protected double |
tsi
SPTRCK#3中的tsi。
|
protected TimeScale |
utc
UTC时间刻度。
|
protected double |
xl
SPTRCK#3中的L。
|
protected double |
xmdot
平近点角(M)计算的公共参数。
|
protected double |
xn0dp
原始恢复的平均运动。
|
protected double |
xnodcf
升交点赤经(OMEGA)计算的公共参数。
|
protected double |
xnode
最终升交点赤经。
|
protected double |
xnodot
升交点赤经(OMEGA)计算的公共参数。
|
DEFAULT_MASS
Modifier | Constructor and Description |
---|---|
protected |
TLEPropagator(TLE initialTLE, AttitudeProvider attitudeProvider, double mass)
派生类的受保护构造函数。
|
protected |
TLEPropagator(TLE initialTLE, AttitudeProvider attitudeProvider, double mass, Frame teme)
派生类的受保护构造函数。
|
Modifier and Type | Method and Description |
---|---|
protected AbstractMatricesHarvester |
createHarvester(String stmName, org.hipparchus.linear.RealMatrix initialStm, DoubleArrayDictionary initialJacobianColumns)
创建适用于传播器的收割机。
|
static TleGenerationAlgorithm |
getDefaultTleGenerationAlgorithm(TimeScale utc, Frame teme)
获取默认的TLE生成算法。
|
Frame |
getFrame()
获取在其中传播轨道的参考系。
|
protected List<String> |
getJacobiansColumnsNames()
|
protected double |
getMass(AbsoluteDate date)
获取质量。
|
static double |
getMU()
获取用于TLE传播的地球引力系数。
|
PVCoordinates |
getPVCoordinates(AbsoluteDate date)
从初始TLE获取外推的位置和速度。
|
TLE |
getTLE()
获取底层TLE。
|
protected Orbit |
propagateOrbit(AbsoluteDate date)
将轨道外推到特定目标日期。
|
void |
resetInitialState(SpacecraftState state)
重置传播器的初始状态。
|
protected void |
resetIntermediateState(SpacecraftState state, boolean forward)
重置中间状态。
|
static TLEPropagator |
selectExtrapolator(TLE tle)
选择要与所选TLE一起使用的外推器。
|
static TLEPropagator |
selectExtrapolator(TLE tle, AttitudeProvider attitudeProvider, double mass)
选择要与所选TLE一起使用的外推器。
|
static TLEPropagator |
selectExtrapolator(TLE tle, AttitudeProvider attitudeProvider, double mass, Frame teme)
选择要与所选TLE一起使用的外推器。
|
static TLEPropagator |
selectExtrapolator(TLE tle, Frame teme)
选择要与所选TLE一起使用的外推器。
|
protected abstract void |
sxpInitialize()
每个传播器(SGP或SDP)的初始化。
|
protected abstract void |
sxpPropagate(double t)
每个传播器(SGP或SDP)的传播。
|
acceptStep, addEventDetector, basicPropagate, clearEventsDetectors, getEphemerisGenerator, getEventsDetectors, getPvProvider, propagate
addAdditionalStateProvider, getAdditionalStateProviders, getAttitudeProvider, getHarvester, getInitialState, getManagedAdditionalStates, getMultiplexer, getPVCoordinates, getStartDate, initializeAdditionalStates, initializePropagation, isAdditionalStateManaged, propagate, setAttitudeProvider, setStartDate, setupMatricesComputation, stateChanged, updateAdditionalStates, updateUnmanagedStates
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
clearStepHandlers, getDefaultLaw, setStepHandler, setStepHandler
getPosition
protected TLE tle
protected final TimeScale utc
protected double xnode
protected double a
protected double e
protected double i
protected double omega
protected double xl
protected double a0dp
protected double xn0dp
protected double cosi0
protected double theta2
protected double sini0
protected double xmdot
protected double omgdot
protected double xnodot
protected double e0sq
protected double beta02
protected double beta0
protected double perige
protected double etasq
protected double eeta
protected double s4
protected double tsi
protected double eta
protected double coef
protected double coef1
protected double c1
protected double c2
protected double c4
protected double xnodcf
protected double t2cof
@DefaultDataContext protected TLEPropagator(TLE initialTLE, AttitudeProvider attitudeProvider, double mass)
此构造函数使用默认数据上下文
。
initialTLE
- 要传播的唯一TLE
attitudeProvider
- 姿态计算提供程序
mass
- 航天器质量(千克)
TLEPropagator(TLE, AttitudeProvider, double, Frame)
protected TLEPropagator(TLE initialTLE, AttitudeProvider attitudeProvider, double mass, Frame teme)
initialTLE
- 要传播的唯一TLE
attitudeProvider
- 姿态计算提供程序
mass
- 航天器质量(千克)
teme
- 用于传播的TEME参考系。
@DefaultDataContext public static TLEPropagator selectExtrapolator(TLE tle)
此方法使用默认数据上下文
。
tle
- 要传播的TLE。
selectExtrapolator(TLE, Frame)
public static TLEPropagator selectExtrapolator(TLE tle, Frame teme)
tle
- 要传播的TLE。
teme
- TEME参考系。
@DefaultDataContext public static TLEPropagator selectExtrapolator(TLE tle, AttitudeProvider attitudeProvider, double mass)
此方法使用默认数据上下文
。
tle
- 要传播的TLE。
attitudeProvider
- 姿态计算提供程序
mass
- 航天器质量(千克)
selectExtrapolator(TLE, AttitudeProvider, double, Frame)
public static TLEPropagator selectExtrapolator(TLE tle, AttitudeProvider attitudeProvider, double mass, Frame teme)
tle
- 要传播的TLE。
attitudeProvider
- 姿态计算提供程序
mass
- 航天器质量(千克)
teme
- 用于传播的TEME参考系。
public static double getMU()
public PVCoordinates getPVCoordinates(AbsoluteDate date)
date
- 最终日期
protected abstract void sxpInitialize()
protected abstract void sxpPropagate(double t)
t
- 与初始时刻的偏移(分钟)
public void resetInitialState(SpacecraftState state)
对于TLE推算器,只建议在新的state
与之前的状态仅通过添加包含导数的附加状态不同的情况下调用此方法,用于协方差传播。
resetInitialState
在接口 Propagator
中
resetInitialState
在类 AbstractPropagator
中
state
- 要考虑的新初始状态
protected void resetIntermediateState(SpacecraftState state, boolean forward)
resetIntermediateState
在类 AbstractAnalyticalPropagator
中
state
- 要考虑的新中间状态
forward
- 如果为true,则中间状态对其后的传播有效
protected double getMass(AbsoluteDate date)
getMass
在类 AbstractAnalyticalPropagator
中
date
- 轨道的目标日期
protected Orbit propagateOrbit(AbsoluteDate date)
propagateOrbit
在类 AbstractAnalyticalPropagator
中
date
- 轨道的目标日期
public TLE getTLE()
public Frame getFrame()
传播参考系是初始状态的定义参考系,因此应在设置此状态后调用此方法,否则可能返回null。
getFrame
在接口 Propagator
中
getFrame
在类 AbstractPropagator
中
Propagator.resetInitialState(SpacecraftState)
protected AbstractMatricesHarvester createHarvester(String stmName, org.hipparchus.linear.RealMatrix initialStm, DoubleArrayDictionary initialJacobianColumns)
createHarvester
在类 AbstractPropagator
中
stmName
- 状态转移矩阵状态名称
initialStm
- 初始状态转移矩阵 ∂Y/∂Y₀,如果为null(这是最常见的情况),则假定为6x6单位矩阵
initialJacobianColumns
- 相对于参数的雅可比矩阵的初始列,如果为null或字典中缺少某些选定参数,则假定相应的初始列为0
protected List<String> getJacobiansColumnsNames()
getJacobiansColumnsNames
在类 AbstractAnalyticalPropagator
中
public static TleGenerationAlgorithm getDefaultTleGenerationAlgorithm(TimeScale utc, Frame teme)
utc
- UTC时间标度
teme
- TEME参考系
Copyright © 2002-2023 CS GROUP. All rights reserved.