MV-9000:跳ね返るボールのチュートリアル
本チュートリアルでは、Msolve Python APIを用いてシンプルな自由度1の機構をモデル化する方法を学びます。
本チュートリアルをIPython notebookとして実施している場合、SHIFT-ENTERをクリックすることにより、各コードセルを内部的に実行することが可能です。Pythonコードの出力(存在する場合)が表示され、実行すると次のセルにジャンプします。

図 1.
msolveモジュールの読み込み
In [2]: from msolve import*
上記のコマンドを実行するには、msolveモジュールがコンピュータのパスになければなりません。上記が成功したと仮定すると、msolveの名称は現在のネームスペースにインポートされています。これにより、msolveで定義されているすべてのクラスと関数にアクセスできるようになり、バウンドするボールケースの作成を開始することができます。モデルの作成
振子の機構を作成するにはまず、モデルを作成する必要があります。
In [3]: model = Model()
上記のコマンドを実行するには、msolveモジュールがコンピュータのパスになければなりません。上記が成功したと仮定すると、msolveの名称は現在のネームスペースにインポートされています。これにより、msolveで定義されているすべてのクラスと関数にアクセスできるようになり、バウンドするボールケースの作成を開始することができます。単位と重力の追加
モデルを作成した後、単位、重力や地面などのエンティティを追加することができます。ほとんどのエンティティはデフォルトのプロパティを有しています。たとえば、引数を指定せずにソルバーの単位セットを作成する場合、基本的にはSI単位を作成していることになります。
マーカーの作成
次に、地面パートにマーカーを作成します。マーカーは、空間内の幾何学的なポイントと、その点を原点とした互いに直交する3つの座標軸のセットによって定義されます。これは、属するパートの参照フレームとして使用することができます。
In [7]: global_ref = Marker(part=ground)
形状オブジェクトの作成
アニメーションのために、形状オブジェクトを作成することができます。ここでは、ボックスが地面を表しています。ドキュメントによると、ボックスにはセンターマーカーとそのx、y、z寸法が必要とされます。
接触力の定義
地面と球体の間の接触力を定義することができます。まず、接触点における各パート上のマーカーを定義します。これら2つのマーカーは、力の計算と変位の監視で使用されます。
ジョイントとリクエストの追加
ここに並進ジョイントを追加することで、(必要ではないものの)ボールが動き廻らないようにすることができます。ジョイントを作成するために、ジョイントのタイプとジョイントが配置されるマーカーを定義します。マーカーjのz軸は、並進ジョイントの方向を定義します。
リクエストを作成することも可能です。リクエストはMotionSolveの出力チャンネルを定義し、MotionSolveの出力ファイルに書き込まれ、HyperGraphによるプロッティングや信号処理に使用されます。リクエストは、ランタイム式、組み込み関数(MOTION、FORCE、FIELDなど)、またはユーザーが作成した関数を使用して定義することができます。
シミュレーションの実行
この時点で、過渡解析を実行する準備が整っています。シミュレート手法はMBSモデル上で起動されます。モデルを構成する各エンティティ上で、検証プロセスが実行されます。これは、正しいモデルのみがシミュレートされていることを確認するために必要なステップです。シミュレートコマンドは、オプションのフラグreturnResultsをTrueに設定して呼び出すことができます。これは以下に示すように、シミュレーションの結果をさらにポスト処理するために実行コンテナに保存します。