メインコンテンツ

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

dcm2rod

方向余弦行列をオイラー・ロドリゲスベクトルに変換する

説明

R = dcm2rod(dcm) 関数は、方向余弦行列からオイラー・ロドリゲス ベクトル (R) を計算します。この関数は、行列式 +1 と直交する方向余弦行列にのみ適用されます。方向余弦行列の入力と結果として得られるオイラー・ロドリゲス ベクトルは、フレーム A からフレーム B への右手パッシブ変換を表します。

方向余弦行列が無効(直交していない)の場合、R = dcm2rod(dcm,action)action を実行します。

R = dcm2rod(dcm,action,tolerance)tolerance レベルを使用して、方向余弦行列 n が有効 (直交) かどうかを評価します。

すべて折りたたむ

方向余弦行列からロドリゲスベクトルを決定します。

DCM = [0.433 0.75 0.5;-0.25 -0.433 0.866;0.866 -0.5 0.0];
r = dcm2rod(DCM)
r =

    1.3660    0.3660    1.0000

許容範囲内で検証された方向余弦行列からロドリゲス ベクトルを決定します。

DCM = [0.433 0.75 0.5;-0.25 -0.433 0.866;0.866 -0.5 0.0];
r = dcm2rod(DCM,'Warning',0.1)
r =
    1.3660    0.3660    1.0000

入力引数

すべて折りたたむ

M 方向余弦行列を含む 3 x 3 x M

データ型: double

方向余弦行列が無効(直交していない)の場合の関数の動作。

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

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

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

データ型: char | string

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

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

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

データ型: double

出力引数

すべて折りたたむ

M ロドリゲス ベクトルを含む M 行 3 列の行列。

データ型: double

アルゴリズム

オイラー・ロドリゲス ベクトル b は、回転軸の方向余弦と回転角度の半分の接線を積分することによって回転を表します。

b=[bxbybz]

ここで、

bx=tan(12θ)sx,by=tan(12θ)sy,bz=tan(12θ)sz

ロドリゲスパラメータです。ベクトル s は、回転が実行される単位ベクトルを表します。接線のため、回転角度が ±pi ラジアンまたは ±180 度に等しい場合、回転ベクトルは不確定になります。値は負または正になります。

参照

[1] Dai, J.S. "Euler-Rodrigues formula variations, quaternion conjugation and intrinsic connections." Mechanism and Machine Theory, 92, 144-152. Elsevier, 2015.

バージョン履歴

R2017a で導入