public class EpochDerivativesEquations extends Object implements AdditionalDerivativesProvider
Provider
计算状态(轨道)相对于初始状态和力模型参数的偏导数。
这组方程会自动添加到一个numerical propagator
中,以便同时计算轨道的偏导数和轨道本身。例如,在轨道确定应用中非常有用。
相对于初始状态的偏导数可以是维度为6(仅轨道)或7(轨道和质量)。
相对于力模型参数的偏导数的维度等于所选参数的数量。参数选择在force models
级别实现。用户必须使用ParameterDriversProvider.getParameterDriver(String)
检索一个parameter driver
,然后通过调用setSelected(true)
来选择它。
如果多个力模型为相同参数名称提供不同的drivers
,选择其中任何一个驱动程序会导致选择此共享参数的所有驱动程序。在这种情况下,偏导数将是由相应力模型贡献的偏导数的总和。这种情况通常出现在中心引力系数上,它对Newtonian attraction
、gravity field
和relativity
产生影响。
Modifier and Type | Field and Description |
---|---|
static int |
STATE_DIMENSION
状态维度,固定为6。
|
Constructor and Description |
---|
EpochDerivativesEquations(String name, NumericalPropagator propagator)
简单构造函数。
|
Modifier and Type | Method and Description |
---|---|
CombinedDerivatives |
combinedDerivatives(SpacecraftState s)
计算与附加状态(以及可选的主状态增量)相关的导数。
|
int |
getDimension()
获取生成导数的维度。
|
String |
getName()
获取附加导数的名称(一旦集成,将成为状态)。
|
SpacecraftState |
setInitialJacobians(SpacecraftState s0)
设置相对于状态和参数的雅可比矩阵的初始值。
|
SpacecraftState |
setInitialJacobians(SpacecraftState s1, double[][] dY1dY0, double[][] dY1dP)
设置相对于状态和参数的雅可比矩阵的初始值。
|
void |
setInitialJacobians(SpacecraftState state, double[][] dY1dY0, double[][] dY1dP, double[] p)
将相对于状态的雅可比矩阵设置为一维附加状态数组。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
init, yields
public static final int STATE_DIMENSION
public EpochDerivativesEquations(String name, NumericalPropagator propagator)
在构造时,通过调用其AbstractIntegratedPropagator.addAdditionalDerivativesProvider(AdditionalDerivativesProvider)
方法,这组方程会自动添加到传播器中。因此,对于这些方程,不需要显式调用此方法。
name
- 偏导数方程的名称
propagator
- 将处理轨道传播的传播器
public String getName()
getName
在接口 AdditionalDerivativesProvider
中
public int getDimension()
getDimension
在接口 AdditionalDerivativesProvider
中
public SpacecraftState setInitialJacobians(SpacecraftState s0)
此方法等效于调用setInitialJacobians(SpacecraftState, double[][], double[][])
,其中dYdY0设置为单位矩阵,dYdP设置为零矩阵。
在调用此方法之前,必须已经选择
希望获得偏导数的力模型参数,以便使用正确的矩阵维度。
s0
- 初始状态
public SpacecraftState setInitialJacobians(SpacecraftState s1, double[][] dY1dY0, double[][] dY1dP)
返回的状态必须添加到传播器中(不会自动完成,因为用户可能需要向其中添加更多状态)。
在调用此方法之前,必须已经选择
希望获得偏导数的力模型参数,并且dY1dP
矩阵的维度必须与选择一致。
s1
- 当前状态
dY1dY0
- 当前时间t₁的状态相对于某个先前时间t₀的状态的雅可比矩阵(必须为6x6)
dY1dP
- 当前时间t₁的状态相对于参数的雅可比矩阵(如果未选择参数,则可能为null)
public void setInitialJacobians(SpacecraftState state, double[][] dY1dY0, double[][] dY1dP, double[] p)
此方法将雅可比矩阵转换为笛卡尔参数,并将转换后的数据放入一维p
数组中。
state
- 空间飞行器状态
dY1dY0
- 当前时间t₁的状态相对于某个先前时间t₀的状态的雅可比矩阵
dY1dP
- 当前时间t₁的状态相对于参数的雅可比矩阵(如果没有参数,则可能为null)
p
- 放置一维附加状态的占位符
public CombinedDerivatives combinedDerivatives(SpacecraftState s)
combinedDerivatives
在接口 AdditionalDerivativesProvider
中
s
- 当前状态信息:日期、运动学、姿态和此方程依赖的附加状态(根据yields
方法)
Copyright © 2002-2023 CS GROUP. All rights reserved.