A
- type of the start detector
O
- type of the stop detector
public abstract class StartStopEventsTrigger<A extends AbstractDetector<A>,O extends AbstractDetector<O>> extends AbstractManeuverTriggers
当启动探测器变为正时,推进器开始点火。当停止探测器变为正时,推进器停止点火。这两个探测器不应同时为正。日期探测器不适用,因为它不限定一个时间间隔。它们可以同时为负。
IntervalEventTrigger
DATATION_ACCURACY
Modifier | Constructor and Description |
---|---|
protected |
StartStopEventsTrigger(A prototypeStartDetector, O prototypeStopDetector)
简单构造函数。
|
Modifier and Type | Method and Description |
---|---|
protected abstract <D extends FieldAbstractDetector<D,S>,S extends org.hipparchus.CalculusFieldElement<S>> |
convertStartDetector(org.hipparchus.Field<S> field, A detector)
将原始的启动探测器转换为字段启动探测器。
|
protected abstract <D extends FieldAbstractDetector<D,S>,S extends org.hipparchus.CalculusFieldElement<S>> |
convertStopDetector(org.hipparchus.Field<S> field, O detector)
将原始的停止探测器转换为字段停止探测器。
|
Stream<EventDetector> |
getEventDetectors()
获取与模型相关的离散事件。
|
<S extends org.hipparchus.CalculusFieldElement<S>> |
getFieldEventDetectors(org.hipparchus.Field<S> field)
获取与模型相关的离散事件。
|
A |
getStartDetector()
获取启动探测器。
|
O |
getStopDetector()
获取停止探测器。
|
void |
init(SpacecraftState initialState, AbsoluteDate target)
在传播开始时调用的初始化方法。
|
protected boolean |
isFiringOnInitialState(SpacecraftState initialState, boolean isForward)
用于检查初始化时推进器是否点火的方法。
|
addResetter, addResetter, applyResetters, applyResetters, getFirings, init, initializeResetters, initializeResetters, isFiring, isFiring, notifyResetters, notifyResetters
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getName
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, getParametersDrivers, isSupported
getEventDetectors, getFieldEventDetectors
protected StartStopEventsTrigger(A prototypeStartDetector, O prototypeStopDetector)
请注意,作为参数传递的startDetector
和stopDetector
仅用作从中构建新探测器的原型,使用它们的withHandler
方法设置内部处理程序。原型探测器的原始事件处理程序将被忽略,永远不会被调用。
如果触发器用于基于场的传播
,则探测器将自动转换为字段等效探测器。但请注意,转换后的传播器的eventOccurred
将调用原型探测器中同名方法,以获取正确的返回值。
prototypeStartDetector
- 启动探测器的原型
prototypeStopDetector
- 停止探测器的原型
public A getStartDetector()
public O getStopDetector()
public void init(SpacecraftState initialState, AbsoluteDate target)
默认实现不执行任何操作。
init
在接口 ManeuverTriggers
中指定
init
在类 AbstractManeuverTriggers
中覆盖
initialState
- 初始航天器状态(传播开始时)。
target
- 传播的日期。不等于initialState.getDate()
。
protected boolean isFiringOnInitialState(SpacecraftState initialState, boolean isForward)
isFiringOnInitialState
在类 AbstractManeuverTriggers
中指定
initialState
- 初始航天器状态
isForward
- 如果为true,则传播将是向前方向的
public Stream<EventDetector> getEventDetectors()
此方法不应被多次调用,只能由传播器调用一次,因为每次调用都会重建事件探测器
public <S extends org.hipparchus.CalculusFieldElement<S>> Stream<FieldEventDetector<S>> getFieldEventDetectors(org.hipparchus.Field<S> field)
此方法不应被多次调用,只能由传播器调用一次,因为每次调用都会重建事件探测器
S
- 扩展CalculusFieldElement<T>
field
- 状态所属的字段
protected abstract <D extends FieldAbstractDetector<D,S>,S extends org.hipparchus.CalculusFieldElement<S>> FieldAbstractDetector<D,S> convertStartDetector(org.hipparchus.Field<S> field, A detector)
在转换后的探测器中不需要设置withMaxCheck
、withThreshold
或withHandler
,这将由调用者完成。
将某些XyzDetector
转换为FieldXyzDetector
的此方法的骨架实现,考虑到这些探测器是从日期和数字参数创建的:
protected <D extends FieldAbstractDetector<D, S>, S extends CalculusFieldElement<S>>
FieldAbstractDetector<D, S> convertStartDetector(final Field<S> field, final XyzDetector detector) {
final FieldAbsoluteDate<S> date = new FieldAbsoluteDate<>(field, detector.getDate());
final S param = field.getZero().newInstance(detector.getParam());
final FieldAbstractDetector<D, S> converted = (FieldAbstractDetector<D, S>) new FieldXyzDetector<>(date, param);
return converted;
}
D
- 事件探测器的类型
S
- 字段元素的类型
field
- 状态所属的字段
detector
- 要转换的原始启动探测器
protected abstract <D extends FieldAbstractDetector<D,S>,S extends org.hipparchus.CalculusFieldElement<S>> FieldAbstractDetector<D,S> convertStopDetector(org.hipparchus.Field<S> field, O detector)
在转换后的探测器中不需要设置withMaxCheck
、withThreshold
或withHandler
,这将由调用者完成。
将某些XyzDetector
转换为FieldXyzDetector
的此方法的骨架实现,考虑到这些探测器是从日期和数字参数创建的:
protected <D extends FieldAbstractDetector<D, S>, S extends CalculusFieldElement<S>>
FieldAbstractDetector<D, S> convertStopDetector(final Field<S> field, final XyzDetector detector) {
final FieldAbsoluteDate<S> date = new FieldAbsoluteDate<>(field, detector.getDate());
final S param = field.getZero().newInstance(detector.getParam());
final FieldAbstractDetector<D, S> converted = (FieldAbstractDetector<D, S>) new FieldXyzDetector<>(date, param);
return converted;
}
D
- 事件探测器的类型
S
- 字段元素的类型
field
- 状态所属的字段
detector
- 要转换的原始停止探测器
Copyright © 2002-2023 CS GROUP. All rights reserved.