T
- the type of the field elements
public class FieldPVCoordinates<T extends org.hipparchus.CalculusFieldElement<T>> extends Object implements FieldTimeShiftable<FieldPVCoordinates<T>,T>, org.hipparchus.util.FieldBlendable<FieldPVCoordinates<T>,T>
CalculusFieldElement
的位置/速度对。
状态可以在接近日期时稍微偏移。这种偏移基于一个简单的线性模型。它不旨在替代适当的轨道传播(甚至不是开普勒轨道!),但对于小时间偏移或粗略精度应该足够。
这个类是FieldAngularCoordinates
的角度对应物。
此类的实例保证是不可变的。
PVCoordinates
Constructor and Description |
---|
FieldPVCoordinates(double a, FieldPVCoordinates<T> pv)
乘法构造器。
|
FieldPVCoordinates(double a1, FieldPVCoordinates<T> pv1, double a2, FieldPVCoordinates<T> pv2)
线性构造器。
|
FieldPVCoordinates(double a1, FieldPVCoordinates<T> pv1, double a2, FieldPVCoordinates<T> pv2, double a3, FieldPVCoordinates<T> pv3)
线性构造器。
|
FieldPVCoordinates(double a1, FieldPVCoordinates<T> pv1, double a2, FieldPVCoordinates<T> pv2, double a3, FieldPVCoordinates<T> pv3, double a4, FieldPVCoordinates<T> pv4)
线性构造器。
|
FieldPVCoordinates(org.hipparchus.Field<T> field, PVCoordinates pv)
从字段和常规PVCoordinates构建FieldPVCoordinates。
|
FieldPVCoordinates(FieldPVCoordinates<T> start, FieldPVCoordinates<T> end)
减法构造器。
|
FieldPVCoordinates(org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> position, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> velocity)
建立一个带有零加速度的FieldPVCoordinates三元组。
|
FieldPVCoordinates(org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> position, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> velocity, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> acceleration)
建立一个FieldPVCoordinates三元组。
|
FieldPVCoordinates(org.hipparchus.geometry.euclidean.threed.FieldVector3D<U> p)
从 FieldVector3D <FieldDerivativeStructure >构建FieldPVCoordinates三元组。
|
FieldPVCoordinates(T a, FieldPVCoordinates<T> pv)
乘法构造器。
|
FieldPVCoordinates(T a1, FieldPVCoordinates<T> pv1, T a2, FieldPVCoordinates<T> pv2)
线性构造器。
|
FieldPVCoordinates(T a1, FieldPVCoordinates<T> pv1, T a2, FieldPVCoordinates<T> pv2, T a3, FieldPVCoordinates<T> pv3)
线性构造器。
|
FieldPVCoordinates(T a1, FieldPVCoordinates<T> pv1, T a2, FieldPVCoordinates<T> pv2, T a3, FieldPVCoordinates<T> pv3, T a4, FieldPVCoordinates<T> pv4)
线性构造器。
|
FieldPVCoordinates(T a, PVCoordinates pv)
乘法构造器。
|
FieldPVCoordinates(T a1, PVCoordinates pv1, T a2, PVCoordinates pv2)
线性构造器。
|
FieldPVCoordinates(T a1, PVCoordinates pv1, T a2, PVCoordinates pv2, T a3, PVCoordinates pv3)
线性构造器。
|
FieldPVCoordinates(T a1, PVCoordinates pv1, T a2, PVCoordinates pv2, T a3, PVCoordinates pv3, T a4, PVCoordinates pv4)
线性构造器。
|
Modifier and Type | Method and Description |
---|---|
FieldPVCoordinates<T> |
blendArithmeticallyWith(FieldPVCoordinates<T> other, T blendingValue) |
FieldPVCoordinates<T> |
crossProduct(FieldPVCoordinates<T> pv2)
计算两个实例的叉积。
|
static <T extends org.hipparchus.CalculusFieldElement<T>> |
estimateVelocity(org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> start, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> end, double dt)
估计两个位置之间的速度。
|
org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> |
getAcceleration()
获取加速度。
|
org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> |
getAngularVelocity()
获取角速度(自转),从原点看。
|
org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> |
getMomentum()
获取动量。
|
org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> |
getPosition()
获取位置。
|
org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> |
getVelocity()
获取速度。
|
static <T extends org.hipparchus.CalculusFieldElement<T>> |
getZero(org.hipparchus.Field<T> field)
获取原点处的固定位置/速度(p、v和a都是零向量)。
|
FieldPVCoordinates<T> |
negate()
获取实例的相反数。
|
FieldPVCoordinates<T> |
normalize()
规范化实例的位置部分。
|
org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> |
positionShiftedBy(T dt)
获取一个时间偏移的位置。
|
FieldPVCoordinates<T> |
shiftedBy(double dt)
获取一个时间偏移的状态。
|
FieldPVCoordinates<T> |
shiftedBy(T dt)
获取一个时间偏移的状态。
|
FieldPVCoordinates<org.hipparchus.analysis.differentiation.FieldDerivativeStructure<T>> |
toDerivativeStructurePV(int order)
将实例转换为 FieldPVCoordinates <FieldDerivativeStructure >。
|
org.hipparchus.geometry.euclidean.threed.FieldVector3D<org.hipparchus.analysis.differentiation.FieldDerivativeStructure<T>> |
toDerivativeStructureVector(int order)
将实例转换为 FieldVector3D <FieldDerivativeStructure >。
|
PVCoordinates |
toPVCoordinates()
转换为常数位置-速度。
|
String |
toString()
返回此位置/速度对的字符串表示。
|
FieldPVCoordinates<org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1<T>> |
toUnivariateDerivative1PV()
将实例转换为 FieldPVCoordinates <FieldUnivariateDerivative1 >。
|
org.hipparchus.geometry.euclidean.threed.FieldVector3D<org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1<T>> |
toUnivariateDerivative1Vector()
将实例转换为 FieldVector3D <FieldUnivariateDerivative1 >。
|
FieldPVCoordinates<org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2<T>> |
toUnivariateDerivative2PV()
将实例转换为 FieldPVCoordinates <FieldUnivariateDerivative2 >。
|
org.hipparchus.geometry.euclidean.threed.FieldVector3D<org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2<T>> |
toUnivariateDerivative2Vector()
将实例转换为 FieldVector3D <FieldUnivariateDerivative2 >。
|
public FieldPVCoordinates(org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> position, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> velocity)
position
- 位置向量(m)
velocity
- 速度向量(m/s)
public FieldPVCoordinates(org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> position, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> velocity, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> acceleration)
position
- 位置向量(m)
velocity
- 速度向量(m/s)
acceleration
- 加速度向量(m/s²)
public FieldPVCoordinates(org.hipparchus.Field<T> field, PVCoordinates pv)
field
- 组件的字段
pv
- 要转换的PVCoordinates三元组
public FieldPVCoordinates(double a, FieldPVCoordinates<T> pv)
从另一个PVCoordinates和一个比例因子构建PVCoordinates。
构建的PVCoordinates将是a * pv
a
- 比例因子
pv
- 基础(未缩放)PVCoordinates
public FieldPVCoordinates(T a, FieldPVCoordinates<T> pv)
从另一个PVCoordinates和一个比例因子构建PVCoordinates。
构建的PVCoordinates将是a * pv
a
- 比例因子
pv
- 基础(未缩放)PVCoordinates
public FieldPVCoordinates(T a, PVCoordinates pv)
从另一个PVCoordinates和一个比例因子构建PVCoordinates。
构建的PVCoordinates将是a * pv
a
- 比例因子
pv
- 基础(未缩放)PVCoordinates
public FieldPVCoordinates(FieldPVCoordinates<T> start, FieldPVCoordinates<T> end)
从起始和结束位置构建相对PVCoordinates。
构建的PVCoordinates将是end - start。
start
- 起始PVCoordinates
end
- 结束PVCoordinates
public FieldPVCoordinates(double a1, FieldPVCoordinates<T> pv1, double a2, FieldPVCoordinates<T> pv2)
从另外两个PVCoordinates和相应的比例因子构建PVCoordinates。
构建的PVCoordinates将是a1 * u1 + a2 * u2
a1
- 第一个比例因子
pv1
- 第一个基础(未缩放)PVCoordinates
a2
- 第二个比例因子
pv2
- 第二个基础(未缩放)PVCoordinates
public FieldPVCoordinates(T a1, FieldPVCoordinates<T> pv1, T a2, FieldPVCoordinates<T> pv2)
从另外两个PVCoordinates和相应的比例因子构建PVCoordinates。
构建的PVCoordinates将是a1 * u1 + a2 * u2
a1
- 第一个比例因子
pv1
- 第一个基础(未缩放)PVCoordinates
a2
- 第二个比例因子
pv2
- 第二个基础(未缩放)PVCoordinates
public FieldPVCoordinates(T a1, PVCoordinates pv1, T a2, PVCoordinates pv2)
从另外两个PVCoordinates和相应的比例因子构建PVCoordinates。
构建的PVCoordinates将是a1 * u1 + a2 * u2
a1
- 第一个比例因子
pv1
- 第一个基础(未缩放)PVCoordinates
a2
- 第二个比例因子
pv2
- 第二个基础(未缩放)PVCoordinates
public FieldPVCoordinates(double a1, FieldPVCoordinates<T> pv1, double a2, FieldPVCoordinates<T> pv2, double a3, FieldPVCoordinates<T> pv3)
从另外三个PVCoordinates和相应的比例因子构建PVCoordinates。
构建的PVCoordinates将是a1 * u1 + a2 * u2 + a3 * u3
a1
- 第一个比例因子
pv1
- 第一个基础(未缩放)PVCoordinates
a2
- 第二个比例因子
pv2
- 第二个基础(未缩放)PVCoordinates
a3
- 第三个比例因子
pv3
- 第三个基础(未缩放)PVCoordinates
public FieldPVCoordinates(T a1, FieldPVCoordinates<T> pv1, T a2, FieldPVCoordinates<T> pv2, T a3, FieldPVCoordinates<T> pv3)
从另外三个PVCoordinates和相应的比例因子构建PVCoordinates。
构建的PVCoordinates将是a1 * u1 + a2 * u2 + a3 * u3
a1
- 第一个比例因子
pv1
- 第一个基础(未缩放)PVCoordinates
a2
- 第二个比例因子
pv2
- 第二个基础(未缩放)PVCoordinates
a3
- 第三个比例因子
pv3
- 第三个基础(未缩放)PVCoordinates
public FieldPVCoordinates(T a1, PVCoordinates pv1, T a2, PVCoordinates pv2, T a3, PVCoordinates pv3)
从另外三个PVCoordinates和相应的比例因子构建PVCoordinates。
构建的PVCoordinates将是a1 * u1 + a2 * u2 + a3 * u3
a1
- 第一个比例因子
pv1
- 第一个基础(未缩放)PVCoordinates
a2
- 第二个比例因子
pv2
- 第二个基础(未缩放)PVCoordinates
a3
- 第三个比例因子
pv3
- 第三个基础(未缩放)PVCoordinates
public FieldPVCoordinates(double a1, FieldPVCoordinates<T> pv1, double a2, FieldPVCoordinates<T> pv2, double a3, FieldPVCoordinates<T> pv3, double a4, FieldPVCoordinates<T> pv4)
从另外四个PVCoordinates和相应的比例因子构建PVCoordinates。
构建的PVCoordinates将是a1 * u1 + a2 * u2 + a3 * u3 + a4 * u4
a1
- 第一个比例因子
pv1
- 第一个基础(未缩放)PVCoordinates
a2
- 第二个比例因子
pv2
- 第二个基础(未缩放)PVCoordinates
a3
- 第三个比例因子
pv3
- 第三个基础(未缩放)PVCoordinates
a4
- 第四个比例因子
pv4
- 第四个基础(未缩放)PVCoordinates
public FieldPVCoordinates(T a1, FieldPVCoordinates<T> pv1, T a2, FieldPVCoordinates<T> pv2, T a3, FieldPVCoordinates<T> pv3, T a4, FieldPVCoordinates<T> pv4)
从另外四个PVCoordinates和相应的比例因子构建PVCoordinates。
构建的PVCoordinates将是a1 * u1 + a2 * u2 + a3 * u3 + a4 * u4
a1
- 第一个比例因子
pv1
- 第一个基础(未缩放)PVCoordinates
a2
- 第二个比例因子
pv2
- 第二个基础(未缩放)PVCoordinates
a3
- 第三个比例因子
pv3
- 第三个基础(未缩放)PVCoordinates
a4
- 第四个比例因子
pv4
- 第四个基础(未缩放)PVCoordinates
public FieldPVCoordinates(T a1, PVCoordinates pv1, T a2, PVCoordinates pv2, T a3, PVCoordinates pv3, T a4, PVCoordinates pv4)
从另外四个PVCoordinates和相应的比例因子构建PVCoordinates。
a1
- 第一个比例因子
pv1
- 第一个基准(未缩放)PVCoordinates
a2
- 第二个比例因子
pv2
- 第二个基准(未缩放)PVCoordinates
a3
- 第三个比例因子
pv3
- 第三个基准(未缩放)PVCoordinates
a4
- 第四个比例因子
pv4
- 第四个基准(未缩放)PVCoordinates
public FieldPVCoordinates(org.hipparchus.geometry.euclidean.threed.FieldVector3D<U> p)
FieldVector3D
<FieldDerivativeStructure
>构建FieldPVCoordinates三元组。
矢量分量必须将时间作为唯一的导数参数,并具有一致的导数阶数。
U
- 导数的类型
p
- 嵌入在坐标中的带有时间导数的矢量
public static <T extends org.hipparchus.CalculusFieldElement<T>> FieldPVCoordinates<T> getZero(org.hipparchus.Field<T> field)
T
- 字段元素的类型
field
- 组件的字段
public org.hipparchus.geometry.euclidean.threed.FieldVector3D<org.hipparchus.analysis.differentiation.FieldDerivativeStructure<T>> toDerivativeStructureVector(int order)
FieldVector3D
<FieldDerivativeStructure
>。
FieldDerivativeStructure
坐标对应于用户指定阶数的时间导数。
order
- 矢量分量的导数阶数(必须为0、1或2)
public org.hipparchus.geometry.euclidean.threed.FieldVector3D<org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1<T>> toUnivariateDerivative1Vector()
FieldVector3D
<FieldUnivariateDerivative1
>。
FieldUnivariateDerivative1
坐标对应于阶数为1的时间导数。
toUnivariateDerivative2Vector()
public org.hipparchus.geometry.euclidean.threed.FieldVector3D<org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2<T>> toUnivariateDerivative2Vector()
FieldVector3D
<FieldUnivariateDerivative2
>。
FieldUnivariateDerivative2
坐标对应于阶数为2的时间导数。
toUnivariateDerivative1Vector()
public FieldPVCoordinates<org.hipparchus.analysis.differentiation.FieldDerivativeStructure<T>> toDerivativeStructurePV(int order)
FieldPVCoordinates
<FieldDerivativeStructure
>。
FieldDerivativeStructure
坐标对应于用户指定阶数的时间导数。由于实例组件position
、velocity
和acceleration
以及组件的derivatives
都包含时间导数,因此有多种方法可以检索这些导数。例如,如果将order
设置为2,则pv.getPosition().getX().getPartialDerivative(2)
、pv.getVelocity().getX().getPartialDerivative(1)
和pv.getAcceleration().getX().getValue()
将返回完全相同的值。
如果导数阶数为1,则将计算加速度的一阶导数作为仅开普勒的急加速度。如果导数阶数为2,则将计算速度的二阶导数(也是加速度的一阶导数)作为仅开普勒的急加速度,并将计算加速度的二阶导数作为仅开普勒的急加速度。
order
- 矢量分量的导数阶数(必须为0、1或2)
public FieldPVCoordinates<org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1<T>> toUnivariateDerivative1PV()
FieldPVCoordinates
<FieldUnivariateDerivative1
>。
FieldUnivariateDerivative1
坐标对应于阶数为1的时间导数。加速度的一阶导数将被计算为仅开普勒的急加速度。
public FieldPVCoordinates<org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2<T>> toUnivariateDerivative2PV()
FieldPVCoordinates
<FieldUnivariateDerivative2
>。
FieldUnivariateDerivative2
坐标对应于阶数为2的时间导数。由于导数阶数为2,因此速度的二阶导数(也是加速度的一阶导数)将被计算为仅开普勒的急加速度,并且加速度的二阶导数将被计算为仅开普勒的急加速度。
public static <T extends org.hipparchus.CalculusFieldElement<T>> org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> estimateVelocity(org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> start, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> end, double dt)
估算基于在两个位置之间的时间间隔内进行简单的固定速度平移。
T
- 字段元素的类型
start
- 起始位置
end
- 结束位置
dt
- 两个位置的日期之间经过的时间
public FieldPVCoordinates<T> shiftedBy(double dt)
状态可以在接近日期时稍微偏移。此偏移基于一个简单的二次模型。它不旨在替代正确的轨道传播(甚至不是开普勒的!),但对于小时间偏移或粗略精度应该足够。
shiftedBy
在接口 TimeShiftable<FieldPVCoordinates<T extends org.hipparchus.CalculusFieldElement<T>>>
dt
- 以秒为单位的时间偏移
public FieldPVCoordinates<T> shiftedBy(T dt)
状态可以在接近日期时稍微偏移。此偏移基于一个简单的二次模型。它不旨在替代正确的轨道传播(甚至不是开普勒的!),但对于小时间偏移或粗略精度应该足够。
shiftedBy
在接口 FieldTimeShiftable<FieldPVCoordinates<T extends org.hipparchus.CalculusFieldElement<T>>,T extends org.hipparchus.CalculusFieldElement<T>>
dt
- 以秒为单位的时间偏移
public org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> positionShiftedBy(T dt)
shiftedBy(CalculusFieldElement)
相同,只返回偏移后的位置。
状态可以在接近日期时稍微偏移。此偏移基于一个简单的泰勒展开。它不旨在替代正确的轨道传播(甚至不是开普勒的!),但对于小时间偏移或粗略精度应该足够。
dt
- 以秒为单位的时间偏移
public org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> getPosition()
public org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> getVelocity()
public org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> getAcceleration()
public org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> getMomentum()
该向量是 p ⊗ v,其中 p 是位置,v 是速度,⊗ 是叉乘。要获得真实的物理角动量,您需要将该向量乘以质量。
每次调用此方法时返回的向量都会重新计算,不会被缓存。
public org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> getAngularVelocity()
角速度向量与 角动量
平行,并由 ω = p × v / ||p||² 计算
public FieldPVCoordinates<T> negate()
public FieldPVCoordinates<T> normalize()
计算的坐标的第一个分量(位置)将是一个规范化向量,第二个分量(速度)将是第一个分量的导数(因此通常不会被规范化),第三个分量(加速度)将是第二个分量的导数(因此通常不会被规范化)。
public FieldPVCoordinates<T> crossProduct(FieldPVCoordinates<T> pv2)
pv2
- 第二个实例
public PVCoordinates toPVCoordinates()
public FieldPVCoordinates<T> blendArithmeticallyWith(FieldPVCoordinates<T> other, T blendingValue) throws org.hipparchus.exception.MathIllegalArgumentException
blendArithmeticallyWith
在接口 org.hipparchus.util.FieldBlendable<FieldPVCoordinates<T extends org.hipparchus.CalculusFieldElement<T>> 中,T extends org.hipparchus.CalculusFieldElement<T>>
-
抛出:
-
org.hipparchus.exception.MathIllegalArgumentException
Copyright © 2002-2023 CS GROUP. All rights reserved.