public class DSSTTesseral extends Object implements DSSTForceModel
仅考虑共振的Tesseral项。
Modifier and Type | Field and Description |
---|---|
static String |
CM_COEFFICIENTS
cMm系数的标识符。
|
static String |
SHORT_PERIOD_PREFIX
短周期系数键的前缀名称。
|
static String |
SM_COEFFICIENTS
sMm系数的标识符。
|
DATATION_ACCURACY
Constructor and Description |
---|
DSSTTesseral(Frame centralBodyFrame, double centralBodyRotationRate, UnnormalizedSphericalHarmonicsProvider provider)
使用默认参考值的简单构造函数。
|
DSSTTesseral(Frame centralBodyFrame, double centralBodyRotationRate, UnnormalizedSphericalHarmonicsProvider provider, int maxDegreeTesseralSP, int maxOrderTesseralSP, int maxEccPowTesseralSP, int maxFrequencyShortPeriodics, int maxDegreeMdailyTesseralSP, int maxOrderMdailyTesseralSP, int maxEccPowMdailyTesseralSP)
简单构造函数。
|
Modifier and Type | Method and Description |
---|---|
<T extends org.hipparchus.CalculusFieldElement<T>> |
getMeanElementRate(FieldSpacecraftState<T> spacecraftState, FieldAuxiliaryElements<T> auxiliaryElements, T[] parameters)
计算平均春分点元素速率 dai / dt。
|
double[] |
getMeanElementRate(SpacecraftState spacecraftState, AuxiliaryElements auxiliaryElements, double[] parameters)
计算平均春分点元素速率 dai / dt。
|
List<ParameterDriver> |
getParametersDrivers()
获取参数的驱动器。
|
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 attitudeProvider)
注册姿态提供者。
|
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, init, init
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
getEventDetectors, getFieldEventDetectors
public DSSTTesseral(Frame centralBodyFrame, double centralBodyRotationRate, UnnormalizedSphericalHarmonicsProvider provider)
当使用此构造函数时,将使用最大允许值作为短周期系数:
maxDegreeTesseralSP
设置为 provider.getMaxDegree()
maxOrderTesseralSP
设置为 provider.getMaxOrder()
maxEccPowTesseralSP
设置为 min(4, provider.getMaxOrder())
maxFrequencyShortPeriodics
设置为 min(provider.getMaxDegree() + 4, 12)
。此参数不应超过12,因为更高的值将超出计算机容量maxDegreeMdailyTesseralSP
设置为 provider.getMaxDegree()
maxOrderMdailyTesseralSP
设置为 provider.getMaxOrder()
maxEccPowMdailyTesseralSP
设置为 min(provider.getMaxDegree() - 2, 4)。此参数不应超过4,因为更高的值将超出计算机容量centralBodyFrame
- 旋转体框架
centralBodyRotationRate
- 中心天体的自转速率(弧度/秒)
provider
- 球谐项的提供者
public DSSTTesseral(Frame centralBodyFrame, double centralBodyRotationRate, UnnormalizedSphericalHarmonicsProvider provider, int maxDegreeTesseralSP, int maxOrderTesseralSP, int maxEccPowTesseralSP, int maxFrequencyShortPeriodics, int maxDegreeMdailyTesseralSP, int maxOrderMdailyTesseralSP, int maxEccPowMdailyTesseralSP)
centralBodyFrame
- 旋转体框架
centralBodyRotationRate
- 中心天体的自转速率(弧度/秒)
provider
- 球谐项的提供者
maxDegreeTesseralSP
- 要考虑的短周期Tesseral谐波势的最大度数(必须介于2和 provider.getMaxDegree()
之间)
maxOrderTesseralSP
- 要考虑的短周期Tesseral谐波势的最大阶数(必须介于0和 provider.getMaxOrder()
之间)
maxEccPowTesseralSP
- 在短周期Tesseral谐波(不包括m-daily)的s求和中使用的偏心率的最大幂次,通常不应超过4,因为更高的值将超出计算机容量(必须介于0和 provider.getMaxOrder()
之间,但是,如果阶数 = 0,则该值可以是任何值,因为它不会在代码中使用)
maxFrequencyShortPeriodics
- 短周期计算中平均经度的最大频率(通常为 maxDegreeTesseralSP
+ maxEccPowTesseralSP
,不超过12)
maxDegreeMdailyTesseralSP
- 要考虑的短周期m-daily Tesseral谐波势的最大度数(必须介于2和 provider.getMaxDegree()
之间)
maxOrderMdailyTesseralSP
- 要考虑的短周期m-daily Tesseral谐波势的最大阶数(必须介于0和 provider.getMaxOrder()
之间)
maxEccPowMdailyTesseralSP
- 在m-daily Tesseral谐波的s求和中使用的偏心率的最大幂次,(必须介于0和 maxDegreeMdailyTesseralSP - 2
之间,但通常不应超过4,因为更高的值将超出计算机容量)
public List<ShortPeriodTerms> initializeShortPeriodTerms(AuxiliaryElements auxiliaryElements, PropagationType type, double[] parameters)
此方法旨在在传播开始时调用。
initializeShortPeriodTerms
在接口 DSSTForceModel
auxiliaryElements
- 与当前轨道相关的辅助元素
type
- 传播期间使用的元素类型
parameters
- 特定日期的力模型参数值(每个参数驱动器仅有1个值),例如通过在力模型上调用 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
- 特定日期的力模型参数值(每个参数驱动器仅有1个值),例如通过在力模型上调用 ParameterDriversProvider.getParameters(AbsoluteDate)
或在梯度转换器上调用 AbstractGradientConverter.getParametersAtStateDate(FieldSpacecraftState, ParameterDriversProvider)
获得。
public double[] getMeanElementRate(SpacecraftState spacecraftState, AuxiliaryElements auxiliaryElements, double[] parameters)
getMeanElementRate
在接口 DSSTForceModel
spacecraftState
- 当前状态信息:日期、运动学、姿态
auxiliaryElements
- 与当前轨道相关的辅助元素
parameters
- 状态日期的力模型参数值(每个参数驱动器仅有1个跨度),例如通过在力模型上调用 ParameterDriversProvider.getParameters(AbsoluteDate)
获得。
public <T extends org.hipparchus.CalculusFieldElement<T>> T[] getMeanElementRate(FieldSpacecraftState<T> spacecraftState, FieldAuxiliaryElements<T> auxiliaryElements, T[] parameters)
getMeanElementRate
在接口 DSSTForceModel
中
T
- 元素的类型
spacecraftState
- 当前状态信息:日期、运动学、姿态
auxiliaryElements
- 与当前轨道相关的辅助元素
parameters
- 在状态日期处的力模型参数值(每个参数驱动器仅有一个跨度),例如通过在力模型上调用ParameterDriversProvider.getParameters(Field, FieldAbsoluteDate)
或在梯度转换器上调用AbstractGradientConverter.getParametersAtStateDate(FieldSpacecraftState, ParameterDriversProvider)
来获得
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
- 平均状态信息:日期、运动学、姿态
public List<ParameterDriver> getParametersDrivers()
getParametersDrivers
在接口 ParameterDriversProvider
中
public void registerAttitudeProvider(AttitudeProvider attitudeProvider)
注册一个可以被力模型使用的姿态提供者。
registerAttitudeProvider
在接口 DSSTForceModel
中
attitudeProvider
- AttitudeProvider
Copyright © 2002-2023 CS GROUP. All rights reserved.