2012-01-17 109 views
3

我有4個分開的向量中的四元數的X,Y,Z和W分量。從Matlab中的四元數中獲取歐拉角度

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的inmediate辦法讓這(我指的是輸入我的4個向量和輸出功能的上述3個矢量)或做我必須寫一些代碼,使每個時間步長的轉換?提前致謝。

回答

6

我不認爲有一個內置的Matlab函數來執行你想要的。

但是,在Mathworks用戶社區中有一個功能,我相信它就是您正在尋找的功能。 spinCalc這將在各種旋轉類型DCM,歐拉角,歐拉矢量和四元數之間進行轉換。

請注意以上帖子中關於歐拉角度集以及您正在使用的旋轉順序的評論。

將數據轉換爲歐拉角時,必須確保您正在翻譯的 方向不在奇點附近。單數 歐拉集是不能唯一轉換爲特定旋轉順序的變量的方向。單數組爲 如下:

類型1旋轉:123-132-213-231-321-312 如果第二旋轉角度爲-90或90度,則爲單數。

類型2旋轉:121-131-212-232-313-323 如果第二旋轉角度是0或180度,則爲奇數。

+0

+1。謝謝你的回答,看起來很有意思,明天我會仔細檢查一下。我有關於四元數和旋轉的很好的文檔,所以我會小心。如果你不知道檢查這個頁面,你就擁有了關於3D空間的一切(除了一個好的索引或瀏覽器哈哈)! http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/ – 2012-01-17 18:19:14

+0

+1 - 如果你能找到其他人做過的話,永遠不會重寫! – Marc 2012-01-17 21:50:54

+1

@Jav_Rock同樣作爲關於spinCalc函數的一個註釋:您要求標題,態度和銀行,所以我認爲您應該使用'QtoEA123'選項來調用spinCalc。因爲這些應該對應於x,y,z旋轉。 – 2012-01-17 22:14:13