メインコンテンツ

フレームの取り扱い

フレームとは、3 次元マルチボディ モデルにおいて位置と向きのデータを符号化する 3 本の軸の組み合わせです。個々の 3 本の軸の組み合わせは、原点で交差する 3 本の直交軸で構成されています。原点がフレームの位置を決定し、座標軸がフレームの向きを決定します。座標軸は、x 軸を赤、y 軸を緑、z 軸を青として色分けされています。

フレームの役割

すべての固体コンポーネントには、そのコンポーネントが剛的に関連付けられた 1 つ以上のローカル フレームがあります。コンポーネントのフレームの位置と向きを操作することによって、コンポーネント自体の位置と向きを設定します。このようにしてコンポーネント間の空間関係を指定できるようにすることが、モデルにおけるフレームの役割です。

フレームの取り扱い

フレーム端子は、コンポーネントのローカル フレームを特定します。たとえば、固体ブロックの R フレーム端子は、固体のローカルな基準フレームを特定します。あらゆるブロックに、関連コンポーネントを空間内で位置付けるために接続するフレーム端子が 1 つ以上あります。次の図は、いくつかの Body Elements ブロックの基準フレーム端子を示しています。

フレーム端子間の接続は、それらのフレーム間の空間関係を決定します。フレーム接続ラインで直接接続されたフレームは空間内で一致するようになります。Rigid Transformブロックは、フレーム間の回転オフセットおよび並進オフセットを設定します。次の図は、一致したフレーム接続とオフセットのあるフレーム接続の例を示しています。

固体フレーム間の一致関係は、それ自体で固体ジオメトリ間の一致関係を構成するものではありません。2 つの固体ジオメトリの空間配置は、それぞれの基準フレームの空間配置だけでなく、それらフレームに対しジオメトリがどう定義されているかにも依存します。

2 つのジオメトリが互いに異なる場合、または基準フレームに対するジオメトリの位置や向きが互いに異なる場合、基準フレームを一致させると、固体ジオメトリはオフセットされた配置になります。次の図では、固体 A のフレームを固体 B の左のフレームに接続することで、ジオメトリが互いにオフセットされた形で固体が結合しています。

カスタムの固体フレーム

Solid ブロックには、新規の "カスタム" フレームの作成に使用できるフレーム作成インターフェイスがあります。頂点、エッジ、面などのジオメトリの特徴を使用して、カスタム フレームの位置と向きを指定できます。慣性の観点からさらに便利なのは、重心と固体の 3 つの主軸を使用して同じことを実行できる点です。

実践: カスタムの固体フレームの作成

File Solid ブロックのフレーム作成インターフェイスを使用してカスタム フレームを作成します。次に、フレーム原点を重心に配置し、フレームの座標軸を慣性の主軸に揃えます。結果は、慣性行列が対角行列で、慣性乗積がゼロである、主基準フレームと一致したフレームになります。

  1. MATLAB® コマンド プロンプトで「openExample("sm/DocLBeamInertiaExample")」と入力します。モデルが開き、L 字ビームの形状をもつ固体が表示されます。

  2. File Solid ブロックのダイアログ ボックスで、[Create Frame] ボタンをクリックします。File Solid ブロックのダイアログ ボックスがフレーム作成ビューに切り替わります。

  3. [Frame Name] パラメーターを "Principal Frame (主フレーム)" を表す P に変更します。可視化ペインとフレーム端子では、このラベルを使用して新しいフレームを識別します。

  4. [Frame Origin] で、[At Center of Mass] というラベルのラジオ ボタンを選択します。

  5. [Frame Axes][Primary Axis] および [Frame Axes][Secondary Axis] で、[Along Principal Inertia Axis] というラベルのラジオ ボタンを選択します。既定の軸オプション (それぞれ [+Z][+X]) をそのまま使用し、[Save] をクリックします。ブロックのダイアログ ボックスが切り替わり、メイン (パラメーター) ビューに戻ります。

  6. 可視化ツールストリップで、[Toggle visibility of frames] ボタンをクリックします。新しいカスタム フレーム P を含む固体のフレームが可視化ペインに表示されます。

フレームの変換

フレーム間の回転オフセットおよび並進オフセットは変換と呼ばれます。変換が時間を通じて一定である場合には剛体変換と呼ばれます。剛体変換によって、空間内でのコンポーネントの相対的な位置や向きを固定できます。

フレーム変換の取り扱い

フレーム間での回転、並進、またはそれらを組み合わせた剛体変換を指定するには、Rigid Transform ブロックを使用します。変換には方向があります。変換では、base と呼ばれるフレームを基準として follower と呼ばれるフレームの回転と並進を設定します。

Rigid Transform ブロックのフレーム端子ラベルによって base フレームと follower フレームが特定されます。端子 B に接続されたフレームは base として機能します。端子 F に接続されたフレームは follower として機能します。端子の接続を逆にすると、フレーム変換が適用される方向が逆になります。

さまざまな方法を使用して変換を指定できます。回転変換の方法には、軸と角度のペア、回転行列および回転シーケンスがあります。並進変換の方法には、直交座標系または円柱座標系で定義された並進オフセット ベクトルがあります。

