T
- type of the detector
public abstract class AbstractDetector<T extends AbstractDetector<T>> extends Object implements EventDetector
Propagator.addEventDetector(EventDetector)
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_MAX_ITER
事件时间搜索中的默认最大迭代次数。
|
static double |
DEFAULT_MAXCHECK
默认的最大检查间隔(秒)。
|
static double |
DEFAULT_THRESHOLD
默认的收敛阈值(秒)。
|
Modifier | Constructor and Description |
---|---|
protected |
AbstractDetector(AdaptableInterval maxCheck, double threshold, int maxIter, EventHandler handler)
构建一个新实例。
|
protected |
AbstractDetector(double maxCheck, double threshold, int maxIter, EventHandler handler)
构建一个新实例。
|
Modifier and Type | Method and Description |
---|---|
protected abstract T |
create(AdaptableInterval newMaxCheck, double newThreshold, int newMaxIter, EventHandler newHandler)
构建一个新实例。
|
abstract double |
g(SpacecraftState s)
计算切换函数的值。
|
EventHandler |
getHandler()
获取处理程序。
|
AdaptableInterval |
getMaxCheckInterval()
获取切换函数检查之间的最大时间间隔。
|
int |
getMaxIterationCount()
获取事件时间搜索中的最大迭代次数。
|
double |
getThreshold()
获取事件时间搜索中的收敛阈值。
|
void |
init(SpacecraftState s0, AbsoluteDate t)
在传播开始时初始化事件处理程序。
|
boolean |
isForward()
检查当前传播是向前还是向后。
|
T |
withHandler(EventHandler newHandler)
设置事件处理程序以在事件发生时调用。
|
T |
withMaxCheck(AdaptableInterval newMaxCheck)
设置最大检查间隔。
|
T |
withMaxCheck(double newMaxCheck)
设置最大检查间隔。
|
T |
withMaxIter(int newMaxIter)
设置事件时间搜索中的最大迭代次数。
|
T |
withThreshold(double newThreshold)
设置收敛阈值。
|
public static final double DEFAULT_MAXCHECK
public static final double DEFAULT_THRESHOLD
public static final int DEFAULT_MAX_ITER
protected AbstractDetector(double maxCheck, double threshold, int maxIter, EventHandler handler)
maxCheck
- 最大检查间隔,必须严格为正(秒)
threshold
- 收敛阈值(秒)
maxIter
- 事件时间搜索中的最大迭代次数
handler
- 事件发生时调用的事件处理程序
protected AbstractDetector(AdaptableInterval maxCheck, double threshold, int maxIter, EventHandler handler)
maxCheck
- 最大检查间隔
threshold
- 收敛阈值(秒)
maxIter
- 事件时间搜索中的最大迭代次数
handler
- 事件发生时调用的事件处理程序
public void init(SpacecraftState s0, AbsoluteDate t)
此方法在传播开始时调用一次。如果需要,事件处理程序可以用于初始化一些内部数据。
默认实现不执行任何操作
此实现设置传播方向并初始化事件处理程序。如果子类覆盖此方法,则应调用super.init(s0, t)
。
init
在接口 EventDetector
s0
- 初始状态
t
- 集成的目标时间
public abstract double g(SpacecraftState s)
g
在接口 EventDetector
s
- 当前状态信息:日期、运动学、姿态
public AdaptableInterval getMaxCheckInterval()
getMaxCheckInterval
在接口 EventDetector
public int getMaxIterationCount()
getMaxIterationCount
在接口 EventDetector
public double getThreshold()
getThreshold
在接口 EventDetector
public T withMaxCheck(double newMaxCheck)
如果之前已配置了最大检查间隔,将覆盖它。
newMaxCheck
- 最大检查间隔(秒)
public T withMaxCheck(AdaptableInterval newMaxCheck)
如果之前已配置了最大检查间隔,将覆盖它。
newMaxCheck
- 最大检查间隔(秒)
public T withMaxIter(int newMaxIter)
如果之前已配置了迭代次数,将覆盖它。
newMaxIter
- 事件时间搜索中的最大迭代次数
public T withThreshold(double newThreshold)
如果之前已配置了收敛阈值,将覆盖它。
newThreshold
- 收敛阈值(秒)
public T withHandler(EventHandler newHandler)
如果之前已配置了处理程序,将覆盖它。
newHandler
- 事件发生时调用的事件处理程序
public EventHandler getHandler()
getHandler
在接口 EventDetector
protected abstract T create(AdaptableInterval newMaxCheck, double newThreshold, int newMaxIter, EventHandler newHandler)
newMaxCheck
- 最大检查间隔(秒)
newThreshold
- 收敛阈值(秒)
newMaxIter
- 事件时间搜索中的最大迭代次数
newHandler
- 事件发生时调用的事件处理程序
public boolean isForward()
Copyright © 2002-2023 CS GROUP. All rights reserved.