public class SmallManeuverAnalyticalModel extends Object implements AdapterPropagator.DifferentialEffect
该模型的目的是快速计算在较早日期t₀执行的小机动对日期t₁的影响。可以获得机动的直接效应以及相对于机动参数的雅可比矩阵。
这些效应是使用两个雅可比矩阵进行解析计算的:
第二个雅可比矩阵J1/0是使用简单的开普勒模型计算的,即除了平均运动行之外,还包括一个由于半长轴变化而产生的非对角元素。
日期t₁的轨道元素变化可以添加到从状态中提取的轨道元素中,然后考虑这些变化后将其转换回适当的类型,这可能与开普勒或赤道元素不同。
请注意,此模型仅考虑开普勒效应。这意味着仅使用此类来计算低地球轨道中的倾斜机动将不会改变升交点漂移速率,尽管倾斜已经改变(当然,对于半长轴的变化也是如此)。为了考虑这种漂移,必须同时使用此类的一个实例和J2DifferentialEffect
的一个实例。
Constructor and Description |
---|
SmallManeuverAnalyticalModel(SpacecraftState state0, Frame frame, org.hipparchus.geometry.euclidean.threed.Vector3D dV, double isp)
在用户指定的参考系中构建机动。
|
SmallManeuverAnalyticalModel(SpacecraftState state0, org.hipparchus.geometry.euclidean.threed.Vector3D dV, double isp)
在航天器参考系中构建机动。
|
Modifier and Type | Method and Description |
---|---|
Orbit |
apply(Orbit orbit1)
计算机动对轨道的影响。
|
SpacecraftState |
apply(SpacecraftState state1)
计算机动对航天器状态的影响。
|
AbsoluteDate |
getDate()
获取机动的日期。
|
org.hipparchus.geometry.euclidean.threed.Vector3D |
getInertialDV()
获取机动的惯性速度增量。
|
Frame |
getInertialFrame()
获取定义速度增量的惯性参考系。
|
void |
getJacobian(Orbit orbit1, PositionAngleType positionAngleType, double[][] jacobian)
计算轨道相对于机动参数的雅可比矩阵。
|
double |
updateMass(double mass)
由于机动更新航天器质量。
|
public SmallManeuverAnalyticalModel(SpacecraftState state0, org.hipparchus.geometry.euclidean.threed.Vector3D dV, double isp)
state0
- 机动日期时的状态,在执行机动之前
dV
- 航天器参考系中的速度增量
isp
- 发动机比冲(s)
public SmallManeuverAnalyticalModel(SpacecraftState state0, Frame frame, org.hipparchus.geometry.euclidean.threed.Vector3D dV, double isp)
state0
- 机动日期时的状态,在执行机动之前
frame
- 定义速度增量的参考系
dV
- 指定参考系中的速度增量
isp
- 发动机比冲(s)
public AbsoluteDate getDate()
public org.hipparchus.geometry.euclidean.threed.Vector3D getInertialDV()
getInertialFrame()
public Frame getInertialFrame()
getInertialDV()
public Orbit apply(Orbit orbit1)
orbit1
- 在t₁时的原始轨道,没有机动
apply(SpacecraftState)
,getJacobian(Orbit, PositionAngleType, double[][])
public SpacecraftState apply(SpacecraftState state1)
apply
在接口 AdapterPropagator.DifferentialEffect
state1
- 在t₁时的原始航天器状态,没有机动
apply(Orbit)
,getJacobian(Orbit, PositionAngleType, double[][])
public void getJacobian(Orbit orbit1, PositionAngleType positionAngleType, double[][] jacobian)
雅可比矩阵是一个6x4矩阵。元素jacobian[i][j]对应于轨道参数i相对于机动参数j的偏导数。行的顺序与Orbit.getJacobianWrtCartesian
方法中使用的顺序相同。列(0, 1, 2)对应于由getInertialFrame()
返回的惯性参考系中的速度增量坐标(ΔVx,ΔVy,ΔVz),列3对应于机动日期t₀。
orbit1
- 在t₁时的原始轨道,没有机动
positionAngleType
- 要使用的位置角类型
jacobian
- 占位符6x4(或更大)矩阵,用雅可比矩阵填充,如果矩阵大于6x4,则只会修改左上角的6x4部分
apply(Orbit)
public double updateMass(double mass)
mass
- 机动前的质量
Copyright © 2002-2023 CS GROUP. All rights reserved.