public interface EventDetector
它反映了来自Hipparchus的ODEEventHandler
接口,但提供了一种空间动力学接口来处理方法。
事件探测器是满足传播器关于离散条件要求的一个有用解决方案。传播器会定期查询每个事件探测器的状态,至少每隔最大检查间隔
一次,但可能更频繁。当基础的g切换函数的符号发生变化时,将运行一个根查找算法来精确定位事件,直到配置的收敛阈值
。因此,最大检查间隔
用于分离根,通常远大于收敛阈值
。
g切换函数的物理意义实际上并未被事件检测算法使用。它的含义因事件探测器而异。一个例子是可见性探测器,它可以使用卫星在地平线以上的角仰角作为g切换函数。在这种情况下,当卫星升高到地平线以上时,函数会从负值切换到正值,当卫星再次降落到地平线以下时,函数会从正值切换到负值。另一个例子是近地点探测器,它可以使用位置和速度的点积。在这种情况下,当卫星穿过近地点时,函数会从负值切换到正值,当卫星穿过远地点时,函数会从正值切换到负值。
当准确定位到g切换函数变化的状态时,通过调用相关的eventOccurred
方法来触发相应的事件,该方法由关联的handler
调用。该方法可以对事件进行任何需要的操作(记录、执行一些处理、忽略...)。方法的返回值将被传播器用于停止或恢复传播,可能会改变状态向量。
Modifier and Type | Method and Description |
---|---|
double |
g(SpacecraftState s)
计算切换函数的值。
|
EventHandler |
getHandler()
获取处理器。
|
AdaptableInterval |
getMaxCheckInterval()
获取切换函数检查之间的最大时间间隔。
|
int |
getMaxIterationCount()
获取事件时间搜索中的最大迭代次数。
|
double |
getThreshold()
获取事件时间搜索中的收敛阈值。
|
default void |
init(SpacecraftState s0, AbsoluteDate t)
在传播开始时初始化事件处理器。
|
default void init(SpacecraftState s0, AbsoluteDate t)
此方法在传播开始时调用一次。如果需要,事件处理器可以用它来初始化一些内部数据。
默认实现不执行任何操作
s0
- 初始状态
t
- 集成的目标时间
double g(SpacecraftState s)
s
- 当前状态信息:日期、运动学、姿态
double getThreshold()
AdaptableInterval getMaxCheckInterval()
int getMaxIterationCount()
EventHandler getHandler()
Copyright © 2002-2023 CS GROUP. All rights reserved.