public class TimeSpanParametricAcceleration extends Object implements ForceModel
这个类与 ParametricAcceleration
类密切相关。
不同之处在于它具有一个 TimeSpanMap
,其中包含多个 AccelerationModel
对象,而不是单个 AccelerationModel
对象。
这个模型背后的想法是允许用户设计一个参数化加速度模型,该模型的物理参数可以随时间变化,时间由用户选择。
这是精确轨道确定中可以寻求的行为。
实际上,对于这种类型的应用,经验参数必须在每个新轨道上重新评估。
addAccelerationModelValidAfter(AccelerationModel, AbsoluteDate)
或 addAccelerationModelValidBefore(AccelerationModel, AbsoluteDate)
添加加速度模型。TimeSpanMap
中的推荐相同,即:
ParameterDriver
自定义名称。这将允许您跟踪模型的演变。Modifier and Type | Field and Description |
---|---|
static String |
DATE_AFTER
参数驱动器名称后的日期前缀。
|
static String |
DATE_BEFORE
参数驱动器名称后的日期前缀。
|
DATATION_ACCURACY
Constructor and Description |
---|
TimeSpanParametricAcceleration(org.hipparchus.geometry.euclidean.threed.Vector3D direction, AttitudeProvider attitudeOverride, AccelerationModel accelerationModel)
简单构造函数。
|
TimeSpanParametricAcceleration(org.hipparchus.geometry.euclidean.threed.Vector3D direction, boolean isInertial, AccelerationModel accelerationModel)
简单构造函数。
|
Modifier and Type | Method and Description |
---|---|
<T extends org.hipparchus.CalculusFieldElement<T>> |
acceleration(FieldSpacecraftState<T> state, T[] parameters)
计算加速度。
|
org.hipparchus.geometry.euclidean.threed.Vector3D |
acceleration(SpacecraftState state, double[] parameters)
计算加速度。
|
void |
addAccelerationModelValidAfter(AccelerationModel accelerationModel, AbsoluteDate earliestValidityDate)
在限制日期后添加一个加速度模型条目。
|
void |
addAccelerationModelValidBefore(AccelerationModel accelerationModel, AbsoluteDate latestValidityDate)
在限制日期前添加一个加速度模型条目。
|
boolean |
dependsOnPositionOnly()
检查力模型是否仅依赖于位置。
|
TimeSpanMap<AccelerationModel> |
extractAccelerationModelRange(AbsoluteDate start, AbsoluteDate end)
提取加速度模型时间跨度映射的范围。
|
double[] |
extractParameters(double[] parameters, AbsoluteDate date)
从输入的数组中提取 acceleration 方法的正确参数驱动器值。
|
<T extends org.hipparchus.CalculusFieldElement<T>> |
extractParameters(T[] parameters, FieldAbsoluteDate<T> date)
从输入的数组中提取 acceleration 方法的正确参数驱动器值。
|
AccelerationModel |
getAccelerationModel(AbsoluteDate date)
获取在特定日期有效的 AccelerationModel 模型。
|
TimeSpanMap.Span<AccelerationModel> |
getAccelerationModelSpan(AbsoluteDate date)
获取包含指定日期的 AccelerationModel TimeSpanMap.Span 的时间跨度映射。
|
Stream<EventDetector> |
getEventDetectors()
获取与模型相关的离散事件。
|
<T extends org.hipparchus.CalculusFieldElement<T>> |
getFieldEventDetectors(org.hipparchus.Field<T> field)
获取与模型相关的离散事件。
|
TimeSpanMap.Span<AccelerationModel> |
getFirstSpan()
获取加速度模型时间跨度映射的第一个 time span 。
|
List<ParameterDriver> |
getParametersDrivers()
获取参数的驱动器。
|
void |
init(SpacecraftState initialState, AbsoluteDate target)
在传播开始时初始化力模型。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addContribution, addContribution, init
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
getEventDetectors, getFieldEventDetectors
public TimeSpanParametricAcceleration(org.hipparchus.geometry.euclidean.threed.Vector3D direction, boolean isInertial, AccelerationModel accelerationModel)
direction
- 覆盖的航天器框架中的加速度方向
isInertial
- 如果为true,则方向在用于传播的相同惯性框架中定义(即 SpacecraftState.getFrame()
),否则方向在航天器框架中定义(即使用传播 姿态法则
)
accelerationModel
- 用于计算经验加速度贡献的加速度模型
public TimeSpanParametricAcceleration(org.hipparchus.geometry.euclidean.threed.Vector3D direction, AttitudeProvider attitudeOverride, AccelerationModel accelerationModel)
direction
- 覆盖的航天器框架中的加速度方向
isInertial
- 如果为true,则方向在用于传播的相同惯性框架中定义(即 SpacecraftState.getFrame()
),否则方向在航天器框架中定义(即使用传播 姿态法则
)
attitudeOverride
- 用于计算加速度的姿态提供程序
accelerationModel
- 用于计算经验加速度贡献的加速度模型
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 void addAccelerationModelValidBefore(AccelerationModel accelerationModel, AbsoluteDate latestValidityDate)
使用 addAccelerationModelValidBefore(entry, t)
将使 entry
在 ]-∞, t[ 中有效(注意开放括号)。
警告:由于加速度模型参数没有默认名称,用户必须自行处理驱动器名称,以考虑在添加新加速度模型时使用不同名称(即不同参数)。
accelerationModel
- 加速度模型条目
latestValidityDate
- 条目有效之前的日期(必须与已用于过渡的所有日期不同)
public void addAccelerationModelValidAfter(AccelerationModel accelerationModel, AbsoluteDate earliestValidityDate)
使用 addAccelerationModelValidAfter(entry, t)
将使 entry
在 [t, +∞[ 中有效(注意闭合括号)。
警告:由于加速度模型参数没有默认名称,用户必须自行处理驱动器名称,以考虑在添加新加速度模型时使用不同名称(即不同参数)。
accelerationModel
- 加速度模型条目
earliestValidityDate
- 条目有效之后的日期(必须与已用于过渡的所有日期不同)
public AccelerationModel getAccelerationModel(AbsoluteDate date)
AccelerationModel
模型。
date
- 有效日期
public TimeSpanMap.Span<AccelerationModel> getAccelerationModelSpan(AbsoluteDate date)
AccelerationModel
TimeSpanMap.Span
。
date
- 属于所需时间跨度的日期
public TimeSpanMap<AccelerationModel> extractAccelerationModelRange(AbsoluteDate start, AbsoluteDate end)
返回的对象将是一个新的独立实例,仅包含位于指定范围内的过渡。
有关更多信息,请参阅TimeSpanMap.extractRange方法
。
start
- 包含在范围内的最早过渡日期(可以设置为AbsoluteDate.PAST_INFINITY
以保留所有早期过渡)
end
- 包含在范围内的最晚过渡日期(可以设置为AbsoluteDate.FUTURE_INFINITY
以保留所有晚期过渡)
public TimeSpanMap.Span<AccelerationModel> getFirstSpan()
时间跨度
。
时间跨度
public boolean dependsOnPositionOnly()
dependsOnPositionOnly
在接口 ForceModel
public org.hipparchus.geometry.euclidean.threed.Vector3D acceleration(SpacecraftState state, double[] parameters)
acceleration
在接口 ForceModel
state
- 当前状态信息:日期、运动学、姿态
parameters
- 在状态日期处的力模型参数值,每个parameterDriver仅有1个值
public <T extends org.hipparchus.CalculusFieldElement<T>> org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> acceleration(FieldSpacecraftState<T> state, T[] parameters)
acceleration
在接口 ForceModel
T
- 元素的类型
state
- 当前状态信息:日期、运动学、姿态
parameters
- 在状态日期处的力模型参数值,每个parameterDriver仅有1个值
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()
返回所有加速度模型的所有参数驱动程序的数组。模型按时间顺序排序。
getParametersDrivers
在接口 ParameterDriversProvider
public double[] extractParameters(double[] parameters, AbsoluteDate date)
acceleration
方法的正确参数驱动程序值。根据输入日期过滤参数。
parameters
- 输入参数数组
date
- 日期
public <T extends org.hipparchus.CalculusFieldElement<T>> T[] extractParameters(T[] parameters, FieldAbsoluteDate<T> date)
acceleration
方法的正确参数驱动程序值。根据输入日期过滤参数。
T
- 扩展CalculusFieldElement的类型
parameters
- 输入参数数组
date
- 日期
Copyright © 2002-2023 CS GROUP. All rights reserved.