3

我有一个四元数的 X、Y、Z 和 W 分量随着时间的推移,在 4 个分离的向量中。

  QW             1x346             2768  double       
  QX             1x346             2768  double
  QY             1x346             2768  double
  QZ             1x346             2768  double              

我想转换为欧拉角,以便随着时间在三个不同的子图中绘制 3 个欧拉分量,所以我需要有 3 个像这样的向量

  heading(t)          1x346 
  attitude(t)         1x346 
  bank(t)             1x346 

matlab中是否有一种直接的方法来获得这个(我的意思是一个输入我的4个向量并输出上述3个向量的函数)还是我必须编写一些代码来为每个时间步进行转换?提前致谢。

4

1 回答 1

6

我认为没有内置的 Matlab 函数可以执行您想要的操作。

但是,我相信 Mathworks 用户社区中有一个功能是您正在寻找的。 spinCalc 这将在各种旋转类型 DCM、欧拉角、欧拉向量和四元数之间进行转换。

请注意上述帖子中关于欧拉角集和您使用的旋转顺序的评论。

将数据转换为欧拉角时,必须确保要转换的方向不接近奇点。奇异欧拉集是不能以特定旋转顺序唯一转换为 3 个变量的方向。单数集如下:

类型 1 旋转:123 - 132 - 213 - 231 - 321 - 312 如果第二个旋转角度为 -90 或 90 度,则为单数。

类型 2 旋转:121 - 131 - 212 - 232 - 313 - 323 如果第二个旋转角度为 0 或 180 度,则为单数。

于 2012-01-17T18:14:36.420 回答