T
- the type of the field elements
public interface FieldPropagator<T extends org.hipparchus.CalculusFieldElement<T>> extends FieldPVCoordinatesProvider<T>
该接口是轨道传播的顶层抽象。它只允许传播到预定义日期。它由没有时间限制的解析模型实现,由基于外部数据文件的轨道读取器实现,由使用丰富力模型的数值积分器实现,以及由在数值积分完成并收集了密集输出数据后构建的连续模型实现。
Modifier and Type | Field and Description |
---|---|
static double |
DEFAULT_MASS
默认质量。
|
getPosition, getPVCoordinates
static final double DEFAULT_MASS
FieldStepHandlerMultiplexer<T> getMultiplexer()
default void clearStepHandlers()
此便利方法等同于调用getMultiplexer().clear()
getMultiplexer()
, FieldStepHandlerMultiplexer.clear()
default void setStepHandler(T h, FieldOrekitFixedStepHandler<T> handler)
此便利方法等同于调用getMultiplexer().clear()
,然后调用getMultiplexer().add(h, handler)
h
- 固定步长(秒)
handler
- 在每个完成的步骤结束时调用的处理器
getMultiplexer()
, FieldStepHandlerMultiplexer.add(CalculusFieldElement, FieldOrekitFixedStepHandler)
default void setStepHandler(FieldOrekitStepHandler<T> handler)
此便利方法等同于调用getMultiplexer().clear()
,然后调用getMultiplexer().add(handler)
handler
- 在每个完成的步骤结束时调用的处理器
getMultiplexer()
, FieldStepHandlerMultiplexer.add(FieldOrekitStepHandler)
FieldEphemerisGenerator<T> getEphemerisGenerator()
当用户需要在初始时间和目标时间之间的任何时间快速随机访问轨道状态时,可以使用此生成器。一个典型的例子是实现可能在传播范围内向前和向后导航的搜索和迭代算法,即使所使用的传播器是基于积分的并且只从一个初始时间到一个目标时间。
请注意,当与基于积分的传播器一起使用时,生成器将存储所有中间结果。因此,在长积分范围和高精度/短时间步长的情况下,它会占用大量内存。当与解析传播器一起使用时,生成器仅存储开始/停止时间和对解析传播器本身的引用,以便在需要时调用它,因此它的内存占用较低。
返回的星历生成器最初将为空,当随后调用propagate(target)
或propagate(start, target)
中的任一方法时,它将填充传播数据。因此,使用此方法的正确方式是:
FieldEphemerisGenerator<T> generator = propagator.getEphemerisGenerator(); propagator.propagate(target); FieldBoundedPropagator<T> ephemeris = generator.getGeneratedEphemeris();
FieldSpacecraftState<T> getInitialState()
void resetInitialState(FieldSpacecraftState<T> state)
state
- 要考虑的新初始状态
void addAdditionalStateProvider(FieldAdditionalStateProvider<T> additionalStateProvider)
additionalStateProvider
- 用于额外状态的提供程序
List<FieldAdditionalStateProvider<T>> getAdditionalStateProviders()
boolean isAdditionalStateManaged(String name)
name
- 额外状态的名称
String[] getManagedAdditionalStates()
<D extends FieldEventDetector<T>> void addEventDetector(D detector)
D
- 通用版本的类类型
detector
- 要添加的事件探测器
clearEventsDetectors()
, getEventsDetectors()
Collection<FieldEventDetector<T>> getEventsDetectors()
addEventDetector(FieldEventDetector)
, clearEventsDetectors()
void clearEventsDetectors()
AttitudeProvider getAttitudeProvider()
void setAttitudeProvider(AttitudeProvider attitudeProvider)
attitudeProvider
- 姿态提供者
Frame getFrame()
传播参考系是初始状态的定义参考系,因此应在设置了初始状态之后调用此方法,否则可能返回null。
resetInitialState(FieldSpacecraftState)
FieldSpacecraftState<T> propagate(FieldAbsoluteDate<T> target)
简单的传播器仅使用目标日期作为计算传播状态的规范。功能更丰富的传播器可以考虑其他信息并提供不同的操作模式或G-stop功能以在特定事件发生时停止。在这些情况下,目标日期仅是一个提示,而不是强制性目标。
target
- 应传播轨道状态的目标日期
FieldSpacecraftState<T> propagate(FieldAbsoluteDate<T> start, FieldAbsoluteDate<T> target)
这些传播器使用开始日期和目标日期来计算传播状态。对于使用事件检测机制的传播器,如果提供的开始日期与初始状态日期不同,则会执行第一次简单传播,而不处理任何事件计算。然后从开始日期到目标日期执行完整传播。
start
- 应传播轨道状态的开始日期
target
- 应传播轨道状态的目标日期
Copyright © 2002-2023 CS GROUP. All rights reserved.