🛰️航天仿真算法库 SpaceAST 0.3.1
载入中...
搜索中...
未找到
ast::AccelerationRotation类 参考

#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 多携带一个角加速度,因此可以变换由位置、速度和 加速度组成的二阶状态量,而不只是位置和速度。

注解
角速度、角加速度的参考系约定与 KinematicRotation 一致: 均表示本坐标系相对源坐标系(父坐标系)的量,且其分量在源坐标系(父坐标系)下分解; 角加速度还额外约定为"该分量"的坐标时间导数。

构造及析构函数说明

◆ AccelerationRotation() [1/3]

A_ALWAYS_INLINE ast::AccelerationRotation::AccelerationRotation ( const Matrix3d & mat,
const Vector3d & angvel,
const Vector3d & angvelDot )

加速度旋转构造函数

参数
mat旋转矩阵
angvel旋转角速度
angvelDot旋转角加速度

◆ AccelerationRotation() [2/3]

A_ALWAYS_INLINE ast::AccelerationRotation::AccelerationRotation ( const Rotation & rot,
const Vector3d & angvel,
const Vector3d & angvelDot )

加速度旋转构造函数

参数
rot旋转
angvel旋转角速度
angvelDot旋转角加速度

◆ AccelerationRotation() [3/3]

A_ALWAYS_INLINE ast::AccelerationRotation::AccelerationRotation ( const KinematicRotation & rot,
const Vector3d & angvelDot )

加速度旋转构造函数

参数
rot运动学旋转
angvelDot旋转角加速度

成员函数说明

◆ compose()

A_ALWAYS_INLINE AccelerationRotation & ast::AccelerationRotation::compose ( const AccelerationRotation & next)

组合下一个坐标系旋转

警告
组合旋转是先应用当前旋转,再应用下一个坐标系旋转。
参数
next下一个坐标系旋转

◆ composed()

A_ALWAYS_INLINE AccelerationRotation ast::AccelerationRotation::composed ( const AccelerationRotation & next) const

组合下一个坐标系旋转

警告
组合旋转是先应用当前旋转,再应用下一个坐标系旋转。
参数
next下一个坐标系旋转
返回
组合旋转

角速度的合成与 KinematicRotation 一致。 角加速度在此之上多一项搬运项 ω1 × (M1ᵀ ω2): 相对角速度 ω2 的分量是在转动的中间系下分解的,而合成结果要求分量在源系下分解, 故求时间导数时该项不会消去。

◆ getInverse()

A_ALWAYS_INLINE void ast::AccelerationRotation::getInverse ( AccelerationRotation & inversed) const

获取逆旋转

参数
inversed逆旋转

◆ Identity()

A_ALWAYS_INLINE AccelerationRotation ast::AccelerationRotation::Identity ( )
static

获取单位加速度旋转

返回
单位加速度旋转

◆ inverse()

A_ALWAYS_INLINE AccelerationRotation ast::AccelerationRotation::inverse ( ) const

获取逆旋转

返回
逆旋转

◆ operator*()

A_ALWAYS_INLINE AccelerationRotation ast::AccelerationRotation::operator* ( const AccelerationRotation & next) const

组合下一个坐标系旋转

警告
组合旋转是先应用当前旋转,再应用下一个坐标系旋转。
参数
next下一个坐标系旋转
返回
组合旋转

◆ operator*=()

A_ALWAYS_INLINE AccelerationRotation & ast::AccelerationRotation::operator*= ( const AccelerationRotation & next)

组合下一个坐标系旋转

警告
组合旋转是先应用当前旋转,再应用下一个坐标系旋转。
参数
next下一个坐标系旋转
返回
组合旋转

◆ transformVecVelAcc()

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变换后的加速度

◆ transformVecVelAccInv()

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变换后的加速度

该类的文档由以下文件生成: