Main Content

回転の測定

回転検出の概要

座標系の回転は各種の形式で測定できます。これらには軸角度、四元数、変換、回転シーケンスが含まれます。各種の形式は、Transform Sensor ブロックを介して利用できます。また、限定的ながらジョイント ブロックでも利用できます 1 .選択する測定形式はモデルによって異なります。用途に最適な形式を選択してください。

回転の測定

回転は相対量です。1 つの座標系の回転は、別の座標系に対してのみ意味があります。したがって、回転検出機能をもつブロックで測定を実行するには、測定座標系と基準座標系の 2 つの座標系が必要です。このようなブロックでは、follower 座標系端子が測定座標系を特定し、base 座標系端子が測定の基準座標系を特定します。

Simscape™ Multibody™ は、標準的な規則に従って回転形式を定義します。場合によっては、複数の規則が存在します。これは、四元数の場合などに当てはまります。回転の測定を正しく解釈するには、回転形式の定義を見直してください。

軸角度測定

軸角度は、比較的単純な測定形式です。この形式では、軸ベクトルと角度という 2 つのパラメーターを使用して回転を完全に表します。軸角度形式の有用性は、オイラーの回転定理から直接導かれます。この定理によると、3 次元回転または回転シーケンスは、固定された 1 つの軸の周りを回る、純粋な回転として表すことができます。

座標系の回転を軸角度形式で測定するには、Transform Sensor ブロックを使用します。ブロックのプロパティ インスペクターには、別々に [Axis] パラメーターと [Angle] パラメーターがあり、これらを選択することによって、対応する物理量信号 (PS) 端子 (それぞれ axs と q というラベル) を表示できます。軸と角度のパラメーターは独立して表示されるため、軸、角度またはその両方の測定を選択できます。

軸の出力は、[ax, ay, az] という形式の 3D 単位ベクトルです。この単位ベクトルは、回転方向を右手の法則に従って符号化します。たとえば、+X 軸の周りを反時計方向に回る座標系の回転軸は [1 0 0] です。同じ軸の周りを時計方向に回る座標系の回転軸は [-1 0 0] です。

角度出力は、範囲 0 ~ π のスカラーの数値です。この数値は、測定軸の周りを回転する範囲を符号化します。既定では、角度はラジアン単位で測定されます。角度単位は、Simulink® ブロックとのインターフェイスに使用されている PS-Simulink Converter ブロックで変更できます。

四元数の測定

四元数は、多元数に基づく回転の表現です。四元数は、スカラー部分 S とベクトル部分 V で構成されています。スカラー部分は回転の角度を符号化し、ベクトル部分は回転軸を符号化します。

四元数の主な利点は、特異点のないパラメーター空間です。オイラー角のシーケンスに存在する数学的特異点は、回転自由度の喪失につながります。この現象は、ジンバル ロックとして知られています。Simscape Multibody では、ジンバル ロックは数値誤差を発生させ、シミュレーションの失敗の原因になります。特異点が存在しないということは、シミュレーション目的には四元数がよりロバストであることを意味します。

座標系の回転を四元数形式で測定するには、次を使用します。

  • A Transform Sensor ブロック (2 つの一般的な座標系間の回転を測定する場合)。プロパティ インスペクターの [Rotation] メニューには [Quaternion] パラメーターがあり、これを選択することによって、対応する物理量信号端子 ([Q] というラベル) を表示できます。

  • 球面プリミティブをもつジョイント ブロック (2 つのジョイント座標系間の 3 次元回転を測定する場合)。プロパティ インスペクターの [Sensing] メニューには [Position] パラメーターがあり、これを選択することによって、対応する物理量信号端子 (これも [Q] というラベル) を表示できます。詳細については、Spherical Joint ブロックのリファレンス ページを参照してください。

四元数出力は、4 要素の行ベクトル Q=(SV) です。ここで、

S=cos(θ2)

および

V=[UxUyUz]sin(θ2)

θ は回転の角度であり、[Ux, Uy, Uz] は回転軸の単位ベクトルです。任意の回転に対して、2 つの四元数があることに注意してください。それらは互いに逆向きですが、同じ回転を表します。たとえば、四元数 [1 0 0 0][-1 0 0 0] は、いずれも恒等回転を表します。

変換の測定

回転変換は、座標系の回転を符号化する 3×3 行列です。base 座標系の軸 [x, y, z]B に関して、follower 座標系の軸 [x, y, z]F は次の関係にあります。

[xyz]B=[rxxrxyrxzryxryyryzrzxrzyrzz][xyz]F

それぞれの行列の列には、base 座標系で解決される、follower 座標系の軸の座標が含まれます。たとえば、最初の列は、follower 座標系の X 軸を base 座標系内で解決した座標を示します。同様に、2 番目と 3 番目の列には、Y 軸と Z 軸の座標がそれぞれ含まれます。回転行列を使用したベクトル操作では、ベクトルの座標が、follower 座標系から base 座標系に変換されます。

Transform Sensor ブロックを使用して、座標系の回転を回転行列として検出できます。このブロックのプロパティ インスペクターには [Transform] オプションがあり、これを選択すると、R というラベルの付いた物理量信号端子が表示されます。この端子を使用して回転行列信号を出力し、PS-Simulink Converter ブロックでその出力物理量信号を Simulink 信号に変換した後、Simulink サブシステムで処理や解析などを行います。

回転シーケンスの測定

Transform Sensor ブロックを使用して、base 座標系に対する follower 座標系の回転を検出し、回転を 3 つの連続した基本回転として表すことができます。

3 つの基本回転は、それぞれの基本回転と共に回転する中間座標系の軸を中心とします。つまり、Transform Sensor ブロックは内部回転のみを測定します。ブロックは、[-π, π] の範囲の 3 つの角度を含む 3 行 1 列のベクトルを出力します。X-Y-X、X-Y-Z、X-Z-X、X-Z-Y、Y-X-Y、Y-X-Z、Y-Z-X、Y-Z-Y、Z-X-Y、Z-X-Z、Z-Y-X、および Z-Y-Z の 12 の異なる回転シーケンスに基づいて角度を出力できます。Z-Y-Z シーケンスに基づいた回転を使用した base 座標系に対する follower 座標系の回転を表す例を図に示します。

Rotation sequence z-y-z

base 座標系に対する基本回転である外因性回転を計算するには、内因性回転を手動で変換できます。外因性回転は同じ角度の内因性回転と等価ですが、シーケンスの順序が逆です。たとえば、角度 φ、θ、Ψ による外因性回転 Z-Y-X は、角度 Ψ、θ、φ による内因性回転 X-Y-Z と等価です。

一般的に、(-π, π) の範囲の回転角度の回転シーケンスには 2 つのセットの解があります。X-Y-Z や Z-X-Y のように、回転シーケンスの文字が異なっている場合、Transform Sensor ブロックは θ が (-π/2, π/2) の範囲にある解を出力します。X-Y-X や Z-Y-Z のように、回転シーケンスの最初の文字と最後の文字が同じ場合、Transform Sensor ブロックは θ が (0, π) の範囲にある解を出力します。

これらの場合では、角度 φ および角度 Ψ については無限数の解があります。

  • 回転シーケンスで文字が異なっており、2 番目の回転角度 θ は -π/2 または π/2 に等しくなります。

  • 回転シーケンスの最初の文字と最後の文字が同じであり、2 番目の回転角度 θ は 0 または π に等しくなります。

これらの場合では、Transform Sensor ブロックは、角度 φ と角度 Ψ の大きさが同じである唯一の解のセットを出力します。

関連する例

詳細


1 Weld Joint is an exception