T
- type of the field elementspublic class FieldStateCovariance<T extends org.hipparchus.CalculusFieldElement<T>> extends Object implements FieldTimeStamped<T>
Currently, the covariance only represents the orbital elements.
It is possible to change the covariance frame by using the changeCovarianceFrame(FieldOrbit, Frame)
or
changeCovarianceFrame(FieldOrbit, LOF)
method. These methods are based on Equations (18) and (20) of
Covariance Transformations for Satellite Flight Dynamics Operations by David A. SVallado.
Finally, covariance orbit type can be changed using the
changeCovarianceType(FieldOrbit, OrbitType,
PositionAngle)
method.
Constructor and Description |
---|
FieldStateCovariance(org.hipparchus.linear.FieldMatrix<T> orbitalCovariance,
FieldAbsoluteDate<T> epoch,
Frame covarianceFrame,
OrbitType orbitType,
PositionAngleType angleType)
Constructor.
|
FieldStateCovariance(org.hipparchus.linear.FieldMatrix<T> orbitalCovariance,
FieldAbsoluteDate<T> epoch,
LOF lof)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
FieldStateCovariance<T> |
changeCovarianceFrame(FieldOrbit<T> orbit,
Frame frameOut)
Get the covariance in the output frame.
|
FieldStateCovariance<T> |
changeCovarianceFrame(FieldOrbit<T> orbit,
LOF lofOut)
Get the covariance in a given local orbital frame.
|
FieldStateCovariance<T> |
changeCovarianceType(FieldOrbit<T> orbit,
OrbitType outOrbitType,
PositionAngleType outAngleType)
Get the covariance matrix in another orbit type.
|
FieldAbsoluteDate<T> |
getDate()
Get the date.
|
Frame |
getFrame()
Get the covariance frame.
|
LOF |
getLOF()
Get the covariance LOF type.
|
org.hipparchus.linear.FieldMatrix<T> |
getMatrix()
Get the covariance matrix.
|
OrbitType |
getOrbitType()
Get the covariance orbit type.
|
PositionAngleType |
getPositionAngleType()
Get the covariance angle type.
|
FieldStateCovariance<T> |
shiftedBy(org.hipparchus.Field<T> field,
FieldOrbit<T> orbit,
T dt)
Get a time-shifted covariance matrix.
|
StateCovariance |
toStateCovariance()
Get new state covariance instance.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
durationFrom
public FieldStateCovariance(org.hipparchus.linear.FieldMatrix<T> orbitalCovariance, FieldAbsoluteDate<T> epoch, LOF lof)
orbitalCovariance
- 6x6 orbital parameters covarianceepoch
- epoch of the covariancelof
- covariance LOF typepublic FieldStateCovariance(org.hipparchus.linear.FieldMatrix<T> orbitalCovariance, FieldAbsoluteDate<T> epoch, Frame covarianceFrame, OrbitType orbitType, PositionAngleType angleType)
orbitalCovariance
- 6x6 orbital parameters covarianceepoch
- epoch of the covariancecovarianceFrame
- covariance frame (inertial or Earth fixed)orbitType
- orbit type of the covariance (CARTESIAN if covarianceFrame is not pseudo-inertial)angleType
- position angle type of the covariance (not used if orbitType is CARTESIAN)public FieldAbsoluteDate<T> getDate()
getDate
in interface FieldTimeStamped<T extends org.hipparchus.CalculusFieldElement<T>>
public org.hipparchus.linear.FieldMatrix<T> getMatrix()
public OrbitType getOrbitType()
public PositionAngleType getPositionAngleType()
public Frame getFrame()
getLOF()
public LOF getLOF()
getFrame()
public FieldStateCovariance<T> changeCovarianceType(FieldOrbit<T> orbit, OrbitType outOrbitType, PositionAngleType outAngleType)
The covariance orbit type cannot be changed if the covariance
matrix is expressed in a local orbital frame
or a
non-pseudo inertial frame.
As this type change uses the jacobian matrix of the transformation, it introduces a linear approximation. Hence, the current covariance matrix will not exactly match the new linearized case and the distribution will not follow a generalized Gaussian distribution anymore.
This is based on equation (1) to (6) from "Vallado, D. A. (2004). Covariance transformations for satellite flight dynamics operations."
orbit
- orbit to which the covariance matrix should correspondoutOrbitType
- target orbit type of the state covariance matrixoutAngleType
- target position angle type of the state covariance matrixchangeCovarianceFrame(FieldOrbit, Frame)
public FieldStateCovariance<T> changeCovarianceFrame(FieldOrbit<T> orbit, LOF lofOut)
Changing the covariance frame is a linear process, this method does not introduce approximation unless a change in covariance orbit type is required.
This is based on equation (18) to (20) "from Vallado, D. A. (2004). Covariance transformations for satellite flight dynamics operations."
orbit
- orbit to which the covariance matrix should correspondlofOut
- output local orbital framepublic FieldStateCovariance<T> changeCovarianceFrame(FieldOrbit<T> orbit, Frame frameOut)
Changing the covariance frame is a linear process, this method does not introduce approximation unless a change in covariance orbit type is required.
This is based on equation (18) to (20) "from Vallado, D. A. (2004). Covariance transformations for satellite flight dynamics operations."
orbit
- orbit to which the covariance matrix should correspondframeOut
- output framepublic FieldStateCovariance<T> shiftedBy(org.hipparchus.Field<T> field, FieldOrbit<T> orbit, T dt)
The shifting model is a linearized, Keplerian one. In other words, it is based on a state transition matrix that is computed assuming Keplerian motion.
Shifting is not intended as a replacement for proper covariance propagation, but should be sufficient for small time shifts or coarse accuracy.
field
- to which the elements belongorbit
- orbit to which the covariance matrix should corresponddt
- time shift in secondspublic StateCovariance toStateCovariance()
Copyright © 2002-2023 CS GROUP. All rights reserved.