T
- type of the field elements
public class FieldCircularOrbit<T extends org.hipparchus.CalculusFieldElement<T>> extends FieldOrbit<T> implements PositionAngleBased
内部使用的参数是圆形元素,可以与开普勒元素关联如下:
上述给出的从开普勒元素到圆形元素的转换方程仅在两侧都明确定义时有效,即轨道既不是赤道轨道也不是圆形轨道时。当轨道是圆形的(但不是赤道轨道)时,圆形参数仍然是明确定义的,而一些开普勒元素(更准确地说是ω和Ω)变得模糊。当轨道是赤道轨道时,开普勒和圆形参数都无法明确定义。赤道轨道
是表示轨道的推荐方式。
保证CircularOrbit
实例是不可变的。
Orbit
, KeplerianOrbit
, CartesianOrbit
, EquinoctialOrbit
Constructor and Description |
---|
FieldCircularOrbit(org.hipparchus.Field<T> field, CircularOrbit op)
从Field和CircularOrbit构造函数。
|
FieldCircularOrbit(org.hipparchus.Field<T> field, Orbit op)
从Field和Orbit构造函数。
|
FieldCircularOrbit(FieldOrbit<T> op)
从任何类型的轨道参数构造函数。
|
FieldCircularOrbit(FieldPVCoordinates<T> PVCoordinates, Frame frame, FieldAbsoluteDate<T> date, T mu)
从笛卡尔参数构造函数。
|
FieldCircularOrbit(TimeStampedFieldPVCoordinates<T> pvCoordinates, Frame frame, T mu)
从笛卡尔参数构造函数。
|
FieldCircularOrbit(T a, T ex, T ey, T i, T raan, T alpha, PositionAngleType type, Frame frame, FieldAbsoluteDate<T> date, T mu)
创建一个新实例。
|
FieldCircularOrbit(T a, T ex, T ey, T i, T raan, T alpha, T aDot, T exDot, T eyDot, T iDot, T raanDot, T alphaDot, PositionAngleType type, Frame frame, FieldAbsoluteDate<T> date, T mu)
创建一个新实例。
|
Modifier and Type | Method and Description |
---|---|
void |
addKeplerContribution(PositionAngleType type, T gm, T[] pDot)
将开普勒运动对参数导数的贡献添加到其中
|
protected T[][] |
computeJacobianEccentricWrtCartesian()
计算轨道参数相对于笛卡尔参数的偏心角的雅可比矩阵。
|
protected T[][] |
computeJacobianMeanWrtCartesian()
计算轨道参数相对于笛卡尔参数的平均角的雅可比矩阵。
|
protected T[][] |
computeJacobianTrueWrtCartesian()
计算轨道参数相对于笛卡尔参数的真角的雅可比矩阵。
|
static <T extends org.hipparchus.CalculusFieldElement<T>> |
eccentricToMean(T alphaE, T ex, T ey)
从偏心纬度参数计算平均纬度参数。
|
static <T extends org.hipparchus.CalculusFieldElement<T>> |
eccentricToTrue(T alphaE, T ex, T ey)
从偏心纬度参数计算真纬度参数。
|
T |
getA()
获取半长轴。
|
T |
getADot()
获取半长轴导数。
|
T |
getAlpha(PositionAngleType type)
获取纬度参数。
|
T |
getAlphaDot(PositionAngleType type)
获取纬度参数导数。
|
T |
getAlphaE()
获取偏心纬度参数。
|
T |
getAlphaEDot()
获取偏心纬度参数导数。
|
T |
getAlphaM()
获取平均纬度参数。
|
T |
getAlphaMDot()
获取平均纬度参数导数。
|
T |
getAlphaV()
获取真纬度参数。
|
T |
getAlphaVDot()
获取真纬度参数导数。
|
PositionAngleType |
getCachedPositionAngleType()
获取缓存的 PositionAngleType 。
|
T |
getCircularEx()
获取圆形偏心率向量的第一个分量。
|
T |
getCircularExDot()
获取圆形偏心率向量的第一个分量导数。
|
T |
getCircularEy()
获取圆形偏心率向量的第二个分量。
|
T |
getCircularEyDot()
获取圆形偏心率向量的第二个分量导数。
|
T |
getE()
获取偏心率。
|
T |
getEDot()
获取偏心率导数。
|
T |
getEquinoctialEx()
获取赤道偏心率向量的第一个分量。
|
T |
getEquinoctialExDot()
获取赤道偏心率向量的第一个分量。
|
T |
getEquinoctialEy()
获取赤道偏心率向量的第二个分量。
|
T |
getEquinoctialEyDot()
获取赤道偏心率向量的第二个分量。
|
T |
getHx()
获取倾角向量的第一个分量。
|
T |
getHxDot()
获取倾角向量的第一个分量导数。
|
T |
getHy()
获取倾角向量的第二个分量。
|
T |
getHyDot()
获取倾角向量的第二个分量导数。
|
T |
getI()
获取倾角。
|
T |
getIDot()
获取倾角导数。
|
T |
getLE()
获取偏心经度参数。
|
T |
getLEDot()
获取偏心经度参数导数。
|
T |
getLM()
获取平均经度参数。
|
T |
getLMDot()
获取平均经度参数导数。
|
T |
getLv()
获取真经度参数。
|
T |
getLvDot()
获取真经度参数导数。
|
T |
getRightAscensionOfAscendingNode()
获取升交点赤经。
|
T |
getRightAscensionOfAscendingNodeDot()
获取升交点赤经导数。
|
OrbitType |
getType()
获取轨道类型。
|
boolean |
hasDerivatives()
检查轨道是否包含导数。
|
boolean |
hasRates()
告诉实例是否持有相关变量的速率(一阶时间导数)。
|
protected org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> |
initPosition()
从规范参数计算位置坐标。
|
protected TimeStampedFieldPVCoordinates<T> |
initPVCoordinates()
从规范参数计算位置/速度坐标。
|
static <T extends org.hipparchus.CalculusFieldElement<T>> |
meanToEccentric(T alphaM, T ex, T ey)
从平均纬度参数计算偏心纬度参数。
|
FieldCircularOrbit<T> |
removeRates()
创建一个新实例,使得 PositionAngleBased.hasRates() 为false。
|
FieldCircularOrbit<T> |
shiftedBy(double dt)
获取一个时间偏移的实例。
|
FieldCircularOrbit<T> |
shiftedBy(T dt)
获取一个时间偏移的轨道。
|
CircularOrbit |
toOrbit()
将FieldOrbit实例转换为Orbit实例。
|
String |
toString()
返回此Orbit对象的字符串表示形式。
|
static <T extends org.hipparchus.CalculusFieldElement<T>> |
trueToEccentric(T alphaV, T ex, T ey)
从真纬度参数计算偏心纬度参数。
|
fillHalfRow, fillHalfRow, fillHalfRow, fillHalfRow, fillHalfRow, fillHalfRow, getDate, getField, getFrame, getJacobianWrtCartesian, getJacobianWrtParameters, getKeplerianMeanMotion, getKeplerianPeriod, getMeanAnomalyDotWrtA, getMu, getOne, getPosition, getPosition, getPVCoordinates, getPVCoordinates, getPVCoordinates, getZero, hasNonKeplerianAcceleration, isElliptical
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getPosition
durationFrom
public FieldCircularOrbit(T a, T ex, T ey, T i, T raan, T alpha, PositionAngleType type, Frame frame, FieldAbsoluteDate<T> date, T mu) throws IllegalArgumentException
a
- 半长轴(米)
ex
- e cos(ω),圆形偏心率向量的第一个分量
ey
- e sin(ω),圆形偏心率向量的第二个分量
i
- 倾角(弧度)
raan
- 升交点赤经(Ω,弧度)
alpha
- an + ω,平均、偏心或真纬度参数(弧度)
type
- 纬度参数类型
frame
- 定义参数的参考系(必须是一个伪惯性参考系
)
date
- 轨道参数的日期
mu
- 中心引力系数(m³/s²)
IllegalArgumentException
- 如果偏心率等于1或更大,或者参考系不是一个伪惯性参考系
public FieldCircularOrbit(T a, T ex, T ey, T i, T raan, T alpha, T aDot, T exDot, T eyDot, T iDot, T raanDot, T alphaDot, PositionAngleType type, Frame frame, FieldAbsoluteDate<T> date, T mu) throws IllegalArgumentException
a
- 半长轴(米)
ex
- e cos(ω),圆形偏心率向量的第一个分量
ey
- e sin(ω),圆形偏心率向量的第二个分量
i
- 倾角(弧度)
raan
- 升交点赤经(Ω,弧度)
alpha
- an + ω,平均、偏心或真纬度参数(弧度)
aDot
- 半长轴导数(m/s)
exDot
- d(e cos(ω))/dt,圆形偏心率向量的第一个分量导数
eyDot
- d(e sin(ω))/dt,圆形偏心率向量的第二个分量导数
iDot
- 倾角导数(弧度/秒)
raanDot
- 升交点赤经导数(弧度/秒)
alphaDot
- d(an + ω),平均、偏心或真纬度参数导数(弧度/秒)
type
- 纬度参数类型
frame
- 定义参数的参考系(必须是一个伪惯性参考系
)
date
- 轨道参数的日期
mu
- 中心引力系数(m³/s²)
IllegalArgumentException
- 如果偏心率等于1或更大,或者参考系不是一个伪惯性参考系
public FieldCircularOrbit(TimeStampedFieldPVCoordinates<T> pvCoordinates, Frame frame, T mu) throws IllegalArgumentException
在FieldPVCoordinates
中提供的加速度可通过FieldOrbit.getPVCoordinates()
和FieldOrbit.getPVCoordinates(Frame)
访问。所有其他方法使用mu
和位置来计算加速度,包括shiftedBy(CalculusFieldElement)
和FieldOrbit.getPVCoordinates(FieldAbsoluteDate, Frame)
。
pvCoordinates
- 惯性参考系中的FieldPVCoordinates
frame
- 定义FieldPVCoordinates
的参考系(必须是一个伪惯性参考系
)
mu
- 中心引力系数(m³/s²)
IllegalArgumentException
- 如果参考系不是一个伪惯性参考系
public FieldCircularOrbit(FieldPVCoordinates<T> PVCoordinates, Frame frame, FieldAbsoluteDate<T> date, T mu) throws IllegalArgumentException
在FieldPVCoordinates
中提供的加速度可通过FieldOrbit.getPVCoordinates()
和FieldOrbit.getPVCoordinates(Frame)
访问。所有其他方法使用mu
和位置来计算加速度,包括shiftedBy(CalculusFieldElement)
和FieldOrbit.getPVCoordinates(FieldAbsoluteDate, Frame)
。
PVCoordinates
- 惯性参考系中的FieldPVCoordinates
frame
- 定义FieldPVCoordinates
的参考系(必须是一个伪惯性参考系
)
date
- 轨道参数的日期
mu
- 中心吸引系数(m³/s²)
IllegalArgumentException
- 如果参考系不是一个伪惯性参考系
public FieldCircularOrbit(FieldOrbit<T> op)
op
- 要复制的轨道参数
public FieldCircularOrbit(org.hipparchus.Field<T> field, CircularOrbit op)
从非Field CircularOrbit构建FieldCircularOrbit。
field
- 用于基础对象的CalculusField
op
- 只有“常数”项的非Field轨道
public OrbitType getType()
getType
在类 FieldOrbit<T extends org.hipparchus.CalculusFieldElement<T>>
public T getA()
请注意,对于双曲线轨道,半长轴被认为是负的。
getA
在类 FieldOrbit<T extends org.hipparchus.CalculusFieldElement<T>>
public T getADot()
请注意,对于双曲线轨道,半长轴被认为是负的。
如果轨道是没有导数创建的,则返回的值为null。
getADot
在类 FieldOrbit<T extends org.hipparchus.CalculusFieldElement<T>>
public T getEquinoctialEx()
getEquinoctialEx
在类 FieldOrbit<T extends org.hipparchus.CalculusFieldElement<T>>
public T getEquinoctialExDot()
如果轨道是没有导数创建的,则返回的值为null。
getEquinoctialExDot
在类 FieldOrbit<T extends org.hipparchus.CalculusFieldElement<T>>
public T getEquinoctialEy()
getEquinoctialEy
在类 FieldOrbit<T extends org.hipparchus.CalculusFieldElement<T>>
public T getEquinoctialEyDot()
如果轨道是没有导数创建的,则返回的值为null。
getEquinoctialEyDot
在类 FieldOrbit<T extends org.hipparchus.CalculusFieldElement<T>>
public T getCircularEx()
public T getCircularExDot()
public T getCircularEy()
public T getCircularEyDot()
public T getHx()
getHx
在类 FieldOrbit<T extends org.hipparchus.CalculusFieldElement<T>>
public T getHxDot()
如果轨道是没有导数创建的,则返回的值为null。
getHxDot
在类 FieldOrbit<T extends org.hipparchus.CalculusFieldElement<T>>
public T getHy()
getHy
在类 FieldOrbit<T 扩展 org.hipparchus.CalculusFieldElement<T>>
public T getHyDot()
getHyDot
在类 FieldOrbit<T 扩展 org.hipparchus.CalculusFieldElement<T>>
public T getAlphaV()
public T getAlphaVDot()
public T getAlphaE()
public T getAlphaEDot()
public T getAlphaM()
public T getAlphaMDot()
public T getAlpha(PositionAngleType type)
type
- 角度类型
public T getAlphaDot(PositionAngleType type)
type
- 角度类型
public static <T extends org.hipparchus.CalculusFieldElement<T>> T eccentricToTrue(T alphaE, T ex, T ey)
T
- 字段元素的类型
alphaE
- = E + ω 偏心纬度参数(弧度)
ex
- e cos(ω),圆偏心率向量的第一个分量
ey
- e sin(ω),圆偏心率向量的第二个分量
public static <T extends org.hipparchus.CalculusFieldElement<T>> T trueToEccentric(T alphaV, T ex, T ey)
T
- 字段元素的类型
alphaV
- = v + ω 真纬度参数(弧度)
ex
- e cos(ω),圆偏心率向量的第一个分量
ey
- e sin(ω),圆偏心率向量的第二个分量
public static <T extends org.hipparchus.CalculusFieldElement<T>> T meanToEccentric(T alphaM, T ex, T ey)
T
- 字段元素的类型
alphaM
- = M + ω 平均纬度参数(弧度)
ex
- e cos(ω),圆偏心率向量的第一个分量
ey
- e sin(ω),圆偏心率向量的第二个分量
public static <T extends org.hipparchus.CalculusFieldElement<T>> T eccentricToMean(T alphaE, T ex, T ey)
T
- 字段元素的类型
alphaE
- = E + ω 偏心纬度参数(弧度)
ex
- e cos(ω),圆偏心率向量的第一个分量
ey
- e sin(ω),圆偏心率向量的第二个分量
public T getE()
getE
在类 FieldOrbit<T 扩展 org.hipparchus.CalculusFieldElement<T>>
public T getEDot()
如果轨道是没有导数创建的,则返回的值为null。
getEDot
在类 FieldOrbit<T 扩展 org.hipparchus.CalculusFieldElement<T>>
public T getI()
如果轨道是没有导数创建的,则返回的值为null。
getI
在类 FieldOrbit<T 扩展 org.hipparchus.CalculusFieldElement<T>>
public T getIDot()
getIDot
在类 FieldOrbit<T 扩展 org.hipparchus.CalculusFieldElement<T>>
public T getRightAscensionOfAscendingNode()
public T getRightAscensionOfAscendingNodeDot()
public T getLv()
getLv
在类 FieldOrbit<T 扩展 org.hipparchus.CalculusFieldElement<T>>
public T getLvDot()
如果轨道是没有导数创建的,则返回的值为null。
getLvDot
在类 FieldOrbit<T 扩展 org.hipparchus.CalculusFieldElement<T>>
public T getLE()
getLE
在类中 FieldOrbit<T 扩展 org.hipparchus.CalculusFieldElement<T>>
public T getLEDot()
如果轨道是在没有导数的情况下创建的,则返回的值为null。
getLEDot
在类中 FieldOrbit<T 扩展 org.hipparchus.CalculusFieldElement<T>>
public T getLM()
getLM
在类中 FieldOrbit<T 扩展 org.hipparchus.CalculusFieldElement<T>>
public T getLMDot()
如果轨道是在没有导数的情况下创建的,则返回的值为null。
getLMDot
在类中 FieldOrbit<T 扩展 org.hipparchus.CalculusFieldElement<T>>
public boolean hasDerivatives()
hasDerivatives
在类中 FieldOrbit<T 扩展 org.hipparchus.CalculusFieldElement<T>>
FieldOrbit.getADot()
, FieldOrbit.getEquinoctialExDot()
, FieldOrbit.getEquinoctialEyDot()
, FieldOrbit.getHxDot()
, FieldOrbit.getHyDot()
, FieldOrbit.getLEDot()
, FieldOrbit.getLvDot()
, FieldOrbit.getLMDot()
, FieldOrbit.getEDot()
, FieldOrbit.getIDot()
protected org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> initPosition()
initPosition
在类中 FieldOrbit<T 扩展 org.hipparchus.CalculusFieldElement<T>>
protected TimeStampedFieldPVCoordinates<T> initPVCoordinates()
initPVCoordinates
在类中 FieldOrbit<T 扩展 org.hipparchus.CalculusFieldElement<T>>
public FieldCircularOrbit<T> shiftedBy(double dt)
shiftedBy
在接口中 TimeShiftable<FieldOrbit<T 扩展 org.hipparchus.CalculusFieldElement<T>>>
dt
- 时间偏移(秒)
public FieldCircularOrbit<T> shiftedBy(T dt)
轨道可以稍微偏移以接近日期。此偏移基于简单的开普勒模型。它不旨在替代正确的轨道和姿态传播,但对于小时间偏移或粗略精度应该足够。
shiftedBy
在接口中 FieldTimeShiftable<FieldOrbit<T 扩展 org.hipparchus.CalculusFieldElement<T>>,T 扩展 org.hipparchus.CalculusFieldElement<T>>
shiftedBy
在类中 FieldOrbit<T 扩展 org.hipparchus.CalculusFieldElement<T>>
dt
- 时间偏移(秒)
protected T[][] computeJacobianMeanWrtCartesian()
元素jacobian[i][j]
是轨道参数i相对于笛卡尔坐标j的导数。这意味着每行对应一个轨道参数,而列0到5对应笛卡尔坐标x、y、z、xDot、yDot和zDot。
computeJacobianMeanWrtCartesian
在类中 FieldOrbit<T 扩展 org.hipparchus.CalculusFieldElement<T>>
FieldOrbit.computeJacobianEccentricWrtCartesian()
, FieldOrbit.computeJacobianTrueWrtCartesian()
protected T[][] computeJacobianEccentricWrtCartesian()
元素jacobian[i][j]
是轨道参数i相对于笛卡尔坐标j的导数。这意味着每一行对应一个轨道参数,而列0到5对应笛卡尔坐标x、y、z、xDot、yDot和zDot。
computeJacobianEccentricWrtCartesian
在类中 FieldOrbit<T extends org.hipparchus.CalculusFieldElement<T>>
FieldOrbit.computeJacobianMeanWrtCartesian()
, FieldOrbit.computeJacobianTrueWrtCartesian()
protected T[][] computeJacobianTrueWrtCartesian()
元素jacobian[i][j]
是轨道参数i相对于笛卡尔坐标j的导数。这意味着每一行对应一个轨道参数,而列0到5对应笛卡尔坐标x、y、z、xDot、yDot和zDot。
computeJacobianTrueWrtCartesian
在类中 FieldOrbit<T extends org.hipparchus.CalculusFieldElement<T>>
FieldOrbit.computeJacobianMeanWrtCartesian()
, FieldOrbit.computeJacobianEccentricWrtCartesian()
public void addKeplerContribution(PositionAngleType type, T gm, T[] pDot)
该方法由基于积分的传播器用于评估开普勒运动对轨道状态演变的部分贡献。
addKeplerContribution
在类中 FieldOrbit<T extends org.hipparchus.CalculusFieldElement<T>>
type
- 状态中位置角的类型
gm
- 要使用的引力系数
pDot
- 包含要更新的轨道状态导数的数组(开普勒部分必须添加到数组分量中,因为数组可能已经包含一些非零元素,对应于非开普勒部分)
public PositionAngleType getCachedPositionAngleType()
PositionAngleType
。
getCachedPositionAngleType
在接口中 PositionAngleBased
public boolean hasRates()
hasRates
在接口中 PositionAngleBased
public FieldCircularOrbit<T> removeRates()
PositionAngleBased.hasRates()
为false。
removeRates
在接口中 PositionAngleBased
public CircularOrbit toOrbit()
toOrbit
在类中 FieldOrbit<T extends org.hipparchus.CalculusFieldElement<T>>
Copyright © 2002-2023 CS GROUP. All rights reserved.