public abstract class AbstractGaussianContribution extends Object implements DSSTForceModel
DSSTForceModel
方法用于DSST传播的高斯贡献。
这个抽象类允许为特定的高斯贡献提供一组容易的 DSSTForceModel
方法。
这个类实现了DSST理论的数值平均概念。数值平均主要用于非保守干扰力,如大气阻力和太阳辐射压力。
高斯贡献可以表示为:dai/dt = δai/δv . q
其中:
平均过程和其他考虑因素导致对真经度L进行积分,可能考虑一些限制。
要创建一个数值平均的贡献,只需要提供一个 ForceModel
并在派生类中实现方法:getLLimits(SpacecraftState, AuxiliaryElements)
和 getParametersDriversWithoutMu()
。
Modifier and Type | Class and Description |
---|---|
protected class |
AbstractGaussianContribution.FieldFourierCjSjCoefficients<T extends org.hipparchus.CalculusFieldElement<T>>
使用场元素计算Cij和Sij系数。
|
protected static class |
AbstractGaussianContribution.FieldGaussianShortPeriodicCoefficients<T extends org.hipparchus.CalculusFieldElement<T>>
该类处理Danielson 2.5.3-26中描述的短周期系数。
|
protected class |
AbstractGaussianContribution.FieldIntegrableFunction<T extends org.hipparchus.CalculusFieldElement<T>>
数值积分的内部类。
|
protected static class |
AbstractGaussianContribution.FieldSlot<T extends org.hipparchus.CalculusFieldElement<T>>
一个时间槽有效的系数。
|
protected static class |
AbstractGaussianContribution.FieldUijVijCoefficients<T extends org.hipparchus.CalculusFieldElement<T>>
由Danielson方程2.5.3-(21)和2.5.3-(22)描述的Uij和Vij系数。
|
protected class |
AbstractGaussianContribution.FourierCjSjCoefficients
计算Cij和Sij系数。
|
protected static class |
AbstractGaussianContribution.GaussianShortPeriodicCoefficients
该类处理Danielson 2.5.3-26中描述的短周期系数。
|
protected static class |
AbstractGaussianContribution.GaussQuadrature
用高斯积分规则 integrate 一个轨道元素的function 来获取加速度的类。
|
protected class |
AbstractGaussianContribution.IntegrableFunction
数值积分的内部类。
|
protected static class |
AbstractGaussianContribution.Slot
一个时间槽有效的系数。
|
protected static class |
AbstractGaussianContribution.UijVijCoefficients
由Danielson方程2.5.3-(21)和2.5.3-(22)描述的Uij和Vij系数。
|
DATATION_ACCURACY
Modifier | Constructor and Description |
---|---|
protected |
AbstractGaussianContribution(String coefficientsKeyPrefix, double threshold, ForceModel contribution, double mu)
构建一个新实例。
|
Modifier and Type | Method and Description |
---|---|
protected abstract <T extends org.hipparchus.CalculusFieldElement<T>> |
getLLimits(FieldSpacecraftState<T> state, FieldAuxiliaryElements<T> auxiliaryElements)
计算积分中L的限制,真经度。
|
protected abstract double[] |
getLLimits(SpacecraftState state, AuxiliaryElements auxiliaryElements)
计算积分中L的限制,真经度。
|
protected <T extends org.hipparchus.CalculusFieldElement<T>> |
getMeanElementRate(FieldSpacecraftState<T> state, AbstractGaussianContribution.GaussQuadrature gauss, T low, T high, FieldAbstractGaussianContributionContext<T> context, T[] parameters)
计算平均赤道元素速率dai / dt。
|
<T extends org.hipparchus.CalculusFieldElement<T>> |
getMeanElementRate(FieldSpacecraftState<T> state, FieldAuxiliaryElements<T> auxiliaryElements, T[] parameters)
计算平均赤道元素速率dai / dt。
|
protected double[] |
getMeanElementRate(SpacecraftState state, AbstractGaussianContribution.GaussQuadrature gauss, double low, double high, AbstractGaussianContributionContext context, double[] parameters)
计算平均赤道元素速率dai / dt。
|
double[] |
getMeanElementRate(SpacecraftState state, AuxiliaryElements auxiliaryElements, double[] parameters)
计算平均赤道元素速率dai / dt。
|
List<ParameterDriver> |
getParametersDrivers()
获取参数的驱动程序。
|
protected abstract List<ParameterDriver> |
getParametersDriversWithoutMu()
获取力模型参数的驱动程序,除了中心引力系数的驱动程序。
|
<T extends org.hipparchus.CalculusFieldElement<T>> |
init(FieldSpacecraftState<T> initialState, FieldAbsoluteDate<T> target)
在传播开始时初始化力模型。
|
void |
init(SpacecraftState initialState, AbsoluteDate target)
在传播开始时初始化力模型。
|
List<ShortPeriodTerms> |
initializeShortPeriodTerms(AuxiliaryElements auxiliaryElements, PropagationType type, double[] parameters)
在当前力模型的传播之前执行初始化。
|
<T extends org.hipparchus.CalculusFieldElement<T>> |
initializeShortPeriodTerms(FieldAuxiliaryElements<T> auxiliaryElements, PropagationType type, T[] parameters)
在当前力模型的传播之前执行初始化。
|
void |
registerAttitudeProvider(AttitudeProvider provider)
注册姿态提供者。
|
void |
updateShortPeriodTerms(double[] parameters, SpacecraftState... meanStates)
更新短周期项。
|
<T extends org.hipparchus.CalculusFieldElement<T>> |
updateShortPeriodTerms(T[] parameters, FieldSpacecraftState<T>... meanStates)
更新短周期项。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
extractParameters, extractParameters, getEventDetectors, getFieldEventDetectors
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
getEventDetectors, getFieldEventDetectors
protected AbstractGaussianContribution(String coefficientsKeyPrefix, double threshold, ForceModel contribution, double mu)
coefficientsKeyPrefix
- 系数键的前缀
threshold
- 选择高斯积分阶数的容差
contribution
- 要进行数值平均的 ForceModel
mu
- 中心引力系数
public void init(SpacecraftState initialState, AbsoluteDate target)
此方法的默认实现不执行任何操作。
init
在接口 DSSTForceModel
中
initialState
- 传播开始时的航天器状态。
target
- 传播的日期。不等于 initialState.getDate()
。
public <T extends org.hipparchus.CalculusFieldElement<T>> void init(FieldSpacecraftState<T> initialState, FieldAbsoluteDate<T> target)
此方法的默认实现不执行任何操作。
init
在接口 DSSTForceModel
中
T
- 元素的类型
initialState
- 传播开始时的航天器状态。
target
- 传播的日期。不等于 initialState.getDate()
。
public List<ParameterDriver> getParametersDrivers()
getParametersDrivers
在接口 ParameterDriversProvider
中
protected abstract List<ParameterDriver> getParametersDriversWithoutMu()
中心引力系数的驱动程序会自动添加到 ParameterDriver
数组的最后一个元素中,该数组在 getParametersDrivers()
方法中。
public List<ShortPeriodTerms> initializeShortPeriodTerms(AuxiliaryElements auxiliaryElements, PropagationType type, double[] parameters)
此方法旨在在传播开始时调用。
initializeShortPeriodTerms
在接口 DSSTForceModel
中
auxiliaryElements
- 与当前轨道相关的辅助元素
type
- 传播期间使用的元素类型
parameters
- 特定日期的力模型参数值(每个参数驱动程序仅有一个值),例如通过在力模型上调用 ParameterDriversProvider.getParameters(AbsoluteDate)
获得。
public <T extends org.hipparchus.CalculusFieldElement<T>> List<FieldShortPeriodTerms<T>> initializeShortPeriodTerms(FieldAuxiliaryElements<T> auxiliaryElements, PropagationType type, T[] parameters)
此方法旨在在传播开始时调用。
initializeShortPeriodTerms
在接口 DSSTForceModel
T
- 元素的类型
auxiliaryElements
- 与当前轨道相关的辅助元素
type
- 在传播期间使用的元素类型
parameters
- 特定日期的力模型参数值(每个参数驱动器仅有一个值),例如通过在力模型上调用ParameterDriversProvider.getParameters(AbsoluteDate)
或在梯度转换器上调用AbstractGradientConverter.getParametersAtStateDate(FieldSpacecraftState, ParameterDriversProvider)
获得。
public double[] getMeanElementRate(SpacecraftState state, AuxiliaryElements auxiliaryElements, double[] parameters)
getMeanElementRate
在接口 DSSTForceModel
state
- 当前状态信息:日期、运动学、姿态
auxiliaryElements
- 与当前轨道相关的辅助元素
parameters
- 在状态日期处的力模型参数值(每个参数驱动器仅有一个跨度),例如通过在力模型上调用ParameterDriversProvider.getParameters(AbsoluteDate)
获得。
public <T extends org.hipparchus.CalculusFieldElement<T>> T[] getMeanElementRate(FieldSpacecraftState<T> state, FieldAuxiliaryElements<T> auxiliaryElements, T[] parameters)
getMeanElementRate
在接口 DSSTForceModel
T
- 元素的类型
state
- 当前状态信息:日期、运动学、姿态
auxiliaryElements
- 与当前轨道相关的辅助元素
parameters
- 在状态日期处的力模型参数值(每个参数驱动器仅有一个跨度),例如通过在力模型上调用ParameterDriversProvider.getParameters(Field, FieldAbsoluteDate)
获得或在梯度转换器上调用AbstractGradientConverter.getParametersAtStateDate(FieldSpacecraftState, ParameterDriversProvider)
获得。
protected abstract double[] getLLimits(SpacecraftState state, AuxiliaryElements auxiliaryElements)
state
- 当前状态信息:日期、运动学、姿态
auxiliaryElements
- 与当前轨道相关的辅助元素
protected abstract <T extends org.hipparchus.CalculusFieldElement<T>> T[] getLLimits(FieldSpacecraftState<T> state, FieldAuxiliaryElements<T> auxiliaryElements)
T
- 元素的类型
state
- 当前状态信息:日期、运动学、姿态
auxiliaryElements
- 与当前轨道相关的辅助元素
protected double[] getMeanElementRate(SpacecraftState state, AbstractGaussianContribution.GaussQuadrature gauss, double low, double high, AbstractGaussianContributionContext context, double[] parameters)
state
- 当前状态
gauss
- 高斯积分
low
- 积分区间的下限
high
- 积分区间的上限
context
- 属性容器
parameters
- 在状态日期处的力模型参数值(每个参数仅有1个值)
protected <T extends org.hipparchus.CalculusFieldElement<T>> T[] getMeanElementRate(FieldSpacecraftState<T> state, AbstractGaussianContribution.GaussQuadrature gauss, T low, T high, FieldAbstractGaussianContributionContext<T> context, T[] parameters)
T
- 元素的类型
state
- 当前状态
gauss
- 高斯积分
low
- 积分区间的下限
high
- 积分区间的上限
context
- 属性容器
parameters
- 力模型参数值(每个参数仅有1个值)
public void registerAttitudeProvider(AttitudeProvider provider)
注册一个可以被力模型使用的姿态提供者。
registerAttitudeProvider
在接口 DSSTForceModel
provider
- AttitudeProvider
public void updateShortPeriodTerms(double[] parameters, SpacecraftState... meanStates)
将更新的短周期项
是在调用DSSTForceModel.initializeShortPeriodTerms(AuxiliaryElements, PropagationType, double[])
时返回的那些。
updateShortPeriodTerms
在接口 DSSTForceModel
parameters
- 力模型参数值(每个参数的所有跨度值),例如通过在力模型上调用ParameterDriversProvider.getParametersAllValues()
获得。在方法中调用提取参数方法DSSTForceModel.extractParameters(double[], AbsoluteDate)
以选择与均值状态日期对应的正确参数。
meanStates
- 均值状态信息:日期、运动学、姿态
public <T extends org.hipparchus.CalculusFieldElement<T>> void updateShortPeriodTerms(T[] parameters, FieldSpacecraftState<T>... meanStates)
将更新的短周期项
是在调用DSSTForceModel.initializeShortPeriodTerms(AuxiliaryElements, PropagationType, double[])
时返回的那些。
updateShortPeriodTerms
在接口 DSSTForceModel
中定义
T
- 元素的类型
parameters
- 力模型参数的值(每个参数的所有跨度值),例如通过在力模型上调用ParameterDriversProvider.getParametersAllValues(Field)
或在梯度转换器上调用AbstractGradientConverter.getParameters(FieldSpacecraftState, ParameterDriversProvider)
获得。在方法中调用提取参数方法DSSTForceModel.extractParameters(CalculusFieldElement[], FieldAbsoluteDate)
以选择正确的参数。
meanStates
- 平均状态信息:日期、运动学、姿态
Copyright © 2002-2023 CS GROUP. All rights reserved.