public class StateCovariance extends Object implements TimeStamped
目前,协方差仅表示轨道元素。
可以通过使用changeCovarianceFrame(Orbit, Frame)
或changeCovarianceFrame(Orbit, LOF)
方法更改协方差框架。这些方法基于David A. SVallado的《卫星飞行动力学操作的协方差变换》中的方程(18)和(20)。
最后,可以使用changeCovarianceType(Orbit, OrbitType, PositionAngleType)
方法更改协方差轨道类型。
Modifier and Type | Field and Description |
---|---|
static int |
STATE_DIMENSION
状态维度。
|
Constructor and Description |
---|
StateCovariance(org.hipparchus.linear.RealMatrix orbitalCovariance, AbsoluteDate epoch, Frame covarianceFrame, OrbitType orbitType, PositionAngleType angleType)
构造函数。
|
StateCovariance(org.hipparchus.linear.RealMatrix orbitalCovariance, AbsoluteDate epoch, LOF lof)
构造函数。
|
Modifier and Type | Method and Description |
---|---|
StateCovariance |
changeCovarianceFrame(Orbit orbit, Frame frameOut)
获取输出框架中的协方差。
|
StateCovariance |
changeCovarianceFrame(Orbit orbit, LOF lofOut)
获取给定局部轨道框架中的协方差。
|
StateCovariance |
changeCovarianceType(Orbit orbit, OrbitType outOrbitType, PositionAngleType outAngleType)
获取另一种轨道类型的协方差矩阵。
|
static void |
checkFrameAndOrbitTypeConsistency(Frame covarianceFrame, OrbitType inputType)
检查构造函数的输入一致性。
|
AbsoluteDate |
getDate()
获取日期。
|
Frame |
getFrame()
获取协方差框架。
|
LOF |
getLOF()
获取协方差LOF类型。
|
org.hipparchus.linear.RealMatrix |
getMatrix()
获取协方差矩阵。
|
OrbitType |
getOrbitType()
获取协方差轨道类型。
|
PositionAngleType |
getPositionAngleType()
获取协方差角度类型。
|
static org.hipparchus.linear.RealMatrix |
getStm(Orbit initialOrbit, double dt)
仅考虑开普勒贡献的状态转移矩阵。
|
StateCovariance |
shiftedBy(Orbit orbit, double dt)
获取时间偏移的协方差矩阵。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
durationFrom
public static final int STATE_DIMENSION
public StateCovariance(org.hipparchus.linear.RealMatrix orbitalCovariance, AbsoluteDate epoch, LOF lof)
orbitalCovariance
- 6x6轨道参数协方差
epoch
- 协方差的时刻
lof
- 协方差LOF类型
public StateCovariance(org.hipparchus.linear.RealMatrix orbitalCovariance, AbsoluteDate epoch, Frame covarianceFrame, OrbitType orbitType, PositionAngleType angleType)
orbitalCovariance
- 6x6轨道参数协方差
epoch
- 协方差的时刻
covarianceFrame
- 协方差框架(惯性或地球固定)
orbitType
- 协方差的轨道类型(如果covarianceFrame不是伪惯性的话为CARTESIAN)
angleType
- 协方差的位置角类型(如果orbitType为CARTESIAN则不使用)
public static void checkFrameAndOrbitTypeConsistency(Frame covarianceFrame, OrbitType inputType)
covarianceFrame
- 协方差框架(惯性或地球固定)
inputType
- 协方差的轨道类型
OrekitException
- 如果输入框架不是伪惯性且轨道类型不是Cartesian
public AbsoluteDate getDate()
getDate
在接口 TimeStamped
public org.hipparchus.linear.RealMatrix getMatrix()
public OrbitType getOrbitType()
public PositionAngleType getPositionAngleType()
public LOF getLOF()
getFrame()
public StateCovariance changeCovarianceType(Orbit orbit, OrbitType outOrbitType, PositionAngleType outAngleType)
如果协方差矩阵是在局部轨道框架
或非伪惯性框架中表示,则协方差轨道类型无法更改。
由于此类型更改使用变换的雅可比矩阵,因此引入了线性近似。因此,当前协方差矩阵将不会完全匹配新的线性化情况,分布也不再遵循广义高斯分布。
这是基于“Vallado, D. A. (2004). Covariance transformations for satellite flight dynamics operations.”中的方程(1)到(6)。
orbit
- 协方差矩阵应对应的轨道
outOrbitType
- 状态协方差矩阵的目标轨道类型
outAngleType
- 状态协方差矩阵的目标位置角类型
changeCovarianceFrame(Orbit, Frame)
public StateCovariance changeCovarianceFrame(Orbit orbit, LOF lofOut)
更改协方差框架是一个线性过程,除非需要更改协方差轨道类型,否则此方法不会引入近似。
这是基于“Vallado, D. A. (2004). Covariance transformations for satellite flight dynamics operations.”中的方程(18)到(20)。
orbit
- 协方差矩阵应对应的轨道
lofOut
- 输出局部轨道框架
public StateCovariance changeCovarianceFrame(Orbit orbit, Frame frameOut)
更改协方差框架是一个线性过程,除非需要更改协方差轨道类型,否则此方法不会引入近似。
这是基于“Vallado, D. A. (2004). Covariance transformations for satellite flight dynamics operations.”中的方程(18)到(20)。
orbit
- 协方差矩阵应对应的轨道
frameOut
- 输出框架
public StateCovariance shiftedBy(Orbit orbit, double dt)
偏移模型是一个线性化的、开普勒的模型。换句话说,它是基于假设开普勒运动计算的状态转移矩阵。
偏移不旨在替代适当的协方差传播,但对于小时间偏移或粗略精度应该足够。
orbit
- 协方差矩阵应对应的轨道
dt
- 以秒为单位的时间偏移
public static org.hipparchus.linear.RealMatrix getStm(Orbit initialOrbit, double dt)
initialOrbit
- 初始协方差矩阵应对应的轨道
dt
- 两个轨道之间的时间差
Copyright © 2002-2023 CS GROUP. All rights reserved.