public class Maneuver extends Object implements ForceModel
ImpulseManeuver
和FieldImpulseManeuver
)。它包含: - 姿态覆盖,这是机动期间使用的姿态,可以与用于传播的姿态不同; - 来自触发子包的机动触发对象。它定义了用于启动和停止机动的触发器(例如日期或事件)。 - 来自推进子包的推进模型。它定义了推力或ΔV、比冲、流速等。推进模型和机动触发器都可以包含参数驱动器(用于估计)。这里的约定是,在调用方法getParametersDrivers()
时,推进模型驱动器在机动触发器之前给出。
DATATION_ACCURACY
Constructor and Description |
---|
Maneuver(AttitudeProvider attitudeOverride, ManeuverTriggers maneuverTriggers, PropulsionModel propulsionModel)
通用机动构造器。
|
Modifier and Type | Method and Description |
---|---|
<T extends org.hipparchus.CalculusFieldElement<T>> |
acceleration(FieldSpacecraftState<T> s, T[] parameters)
计算加速度。
|
org.hipparchus.geometry.euclidean.threed.Vector3D |
acceleration(SpacecraftState s, double[] parameters)
计算加速度。
|
<T extends org.hipparchus.CalculusFieldElement<T>> |
addContribution(FieldSpacecraftState<T> s, FieldTimeDerivativesEquations<T> adder)
计算力模型对扰动加速度的贡献。
|
void |
addContribution(SpacecraftState s, TimeDerivativesEquations adder)
计算力模型对扰动加速度的贡献。
|
boolean |
dependsOnPositionOnly()
检查力模型是否仅依赖于位置。
|
AttitudeProvider |
getAttitudeOverride()
获取用于机动的姿态覆盖。
|
Control3DVectorCostType |
getControl3DVectorCostType()
获取控制向量的成本类型。
|
Stream<EventDetector> |
getEventDetectors()
获取与模型相关的离散事件。
|
<T extends org.hipparchus.CalculusFieldElement<T>> |
getFieldEventDetectors(org.hipparchus.Field<T> field)
获取与模型相关的离散事件。
|
ManeuverTriggers |
getManeuverTriggers()
获取机动触发器。
|
String |
getName()
获取机动的名称。
|
List<ParameterDriver> |
getParametersDrivers()
获取参数的驱动器。
|
PropulsionModel |
getPropulsionModel()
获取推进模型。
|
<T extends org.hipparchus.CalculusFieldElement<T>> |
init(FieldSpacecraftState<T> initialState, FieldAbsoluteDate<T> target)
在传播开始时初始化力模型。
|
void |
init(SpacecraftState initialState, AbsoluteDate target)
在传播开始时初始化力模型。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
getEventDetectors, getFieldEventDetectors
public Maneuver(AttitudeProvider attitudeOverride, ManeuverTriggers maneuverTriggers, PropulsionModel propulsionModel)
attitudeOverride
- 机动期间姿态的姿态提供者
maneuverTriggers
- 机动触发器
propulsionModel
- 推进模型
public String getName()
public AttitudeProvider getAttitudeOverride()
public Control3DVectorCostType getControl3DVectorCostType()
public PropulsionModel getPropulsionModel()
public ManeuverTriggers getManeuverTriggers()
public boolean dependsOnPositionOnly()
dependsOnPositionOnly
在接口 ForceModel
中
public void init(SpacecraftState initialState, AbsoluteDate target)
ForceModel.addContribution(SpacecraftState, TimeDerivativesEquations)
、ForceModel.addContribution(FieldSpacecraftState, FieldTimeDerivativesEquations)
、ForceModel.acceleration(SpacecraftState, double[])
或ForceModel.acceleration(FieldSpacecraftState, CalculusFieldElement[])
之前,将调用此方法。
此方法的默认实现不执行任何操作。
init
在接口 ForceModel
中
initialState
- 传播开始时的航天器状态。
target
- 传播的日期。不等于initialState.getDate()
。
public <T extends org.hipparchus.CalculusFieldElement<T>> void init(FieldSpacecraftState<T> initialState, FieldAbsoluteDate<T> target)
ForceModel.addContribution(SpacecraftState, TimeDerivativesEquations)
、ForceModel.addContribution(FieldSpacecraftState, FieldTimeDerivativesEquations)
、ForceModel.acceleration(SpacecraftState, double[])
或ForceModel.acceleration(FieldSpacecraftState, CalculusFieldElement[])
之前,将调用此方法。
此方法的默认实现不执行任何操作。
init
在接口 ForceModel
中
T
- 元素的类型
initialState
- 传播开始时的航天器状态。
target
- 传播的日期。不等于initialState.getDate()
。
public void addContribution(SpacecraftState s, TimeDerivativesEquations adder)
默认实现简单地将acceleration
作为非开普勒加速度添加。
addContribution
在接口 ForceModel
中
s
- 当前状态信息:日期、运动学、姿态
adder
- 应添加贡献的对象
public <T extends org.hipparchus.CalculusFieldElement<T>> void addContribution(FieldSpacecraftState<T> s, FieldTimeDerivativesEquations<T> adder)
addContribution
在接口 ForceModel
中
T
- 元素的类型
s
- 当前状态信息:日期、运动学、姿态
adder
- 应添加贡献的对象
public org.hipparchus.geometry.euclidean.threed.Vector3D acceleration(SpacecraftState s, double[] parameters)
ForceModel
acceleration
在接口 ForceModel
中
s
- 当前状态信息:日期、运动学、姿态
parameters
- 在状态日期的力模型参数的值,每个参数驱动器只有1个值
public <T extends org.hipparchus.CalculusFieldElement<T>> org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> acceleration(FieldSpacecraftState<T> s, T[] parameters)
ForceModel
acceleration
在接口 ForceModel
T
- 元素的类型
s
- 当前状态信息:日期、运动学、姿态
parameters
- 在状态日期的力模型参数值,每个参数驱动器只有一个值
public Stream<EventDetector> getEventDetectors()
此方法不应该被多次调用,只能由一个传播器调用一次,因为每次调用都会重新构建事件探测器。
getEventDetectors
在接口 ForceModel
getEventDetectors
在接口 EventDetectorsProvider
public <T extends org.hipparchus.CalculusFieldElement<T>> Stream<FieldEventDetector<T>> getFieldEventDetectors(org.hipparchus.Field<T> field)
此方法不应该被多次调用,只能由一个传播器调用一次,因为每次调用都会重新构建事件探测器。
getFieldEventDetectors
在接口 ForceModel
getFieldEventDetectors
在接口 EventDetectorsProvider
T
- 扩展CalculusFieldElement<T>的类型
field
- 状态所属的字段
public List<ParameterDriver> getParametersDrivers()
ParameterDriversProvider
getParametersDrivers
在接口 ParameterDriversProvider
Copyright © 2002-2023 CS GROUP. All rights reserved.