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