public class EcksteinHechlerPropagator extends AbstractAnalyticalPropagator
SpacecraftState
。
Eckstein-Hechler模型适用于近似圆形轨道(e < 0.1,在0.005和0.1之间精度较差),倾角既非赤道(直接或逆行)也非临界(直接或逆行)。
请注意,在版本7.0之前,生成的轨道存在严重不一致性,这在Orekit的版本7.0中已经修复,但有一个明显的副作用。问题在于,如果Eckstein-Hechler模型生成的圆形参数用于构建被视为瞬时的轨道,那么从这个轨道推导出的速度与位置演变是不一致的!原因在于该模型包含非开普勒效应,但没有包含相应的圆形/笛卡尔转换。因此,所有涉及速度的后续计算都是错误的。这包括偏航补偿和多普勒效应等姿态模式。由于这种影响被认为是足够严重的,准确的速度被认为是重要的,传播器现在生成的是以特殊方式构建的笛卡尔轨道
,以确保整个传播过程中的一致性。一个副作用是,如果用户从这些传播的笛卡尔轨道重新构建圆形参数,那么圆形参数通常不会与初始轨道匹配(半长轴的差异可能超过120米)。但位置会匹配到亚微米级别,并且这个位置将与之前版本生成的位置完全相同(换句话说,模型的内部没有改变,只是输出参数已经改变)。初始化的正确性已经得到评估,并且良好,因为它允许后续轨道保持接近数值参考轨道。
如果用户需要更明确的Eckstein-Hechler传播器初始化,他们应该考虑使用传播器转换器
来使用完整样本而不仅仅是单个初始轨道来初始化他们的Eckstein-Hechler传播器。
Orbit
DEFAULT_MASS
Constructor and Description |
---|
EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60)
从轨道、姿态提供者和势建立传播器。
|
EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60)
从轨道、姿态提供者、质量和势建立传播器。
|
EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60, PropagationType initialType)
从轨道、姿态提供者、质量和势建立传播器。
|
EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60, PropagationType initialType, double epsilon, int maxIterations)
从轨道、姿态提供者、质量和势建立传播器。
|
EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, UnnormalizedSphericalHarmonicsProvider provider)
从轨道、姿态提供者、质量和势提供者建立传播器。
|
EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, UnnormalizedSphericalHarmonicsProvider provider, PropagationType initialType)
从轨道、姿态提供者、质量和势提供者建立传播器。
|
EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitude, double mass, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics)
私有辅助构造函数。
|
EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitude, double mass, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics, PropagationType initialType)
私有辅助构造函数。
|
EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, UnnormalizedSphericalHarmonicsProvider provider)
从轨道、姿态提供者和势提供者建立传播器。
|
EcksteinHechlerPropagator(Orbit initialOrbit, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60)
从轨道和势建立传播器。
|
EcksteinHechlerPropagator(Orbit initialOrbit, double mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60)
从轨道、质量和势建立传播器。
|
EcksteinHechlerPropagator(Orbit initialOrbit, double mass, UnnormalizedSphericalHarmonicsProvider provider)
从轨道、质量和势提供者建立传播器。
|
EcksteinHechlerPropagator(Orbit initialOrbit, UnnormalizedSphericalHarmonicsProvider provider)
从轨道和势提供者建立传播器。
|
EcksteinHechlerPropagator(Orbit initialOrbit, UnnormalizedSphericalHarmonicsProvider provider, PropagationType initialType)
从轨道和势提供者建立传播器。
|
Modifier and Type | Method and Description |
---|---|
static CircularOrbit |
computeMeanOrbit(Orbit osculating, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60, double epsilon, int maxIterations)
从瞬时到平均轨道的转换。
|
static CircularOrbit |
computeMeanOrbit(Orbit osculating, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics)
从瞬时到平均轨道的转换。
|
static CircularOrbit |
computeMeanOrbit(Orbit osculating, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics, double epsilon, int maxIterations)
从瞬时到平均轨道的转换。
|
protected AbstractMatricesHarvester |
createHarvester(String stmName, org.hipparchus.linear.RealMatrix initialStm, DoubleArrayDictionary initialJacobianColumns)
创建适用于传播器的收割机。
|
double[] |
getCk0()
获取未归一化的轴对称系数。
|
protected double |
getMass(AbsoluteDate date)
获取质量。
|
double |
getMu()
获取中心引力系数μ。
|
double |
getReferenceRadius()
获取中心天体引力模型的参考半径。
|
CartesianOrbit |
propagateOrbit(AbsoluteDate date)
将轨道外推到特定目标日期。
|
void |
resetInitialState(SpacecraftState state)
重置传播器的初始状态。
|
void |
resetInitialState(SpacecraftState state, PropagationType stateType)
重置传播器的初始状态。
|
void |
resetInitialState(SpacecraftState state, PropagationType stateType, double epsilon, int maxIterations)
重置传播器的初始状态。
|
protected void |
resetIntermediateState(SpacecraftState state, boolean forward)
重置中间状态。
|
protected void |
resetIntermediateState(SpacecraftState state, boolean forward, double epsilon, int maxIterations)
重置中间状态。
|
acceptStep, addEventDetector, basicPropagate, clearEventsDetectors, getEphemerisGenerator, getEventsDetectors, getJacobiansColumnsNames, getPvProvider, propagate
addAdditionalStateProvider, getAdditionalStateProviders, getAttitudeProvider, getFrame, 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
public EcksteinHechlerPropagator(Orbit initialOrbit, UnnormalizedSphericalHarmonicsProvider provider)
质量和姿态提供者设置为未指定的非空任意值。
使用此构造函数,将考虑初始瞬时轨道。
initialOrbit
- 初始轨道
provider
- 未归一化的轴对称系数
EcksteinHechlerPropagator(Orbit, AttitudeProvider, UnnormalizedSphericalHarmonicsProvider)
, EcksteinHechlerPropagator(Orbit, UnnormalizedSphericalHarmonicsProvider, PropagationType)
public EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitude, double mass, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics)
使用此构造函数,将考虑初始瞬时轨道。
initialOrbit
- 初始轨道
attitude
- 姿态提供者
mass
- 航天器质量
provider
- 未归一化的轴对称系数
harmonics
- provider.onDate(initialOrbit.getDate())
EcksteinHechlerPropagator(Orbit, AttitudeProvider, double, UnnormalizedSphericalHarmonicsProvider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics, PropagationType)
public EcksteinHechlerPropagator(Orbit initialOrbit, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60)
质量和姿态提供者设置为未指定的非空任意值。
Cn,0系数是未归一化的轴对称系数,它们与标准化系数Cn,0和Jn之间的关系如下:
Cn,0 = [(2-δ0,m)(2n+1)(n-m)!/(n+m)!]½ Cn,0
Cn,0 = -Jn
使用此构造函数,将考虑初始瞬时轨道。
initialOrbit
- 初始轨道
referenceRadius
- 地球势模型的参考半径(米)
mu
- 中心引力系数(m³/s²)
c20
- 未归一化的轴对称系数(地球约为-1.08e-3)
c30
- 未归一化的轴对称系数(地球约为+2.53e-6)
c40
- 未归一化的轴对称系数(地球约为+1.62e-6)
c50
- 未归一化的轴对称系数(地球约为+2.28e-7)
c60
- 未归一化的轴对称系数(地球约为-5.41e-7)
Constants
, EcksteinHechlerPropagator(Orbit, AttitudeProvider, double, double, double, double, double, double, double, double)
public EcksteinHechlerPropagator(Orbit initialOrbit, double mass, UnnormalizedSphericalHarmonicsProvider provider)
姿态定律设置为未指定的非空任意值。
使用此构造函数,将考虑初始瞬时轨道。
initialOrbit
- 初始轨道
mass
- 航天器质量
provider
- 未归一化的轴对称系数
EcksteinHechlerPropagator(Orbit, AttitudeProvider, double, UnnormalizedSphericalHarmonicsProvider)
public EcksteinHechlerPropagator(Orbit initialOrbit, double mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60)
姿态定律设置为未指定的非空任意值。
Cn,0系数是未归一化的轴对称系数,它们与标准化系数Cn,0和Jn之间的关系如下:
Cn,0 = [(2-δ0,m)(2n+1)(n-m)!/(n+m)!]½ Cn,0
Cn,0 = -Jn
使用此构造函数,将考虑初始瞬时轨道。
initialOrbit
- 初始轨道
mass
- 航天器质量
referenceRadius
- 用于势模型的地球参考半径(米)
mu
- 中心引力系数(米³/秒²)
c20
- 非归一化的动力学系数(地球约为-1.08e-3)
c30
- 非归一化的动力学系数(地球约为+2.53e-6)
c40
- 非归一化的动力学系数(地球约为+1.62e-6)
c50
- 非归一化的动力学系数(地球约为+2.28e-7)
c60
- 非归一化的动力学系数(地球约为-5.41e-7)
EcksteinHechlerPropagator(Orbit, AttitudeProvider, double, double, double, double, double, double, double, double)
public EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, UnnormalizedSphericalHarmonicsProvider provider)
质量设置为未指定的非空任意值。
使用此构造函数,考虑初始的瞬时轨道。
initialOrbit
- 初始轨道
attitudeProv
- 姿态提供器
provider
- 用于非归一化动力学系数
public EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60)
质量设置为未指定的非空任意值。
Cn,0系数是非归一化的动力学系数,它们与归一化系数Cn,0和Jn之间的关系如下:
Cn,0 = [(2-δ0,m)(2n+1)(n-m)!/(n+m)!]½ Cn,0
Cn,0 = -Jn
使用此构造函数,考虑初始的瞬时轨道。
initialOrbit
- 初始轨道
attitudeProv
- 姿态提供器
referenceRadius
- 用于势模型的地球参考半径(米)
mu
- 中心引力系数(米³/秒²)
c20
- 非归一化的动力学系数(地球约为-1.08e-3)
c30
- 非归一化的动力学系数(地球约为+2.53e-6)
c40
- 非归一化的动力学系数(地球约为+1.62e-6)
c50
- 非归一化的动力学系数(地球约为+2.28e-7)
c60
- 非归一化的动力学系数(地球约为-5.41e-7)
public EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, UnnormalizedSphericalHarmonicsProvider provider)
使用此构造函数,考虑初始的瞬时轨道。
initialOrbit
- 初始轨道
attitudeProv
- 姿态提供器
mass
- 航天器质量
provider
- 用于非归一化动力学系数
EcksteinHechlerPropagator(Orbit, AttitudeProvider, double, UnnormalizedSphericalHarmonicsProvider, PropagationType)
public EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60)
Cn,0系数是非归一化的动力学系数,它们与归一化系数Cn,0和Jn之间的关系如下:
Cn,0 = [(2-δ0,m)(2n+1)(n-m)!/(n+m)!]½ Cn,0
Cn,0 = -Jn
使用此构造函数,考虑初始的瞬时轨道。
initialOrbit
- 初始轨道
attitudeProv
- 姿态提供器
mass
- 航天器质量
referenceRadius
- 用于势模型的地球参考半径(米)
mu
- 中心引力系数(米³/秒²)
c20
- 非归一化的动力学系数(地球约为-1.08e-3)
c30
- 非归一化的动力学系数(地球约为+2.53e-6)
c40
- 非归一化的动力学系数(地球约为+1.62e-6)
c50
- 非归一化的动力学系数(地球约为+2.28e-7)
c60
- 非归一化的动力学系数(地球约为-5.41e-7)
EcksteinHechlerPropagator(Orbit, AttitudeProvider, double, double, double, double, double, double, double, double, PropagationType)
public EcksteinHechlerPropagator(Orbit initialOrbit, UnnormalizedSphericalHarmonicsProvider provider, PropagationType initialType)
质量和姿态提供器设置为未指定的非空任意值。
使用此构造函数,可以将初始轨道定义为平均Eckstein-Hechler轨道或瞬时轨道。
initialOrbit
- 初始轨道
provider
- 用于非归一化动力学系数
initialType
- 初始轨道类型(平均Eckstein-Hechler轨道或瞬时轨道)
public EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, UnnormalizedSphericalHarmonicsProvider provider, PropagationType initialType)
使用此构造函数,可以将初始轨道定义为平均Eckstein-Hechler轨道或瞬时轨道。
initialOrbit
- 初始轨道
attitudeProv
- 姿态提供器
mass
- 航天器质量
provider
- 用于非归一化动力学系数
initialType
- 初始轨道类型(平均Eckstein-Hechler轨道或瞬时轨道)
public EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitude, double mass, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics, PropagationType initialType)
使用此构造函数,可以将初始轨道定义为平均Eckstein-Hechler轨道或瞬时轨道。
initialOrbit
- 初始轨道
attitude
- 姿态提供器
mass
- 航天器质量
provider
- 用于非归一化动力学系数
harmonics
- provider.onDate(initialOrbit.getDate())
initialType
- 初始轨道类型(平均Eckstein-Hechler轨道或瞬时轨道)
public EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60, PropagationType initialType)
Cn,0系数是非归一化的动力学系数,它们与归一化系数Cn,0和Jn之间的关系如下:
Cn,0 = [(2-δ0,m)(2n+1)(n-m)!/(n+m)!]½ Cn,0
Cn,0 = -Jn
使用此构造函数,可以将初始轨道定义为平均Eckstein-Hechler轨道或瞬时轨道。
initialOrbit
- 初始轨道
attitudeProv
- 姿态提供器
mass
- 航天器质量
referenceRadius
- 用于势模型的地球参考半径(米)
mu
- 中心引力系数(米³/秒²)
c20
- 非归一化的动力学系数(地球约为-1.08e-3)
c30
- 非归一化的动力学系数(地球约为+2.53e-6)
c40
- 非归一化的动力学系数(地球约为+1.62e-6)
c50
- 非归一化的动力学系数(地球约为+2.28e-7)
c60
- 非归一化的动力学系数(地球约为-5.41e-7)
initialType
- 初始轨道类型(平均Eckstein-Hechler轨道或瞬时轨道)
public EcksteinHechlerPropagator(Orbit initialOrbit, AttitudeProvider attitudeProv, double mass, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60, PropagationType initialType, double epsilon, int maxIterations)
Cn,0系数是非归一化的动力学系数,它们与归一化系数Cn,0和Jn之间的关系如下:
Cn,0 = [(2-δ0,m)(2n+1)(n-m)!/(n+m)!]½ Cn,0
Cn,0 = -Jn
使用此构造函数,可以将初始轨道定义为平均Eckstein-Hechler轨道或瞬时轨道。
initialOrbit
- 初始轨道
attitudeProv
- 姿态提供者
mass
- 航天器质量
referenceRadius
- 用于势模型的地球参考半径(米)
mu
- 中心引力系数(m³/s²)
c20
- 非归一化的动力学系数(地球约为-1.08e-3)
c30
- 非归一化的动力学系数(地球约为+2.53e-6)
c40
- 非归一化的动力学系数(地球约为+1.62e-6)
c50
- 非归一化的动力学系数(地球约为+2.28e-7)
c60
- 非归一化的动力学系数(地球约为-5.41e-7)
epsilon
- 均值参数转换的收敛阈值
maxIterations
- 均值参数转换的最大迭代次数
initialType
- 初始轨道类型(均值Eckstein-Hechler轨道或瞬时轨道)
public static CircularOrbit computeMeanOrbit(Orbit osculating, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics)
计算均值轨道,以Eckstein-Hechler意义对应于输入的瞬时SpacecraftState。
由于瞬时轨道是通过短周期变化的计算获得的,因此结果输出将取决于输入中参数化的重力场。
计算通过固定点迭代过程完成。
osculating
- 要转换的瞬时轨道
provider
- 用于非归一化的动力学系数
harmonics
- provider.onDate(osculating.getDate())
public static CircularOrbit computeMeanOrbit(Orbit osculating, UnnormalizedSphericalHarmonicsProvider provider, UnnormalizedSphericalHarmonicsProvider.UnnormalizedSphericalHarmonics harmonics, double epsilon, int maxIterations)
计算均值轨道,以Eckstein-Hechler意义对应于输入的瞬时SpacecraftState。
由于瞬时轨道是通过短周期变化的计算获得的,因此结果输出将取决于输入中参数化的重力场。
计算通过固定点迭代过程完成。
osculating
- 要转换的瞬时轨道
provider
- 用于非归一化的动力学系数
harmonics
- provider.onDate(osculating.getDate())
epsilon
- 均值参数转换的收敛阈值
maxIterations
- 均值参数转换的最大迭代次数
public static CircularOrbit computeMeanOrbit(Orbit osculating, double referenceRadius, double mu, double c20, double c30, double c40, double c50, double c60, double epsilon, int maxIterations)
计算均值轨道,以Eckstein-Hechler意义对应于输入的瞬时SpacecraftState。
由于瞬时轨道是通过短周期变化的计算获得的,因此结果输出将取决于输入中参数化的重力场。
计算通过固定点迭代过程完成。
osculating
- 要转换的瞬时轨道
referenceRadius
- 用于势模型的地球参考半径(米)
mu
- 中心引力系数(m³/s²)
c20
- 非归一化的动力学系数(地球约为-1.08e-3)
c30
- 非归一化的动力学系数(地球约为+2.53e-6)
c40
- 非归一化的动力学系数(地球约为+1.62e-6)
c50
- 非归一化的动力学系数(地球约为+2.28e-7)
c60
- 非归一化的动力学系数(地球约为-5.41e-7)
epsilon
- 均值参数转换的收敛阈值
maxIterations
- 均值参数转换的最大迭代次数
public void resetInitialState(SpacecraftState state)
要考虑的新初始状态必须用瞬时轨道定义。
resetInitialState
在接口 Propagator
中
resetInitialState
在类 AbstractPropagator
中
state
- 要考虑的新初始状态
resetInitialState(SpacecraftState, PropagationType)
public void resetInitialState(SpacecraftState state, PropagationType stateType)
state
- 要考虑的新初始状态
stateType
- 均值Eckstein-Hechler轨道或瞬时轨道
public void resetInitialState(SpacecraftState state, PropagationType stateType, double epsilon, int maxIterations)
state
- 要考虑的新初始状态
stateType
- 均值Eckstein-Hechler轨道或瞬时轨道
epsilon
- 均值参数转换的收敛阈值
maxIterations
- 均值参数转换的最大迭代次数
protected void resetIntermediateState(SpacecraftState state, boolean forward)
resetIntermediateState
在类 AbstractAnalyticalPropagator
中
state
- 要考虑的新中间状态
forward
- 如果为true,则中间状态对其后的传播有效
protected void resetIntermediateState(SpacecraftState state, boolean forward, double epsilon, int maxIterations)
state
- 要考虑的新中间状态
forward
- 如果为true,则中间状态对其后的传播有效
epsilon
- 均值参数转换的收敛阈值
maxIterations
- 均值参数转换的最大迭代次数
public CartesianOrbit propagateOrbit(AbsoluteDate date)
propagateOrbit
在类 AbstractAnalyticalPropagator
中
date
- 轨道的目标日期
public double getMu()
public double[] getCk0()
public double getReferenceRadius()
protected AbstractMatricesHarvester createHarvester(String stmName, org.hipparchus.linear.RealMatrix initialStm, DoubleArrayDictionary initialJacobianColumns)
createHarvester
在类 AbstractPropagator
中
stmName
- 状态转移矩阵状态名称
initialStm
- 初始状态转移矩阵 ∂Y/∂Y₀,如果为null(这是最常见的情况),则假定为6x6单位矩阵
initialJacobianColumns
- 相对于参数的雅可比矩阵的初始列,如果为null或字典中缺少某些选定参数,则相应的初始列假定为0
protected double getMass(AbsoluteDate date)
getMass
在类 AbstractAnalyticalPropagator
date
- 轨道的目标日期
Copyright © 2002-2023 CS GROUP. All rights reserved.