public class BooleanDetector extends AbstractDetector<BooleanDetector>
对于成像卫星的一个例子可能是仅在卫星在正上方(仰角> 0)且地面点被阳光照射(太阳仰角> 0)时检测事件。另一个稍微牵强的例子使用OR运算符将是检测对一组地面站的访问,并且仅在卫星进入或离开该组视野时报告事件,而不是地面站之间的切换。
对于BooleanDetector,重要的是底层事件检测器的g函数的符号不是任意的,而是具有语义含义,例如进入或退出,真或假。该类与检测器一起工作,这些检测器检测进入或退出区域,例如EclipseDetector
,ElevationDetector
,LatitudeCrossingDetector
。将此检测器与不基于进入或退出区域的检测器一起使用,例如DateDetector
,LongitudeCrossingDetector
,可能会导致意外结果。要对后一种类型的事件检测器应用条件,通常更适合使用EventEnablingPredicateFilter
。
andCombine(Collection)
, orCombine(Collection)
, notCombine(EventDetector)
, EventEnablingPredicateFilter
, EventSlopeFilter
DEFAULT_MAX_ITER, DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
Modifier | Constructor and Description |
---|---|
protected |
BooleanDetector(List<EventDetector> detectors, org.orekit.propagation.events.BooleanDetector.Operator operator, AdaptableInterval newMaxCheck, double newThreshold, int newMaxIter, EventHandler newHandler)
具有所有参数的私有构造函数。
|
Modifier and Type | Method and Description |
---|---|
static BooleanDetector |
andCombine(Collection<? extends EventDetector> detectors)
创建一个新的事件检测器,它是给定事件检测器的逻辑AND。
|
static BooleanDetector |
andCombine(EventDetector... detectors)
创建一个新的事件检测器,它是给定事件检测器的逻辑AND。
|
protected BooleanDetector |
create(AdaptableInterval newMaxCheck, double newThreshold, int newMaxIter, EventHandler newHandler)
构建一个新实例。
|
double |
g(SpacecraftState s)
计算切换函数的值。
|
List<EventDetector> |
getDetectors()
获取原始检测器的列表。
|
void |
init(SpacecraftState s0, AbsoluteDate t)
在传播开始时初始化事件处理程序。
|
static NegateDetector |
notCombine(EventDetector detector)
创建一个新的事件检测器,它否定另一个检测器的g函数。
|
static BooleanDetector |
orCombine(Collection<? extends EventDetector> detectors)
创建一个新的事件检测器,它是给定事件检测器的逻辑OR。
|
static BooleanDetector |
orCombine(EventDetector... detectors)
创建一个新的事件检测器,它是给定事件检测器的逻辑OR。
|
getHandler, getMaxCheckInterval, getMaxIterationCount, getThreshold, isForward, withHandler, withMaxCheck, withMaxCheck, withMaxIter, withThreshold
protected BooleanDetector(List<EventDetector> detectors, org.orekit.propagation.events.BooleanDetector.Operator operator, AdaptableInterval newMaxCheck, double newThreshold, int newMaxIter, EventHandler newHandler)
detectors
- 操作数。
operator
- 应用于操作数的g函数值的约简运算符。
newMaxCheck
- 最大检查间隔(秒)。
newThreshold
- 收敛阈值(秒)。
newMaxIter
- 最大迭代次数。
newHandler
- 事件处理程序。
public static BooleanDetector andCombine(EventDetector... detectors)
如果且仅当detectors
中所有检测器的g函数都为正时,创建的事件检测器的g函数才为正。
起始间隔、阈值和迭代计数设置为所有detectors
中最严格(最小)的值。不使用底层detectors
的事件处理程序,而是默认处理程序为ContinueOnEvent
。
detectors
- 操作数。必须至少包含一个检测器。
NoSuchElementException
- 如果detectors
为空。
BooleanDetector
,andCombine(Collection)
,orCombine(EventDetector...)
,notCombine(EventDetector)
public static BooleanDetector andCombine(Collection<? extends EventDetector> detectors)
如果且仅当detectors
中所有检测器的g函数都为正时,创建的事件检测器的g函数才为正。
起始间隔、阈值和迭代计数设置为detectors
中最严格(最小)的值。不使用底层detectors
的事件处理程序,而是默认处理程序为ContinueOnEvent
。
detectors
- 操作数。必须至少包含一个检测器。
NoSuchElementException
- 如果detectors
为空。
BooleanDetector
,andCombine(EventDetector...)
,orCombine(Collection)
,notCombine(EventDetector)
public static BooleanDetector orCombine(EventDetector... detectors)
如果且仅当detectors
中至少一个事件检测器的g函数为正时,创建的事件检测器的g函数才为正。
起始间隔、阈值和迭代计数设置为detectors
中最严格(最小)的值。不使用底层EventDetectors的事件处理程序,而是默认处理程序为ContinueOnEvent
。
detectors
- 操作数。必须至少包含一个检测器。
NoSuchElementException
- 如果detectors
为空。
BooleanDetector
,orCombine(Collection)
,andCombine(EventDetector...)
,notCombine(EventDetector)
public static BooleanDetector orCombine(Collection<? extends EventDetector> detectors)
如果且仅当detectors
中至少一个事件检测器的g函数为正时,创建的事件检测器的g函数才为正。
起始间隔、阈值和迭代计数设置为detectors
中最严格(最小)的值。不使用底层EventDetectors的事件处理程序,而是默认处理程序为ContinueOnEvent
。
detectors
- 操作数。必须至少包含一个检测器。
NoSuchElementException
- 如果detectors
为空。
BooleanDetector
,orCombine(Collection)
,andCombine(EventDetector...)
,notCombine(EventDetector)
public static NegateDetector notCombine(EventDetector detector)
此探测器将使用与detector
相同的EventDetector.getMaxCheckInterval()
、EventDetector.getThreshold()
和EventDetector.getMaxIterationCount()
进行初始化。底层探测器的事件处理程序不会被使用,而是使用默认处理程序ContinueOnEvent
。
detector
- 要否定的探测器。
detector
的符号相反。
andCombine(Collection)
、orCombine(Collection)
、BooleanDetector
public double g(SpacecraftState s)
AbstractDetector
g
在接口 EventDetector
中
g
在类 AbstractDetector<BooleanDetector>
中
s
- 当前状态信息:日期、运动学、姿态
protected BooleanDetector create(AdaptableInterval newMaxCheck, double newThreshold, int newMaxIter, EventHandler newHandler)
AbstractDetector
create
在类 AbstractDetector<BooleanDetector>
中
newMaxCheck
- 最大检查间隔(秒)
newThreshold
- 收敛阈值(秒)
newMaxIter
- 事件时间搜索中的最大迭代次数
newHandler
- 事件发生时要调用的事件处理程序
public void init(SpacecraftState s0, AbsoluteDate t)
AbstractDetector
此方法在传播开始时调用一次。如果需要,事件处理程序可以用于初始化一些内部数据。
默认实现不执行任何操作
此实现设置传播方向并初始化事件处理程序。如果子类覆盖此方法,则应调用super.init(s0, t)
。
init
在接口 EventDetector
中
init
在类 AbstractDetector<BooleanDetector>
中
s0
- 初始状态
t
- 集成的目标时间
public List<EventDetector> getDetectors()
Copyright © 2002-2023 CS GROUP. All rights reserved.