WOLFRAM

マルチボディモデリング

System Modelerには,3Dの力学モデリングに使えるマルチボディライブラリが含まれている.

このチュートリアルに使用されているモデル
PlanarLoop | Pendulum | FullRobot

MultiBodyライブラリ

Modelica.Mechanics.MultiBodyは,3Dの力学モデリング用のModelicaライブラリである.3Dモデルでの作業は,すべての部分が空間で接続されなければならず,システムが開始するためには初期値が正しくなければならないので,複雑なこともある.MultiBodyライブラリで作成するモデルの可視化が含まれており,ユーザは便利な方法で動きを分析することができる.以下では,MultiBodyライブラリを使う場合に考慮しなければならない重要な点を述べる.ライブラリの説明とそのコンポーネントについての情報は,MultiBodyパッケージとそのクラスについての埋め込まれたドキュメントにアクセスして見ることができる.以下の図は,MultiBodyライブラリで構築した平面ループのPlanarLoopモデルを示す.

1.gif

平面ループの例.

初期値

モデルが変換(構築)されると,適切な状態が選択される.物理的に意味のあるシミュレーションが得られるように,系がこれらの状態を正しく初期化するようにすることが重要である.この例では,revolute3のコンポーネントに角度phiおよび角速度wの固定された初期化を使う.これらの変数の初期値は,Simulation Centerの変数タブに表示されている.

2.gif

上のスクリーンショットのモデルの選択された状態.

上のスクリーンショットにあるように,継手revolute3の角度は,0.0rad/sの速度と ,50度の角度で始める.これらの値は,Model Centerの一般タブで,直接モデル内で変更することもできる.

物体の角度と位置

物理的に正しいモデルを作ることが大変重要である.そうしなければ,システムはシミュレーションを開始できずに失敗する可能性が高い.簡単な方向(例えば,BodyCylinderBodyBox等のコンポーネントにr={1,0,0}r={0,-1,0}等の方向)を使うようにするとよい.もし別の方向が必要である場合には,継手のphiを変更するか,MultiBody.Partsで使用可能な FixedRotationFixedTranslationのコンポーネントを使うかするとよい.

アニメーション

MultiBodyコンポーネントの中には,アニメーションの情報を含むものもある.MultiBody.PartsBodyBodyBoxBodyCylinderBodyShapeのコンポーネントがそうである.MultiBody.Visualizersには,速度,加速度等の特性を表示する可視化のツールもある.

3.gif

3つのBodyCylinder部分の動きを示すPlanarLoopのアニメーション.

それぞれの名前が表すように,BodyBoxはボックス形状,BodyCylinderは円柱形状である.もっと別のアニメーション化された形状(例えば,球体,円錐,歯車等)が必要な場合には,BodyShapeを使い,パラメータshapeTypeを希望の形状に設定すればよい.物理特性なしで,純粋なアニメーションだけが必要である場合には,Shapeオブジェクトが使える.

以下の図は,先端が球体である振り子の例であり,BodyShapeコンポーネントを使って球体がアニメーション化されている.以下の図は,Pendulumモデルのダイアグラムと対応するアニメーションである.

4.gif

先端が球体形状のPendulumモデル.

5.gif

先端が球体形状のPendulumモデルのアニメーション.

CAD形状

CAD形状は,CADファイルを指すModelica URIにshapeTypeパラメータを設定して指定する.Modelica URIは以下の構造を持つ:

modelica://<Modelica-name>/<relative-file-path>

これは,Modelicaライブラリ<Modelica-name>の位置に対応するパス を指定する.

System Modelerは,以下のCAD形状の形式をサポートする: