Main Content

マルチボディの組み立ての仕組み

モデル アセンブリ

ジョイントと、場合によってはギアや他の拘束を通じてボディを相互接続することで、関節システムをモデル化できます。ボディは慣性をモデルに与え、ジョイント、ギアおよび拘束は、ボディ間に存在する相対的な自由度を決定します。ジョイント ブロック、ギア ブロックおよび拘束ブロックの座標系端子をボディ サブシステムの座標系端子とリンクすることで、2 つのコンポーネント タイプを相互接続します。

Simscape™ Multibody™ は、ブロック線図を更新するときにモデルを自動的に組み立てます。モデルの更新中、Simscape Multibody によってジョイントの初期状態 (位置と速度) が決定され、結果のアセンブリがモデルでの運動学的拘束をすべて満たすようになります。このプロセスは 2 段階で行われ、アセンブリ アルゴリズムによってまずジョイントの位置が計算され、次にジョイントの速度が計算されます。このプロセス全体を、モデル アセンブリと呼びます。

ジョイントの接続

ジョイントは座標系を介してモデルに接続されます。各ジョイント ブロックには、base (B) と follower (F) という 2 つの座標系端子があり、隣接するボディの接続点と、それらを動かせる相対方向を特定します。これらの端子をボディ サブシステムの座標系に接続する際には、モデル アセンブリにおいてボディ自体がどのように接続されるかを決定します。

航空機のプロペラの接続点と回転軸を特定するジョイント座標系

ジョイントに作動も検出出力もない場合、その座標系端子は完全に相互交換が可能です。この場合、モデルのダイナミクスやジョイントの検出出力に影響を与えることなく、端子の接続先のボディを切り替えることができます。ジョイントに作動入力または検出出力がある場合、同じ動的な動作とシミュレーション結果を得るには、作動信号または検出信号を反転しなければならない場合があります。

ジョイントの接続点を変更するには、隣接するボディ サブシステムの接続座標系を変更しなければなりません。これを行うには、Rigid Transform ブロックを使用して並進変換を指定します。新しい Rigid Transform ブロックをボディ サブシステムに追加するか、適切な場合は、既存の Rigid Transform サブシステムにある並進変換を変更することができます。

Simscape Multibody ソフトウェアで座標系の端子、ノード、およびラインがどのように解釈されるかの詳細については、座標系の取り扱いを参照してください。

ジョイントの向きの設定

モデルで想定どおりの運動を得るには、さまざまなジョイントの運動軸の向きを正しく設定しなければなりません。これは、ジョイント自体の向きを、実際のシステムで観察されるとおりに、または予測されるとおりに設定するということです。ジョイントの軸の向きが間違っていると予想外の動きが生じることがあり、組み立てやシミュレーションの失敗など、さらに深刻な結果につながることも少なくありません。

ジョイントの向きを指定または変更するには、隣接するボディ サブシステムのローカルな接続座標系を回転させます。これを行うため、ボディ サブシステムに新しいブロックを追加するか、適切な場合はサブシステム内の既存ブロックの回転変換を変更することにより、Rigid Transform ブロックを使用して回転変換を指定します。

ボディ サブシステムの座標系を使ってジョイントの向きを変更するのはなぜでしょうか。ジョイント ブロックのプリミティブにはそれぞれ、x や z など、あらかじめ定義された運動軸があります。軸の定義は固定されており、変更できません。隣接するボディ サブシステムのローカルな接続座標系の向きを変更するやり方は、ジョイントの向きを再配向する自然な方法であり、これによって特定のジョイントでどの軸を使用するかについての混乱が回避されます。

アセンブリのガイド

ジョイントでは、さまざまな状態からシミュレーションを開始できます。たとえば、クランクロッカー リンク機構のクランク ジョイントは、0°から 360°まで、どの角度からでも開始させることができます。その結果、モデル アセンブリ時に、Simscape Multibody は等しく有効な多くの状態から選択を行わなければなりません。ジョイント ブロックのダイアログ ボックスで状態ターゲットを指定することにより、選択される状態をガイドすることができます。

完全に伸びた初期構成と完全に縮んだ初期構成のクランクスライダー機構

状態ターゲットは正確な値でなくてもかまいません。状態ターゲットを正確に実現できない場合、Simscape Multibody は状態ターゲットに最も近いジョイントの状態を探します。たとえば、位置の状態ターゲットに 60°を指定しても、ジョイントが 0°~ 45°の角度しか取れない場合、Simscape Multibody は 45°でジョイントを組み立てようとします。

実際のジョイント状態が状態ターゲットにどれほど近付くかは、モデルの運動学的拘束、他の状態ターゲットとの競合、そして状態ターゲットの優先順位レベルによって異なります。優先順位レベルとは、2 つの状態ターゲットが互いに矛盾することが判明した場合にどちらのターゲットを満たすかを決定するランキングです。優先順位レベルは、[Low] または [High] に設定できます。

Simscape Multibody は、まずすべての状態ターゲットを正確に満たそうとします。状態ターゲットの競合が発生した場合、Simscape Multibody は優先順位の低い状態ターゲットを無視し、優先順位の高い状態ターゲットのみを満たそうとします。状態ターゲットの競合がそれでも存在する場合、Simscape Multibody は優先順位の高い状態ターゲットも無視し、最も近い有効な構成でモデルを組み立てようとします。

開連鎖では、すべてのジョイントに状態ターゲットを指定できます。ただし、シミュレーションのエラーを防ぐため、すべての閉連鎖には状態ターゲットのないジョイントを少なくとも 1 つ含めなければなりません。

モデル アセンブリの検証

モデルは、ボディ間の接続が互いに適合するときにのみうまく組み立てられます。1 つの運動学的拘束を満たすために Simscape Multibody が別の運動学的拘束に違反しなければならない場合、モデルは運動学的に無効であり、アセンブリは失敗します。たとえば、4 節リンク機構のアセンブリで、接地リンクが他の 3 つのリンクを合計した長さより長く、少なくとも 1 つのリンクが組み立てられなくなる場合にこれは起こります。

接地リンクが長すぎる 4 節リンク機構におけるジョイント アセンブリの失敗

モデルが正しく組み立てられたことを確認するには、Simscape Multibody と Simscape の次のユーティリティを使用します。

  • Mechanics Explorer — Simscape Multibody の可視化ユーティリティ。さまざまな視点からモデルを視覚的に調べ、ボディが想定どおりの位置に適切な向きで接続されていることを確認します。

  • 変数ビューアー — Simscape の状態レポート ユーティリティ。個々のジョイントおよび拘束のアセンブリ ステータスを確認し、状態ターゲットを、組み立てで得られた実際のジョイントの状態と比較します。

  • 統計ビューアー — Simscape のメトリクス レポート ユーティリティ。他のさまざまなメトリクスとともに、モデルの自由度、ジョイント数、拘束数を確認します。