public class DateDetector extends AbstractDetector<DateDetector> implements TimeStamped
此类用于查找日期事件(即预定义日期的发生)。
从版本5.1开始,它是一个增强的日期探测器:
DateDetector(TimeStamped...)
)addEventDate(AbsoluteDate)
)添加的日期之间的间隔必须大于最小间隔。
默认实现行为是在第一个事件日期发生时停止
传播。可以在构造后调用AbstractDetector.withHandler(EventHandler)
来更改此行为。
Propagator.addEventDetector(EventDetector)
Modifier and Type | Field and Description |
---|---|
static double |
DEFAULT_MAX_CHECK
最大检查的默认值。
|
static double |
DEFAULT_MIN_GAP
添加日期之间的最小间隔的默认值。
|
static double |
DEFAULT_THRESHOLD
收敛阈值的默认值。
|
DEFAULT_MAX_ITER, DEFAULT_MAXCHECK
Modifier | Constructor and Description |
---|---|
protected |
DateDetector(AdaptableInterval maxCheck, double threshold, int maxIter, EventHandler handler, double minGap, TimeStamped... dates)
具有完整参数的受保护构造函数。
|
|
DateDetector(TimeStamped... dates)
构建一个新实例。
|
Modifier and Type | Method and Description |
---|---|
void |
addEventDate(AbsoluteDate target)
添加事件日期。
|
protected DateDetector |
create(AdaptableInterval newMaxCheck, double newThreshold, int newMaxIter, EventHandler newHandler)
构建一个新实例。
|
double |
g(SpacecraftState s)
计算切换函数的值。
|
AbsoluteDate |
getDate()
根据推算器获取当前事件日期。
|
List<TimeStamped> |
getDates()
获取当前管理的所有事件日期,按时间顺序排列。
|
DateDetector |
withMinGap(double newMinGap)
设置添加日期之间的最小间隔。
|
getHandler, getMaxCheckInterval, getMaxIterationCount, getThreshold, init, isForward, withHandler, withMaxCheck, withMaxCheck, withMaxIter, withThreshold
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
durationFrom
public static final double DEFAULT_MAX_CHECK
public static final double DEFAULT_MIN_GAP
public static final double DEFAULT_THRESHOLD
public DateDetector(TimeStamped... dates)
首个事件日期在此处设置,但其他日期可以稍后使用addEventDate(AbsoluteDate)
添加。
dates
- 事件日期列表
addEventDate(AbsoluteDate)
protected DateDetector(AdaptableInterval maxCheck, double threshold, int maxIter, EventHandler handler, double minGap, TimeStamped... dates)
此构造函数不是公共的,因为预期用户使用各种withXxx()
方法使用构建器API设置实例,以便以可读的方式设置实例,而不使用大量参数。
maxCheck
- 最大检查间隔
threshold
- 收敛阈值(秒)
maxIter
- 事件时间搜索中的最大迭代次数
handler
- 事件发生时要调用的事件处理程序
minGap
- 添加日期之间的最小间隔(秒)
dates
- 事件日期列表
public DateDetector withMinGap(double newMinGap)
newMinGap
- 添加日期之间的新最小间隔
protected DateDetector create(AdaptableInterval newMaxCheck, double newThreshold, int newMaxIter, EventHandler newHandler)
create
在类 AbstractDetector<DateDetector>
newMaxCheck
- 最大检查间隔(秒)
newThreshold
- 收敛阈值(秒)
newMaxIter
- 事件时间搜索中的最大迭代次数
newHandler
- 事件发生时要调用的事件处理程序
public List<TimeStamped> getDates()
public double g(SpacecraftState s)
g
在接口 EventDetector
g
在类 AbstractDetector<DateDetector>
s
- 当前状态信息:日期、运动学、姿态
public AbsoluteDate getDate()
getDate
在接口 TimeStamped
public void addEventDate(AbsoluteDate target) throws IllegalArgumentException
要添加的日期必须:
target
- 目标日期
IllegalArgumentException
- 如果日期与已定义的间隔太接近
DateDetector(TimeStamped...)
Copyright © 2002-2023 CS GROUP. All rights reserved.