Jav*_*ock 3 matlab quaternions euler-angles
我有一个四元数的X,Y,Z和W分量随着时间的推移,在4个分离的向量中.
QW 1x346 2768 double
QX 1x346 2768 double
QY 1x346 2768 double
QZ 1x346 2768 double
Run Code Online (Sandbox Code Playgroud)
我想转换为欧拉角,以便在三个不同的子图中绘制3个欧拉组件,因此我需要有3个这样的矢量.
heading(t) 1x346
attitude(t) 1x346
bank(t) 1x346
Run Code Online (Sandbox Code Playgroud)
在matlab中是否有一种中间方式来获取它(我的意思是输入我的4个向量并输出上面3个向量的函数)或者我是否必须编写一些代码来为每个时间步进行转换?提前致谢.
我不认为有一个内置的Matlab函数来执行你想要的.
但是,Mathworks用户社区中有一个功能,我相信您正在寻找的功能. spinCalc 这将在各种旋转类型DCM,欧拉角,欧拉向量和四元数之间进行转换.
请注意以上帖子中关于欧拉角集的评论以及您正在使用的旋转顺序.
将数据转换为欧拉角时,必须确保要翻译的方向不是奇点.奇异欧拉集是不能在该特定旋转顺序中唯一地转换为3个变量的方向.单数集如下:
类型1旋转:123 - 132 - 213 - 231 - 321 - 312如果第二旋转角度为-90或90度,则为奇异.
类型2旋转:121 - 131 - 212 - 232 - 313 - 323如果第二旋转角度为0或180度,则为奇异.