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

#include <AttitudeSpinning.hpp>

+ 类 ast::AttitudeSpinning 继承关系图:

Public 成员函数

Axes * getParent () const override
 
errc_t getTransform (const TimePoint &tp, Rotation &rotation) const override
 
errc_t getTransform (const TimePoint &tp, KinematicRotation &rotation) const override
 
errc_t getTransform (const TimePoint &tp, AccelerationRotation &rotation) const override
 
void setReferenceAxes (Axes *axes)
 
const Vector3d & getSpinAxisInFrame () const
 
void setSpinAxisInFrame (const Vector3d &axis)
 
const Vector3d & getSpinAxisInBody () const
 
void setSpinAxisInBody (const Vector3d &axis)
 
double getSpinRate () const
 
void setSpinRate (double rate)
 
double getSpinOffset () const
 
void setSpinOffset (double offset)
 
const TimePoint & getEpoch () const
 
void setEpoch (const TimePoint &epoch)
 
- Public 成员函数 继承自 ast::Axes
int getDepth () const
 
Axes * getAncestor (int depth) const
 
A_ALWAYS_INLINE errc_t getTransformTo (Axes *target, const TimePoint &tp, Rotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformTo (Axes &target, const TimePoint &tp, Rotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformTo (Axes *target, const TimePoint &tp, KinematicRotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformTo (Axes &target, const TimePoint &tp, KinematicRotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformFrom (Axes *source, const TimePoint &tp, Rotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformFrom (Axes &source, const TimePoint &tp, Rotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformFrom (Axes *source, const TimePoint &tp, KinematicRotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformFrom (Axes &source, const TimePoint &tp, KinematicRotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformFrom (Axes *source, const TimePoint &tp, AccelerationRotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformFrom (Axes &source, const TimePoint &tp, AccelerationRotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformFromParent (const TimePoint &tp, Rotation &rotation) const
 
A_ALWAYS_INLINE errc_t getTransformFromParent (const TimePoint &tp, KinematicRotation &rotation) const
 
errc_t getAttitudeIn (Axes &axes, const TimePoint &tp, Quaternion &quat) const
 
A_ALWAYS_INLINE errc_t getAttitudeIn (Axes *axes, const TimePoint &tp, Quaternion &quat) const
 
errc_t getAttitudeIn (Axes &axes, const TimePoint &tp, Quaternion &quat, Vector3d &angvel) const
 
A_ALWAYS_INLINE errc_t getAttitudeIn (Axes *axes, const TimePoint &tp, Quaternion &quat, Vector3d &angvel) const
 
- Public 成员函数 继承自 ast::ObjectNamed
 ObjectNamed ()=default
 
 ObjectNamed (StringView name)
 
const std::string & getName () const override
 
void setName (StringView name) override
 
- Public 成员函数 继承自 ast::Object
 Object (Object *parentScope)
 
 Object (std::nullptr_t)
 
virtual Class * getType () const
 
virtual std::string getRepresentation () const
 
const std::string & name () const
 
std::string displayName () const
 
errc_t showEditDialog ()
 
Attribute attr (StringView path)
 
errc_t getAttrBool (StringView path, bool &value) const
 
errc_t getAttrInt (StringView path, int &value) const
 
errc_t getAttrDouble (StringView path, double &value) const
 
errc_t getAttrString (StringView path, std::string &value) const
 
errc_t getAttrObject (StringView path, Object *&value) const
 
double getAttrDouble (StringView path) const
 
int getAttrInt (StringView path) const
 
bool getAttrBool (StringView path) const
 
std::string getAttrString (StringView path) const
 
Object * getAttrObject (StringView path) const
 
errc_t setAttrBool (StringView path, bool value)
 
errc_t setAttrInt (StringView path, int value)
 
errc_t setAttrDouble (StringView path, double value)
 
errc_t setAttrString (StringView path, StringView value)
 
errc_t setAttrObject (StringView path, Object *value)
 
Class * type () const
 
const std::string & typeName () const
 
Property * getProperty (StringView fieldName) const
 
ObjectId getID () const
 
errc_t setParentScope (Object *parentScope)
 
Object * getParentScope () const
 
template<typename T >
T getParent () const
 
bool isOfType (const Class *type) const
 
bool isOfType (StringView typeName) const
 
template<typename T >
bool isOfType () const
 
template<typename Func >
void addDelayedLink (Func &&link)
 
template<typename Func >
void addDelayedLinkIfFailed (Func &&link)
 
void resolveLinks ()
 
bool readOnly () const
 
void setReadOnly (bool readOnly)
 
bool active () const
 
void setActive (bool active)
 
bool isComponent () const
 
void setIsComponent (bool isComponent)
 
bool isEntity () const
 
void setIsEntity (bool isEntity)
 
const char * tr (const char *msg) const
 
 Referenced ()
 
 Referenced (initial_strong_ref_t)
 
- Public 成员函数 继承自 ast::Referenced
 Referenced (initial_strong_ref_t)
 
uint32_t refCount () const
 
uint32_t weakRefCount () const
 
bool isDestructed () const
 
void destruct ()
 
uint32_t incWeakRef ()
 
uint32_t decWeakRef ()
 
uint32_t incRef ()
 
uint32_t decRef ()
 
uint32_t decRefNoDelete ()
 

Public 属性

AST_PROPERTIES : Axes* getReferenceAxes() const { return referenceAxes_.get()
 

Protected 成员函数

double spinAngle (const TimePoint &tp) const
 
- Protected 成员函数 继承自 ast::Object
 Object (const Object &)
 
Object & operator= (const Object &)
 
- Protected 成员函数 继承自 ast::Referenced
void setDestructed ()
 

Protected 属性

WeakPtr< Axes > referenceAxes_ {}
 
Vector3d spinAxisInFrame_ {Vector3d::UnitZ()}
 
Vector3d spinAxisInBody_ {Vector3d::UnitZ()}
 
double spinRate_ {0.0}
 
double spinOffset_ {0.0}
 
TimePoint epoch_ {}
 

额外继承的成员函数

- 静态 Public 成员函数 继承自 ast::Object
static Object * Resolve (StringView value)
 
static void ClassInit (Class *cls)
 
static Class * StaticType ()
 
- 静态 Public 属性 继承自 ast::Object
static Class staticType
 

详细描述

自旋姿态 (Spinning)

"Spinning" 绕参考坐标系下的一个自旋轴以恒定角速度旋转 自旋轴用两个方向指定:参考坐标系下的方向 a 与体系下的方向 b(通常即某个体轴,例如绕体 Z 轴自旋) 二者的基准取向是两方向各自的自旋轴取向之差 M0 = B * A^T: 把 321(yaw-pitch-roll)序列的 yaw 取 0 即得到 Z 轴沿该方向的姿态

正的自旋速率表示绕自旋轴的右手旋转,t 时刻的姿态为 M(t) = Rot(spinOffset + spinRate * (t - epoch), a) * M0, 其中 Rot(theta, a) 是绕 a 右手旋转 theta 的参考系到体系转换矩阵。

成员函数说明

◆ getParent()

Axes * ast::AttitudeSpinning::getParent ( ) const
overridevirtual

获取当前轴系的父轴系

返回
父轴系指针,根轴系返回 nullptr

实现了 ast::Axes.

◆ getTransform() [1/3]

errc_t ast::AttitudeSpinning::getTransform ( const TimePoint & tp,
AccelerationRotation & rotation ) const
overridevirtual

获取当前轴系相对于父轴系的加速度旋转变换

参数
tp时间点
rotation输出参数,加速度旋转变换(包含加速度)
返回
错误码

默认实现:先由具体轴系给出本轴系相对父轴系的运动学旋转变换(旋转矩阵 + 角速度), 再对两端时刻的角速度做中心差分(端点处退化为单侧差分)得到角加速度。

按 AccelerationRotation 的约定,角加速度是角速度的分量在源轴系(父轴系)下的 坐标时间导数,因此这里直接对 getTransform 返回的角速度分量做差商即可, 不需要额外补偿父轴系自身的转动——父轴系转动引入的输运项由组合变换 AccelerationRotation::composed 统一处理。

这是给没有解析角加速度的轴系兜底用的默认实现,有解析解的轴系应当重写本函数。

重载 ast::Axes .

◆ getTransform() [2/3]

errc_t ast::AttitudeSpinning::getTransform ( const TimePoint & tp,
KinematicRotation & rotation ) const
overridevirtual

获取当前轴系相对于父轴系的运动学旋转变换

参数
tp时间点
rotation输出参数,运动学旋转变换(包含角速度)
返回
错误码

实现了 ast::Axes.

◆ getTransform() [3/3]

errc_t ast::AttitudeSpinning::getTransform ( const TimePoint & tp,
Rotation & rotation ) const
overridevirtual

获取当前轴系相对于父轴系的旋转变换

参数
tp时间点
rotation输出参数,旋转变换
返回
错误码

实现了 ast::Axes.


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