public class FieldOfViewDetector extends AbstractDetector<FieldOfViewDetector>
视场
。
请注意,此检测器不知道任何遮挡目标的视线的天体。因此,它可以用于从地球观测到星际任务设计的许多情境。例如,在地球观测情境中,可以轻松地将其与高度检测器
结合起来,使用BooleanDetector.andCombine(java.util.Collection)
来计算卫星视场内的地面站可见性机会。
默认实现行为是在视场进入时继续
传播,在视场退出时停止
传播。可以在构造后调用AbstractDetector.withHandler(EventHandler)
来更改此行为。
Propagator.addEventDetector(EventDetector)
, FootprintOverlapDetector
, VisibilityTrigger
DEFAULT_MAX_ITER, DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
Modifier | Constructor and Description |
---|---|
protected |
FieldOfViewDetector(AdaptableInterval maxCheck, double threshold, int maxIter, EventHandler handler, PVCoordinatesProvider pvTarget, double radiusTarget, VisibilityTrigger trigger, FieldOfView fov)
具有完整参数的受保护构造函数。
|
|
FieldOfViewDetector(PVCoordinatesProvider pvTarget, double radiusTarget, VisibilityTrigger trigger, FieldOfView fov)
构建一个新实例。
|
|
FieldOfViewDetector(PVCoordinatesProvider pvTarget, FieldOfView fov)
构建一个新实例。
|
Modifier and Type | Method and Description |
---|---|
protected FieldOfViewDetector |
create(AdaptableInterval newMaxCheck, double newThreshold, int newMaxIter, EventHandler newHandler)
构建一个新实例。
|
double |
g(SpacecraftState s)
计算切换函数的值。
|
FieldOfView |
getFOV()
获取视场。
|
PVCoordinatesProvider |
getPVTarget()
获取目标的位置/速度提供器。
|
getHandler, getMaxCheckInterval, getMaxIterationCount, getThreshold, init, isForward, withHandler, withMaxCheck, withMaxCheck, withMaxIter, withThreshold
public FieldOfViewDetector(PVCoordinatesProvider pvTarget, FieldOfView fov)
在距离视场边界检查之间的最大间隔应小于要处理的最小通行持续时间的一半,否则可能会错过一些短通行。
pvTarget
- 考虑目标的位置/速度提供器
fov
- 视场
public FieldOfViewDetector(PVCoordinatesProvider pvTarget, double radiusTarget, VisibilityTrigger trigger, FieldOfView fov)
在距离视场边界检查之间的最大间隔应小于要处理的最小通行持续时间的一半,否则可能会错过一些短通行。
pvTarget
- 考虑目标的位置/速度提供器
radiusTarget
- 目标的半径,被视为球体(米)
trigger
- 球体的可见性触发器
fov
- 视场
protected FieldOfViewDetector(AdaptableInterval maxCheck, double threshold, int maxIter, EventHandler handler, PVCoordinatesProvider pvTarget, double radiusTarget, VisibilityTrigger trigger, FieldOfView fov)
此构造函数不是公共的,因为用户应该使用各种withXxx()
方法的构建器API来设置实例,以便以可读的方式设置实例,而不使用大量参数。
maxCheck
- 最大检查间隔
threshold
- 收敛阈值(秒)
maxIter
- 事件时间搜索中的最大迭代次数
handler
- 事件发生时要调用的事件处理器
pvTarget
- 考虑目标的位置/速度提供器
radiusTarget
- 目标的半径,被视为球体(米)
trigger
- 球体的可见性触发器
fov
- 视场
protected FieldOfViewDetector create(AdaptableInterval newMaxCheck, double newThreshold, int newMaxIter, EventHandler newHandler)
create
在类 AbstractDetector<FieldOfViewDetector>
newMaxCheck
- 最大检查间隔(秒)
newThreshold
- 收敛阈值(秒)
newMaxIter
- 事件时间搜索中的最大迭代次数
newHandler
- 事件发生时要调用的事件处理器
public PVCoordinatesProvider getPVTarget()
public FieldOfView getFOV()
public double g(SpacecraftState s)
g函数值是目标中心与视场边界
之间的角偏移,加上或减去目标角半径,取决于VisibilityTrigger
,减去视场边界余量
。因此,如果目标在视场内可见,则为负值,如果目标在视场外可见,则为正值。
根据先前的定义,当目标进入视场时,会生成一个减小事件,当目标离开视场时,会生成一个增加事件。
g
在接口 EventDetector
g
在类 AbstractDetector<FieldOfViewDetector>
s
- 当前状态信息:日期、运动学、姿态
Copyright © 2002-2023 CS GROUP. All rights reserved.