Home > リソース > MBDynチュートリアル > 3.自由落下する剛体(1)〜MBDyn解析の流れ
MBDynチュートリアル

3.自由落下する剛体(1)〜MBDyn解析の流れ

ここからは例題を通して、実際に入力ファイルを作成したり、計算を実行したりしながら、MBDynの使い方を習得して行きましょう。本チュートリアルの解説は、入力ファイルの形式文法を網羅するものではありませんので、入力ファイルの形式や文法の詳細については、MBDynホームページで入手できる公式の“Input manual”を随時参照してください。また、同ホームページには公式の“Tutorials”もありますので、そちらも合わせて参照してください。まず最初の例題は、公式のTutorialsでも扱われている例題です。

例題1(自由落下する剛体)

質量1.0kgの剛体が、重力下で水平方向に初速3.0m/sで投げ出されたときの運動をMBDynで計算(シミュレーション)してみましょう。重力加速度の大きさは9.81m/s2とします。


FreeFallingBody_Schematic

図1: 自由落下する剛体

グローバル座標系

MBDynで物体の運動を計算する際には、まず絶対静止座標系である「グローバル座標系」を定める必要があります。シミュレーションモデルはこのグローバル座標系を基準として構築し、計算結果としての運動はグローバル座標系で記述されます。グローバル座標系の取り方は任意ですので、問題に合わせて便利な取り方を工夫しましょう。例題1においては、剛体重心の初期位置を原点とし、Z軸を鉛直上向きに、Y軸を初速度の向きに取ることにします。(図1参照)

MBDyn解析の流れ

本チュートリアルでは、MBDynを利用して対象物の運動を計算(シミュレーション)する一連のプロセスを、「MBDyn解析」または単に「解析」と呼ぶことにします。図2にMBDyn解析の一般的な流れを示します。


MBDynAnalysisProcess_Schematic

図2: MBDyn解析の流れ

まず、任意のテキストエディタで入力ファイルを作成します。入力ファイルには、入力データを決められた形式および文法に従って記述します。入力ファイルの拡張子は任意ですが、本チュートリアルでは「.mbd」とします。次に、入力ファイルを指定してMBDynを実行します。するとMBDynは入力ファイルに書かれた入力データを読み込み、運動方程式を生成し、運動を計算します。全てうまく行けば、計算終了後いくつかの出力ファイルに計算結果が書き出され、MBDynは自動的に終了します。計算中に何か問題が発生した場合には、計算が中止され、エラーメッセージが表示されます。この場合には、入力ファイルを修正してエラーの原因を取り除く必要があります。

出力ファイルには、剛体の位置、速度、姿勢角、角速度、ジョイントの反力など、計算によって求められた対象物の運動データが書き出されます。これらのデータをMATLAB等の汎用数値解析ソフトウェアに取り込んでグラフアニメーションを作成すれば、運動を可視的に把握することができます。このような出力データの処理をポスト処理と呼びます。

それでは、例題1について、MBDyn解析の流れを具体的に追ってみましょう。

入力ファイル記述例

例題1の剛体の運動をMBDynで解析するための入力ファイルの記述例をコード1に示します。コードの内容については次項と次々項で解説します。現段階では、説明なしでコード全体をじっくり眺めてみて、どのようなことが書いてありそうか少し予想してみてください。

free_falling_body.mbd
# free_falling_body.mbd

begin: data;
   problem: initial value;
end: data;
 
begin: initial value;
   initial time: 0.;
   final time: 1.;
   time step: 1.e-3;
   max iterations: 10;
   tolerance: 1.e-6;
end: initial value;
 
begin: control data;
   structural nodes: 1;
   rigid bodies: 1;
   gravity;
end: control data;
 
begin: nodes;
   structural: 1, dynamic, null, eye, 0., 3., 0., null;
end: nodes;
 
begin: elements;
   body: 1, 1, 1., null, eye;
   gravity: 0., 0., -1., const, 9.81;
end: elements;
コード1: 例題1(自由落下する剛体)の入力ファイル記述例

MBDynの実行

上記の入力ファイルを用いてMBDynを実行してみましょう。コード1が書かれたファイルを「free_falling_body.mbd」という名前で保存し、シェルで次のコマンドを入力してください。

   mbdyn -f free_falling_body.mbd

するとMBDynのプログラムが実行され、以下のようなメッセージがシェル画面に表示されます。

MBDyn - MultiBody Dynamics 1.X-Devel
compiled on Nov  1 2009 at 16:57:21

Copyright 1996-2009 (C) Paolo Mantegazza and Pierangelo Masarati,
Dipartimento di Ingegneria Aerospaziale <http://www.aero.polimi.it/>
Politecnico di Milano                   <http://www.polimi.it/>

MBDyn is free software, covered by the GNU General Public License,
and you are welcome to change it and/or distribute copies of it
under certain conditions.  Use 'mbdyn --license' to see the conditions.
There is absolutely no warranty for MBDyn.  Use "mbdyn --warranty"
for details.

reading from file "free_falling_body.mbd"
Creating scalar solver with Naive linear solver
Reading Structural(1)
Reading Body(1)
Reading Gravity
No initial assembly is required since no joints are defined
End of simulation at time 1 after 1000 steps;
output in file "free_falling_body.mbd"
total iterations: 298
total Jacobian matrices: 298
total error: 0.000328629
MBDyn terminated normally

上記のメッセージは、MBDynのプログラムの処理が問題なく完了したことを伝えています。この時、カレントディレクトリには、「free_falling_body.<拡張子>」という名前のついた出力ファイルが複数作成されるはずです。今の場合、拡張子が「out」、「log」、「mov」、「ine」の出力ファイルが作成されます。拡張子が「out」と「log」のファイルには、実行されたシミュレーションに関する一般的な情報が書き出され、拡張子が「mov」と「ine」のファイルには、位置や速度など、剛体の運動の時系列データが書き出されます。各出力ファイルを実際に開いて確認してみてください。

シミュレーション結果の可視化

出力ファイルに書き出されたデータは、言うまでもなく数字の羅列です。シミュレーションの結果を確認するためには、多くの場合、これらの数値データを可視化する必要があります。図3と動画1に、例題1のシミュレーション結果を可視化した例を示します。

図3は剛体の軌跡を表すグラフ、動画1は剛体の運動のアニメーションです。どちらもmovファイルに書き出されたデータを用いて作成されています。これらのグラフやアニメーションから、剛体が放物線を描いて落下する様子を視覚的に確認できます。このように、出力データを処理してグラフやアニメーションを作成する方法についても、後の項で随時説明して行きます。

FreeFalling_Body_Plot_YZ
図3: 例題1のシミュレーション結果‐YZ平面における剛体の軌跡



動画1: 例題1のシミュレーション結果‐YZ平面における剛体のアニメーション