org.orekit.forces
包提供了由NumericalPropagator
使用的力模型的接口。
实现力模型接口的对象旨在在开始传播之前添加到数值传播器中。
传播器将在每个步骤调用力模型贡献计算方法,以添加到其时间导数方程中。力模型实例将从SpacecraftState参数中提取其所需的所有状态数据(日期、位置、速度、参考系、姿态、质量)。从这些状态数据中,它将计算扰动加速度。然后,它将将此加速度添加到第二个参数中,该参数将考虑此贡献,并使用高斯方程评估其对全局状态导数的影响。
对于创建不连续加速度模式的力模型(通常用于机动开始/停止或太阳食入/出),必须通过其getEventsDetectors()
方法向传播器提供一个或多个事件检测器。此方法在传播开始之前调用一次。传播器将检查事件状态,以确保准确传播和正确处理事件。
实现的力模型如下:
考虑姿态的大气阻力力,如果定义了航天器形状
中心引力力,包括时间相关部分(线性趋势和多个不同周期的脉动)。我们的实现基于S. A. Holmes和W. E. Featherstone(澳大利亚珀斯科廷大学空间科学系)2002年的论文:一种统一的Clenshaw求和和递归计算非常高阶和次序的归一化相关Legendre函数的方法(《大地测量学杂志》(2002)76:279-299)。
第三体引力。基于JPL DE星历或IMCCE INPOP星历的所有太阳系天体的数据可用
太阳辐射压力力,考虑在半影区的力减小和在完全食的期间没有力,并且如果定义了航天器形状,则考虑姿态;可以定义多个遮挡体作为扁球体
地球反照率和红外辐射力模型。我们的实现基于论文:《卫星上的地球辐射压力效应》,1988年,作者:P. C. Knocke,J. C. Ries和B. D. Tapley。
固体潮汐,带或不带固体极潮
海洋潮汐,带或不带海洋极潮
由广义相对论引起的后牛顿修正,包括De Sitter和Lense-Thirring项
由机动引起的力。目前,只实现了恒定推力机动,可以通过事件检测器机制定义脉冲机动。
参数加速度,用于建模较少知名的力,使用轨道确定从参数函数估计几个定义参数。典型的参数函数是多项式(通常限于常数项)和谐波(通常具有轨道周期或半轨道周期)。一个重要的操作示例是臭名昭著的GPS Y偏差。
表面力,如大气阻力或辐射压力,可以使用各种Isotropic
类的简单球形形状或更精确的BoxAndSolarArraySpacraft
形状。
球形形状与姿态无关。
箱体和太阳能电池板将考虑所有面向通量的箱体面板的贡献,以及一个可以旋转的太阳能电池板的贡献,其方向是航天器本体姿态和真实太阳方向或规范化旋转角的组合。箱体可以有任意数量的面板,并且它们可以具有任意方向,只要主体保持凸面。系数(阻力、升力、吸收、反射)是面板相关的。从12.0版本开始,箱体和太阳能电池板尚未计算阴影效应。
所有这些形状都定义了各种ParameterDrivers
,可用于控制动态参数,如阻力系数或吸收系数。有几种约定可供选择。为了估计目的,可以使用应用于加速度的全局乘法因子,而不是尝试一次估计多个系数,如吸收系数和太阳辐射压力的镜面反射。对于BoxAndSolarArraySpacraft
形状,由于每个面板都有自己的系数集,这是不可观测的,系数是固定的,只有全局乘法因子可用并且可以估计。对于Isotropic
形状,可以估计系数或全局乘法因子。当然,为了避免病态系统,用户不应尝试同时估计Isotropic
情况下的系数和全局乘法因子;他们应选择一个参数进行估计,并将另一个参数固定。