メインコンテンツ

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

Direction Cosine Matrix to Quaternions

方向余弦行列を四元数ベクトルに変換する

  • Direction Cosine Matrix to Quaternions block

ライブラリ:
Aerospace Blockset / Utilities / Axes Transformations

説明

Direction Cosine Matrix to Quaternions ブロックは、3 行 3 列の方向余弦行列 (DCM) を 4 要素の単位四元数ベクトル (q0q1q2q3) に変換します。Aerospace Blockset™ は、スカラー優先規則を使用して定義された四元数を使用します。方向余弦行列は、フレーム A からフレーム B へのパッシブ変換を表します。結果の四元数は、フレーム A からフレーム B への一連の固有の右手パッシブ変換を表します。方向余弦行列の詳細については、アルゴリズム を参照してください。

端子

入力

すべて展開する

方向余弦行列を四元数に変換する方向余弦行列。3 行 3 列として指定します。

データ型: double

出力

すべて展開する

変換によって 4 行 1 列のベクトルとして返される四元数。

データ型: double

パラメーター

すべて展開する

方向余弦行列が無効(直交していない)の場合の動作をブロックします。

  • Warning — 方向余弦行列が無効であることを示す警告を表示します。

  • Error — 方向余弦行列が無効であることを示すエラーを表示します。

  • None — 警告やエラーを表示しません (デフォルト)。

プログラムでの使用

ブロック パラメーター: action
: 文字ベクトル
値: 'None' | 'Warning' | 'Error'
既定の設定: 'None'

データ型: char | string

方向余弦行列の有効性の許容値。スカラーとして指定します。ブロックは、次の条件が満たされる場合に方向余弦行列を有効と見なします。

  • 方向余弦行列の転置をそれ自体で掛けると、指定された許容値 (transpose(n)*n == 1±tolerance) 内で 1 に等しくなります。

  • 方向余弦行列の行列式は、指定された許容値 (det(n) == 1±tolerance) 内で 1 に等しくなります。

プログラムでの使用

ブロック パラメーター: tolerance
: 文字ベクトル
: 'eps(2)' | スカラー
既定の設定: 'eps(2)'

データ型: double

アルゴリズム

DCM は、次のように単位四元数ベクトルの関数として定義されます。

DCM=[(q02+q12q22q32)2(q1q2+q0q3)2(q1q3q0q2)2(q1q2q0q3)(q02q12+q22q32)2(q2q3+q0q1)2(q1q3+q0q2)2(q2q3q0q1)(q02q12q22+q32)]

DCM のこの表現を使用すると、いくつかの計算によって正しい四元数が得られます。最初のステップは、DCM のトレースを計算して、どのアルゴリズムが使用されているかを判断することです。トレースがゼロより大きい場合、四元数を自動的に計算できます。トレースがゼロ以下の場合、四元数の計算に使用される最終的なアルゴリズムを決定するために、最大値を持つ DCM の主要対角要素を識別する必要があります。主要な対角要素が特定されると、四元数が計算されます。

拡張機能

すべて展開する

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

バージョン履歴

R2006a より前に導入