T
- class type for the generic version
public class EventState<T extends EventDetector> extends Object
事件探测器
的状态。
此类在很大程度上基于Hipparchus库中同名类。所做的更改包括用空间动力学类型(AbsoluteDate
,SpacecraftState
)替换原始类型(double和double数组)。
每当传播器提出一步时,应检查事件探测器。此类在一次传播步骤中处理一个探测器的状态,并引用前一步结束时的状态。此信息用于确定在建议的步骤中探测器是否应触发事件(因此步骤应缩短以确保事件发生在边界而不是步骤内部)。
Modifier and Type | Class and Description |
---|---|
static class |
EventState.EventOccurrence
用于保存与事件发生相关的数据,这些数据需要决定如何修改积分的类。
|
Constructor and Description |
---|
EventState(T detector)
简单构造函数。
|
Modifier and Type | Method and Description |
---|---|
EventState.EventOccurrence |
doEvent(SpacecraftState state)
通知用户的监听器事件。
|
boolean |
evaluateStep(OrekitStepInterpolator interpolator)
评估建议步骤对事件探测器的影响。
|
AbsoluteDate |
getEventDate()
获取当前步骤中触发事件的发生时间。
|
T |
getEventDetector()
获取基础事件探测器。
|
void |
init(SpacecraftState s0, AbsoluteDate t)
在传播开始时初始化事件处理程序。
|
void |
reinitializeBegin(OrekitStepInterpolator interpolator)
重新初始化步骤的开始。
|
boolean |
tryAdvance(SpacecraftState state, OrekitStepInterpolator interpolator)
尝试接受到给定时间的当前历史记录。
|
public EventState(T detector)
detector
- 监控的事件探测器
public T getEventDetector()
public void init(SpacecraftState s0, AbsoluteDate t)
此方法在传播开始时调用一次。如果需要,事件处理程序可以使用此方法初始化一些内部数据。
s0
- 初始状态
t
- 集成的目标时间
public void reinitializeBegin(OrekitStepInterpolator interpolator)
interpolator
- 适用于当前步骤的插值器
public boolean evaluateStep(OrekitStepInterpolator interpolator) throws org.hipparchus.exception.MathRuntimeException
interpolator
- 用于建议步骤的步骤插值器
org.hipparchus.exception.MathRuntimeException
- 如果无法定位事件
public AbsoluteDate getEventDate()
public boolean tryAdvance(SpacecraftState state, OrekitStepInterpolator interpolator)
在调用doEvent(SpacecraftState)
之前不需要调用此方法,该方法使用相同状态。在调用其他事件探测器的doEvent(SpacecraftState)
之前需要调用此方法。
state
- 要尝试接受的状态。
interpolator
- 用于查找新根(如果有)的插值器。
state
相同时间或之前的时间上尚未检测到的事件。换句话说,false
表示继续,而true
表示停止并先处理我的事件。
public EventState.EventOccurrence doEvent(SpacecraftState state)
EventHandler.resetState(EventDetector, SpacecraftState)
。
state
- 事件发生时的状态。这必须与getEventDate()
的当前值相同。
Action.RESET_STATE
的新状态。否则,新状态为state
。如果操作为Action.STOP
,则停止时间指示积分应在根之后停止的时间。这保证了积分将在根上或之后停止,以便可以安全地重新启动积分。
Copyright © 2002-2023 CS GROUP. All rights reserved.