public interface ForceModel extends ParameterDriversProvider, EventDetectorsProvider
数值传播器
中。
传播器将在每一步调用addContribution(SpacecraftState, TimeDerivativesEquations)
方法。力模型实例将从第一个参数中提取所有所需的状态数据(日期、位置、速度、参考系、姿态、质量)。从这些状态数据中,它将计算扰动加速度。然后将此加速度添加到第二个参数中,第二个参数将考虑这个贡献,并使用高斯方程评估其对全局状态导数的影响。
创建不连续加速度模式的力模型(通常用于机动开始/停止或太阳食入/出)必须通过它们的事件探测器
通过其getEventDetectors()
方法向传播器提供一个或多个事件探测器。此方法在传播开始之前调用一次。传播器将检查事件状态,以确保准确传播和正确处理事件。
DATATION_ACCURACY
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)
计算加速度。
|
default <T extends org.hipparchus.CalculusFieldElement<T>> |
addContribution(FieldSpacecraftState<T> s, FieldTimeDerivativesEquations<T> adder)
计算力模型对扰动加速度的贡献。
|
default void |
addContribution(SpacecraftState s, TimeDerivativesEquations adder)
计算力模型对扰动加速度的贡献。
|
boolean |
dependsOnPositionOnly()
检查力模型是否仅依赖于位置。
|
default Stream<EventDetector> |
getEventDetectors()
获取与模型相关的离散事件。
|
default <T extends org.hipparchus.CalculusFieldElement<T>> |
getFieldEventDetectors(org.hipparchus.Field<T> field)
获取与模型相关的离散事件。
|
default <T extends org.hipparchus.CalculusFieldElement<T>> |
init(FieldSpacecraftState<T> initialState, FieldAbsoluteDate<T> target)
在传播开始时初始化力模型。
|
default void |
init(SpacecraftState initialState, AbsoluteDate target)
在传播开始时初始化力模型。
|
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, getParametersDrivers, isSupported
getEventDetectors, getFieldEventDetectors
default void init(SpacecraftState initialState, AbsoluteDate target)
addContribution(SpacecraftState, TimeDerivativesEquations)
、addContribution(FieldSpacecraftState, FieldTimeDerivativesEquations)
、acceleration(SpacecraftState, double[])
或acceleration(FieldSpacecraftState, CalculusFieldElement[])
之前将调用此方法。
此方法的默认实现不执行任何操作。
initialState
- 传播开始时的航天器状态。
target
- 传播的日期。不等于initialState.getDate()
。
default <T extends org.hipparchus.CalculusFieldElement<T>> void init(FieldSpacecraftState<T> initialState, FieldAbsoluteDate<T> target)
addContribution(SpacecraftState, TimeDerivativesEquations)
、addContribution(FieldSpacecraftState, FieldTimeDerivativesEquations)
、acceleration(SpacecraftState, double[])
或acceleration(FieldSpacecraftState, CalculusFieldElement[])
之前将调用此方法。
此方法的默认实现不执行任何操作。
T
- 元素的类型
initialState
- 传播开始时的航天器状态。
target
- 传播的日期。不等于initialState.getDate()
。
default Stream<EventDetector> getEventDetectors()
此方法不应多次调用,传播器只调用一次,因为调用此方法会重新构建事件探测器。
getEventDetectors
在接口 EventDetectorsProvider
default <T extends org.hipparchus.CalculusFieldElement<T>> Stream<FieldEventDetector<T>> getFieldEventDetectors(org.hipparchus.Field<T> field)
此方法不应多次调用,传播器只调用一次,因为调用此方法会重新构建事件探测器。
getFieldEventDetectors
在接口 EventDetectorsProvider
T
- 扩展CalculusFieldElement<T>的类型
field
- 状态所属的域
default void addContribution(SpacecraftState s, TimeDerivativesEquations adder)
默认实现只将加速度
作为非开普勒加速度添加。
s
- 当前状态信息:日期、运动学、姿态
adder
- 应添加贡献的对象
default <T extends org.hipparchus.CalculusFieldElement<T>> void addContribution(FieldSpacecraftState<T> s, FieldTimeDerivativesEquations<T> adder)
T
- 元素的类型
s
- 当前状态信息:日期、运动学、姿态
adder
- 应添加贡献的对象
boolean dependsOnPositionOnly()
org.hipparchus.geometry.euclidean.threed.Vector3D acceleration(SpacecraftState s, double[] parameters)
s
- 当前状态信息:日期、运动学、姿态
parameters
- 状态日期的力模型参数值,每个参数驱动器只有1个值
<T extends org.hipparchus.CalculusFieldElement<T>> org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> acceleration(FieldSpacecraftState<T> s, T[] parameters)
T
- 元素的类型
s
- 当前状态信息:日期、运动学、姿态
parameters
- 状态日期的力模型参数值,每个参数驱动器只有1个值
Copyright © 2002-2023 CS GROUP. All rights reserved.