D
- type of the detector
T
- type of the field elements
public class FieldImpulseManeuver<D extends FieldEventDetector<T>,T extends org.hipparchus.CalculusFieldElement<T>> extends FieldAbstractDetector<FieldImpulseManeuver<D,T>,T>
此类实现了脉冲机动,作为可以提供给任何Propagator
的离散事件,并镜像了标准版本ImpulseManeuver
。
当底层事件生成STOP
事件时,将触发机动,此时此类将生成RESET_STATE
事件(因此底层对象的停止事件被过滤掉)。在简单情况下,底层事件探测器可以是基本的日期事件
,但也可以是更复杂的近地点事件
,例如用于远地点机动。
机动由单个速度增量定义。如果未提供AttitudeProvider,则将使用航天器的当前姿态(由当前航天器状态定义)作为AttitudeProvider
,因此速度增量应在与用于构造将处理机动的传播器的FieldSpacecraftState
相同的伪惯性框架中给出。如果提供了AttitudeProvider,则应适当定义给定的速度增量,考虑到该提供者。因此,切向机动的典型情况是提供一个与速度增量相一致的LOF对齐
姿态提供者;例如,如果使用LOFType.VNC构造了LOF对齐姿态提供者,则应在VNC坐标中提供速度增量。
通过枚举Control3DVectorCostType
选择ΔV映射到质量消耗的范数。默认为欧几里得。
请注意,触发事件探测器在机动前后必须正确运行。例如,如果使用节点探测器触发倾斜机动,并且机动将轨道更改为赤道轨道,则节点探测器将在机动后失败,无法在赤道轨道上找到节点!这是在验证过程中遇到的一个真实案例...
FieldPropagator.addEventDetector(FieldEventDetector)
, ImpulseManeuver
DEFAULT_MAX_ITER, DEFAULT_MAXCHECK, DEFAULT_THRESHOLD
Constructor and Description |
---|
FieldImpulseManeuver(D trigger, AttitudeProvider attitudeOverride, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> deltaVSat, T isp)
构建一个新实例。
|
FieldImpulseManeuver(D trigger, AttitudeProvider attitudeOverride, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> deltaVSat, T isp, Control3DVectorCostType control3DVectorCostType)
构建一个新实例。
|
FieldImpulseManeuver(D trigger, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> deltaVSat, T isp)
构建一个新实例。
|
Modifier and Type | Method and Description |
---|---|
protected FieldImpulseManeuver<D,T> |
create(FieldAdaptableInterval<T> newMaxCheck, T newThreshold, int newMaxIter, FieldEventHandler<T> fieldEventHandler)
构建一个新实例。
|
T |
g(FieldSpacecraftState<T> fieldSpacecraftState)
计算切换函数的值。
|
AttitudeProvider |
getAttitudeOverride()
获取机动期间要使用的姿态提供者。
|
Control3DVectorCostType |
getControl3DVectorCostType()
获取控制向量的成本类型。
|
org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> |
getDeltaVSat()
获取卫星框架中的速度增量。
|
T |
getIsp()
获取比冲。
|
FieldEventDetector<T> |
getTrigger()
获取触发事件。
|
void |
init(FieldSpacecraftState<T> s0, FieldAbsoluteDate<T> t)
在传播开始时初始化事件处理程序。
|
getHandler, getMaxCheckInterval, getMaxIterationCount, getThreshold, isForward, withHandler, withMaxCheck, withMaxCheck, withMaxIter, withThreshold
public FieldImpulseManeuver(D trigger, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> deltaVSat, T isp)
trigger
- 触发事件
deltaVSat
- 卫星框架中的速度增量
isp
- 发动机比冲(s)
public FieldImpulseManeuver(D trigger, AttitudeProvider attitudeOverride, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> deltaVSat, T isp)
trigger
- 触发事件
attitudeOverride
- 用于机动的姿态提供者
deltaVSat
- 卫星框架中的速度增量
isp
- 发动机比冲(s)
public FieldImpulseManeuver(D trigger, AttitudeProvider attitudeOverride, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> deltaVSat, T isp, Control3DVectorCostType control3DVectorCostType)
trigger
- 触发事件
attitudeOverride
- 用于机动的姿态提供者
deltaVSat
- 卫星框架中的速度增量
isp
- 发动机比冲(s)
control3DVectorCostType
- 质量消耗的增量范数
protected FieldImpulseManeuver<D,T> create(FieldAdaptableInterval<T> newMaxCheck, T newThreshold, int newMaxIter, FieldEventHandler<T> fieldEventHandler)
create
在类中 FieldAbstractDetector<FieldImpulseManeuver<D extends FieldEventDetector<T>,T extends org.hipparchus.CalculusFieldElement<T>>,T extends org.hipparchus.CalculusFieldElement<T>>
newMaxCheck
- 最大检查间隔
newThreshold
- 收敛阈值(s)
newMaxIter
- 事件时间搜索中的最大迭代次数
fieldEventHandler
- 在事件发生时调用的事件处理程序
public void init(FieldSpacecraftState<T> s0, FieldAbsoluteDate<T> t)
此方法在传播开始时调用一次。如果需要,事件处理程序可以用于初始化一些内部数据。
默认实现不执行任何操作
init
在接口中 FieldEventDetector<T extends org.hipparchus.CalculusFieldElement<T>>
init
在类中 FieldAbstractDetector<FieldImpulseManeuver<D extends FieldEventDetector<T>,T extends org.hipparchus.CalculusFieldElement<T>>,T extends org.hipparchus.CalculusFieldElement<T>>
s0
- 初始状态
t
- 集成的目标时间
public T g(FieldSpacecraftState<T> fieldSpacecraftState)
g
在接口 FieldEventDetector<T 扩展 org.hipparchus.CalculusFieldElement<T>>
g
在类 FieldAbstractDetector<FieldImpulseManeuver<D 扩展 FieldEventDetector<T>,T 扩展 org.hipparchus.CalculusFieldElement<T>>,T 扩展 org.hipparchus.CalculusFieldElement<T>>
fieldSpacecraftState
- 当前状态信息:日期、运动学、姿态
public AttitudeProvider getAttitudeOverride()
public FieldEventDetector<T> getTrigger()
public org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> getDeltaVSat()
public T getIsp()
public Control3DVectorCostType getControl3DVectorCostType()
Copyright © 2002-2023 CS GROUP. All rights reserved.