public class LongitudeCrossingDetector extends AbstractDetector<LongitudeCrossingDetector>
该探测器标识了当飞船相对于中心天体穿越固定经度时。
DEFAULT_MAX_ITER, DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
Modifier | Constructor and Description |
---|---|
protected |
LongitudeCrossingDetector(AdaptableInterval maxCheck, double threshold, int maxIter, EventHandler handler, OneAxisEllipsoid body, double longitude)
全参数保护构造函数。
|
|
LongitudeCrossingDetector(double maxCheck, double threshold, OneAxisEllipsoid body, double longitude)
构建一个探测器。
|
|
LongitudeCrossingDetector(OneAxisEllipsoid body, double longitude)
构建一个新的探测器。
|
Modifier and Type | Method and Description |
---|---|
protected LongitudeCrossingDetector |
create(AdaptableInterval newMaxCheck, double newThreshold, int newMaxIter, EventHandler newHandler)
构建一个新实例。
|
double |
g(SpacecraftState s)
计算探测函数的值。
|
OneAxisEllipsoid |
getBody()
获取定义地理区域的天体。
|
double |
getLongitude()
获取要穿越的固定经度(弧度)。
|
void |
init(SpacecraftState s0, AbsoluteDate t)
在传播开始时初始化事件处理程序。
|
getHandler, getMaxCheckInterval, getMaxIterationCount, getThreshold, isForward, withHandler, withMaxCheck, withMaxCheck, withMaxIter, withThreshold
public LongitudeCrossingDetector(OneAxisEllipsoid body, double longitude)
新实例使用最大检查间隔(AbstractDetector.DEFAULT_MAXCHECK
)和收敛阈值(AbstractDetector.DEFAULT_THRESHOLD
)的默认值。
body
- 定义经度的天体
longitude
- 要穿越的经度
public LongitudeCrossingDetector(double maxCheck, double threshold, OneAxisEllipsoid body, double longitude)
maxCheck
- 最大检查间隔(秒)
threshold
- 收敛阈值(秒)
body
- 定义经度的天体
longitude
- 要穿越的经度
protected LongitudeCrossingDetector(AdaptableInterval maxCheck, double threshold, int maxIter, EventHandler handler, OneAxisEllipsoid body, double longitude)
此构造函数不是公共的,因为用户应该使用建造者API,通过各种withXxx()
方法设置实例,以便以可读的方式设置实例,而不使用大量参数。
maxCheck
- 最大检查间隔
threshold
- 收敛阈值(秒)
maxIter
- 事件时间搜索中的最大迭代次数
handler
- 事件发生时要调用的事件处理程序
body
- 定义经度的天体
longitude
- 要穿越的经度
protected LongitudeCrossingDetector create(AdaptableInterval newMaxCheck, double newThreshold, int newMaxIter, EventHandler newHandler)
create
在类 AbstractDetector<LongitudeCrossingDetector>
newMaxCheck
- 最大检查间隔(秒)
newThreshold
- 收敛阈值(秒)
newMaxIter
- 事件时间搜索中的最大迭代次数
newHandler
- 事件发生时要调用的事件处理程序
public OneAxisEllipsoid getBody()
public double getLongitude()
public void init(SpacecraftState s0, AbsoluteDate t)
此方法在传播开始时调用一次。如果需要,事件处理程序可以用它来初始化一些内部数据。
默认实现不执行任何操作
此实现设置传播方向并初始化事件处理程序。如果子类覆盖此方法,应调用super.init(s0, t)
。
init
在接口 EventDetector
init
在类 AbstractDetector<LongitudeCrossingDetector>
s0
- 初始状态
t
- 集成的目标时间
public double g(SpacecraftState s)
该值是飞船与要穿越的固定经度之间的经度差,通过一些符号调整以确保连续性。这些调整意味着事件检测中的increasing
标志在这里变得无关紧要!例如,顺行飞船的经度将始终增加,但此g函数将增加和减少,因此它将在每个轨道上交叉零值,交替轨道上的增加和减少方向。如果需要区分东向和西向的穿越,必须检查速度方向,而不是查看increasing
标志。
g
在接口 EventDetector
g
在类 AbstractDetector<LongitudeCrossingDetector>
s
- 当前状态信息:日期、运动学、姿态
Copyright © 2002-2023 CS GROUP. All rights reserved.