public abstract class AbstractAnalyticalPropagator extends AbstractPropagator
propagateOrbit(AbsoluteDate)
和getMass(AbsoluteDate)
。第一个方法应该从内部存储的初始状态开始直接传播,直到指定的目标日期。
DEFAULT_MASS
Modifier | Constructor and Description |
---|---|
protected |
AbstractAnalyticalPropagator(AttitudeProvider attitudeProvider)
构建一个新实例。
|
Modifier and Type | Method and Description |
---|---|
protected SpacecraftState |
acceptStep(OrekitStepInterpolator interpolator, AbsoluteDate target)
接受一个步长,触发事件和步长处理器。
|
<T extends EventDetector> |
addEventDetector(T detector)
添加一个事件探测器。
|
protected SpacecraftState |
basicPropagate(AbsoluteDate date)
在没有任何高级功能的情况下传播轨道。
|
void |
clearEventsDetectors()
移除所有事件探测器。
|
EphemerisGenerator |
getEphemerisGenerator()
设置一个星历生成器,它将监视传播过程,一旦完成就会从中构建星历。
|
Collection<EventDetector> |
getEventsDetectors()
获取所有已添加的事件探测器。
|
protected List<String> |
getJacobiansColumnsNames()
|
protected abstract double |
getMass(AbsoluteDate date)
获取质量。
|
PVCoordinatesProvider |
getPvProvider()
获取PV坐标提供程序。
|
SpacecraftState |
propagate(AbsoluteDate start, AbsoluteDate target)
从开始日期向目标日期传播。
|
protected abstract Orbit |
propagateOrbit(AbsoluteDate date)
将轨道推算到特定的目标日期。
|
protected abstract void |
resetIntermediateState(SpacecraftState state, boolean forward)
重置中间状态。
|
addAdditionalStateProvider, createHarvester, getAdditionalStateProviders, getAttitudeProvider, getFrame, getHarvester, getInitialState, getManagedAdditionalStates, getMultiplexer, getPVCoordinates, getStartDate, initializeAdditionalStates, initializePropagation, isAdditionalStateManaged, propagate, resetInitialState, setAttitudeProvider, setStartDate, setupMatricesComputation, stateChanged, updateAdditionalStates, updateUnmanagedStates
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
clearStepHandlers, getDefaultLaw, setStepHandler, setStepHandler
getPosition
protected AbstractAnalyticalPropagator(AttitudeProvider attitudeProvider)
attitudeProvider
- 姿态计算提供程序
public EphemerisGenerator getEphemerisGenerator()
当用户需要在初始时间和目标时间之间的任何时间快速随机访问轨道状态时,可以使用此生成器。一个典型的例子是实现搜索和迭代算法,这些算法可能在找到结果之前在传播范围内向前和向后导航,即使所使用的传播器是基于积分的,只能从一个初始时间到一个目标时间。
请注意,当与基于积分的传播器一起使用时,生成器将存储所有中间结果。因此,在长积分范围和高精度/短时间步长的情况下,它会占用大量内存。当与解析器一起使用时,生成器只存储开始/停止时间和对解析器本身的引用,以便根据需要调用它,因此它的内存占用较少。
返回的星历生成器最初将是空的,在随后调用propagate(target)
或propagate(start, target)
之一时,它将填充传播数据。因此,使用此方法的正确方式是:
EphemerisGenerator generator = propagator.getEphemerisGenerator(); propagator.propagate(target); BoundedPropagator ephemeris = generator.getGeneratedEphemeris();
public <T extends EventDetector> void addEventDetector(T detector)
T
- 通用版本的类类型
detector
- 要添加的事件探测器
Propagator.clearEventsDetectors()
, Propagator.getEventsDetectors()
public Collection<EventDetector> getEventsDetectors()
Propagator.addEventDetector(EventDetector)
, Propagator.clearEventsDetectors()
public void clearEventsDetectors()
public SpacecraftState propagate(AbsoluteDate start, AbsoluteDate target)
这些传播器使用开始日期和目标日期来计算传播状态。对于使用事件检测机制的传播器,如果提供的开始日期与初始状态日期不同,则会执行第一次简单传播,而不处理任何事件计算。然后从开始日期到目标日期执行完整传播。
start
- 应传播轨道状态的开始日期
target
- 应传播轨道状态的目标日期
protected SpacecraftState acceptStep(OrekitStepInterpolator interpolator, AbsoluteDate target) throws org.hipparchus.exception.MathRuntimeException
interpolator
- 当前步长的插值器
target
- 最终传播时间
org.hipparchus.exception.MathRuntimeException
- 如果无法定位事件
protected abstract double getMass(AbsoluteDate date)
date
- 轨道的目标日期
public PVCoordinatesProvider getPvProvider()
protected abstract void resetIntermediateState(SpacecraftState state, boolean forward)
state
- 要考虑的新中间状态
forward
- 如果为true,则中间状态对其后的传播是有效的
protected abstract Orbit propagateOrbit(AbsoluteDate date)
date
- 轨道的目标日期
protected SpacecraftState basicPropagate(AbsoluteDate date)
这个方法在精神上类似于propagate(org.orekit.time.AbsoluteDate, org.orekit.time.AbsoluteDate)
方法,只是它在传播过程中不调用任何处理程序,也不处理任何离散事件,也不处理任何额外状态。它总是在指定的日期停止。
date
- 传播的目标日期
Copyright © 2002-2023 CS GROUP. All rights reserved.