メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

Quaternion Rotation

R2025a

ベクトルを四元数で回転する

  • Quaternion Rotation block

ライブラリ:
Aerospace Blockset / Utilities / Math Operations

説明

Quaternion Rotation ブロックは、初期ベクトル vec を四元数q で受動的に回転した結果のベクトルを計算し、最終ベクトル、回転ベクトル、または回転ベクトルのベクトルを返します。Aerospace Blockset™ は、スカラー優先規則を使用して定義された四元数を使用します。このブロックはすべての四元数入力を正規化します。四元数、初期ベクトル、最終ベクトルに使用される方程式については、アルゴリズム を参照してください。

例

端子

入力

すべて展開する

[q0、r0 、 ...、q1、r1、...、q2、r2、...、q3、r3、...] の形式の四元数。四元数または四元数のベクトルとして指定されます。

データ型: double

[v1、u1、...、v2、u2、...、v3、u3、...] の形式の初期ベクトルまたはベクトルのベクトル。

データ型: double

Output

すべて展開する

最終ベクトルまたは回転ベクトルのベクトル。

データ型: double

アルゴリズム

正規化された四元数は次の形をとる。

q=q0+iq1+jq2+kq3.

ベクトルは次の形をとる。

v=iv1+jv2+kv3.

Aerospace Blockset は、次の形式のパッシブ四元数回転を定義します。

v′=q−1⊗[0v]⊗q,

ここで、Ⓧは四元数の乗算の演算子です。

最終的なベクトルは

v′=[v1′v2′v3′]=[(1−2q22−2q32)2(q1q2+q0q3)2(q1q3−q0q2)2(q1q2−q0q3)(1−2q12−2q32)2(q2q3+q0q1)2(q1q3+q0q2)2(q2q3−q0q1)(1−2q12−2q22)][v1v2v3]

の形をとる。

参照

[1] Stevens, Brian L., Frank L. Lewis. Aircraft Control and Simulation, Second Edition. Hoboken, NJ: Wiley–Interscience.

[2] Diebel, James. "Representing Attitude: Euler Angles, Unit Quaternions, and Rotation Vectors." Stanford University, Stanford, California, 2006.

拡張機能

すべて展開する

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2006a より前に導入