2012-01-17 159 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、オイラー角、オイラーベクトル、およびクォータニオンのさまざまな回転タイプを変換します。

オイラーアングルセットおよび使用している回転シーケンスについては、上記のコメントからこのコメントにご注意ください。

データをオイラーアングルに変換するときは、変換する の向きが特異点に近くないことを確認する必要があります。単数 オイラーセットは、特定の回転順序で3 個の変数に一意に変換できない向きです。

タイプ1回転:123 - 132 - 213 - 231 - 321 - 312 二番目の回転角度が-90または90度の場合は単数形です。

タイプ2回転:121 - 131 - 212 - 232 - 313 - 323 第2回転角が0または180度の場合は単数形です。

+0

+1。あなたの答えをありがとう、それは面白く見える、明日私はそれを完全にチェックします。クォータニオンとローテーションに関する良い文書がありますので、私は注意します。あなたがこのページをチェックするのを知らない場合、あなたは3D空間に関するすべてのものを持っています! http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/ –

+0

+1 - あなたがそれをやった他の誰かを見つけることができれば書き直すことはありません!!! – Marc

+1

@Jav_Rockまた、spinCalc関数についての注釈として:見出し、態度、銀行を要求したので、 'QtoEA123'オプションを使用してspinCalcを呼び出す必要があります。それらはx、y、zの回転に対応する必要があるからです。 –

関連する問題