T
- the type of the field elements
public class FieldAngularCoordinates<T extends org.hipparchus.CalculusFieldElement<T>> extends Object implements FieldTimeShiftable<FieldAngularCoordinates<T>,T>
CalculusFieldElement
。
状态可以稍微偏移以接近日期。这种偏移基于一个简单的二次模型。它不旨在替代正确的姿态传播,但对于小时间偏移或粗略精度应该足够。
这个类是FieldPVCoordinates
的角度对应物。
此类的实例保证是不可变的。
AngularCoordinates
Constructor and Description |
---|
FieldAngularCoordinates(org.hipparchus.Field<T> field, AngularCoordinates ang)
从字段和常规AngularCoordinates构建FieldAngularCoordinates。
|
FieldAngularCoordinates(FieldPVCoordinates<T> u1, FieldPVCoordinates<T> u2, FieldPVCoordinates<T> v1, FieldPVCoordinates<T> v2, double tolerance)
构建旋转,将一对pv坐标转换为另一对。
|
FieldAngularCoordinates(org.hipparchus.geometry.euclidean.threed.FieldRotation<T> rotation, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> rotationRate)
构建旋转/旋转速率对。
|
FieldAngularCoordinates(org.hipparchus.geometry.euclidean.threed.FieldRotation<T> rotation, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> rotationRate, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> rotationAcceleration)
构建旋转/旋转速率/旋转加速度三元组。
|
FieldAngularCoordinates(org.hipparchus.geometry.euclidean.threed.FieldRotation<U> r)
从 FieldRotation <FieldDerivativeStructure >构建FieldAngularCoordinates。
|
Modifier and Type | Method and Description |
---|---|
FieldAngularCoordinates<T> |
addOffset(FieldAngularCoordinates<T> offset)
从实例添加偏移量。
|
FieldPVCoordinates<T> |
applyTo(FieldPVCoordinates<T> pv)
将旋转应用于pv坐标。
|
FieldPVCoordinates<T> |
applyTo(PVCoordinates pv)
将旋转应用于pv坐标。
|
TimeStampedFieldPVCoordinates<T> |
applyTo(TimeStampedFieldPVCoordinates<T> pv)
将旋转应用于pv坐标。
|
TimeStampedFieldPVCoordinates<T> |
applyTo(TimeStampedPVCoordinates pv)
将旋转应用于pv坐标。
|
static <T extends org.hipparchus.CalculusFieldElement<T>> |
createFromModifiedRodrigues(T[][] r)
将修改的罗德里格斯矢量和导数转换为角度坐标。
|
static <T extends org.hipparchus.CalculusFieldElement<T>> |
estimateRate(org.hipparchus.geometry.euclidean.threed.FieldRotation<T> start, org.hipparchus.geometry.euclidean.threed.FieldRotation<T> end, double dt)
估计两个方向之间的旋转速率。
|
static <T extends org.hipparchus.CalculusFieldElement<T>> |
estimateRate(org.hipparchus.geometry.euclidean.threed.FieldRotation<T> start, org.hipparchus.geometry.euclidean.threed.FieldRotation<T> end, T dt)
估计两个方向之间的旋转速率。
|
static <T extends org.hipparchus.CalculusFieldElement<T>> |
getIdentity(org.hipparchus.Field<T> field)
固定方向与参考框平行(恒等旋转,零旋转速率和加速度)。
|
T[][] |
getModifiedRodrigues(double sign)
将旋转、速率和加速度转换为修改的罗德里格斯矢量和导数。
|
org.hipparchus.geometry.euclidean.threed.FieldRotation<T> |
getRotation()
获取旋转。
|
org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> |
getRotationAcceleration()
获取旋转加速度。
|
org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> |
getRotationRate()
获取旋转速率。
|
FieldAngularCoordinates<T> |
revert()
恢复旋转/旋转速率/旋转加速度三元组。
|
org.hipparchus.geometry.euclidean.threed.FieldRotation<T> |
rotationShiftedBy(T dt)
获取一个时间偏移的旋转。
|
FieldAngularCoordinates<T> |
shiftedBy(double dt)
获取一个时间偏移的状态。
|
FieldAngularCoordinates<T> |
shiftedBy(T dt)
获取一个时间偏移的状态。
|
FieldAngularCoordinates<T> |
subtractOffset(FieldAngularCoordinates<T> offset)
从实例减去偏移量。
|
AngularCoordinates |
toAngularCoordinates()
转换为常规角度坐标。
|
org.hipparchus.geometry.euclidean.threed.FieldRotation<org.hipparchus.analysis.differentiation.FieldDerivativeStructure<T>> |
toDerivativeStructureRotation(int order)
将实例转换为 FieldRotation <FieldDerivativeStructure >。
|
org.hipparchus.geometry.euclidean.threed.FieldRotation<org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1<T>> |
toUnivariateDerivative1Rotation()
将实例转换为 FieldRotation <UnivariateDerivative1 >。
|
org.hipparchus.geometry.euclidean.threed.FieldRotation<org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2<T>> |
toUnivariateDerivative2Rotation()
将实例转换为 FieldRotation <UnivariateDerivative2 >。
|
public FieldAngularCoordinates(org.hipparchus.geometry.euclidean.threed.FieldRotation<T> rotation, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> rotationRate)
rotation
- 旋转
rotationRate
- 旋转速率 Ω(rad/s)
public FieldAngularCoordinates(org.hipparchus.geometry.euclidean.threed.FieldRotation<T> rotation, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> rotationRate, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> rotationAcceleration)
rotation
- 即车辆的方向
rotationRate
- 旋转速率 Ω,即旋转矢量(rad/s)
rotationAcceleration
- 角加速度矢量 dΩ/dt(rad/s²)
public FieldAngularCoordinates(FieldPVCoordinates<T> u1, FieldPVCoordinates<T> u2, FieldPVCoordinates<T> v1, FieldPVCoordinates<T> v2, double tolerance)
警告!此方法对其参数有比FieldRotation
类中的类似constructor
更严格的假设。就FieldRotation构造函数而言,第二对中的v₂
矢量可能略微不对齐。FieldRotation构造函数将补偿此不对齐并创建一个旋转,确保v₁ = r(u₁)
和v₂ ∈ plane (r(u₁), r(u₂))
。在这个类中不再成立!由于涉及导数并且必须保留,此构造函数仅在两对完全一致时有效,即如果存在一个旋转满足所有要求: v₁ = r(u₁)
,v₂ = r(u₂)
,dv₁/dt = dr(u₁)/dt
,dv₂/dt = dr(u₂)/dt
,d²v₁/dt² = d²r(u₁)/dt²
,d²v₂/dt² = d²r(u₂)/dt²
。
u1
- 原始对的第一个矢量
u2
- 原始对的第二个矢量
v1
- 旋转的u1的期望映像
v2
- 旋转的u2的期望映像
tolerance
- 用于检查奇异性的相对容差因子
public FieldAngularCoordinates(org.hipparchus.Field<T> field, AngularCoordinates ang)
field
- 组件的字段
ang
- 要转换的AngularCoordinates
public FieldAngularCoordinates(org.hipparchus.geometry.euclidean.threed.FieldRotation<U> r)
FieldRotation
<FieldDerivativeStructure
>构建FieldAngularCoordinates。
旋转分量必须将时间作为唯一的导数参数,并且具有一致的导数阶数。
U
- 导数的类型
r
- 在坐标内嵌有时间导数的旋转
public static <T extends org.hipparchus.CalculusFieldElement<T>> FieldAngularCoordinates<T> getIdentity(org.hipparchus.Field<T> field)
T
- 字段元素的类型
field
- 组件的字段
public org.hipparchus.geometry.euclidean.threed.FieldRotation<org.hipparchus.analysis.differentiation.FieldDerivativeStructure<T>> toDerivativeStructureRotation(int order)
FieldRotation
<FieldDerivativeStructure
>。
FieldDerivativeStructure
坐标对应于用户指定阶数的时间导数。
order
- 矢量分量的导数阶数
public org.hipparchus.geometry.euclidean.threed.FieldRotation<org.hipparchus.analysis.differentiation.FieldUnivariateDerivative1<T>> toUnivariateDerivative1Rotation()
FieldRotation
<UnivariateDerivative1
>。
UnivariateDerivative1
坐标对应于阶数为1的时间导数。
public org.hipparchus.geometry.euclidean.threed.FieldRotation<org.hipparchus.analysis.differentiation.FieldUnivariateDerivative2<T>> toUnivariateDerivative2Rotation()
FieldRotation
<UnivariateDerivative2
>。
UnivariateDerivative2
坐标对应于阶数为2的时间导数。
public static <T extends org.hipparchus.CalculusFieldElement<T>> org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> estimateRate(org.hipparchus.geometry.euclidean.threed.FieldRotation<T> start, org.hipparchus.geometry.euclidean.threed.FieldRotation<T> end, double dt)
估计基于两个方向之间的时间间隔内的简单固定速率旋转。
T
- 字段元素的类型
start
- 起始方向
end
- 结束方向
dt
- 两个方向的日期之间经过的时间
public static <T extends org.hipparchus.CalculusFieldElement<T>> org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> estimateRate(org.hipparchus.geometry.euclidean.threed.FieldRotation<T> start, org.hipparchus.geometry.euclidean.threed.FieldRotation<T> end, T dt)
估计基于两个方向之间的时间间隔内的简单固定速率旋转。
T
- 字段元素的类型
start
- 起始方向
end
- 结束方向
dt
- 两个方向的日期之间经过的时间
public FieldAngularCoordinates<T> revert()
构建一个与另一个三元组效果相反的三元组。
public org.hipparchus.geometry.euclidean.threed.FieldRotation<T> rotationShiftedBy(T dt)
shiftedBy(double)
相同,只计算偏移后的旋转。
状态可以稍微偏移以接近日期。这种偏移基于固定加速度运动的近似解。它不旨在替代正确的姿态传播,但对于小时间偏移或粗略精度应该足够。
dt
- 以秒为单位的时间偏移
shiftedBy(CalculusFieldElement)
public FieldAngularCoordinates<T> shiftedBy(double dt)
状态可以稍微偏移以接近日期。这种偏移基于一个简单的二次模型。它不旨在替代正确的姿态传播,但对于小时间偏移或粗略精度应该足够。
shiftedBy
在接口 TimeShiftable<FieldAngularCoordinates<T 扩展 org.hipparchus.CalculusFieldElement<T>>>
dt
- 以秒为单位的时间偏移
public FieldAngularCoordinates<T> shiftedBy(T dt)
状态可以在接近日期时略微偏移。此偏移基于一个简单的二次模型。它并不意味着取代正确的姿态传播,但对于小时间偏移或粗略精度应该是足够的。
shiftedBy
在接口 FieldTimeShiftable<FieldAngularCoordinates<T 扩展 org.hipparchus.CalculusFieldElement<T>>,T 扩展 org.hipparchus.CalculusFieldElement<T>>
dt
- 以秒为单位的时间偏移
public org.hipparchus.geometry.euclidean.threed.FieldRotation<T> getRotation()
public org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> getRotationRate()
public org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> getRotationAcceleration()
public FieldAngularCoordinates<T> addOffset(FieldAngularCoordinates<T> offset)
在这里我们认为偏移旋转首先被应用,然后实例被应用。请注意,在此操作下角坐标不会交换,即 a.addOffset(b)
和 b.addOffset(a)
在大多数情况下会导致不同的结果。
两种方法 addOffset
和 subtractOffset
被设计成可以进行往返应用。这意味着 ac1.subtractOffset(ac2).addOffset(ac2)
和 ac1.addOffset(ac2).subtractOffset(ac2)
返回的角坐标等于ac1。
offset
- 要减去的偏移
subtractOffset(FieldAngularCoordinates)
public FieldAngularCoordinates<T> subtractOffset(FieldAngularCoordinates<T> offset)
在这里我们认为偏移旋转首先被应用,然后实例被应用。请注意,在此操作下角坐标不会交换,即 a.subtractOffset(b)
和 b.subtractOffset(a)
在大多数情况下会导致不同的结果。
两种方法 addOffset
和 subtractOffset
被设计成可以进行往返应用。这意味着 ac1.subtractOffset(ac2).addOffset(ac2)
和 ac1.addOffset(ac2).subtractOffset(ac2)
返回的角坐标等于ac1。
offset
- 要减去的偏移
addOffset(FieldAngularCoordinates)
public AngularCoordinates toAngularCoordinates()
public FieldPVCoordinates<T> applyTo(PVCoordinates pv)
pv
- 要应用旋转的矢量
public TimeStampedFieldPVCoordinates<T> applyTo(TimeStampedPVCoordinates pv)
pv
- 要应用旋转的矢量
public FieldPVCoordinates<T> applyTo(FieldPVCoordinates<T> pv)
pv
- 要应用旋转的矢量
public TimeStampedFieldPVCoordinates<T> applyTo(TimeStampedFieldPVCoordinates<T> pv)
pv
- 要应用旋转的矢量
public T[][] getModifiedRodrigues(double sign)
修改的罗德里格斯矢量是 tan(θ/4) u,其中 θ 和 u 分别是旋转角和轴。
sign
- 四元数分量的乘法符号
createFromModifiedRodrigues(CalculusFieldElement[][])
public static <T extends org.hipparchus.CalculusFieldElement<T>> FieldAngularCoordinates<T> createFromModifiedRodrigues(T[][] r)
T
- 字段元素的类型
r
- 修改的罗德里格斯矢量(带有一阶和二阶导数)
getModifiedRodrigues(double)
Copyright © 2002-2023 CS GROUP. All rights reserved.