回転変換と並進変換が両方ともゼロの場合、接続されたフレームは空間内で一致します。この関係は "恒等" と呼ばれ、フレーム端子間の直接的なフレーム接続ラインに相当します。

フレーム変換の可視化

Solid ブロックの可視化ペインまたは Multibody Explorer を使用してフレームを可視化し、フレーム間の変換を確認することができます。単一の固体要素のフレームを確認するには、Solid ブロックの可視化ペインを使用します。可視化ツールストリップの [Toggle visibility of frames] ボタンをクリックすると、すべての固体フレームが表示されます。

固体のフレーム

複合ボディ、マルチボディ サブシステムまたは完全なマルチボディ モデルなどにある複数の固体要素のフレームを可視化するには、Multibody Explorer を使用します。Multibody Explorer メニューの [View][Show Frames] を選択すると、すべてのフレームが表示されます。ツリー ビュー ペインからノードを選択すると、選択したコンポーネントに属するフレームのみが表示されます。

ボディのフレーム

フレーム変換の指定

この例では、固体の基準フレーム間のフレーム変換を指定することによって、2 つの固体を互いに対し相対的にオフセットさせる方法を説明します。並進、回転、組み合わせ変換の 3 種類の変換を説明します。

2 つの固体を含むモデルの作成

  1. MATLAB コマンド ラインで「smnew」と入力します。よく使用されるブロックを含む Simscape™ Multibody™ モデル テンプレートが開きます。

  2. Simulink-PS Converter ブロック、PS-Simulink Converter ブロック、および Scope ブロックは、この例では使用しないため、削除します。

  3. Rigid Transform ブロックと Brick Solid ブロックの名前を表示します。ブロックを右クリックして、[書式設定][ブロック名を表示][オン] を選択します。

  4. Brick Solid ブロックのコピーを作成して、Brick Solid ブロックの名前を Base と Follower に変更します。

  5. 残りのブロックを、下図のように接続します。

  6. モデルを実行します。Multibody Explorer が開き、モデルが可視化されます。Multibody Explorer で、[Isometric view] ボタンをクリックします。

  7. ツリー ビュー ペインで、[Base] ノードと [Follower] ノードをクリックします。可視化ペインに 2 つの Brick Solid ブロックの基準フレームが表示され、これらが空間内で同位置にあることがわかります。

並進の適用

この節では、Rigid Transform ブロックを使用することにより、follower フレームに並進を適用する方法を説明します。

  1. Rigid Transform ブロックを、2 つの Brick Solid ブロックの間に接続します。

  2. Rigid Transform ブロックをダブルクリックします。そのダイアログ ボックスで、次のように設定します。

    • [Translation][Method][Cartesian] に。

    • [Translation][Offset][1 1 0] m に。配列の要素は、base フレームの xy、および z の各軸に沿った並進オフセットです。

  3. [OK] をクリックして設定を保存し、[Rigid Transform] ダイアログ ボックスを閉じます。

  4. Multibody Explorer で [Update diagram] ボタンをクリックしてモデルを更新します。

  5. ツリー ビュー ペインで、[Rigid Transform] ノードをクリックして Base と Follower のフレームを表示します。

回転の適用

この節では、Rigid Transform ブロックを使用して、x 軸を中心とした回転を follower フレームに適用する方法を説明します。

  1. Rigid Transform ブロックのダイアログ ボックスで、次のように設定します。

    • [Translation][Method][None] に。ここでは並進は指定されません。

    • [Rotation][Method][Standard Axis] に。

    • [Rotation][Axis][+X] に。x 軸が回転の軸です。

    • [Rotation][Angle]45 度に。

  2. [OK] をクリックしてブロック線図を更新します。

  3. ツリー ビュー ペインで [Rigid Transform] ノードをクリックします。以下の図は、回転のプロセスと最終結果を示しています。最終結果では、Follower Brick Solid が強調表示されています。

組み合わせ変換の適用

この節では、組み合わせ変換の適用方法を説明します。これには、Rigid Transform ブロックを使用した follower フレームの並進と回転が含まれます。

  1. Rigid Transform ブロックのダイアログ ボックスで、次のように設定します。

    • [Translation][Method][Cartesian] に。

    • [Translation][Offset][1 1 0] に。

    • [Rotation][Method][Standard Axis] に。

    • [Rotation][Axis][+X] に。x 軸が回転の軸です。

    • [Rotation][Angle]45 度に。

  2. [OK] をクリックしてブロック線図を更新します。

  3. ツリー ビュー ペインで [Rigid Transform] ノードをクリックします。以下の図は、組み合わせ変換のプロセスと最終結果を示しています。

Rigid Transform ブロックで回転と並進の両方の変換が指定されている場合、ブロックは常に並進を先に follower フレームに適用します。並進では、follower フレームの動きを base フレームと相対的に記述します。base フレームの座標軸を中心とした回転は常に、並進後の base フレームの座標軸を基準とします。

参考

トピック