1

我正在模拟一个需要将方向余弦矩阵转换为四元数的系统。我使用 simulink 中提供的默认 DCM 到四元数转换块。然而,在模拟的某些点,输出四元数分量的符号相反。

不幸的是,我无法附上情节图像。

尽管这在数学上是正确的,但我希望进行平稳的更改。关于如何避免这种情况并为四元数提供平滑曲线的任何想法?

更新 1: http ://tinypic.com/view.php?pic=33dayap&s=6

上图是模拟图。第一个图是输出四元数。第二个图是方向余弦矩阵。如您所见,即使 dcm 分量变化平稳,四元数也会突然改变符号。

4

1 回答 1

1

这个问题是由于四元数的双重覆盖特性引起的:两个单位四元数对应于每个旋转。在某些时候,根据某些规则,Matlab 实现从一个四元数切换到另一个。您对此无能为力。

一个混乱的解决方法是编写自己的旋转矩阵到四元数转换,并选择更接近前一种可能性的两种可能性的表示,从而避免突然跳跃。很乱。

在实际应用中通常不需要绘制四元数。很可能您正在旋转对象/矢量。如果您绘制该对象/矢量(或它的一些投影),即使旋转表示中有跳跃,您也不会突然跳跃。绘制旋转对象的投影的另一个好处是,通常比四元数更容易解释这些图。我不知道这在您的应用程序中是否有意义;它在我的身上工作得很好。

于 2013-03-05T11:36:29.223 回答