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