|
🛰️航天仿真算法库 SpaceAST 0.3.1
|
#include <AccelerationRotation.hpp>
Public 成员函数 | |
| AccelerationRotation ()=default | |
| AccelerationRotation (const Matrix3d &mat, const Vector3d &angvel, const Vector3d &angvelDot) | |
| AccelerationRotation (const Rotation &rot, const Vector3d &angvel, const Vector3d &angvelDot) | |
| AccelerationRotation (const KinematicRotation &rot, const Vector3d &angvelDot) | |
| _AST_DEF_ACCELERATIONROTATION_PROPERTIES AccelerationRotation & | compose (const AccelerationRotation &next) |
| AccelerationRotation | composed (const AccelerationRotation &next) const |
| AccelerationRotation | operator* (const AccelerationRotation &next) const |
| AccelerationRotation & | operator*= (const AccelerationRotation &next) |
| void | getInverse (AccelerationRotation &inversed) const |
| AccelerationRotation | inverse () const |
| void | transformVecVelAcc (const Vector3d &position, const Vector3d &velocity, const Vector3d &acceleration, Vector3d &positionOut, Vector3d &velocityOut, Vector3d &accelerationOut) const |
| void | transformVecVelAccInv (const Vector3d &position, const Vector3d &velocity, const Vector3d &acceleration, Vector3d &positionOut, Vector3d &velocityOut, Vector3d &accelerationOut) const |
静态 Public 成员函数 | |
| static AccelerationRotation | Identity () |
Protected 属性 | |
| Rotation | rotation_ {} |
| Vector3d | angvel_ {} |
| Vector3d | angvelDot_ {} |
加速度(二阶运动学)坐标系旋转
在运动学坐标系旋转的基础上,增加了坐标系旋转的角加速度信息。 相比 KinematicRotation 多携带一个角加速度,因此可以变换由位置、速度和 加速度组成的二阶状态量,而不只是位置和速度。
| A_ALWAYS_INLINE ast::AccelerationRotation::AccelerationRotation | ( | const Matrix3d & | mat, |
| const Vector3d & | angvel, | ||
| const Vector3d & | angvelDot ) |
加速度旋转构造函数
| mat | 旋转矩阵 |
| angvel | 旋转角速度 |
| angvelDot | 旋转角加速度 |
| A_ALWAYS_INLINE ast::AccelerationRotation::AccelerationRotation | ( | const Rotation & | rot, |
| const Vector3d & | angvel, | ||
| const Vector3d & | angvelDot ) |
加速度旋转构造函数
| rot | 旋转 |
| angvel | 旋转角速度 |
| angvelDot | 旋转角加速度 |
| A_ALWAYS_INLINE ast::AccelerationRotation::AccelerationRotation | ( | const KinematicRotation & | rot, |
| const Vector3d & | angvelDot ) |
加速度旋转构造函数
| rot | 运动学旋转 |
| angvelDot | 旋转角加速度 |
| A_ALWAYS_INLINE AccelerationRotation & ast::AccelerationRotation::compose | ( | const AccelerationRotation & | next | ) |
组合下一个坐标系旋转
| next | 下一个坐标系旋转 |
| A_ALWAYS_INLINE AccelerationRotation ast::AccelerationRotation::composed | ( | const AccelerationRotation & | next | ) | const |
组合下一个坐标系旋转
| next | 下一个坐标系旋转 |
角速度的合成与 KinematicRotation 一致。 角加速度在此之上多一项搬运项 ω1 × (M1ᵀ ω2): 相对角速度 ω2 的分量是在转动的中间系下分解的,而合成结果要求分量在源系下分解, 故求时间导数时该项不会消去。
| A_ALWAYS_INLINE void ast::AccelerationRotation::getInverse | ( | AccelerationRotation & | inversed | ) | const |
获取逆旋转
| inversed | 逆旋转 |
|
static |
获取单位加速度旋转
| A_ALWAYS_INLINE AccelerationRotation ast::AccelerationRotation::inverse | ( | ) | const |
获取逆旋转
| A_ALWAYS_INLINE AccelerationRotation ast::AccelerationRotation::operator* | ( | const AccelerationRotation & | next | ) | const |
组合下一个坐标系旋转
| next | 下一个坐标系旋转 |
| A_ALWAYS_INLINE AccelerationRotation & ast::AccelerationRotation::operator*= | ( | const AccelerationRotation & | next | ) |
组合下一个坐标系旋转
| next | 下一个坐标系旋转 |
| A_ALWAYS_INLINE void ast::AccelerationRotation::transformVecVelAcc | ( | const Vector3d & | position, |
| const Vector3d & | velocity, | ||
| const Vector3d & | acceleration, | ||
| Vector3d & | positionOut, | ||
| Vector3d & | velocityOut, | ||
| Vector3d & | accelerationOut ) const |
变换位置、速度和加速度
设 ρ 为位置,ρ̇、ρ̈ 分别为其源坐标系下的坐标导数和坐标二阶导数,则 positionOut = M ρ velocityOut = M ( ρ̇ − ω×ρ ) accelerationOut = M ( ρ̈ − 2ω×ρ̇ − ω̇×ρ + ω×(ω×ρ) )
| position | 位置 |
| velocity | 速度 |
| acceleration | 加速度 |
| positionOut | 变换后的位置 |
| velocityOut | 变换后的速度 |
| accelerationOut | 变换后的加速度 |
| A_ALWAYS_INLINE void ast::AccelerationRotation::transformVecVelAccInv | ( | const Vector3d & | position, |
| const Vector3d & | velocity, | ||
| const Vector3d & | acceleration, | ||
| Vector3d & | positionOut, | ||
| Vector3d & | velocityOut, | ||
| Vector3d & | accelerationOut ) const |
变换位置、速度和加速度(逆变换)
inverse().transformVecVelAcc(...); | position | 位置 |
| velocity | 速度 |
| acceleration | 加速度 |
| positionOut | 变换后的位置 |
| velocityOut | 变换后的速度 |
| accelerationOut | 变换后的加速度 |