3

四元数の X、Y、Z、および W コンポーネントを 4 つの分離したベクトルで経時的に持っています。

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

3 つのオイラー コンポーネントを 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 2 番目の回転角度が -90 度または 90 度の場合は単数。

Type 2 Rotations: 121 - 131 - 212 - 232 - 313 - 323 2 番目の回転角度が 0 または 180 度の場合は単数形。

于 2012-01-17T18:14:36.420 に答える