public class HolmesFeatherstoneAttractionModel extends Object implements ForceModel, TideSystemProvider
该类中实现的算法由澳大利亚珀斯科廷科技大学空间科学系的S. A. Holmes和W. E. Featherstone设计。它在他们2002年的论文中描述: 一种统一的Clenshaw求和方法和递归计算非常高次和阶数的归一化相关Legendre函数(《大地测量学杂志》(2002)76:279-299)。
该模型直接使用归一化系数和稳定的递归算法,因此更适用于高次重力场,而不是使用未归一化系数的经典Cunningham Droziner模型。
在Holmes和Featherstone的论文中提出的不同算法中,该类实现了修改的前向行方法。所有递归系数都经过预计算并存储,以提高性能。该缓存在论文中被建议但由于大量内存需求而未被使用。自2002年以来,即使是低端计算机和移动设备也具有足够的内存,因此这种缓存现在变得可行。
DATATION_ACCURACY
Constructor and Description |
---|
HolmesFeatherstoneAttractionModel(Frame centralBodyFrame, NormalizedSphericalHarmonicsProvider provider)
创建一个新实例。
|
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)
计算加速度。
|
boolean |
dependsOnPositionOnly()
检查力模型是否仅依赖于位置。
|
double |
getMu()
获取中心引力系数μ。
|
double |
getMu(AbsoluteDate date)
获取中心引力系数μ。
|
List<ParameterDriver> |
getParametersDrivers()
获取参数的驱动程序。
|
TideSystem |
getTideSystem()
获取在重力场中使用的 TideSystem 。
|
double[] |
gradient(AbsoluteDate date, org.hipparchus.geometry.euclidean.threed.Vector3D position, double mu)
计算重力场的非中心部分的梯度。
|
<T extends org.hipparchus.CalculusFieldElement<T>> |
gradient(FieldAbsoluteDate<T> date, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> position, T mu)
计算重力场的非中心部分的梯度。
|
double |
nonCentralPart(AbsoluteDate date, org.hipparchus.geometry.euclidean.threed.Vector3D position, double mu)
计算重力场的非中心部分。
|
double |
value(AbsoluteDate date, org.hipparchus.geometry.euclidean.threed.Vector3D position, double mu)
计算重力场的值。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addContribution, addContribution, getEventDetectors, getFieldEventDetectors, init, init
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
getEventDetectors, getFieldEventDetectors
public HolmesFeatherstoneAttractionModel(Frame centralBodyFrame, NormalizedSphericalHarmonicsProvider provider)
centralBodyFrame
- 旋转体框架
provider
- 球谐项的提供者
public boolean dependsOnPositionOnly()
dependsOnPositionOnly
在接口 ForceModel
public TideSystem getTideSystem()
TideSystem
。
getTideSystem
在接口 TideSystemProvider
public double getMu()
getMu(AbsoluteDate)
)将抛出异常。
public double getMu(AbsoluteDate date)
date
- 要了解mu的日期
public double value(AbsoluteDate date, org.hipparchus.geometry.euclidean.threed.Vector3D position, double mu)
date
- 当前日期
position
- 在体框架中需要重力场的位置
mu
- 要使用的中心引力系数
public double nonCentralPart(AbsoluteDate date, org.hipparchus.geometry.euclidean.threed.Vector3D position, double mu)
date
- 当前日期
position
- 在体框架中需要重力场的位置
mu
- 要使用的中心引力系数
public double[] gradient(AbsoluteDate date, org.hipparchus.geometry.euclidean.threed.Vector3D position, double mu)
date
- 当前日期
position
- 在体框架中需要重力场的位置
mu
- 要使用的中心引力系数
public <T extends org.hipparchus.CalculusFieldElement<T>> T[] gradient(FieldAbsoluteDate<T> date, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> position, T mu)
T
- 使用的字段类型
date
- 当前日期
position
- 在体框架中需要重力场的位置
mu
- 要使用的中心引力系数
public org.hipparchus.geometry.euclidean.threed.Vector3D acceleration(SpacecraftState s, double[] parameters)
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)
acceleration
在接口 ForceModel
T
- 元素的类型
s
- 当前状态信息:日期、运动学、姿态
parameters
- 在状态日期的力模型参数值,每个参数驱动器只有1个值
public List<ParameterDriver> getParametersDrivers()
getParametersDrivers
在接口 ParameterDriversProvider
Copyright © 2002-2023 CS GROUP. All rights reserved.