Abaqusとのインターフェース

MotionViewアプリケーションとAbaqusソルバーとのインターフェースの概要。

AbaqusにMDLモデルファイルをエクスポートするためのガイドライン

Abaqusの.inpファイルにMotionViewのMDLモデルをエクスポートできます。

重力、単位、およびソルバーのパラメータ

MotionViewで、重力、単位、およびソルバーに関するAbaqusのパラメータを使用できます。
Gravity
重力は暗黙的なデータセットです。つまり、重力の定義はMotionViewで自動的に作成されます。モデルのMiscシステムを使用しているときであれば、Formsパネルから重力の値を利用できます。重力のデフォルト値はstd_incファイルで設定されます。このファイルは、MotionViewのインストールの際にインストールされています。std_incには、Templexテンプレートも用意されています。このテンプレートを使用すると、Abaqus入力ファイルに重力を書き込むことができます。
単位
MotionViewは“単位がない”インターフェースですが、一般的にはユーザー側で扱っている単位をソルバーの入力デックに通知する必要があります。同様に、各単位に一貫性があるようにすることも必要です。したがって、質量、長さ、時間、力の定義はMotionViewで自動的に生成されます。この定義を利用するには、Formsパネルに移動し、MiscシステムでUnitsを選択します。Abaqusに単位をエクスポートするために使用するデフォルト値とTemplexテンプレートはstd_incファイルで生成されます。
ソルバーパラメータ
ソルバーパラメータはソルバーごとに大きく異なります。これらのパラメータはデータセットに保存されています。ソルバーパラメータのデータセットを生成する方法には次の2種類があります:
  • データセットとそれに対応する各種フォームは、解析タスクでMDLライブラリに作成されます。独自のMDLライブラリを作成する場合は、解析タスクごとにソルバーパラメータのデータセットが定義されていることを確認する必要があります。
  • モデルの構築ではライブラリが使用されません。このような構築作業として、インタラクティブなモデルの構築と.mdlファイルの手動編集、またはこれらの組み合わせがあります。この場合、std_incファイルに記述された定義に基づくソルバーパラメータを持つシステムがMotionViewによって自動的に生成されます。

MDLステートメントのマッピング

MDLエンティティとそれに相当するAbaqusエンティティとのマッピングについて説明します。

Note: これらのエンティティのプロパティデータはすべて、各エンティティに対応する*Set()ステートメントで設定されます。
MDLステートメント Abaqusエンティティ
*ActionOnlyForce() CLOAD、AMPLITUDE (Time Function専用)
*ActionReactionForce() CLOAD、AMPLITUDE (Time Function専用)
*AtPointJoint() Joint (Connector Section)
*BallJoint() Joint (Connector Section)
*Beam() B31(Timoshenko beam)
*Body() Rigid Body
*Bush() Connector Behavior
*CoilSpring() Connector Behavior
*ControlSISO() なし
*Coupler() なし
*Curve() AMPLITUDE
*CVJoint() Joint + Constant Velocity (Connector Section)
*CylJoint() Slot + Revolute (Connector Section)
*FixedJoint() Weld (Connector Section)
*Graphic() なし
*HookeJoint() Joint+Universal (Connector Section)
*InlineJoint() Slot (Connector Section)
*InplaneJoint() Slide-Plane (Connector Section)
*Marker() NODE + ORIENTATION
*Motion() Connector Motion (Time Function専用)
*OrientJoint() Align (Connector Section)
*Output() Output、History
*ParallelAxisJoint() Revolute (Connector Section)
*PerpAxisJoint() Universal (Connector Section)
*PlanarJoint() Slide-Plane + Revolute (Connector Section)
*Polybeam() B31(Timoshenko Beam)
*RevJoint() Joint + Revolute (Connector Section)
*SetFlexbodyComplaince() Substructure Element
*SolverArray() なし
*SolverDiffEquation() なし
*SolverString() なし
*SolverVariables() なし
*TorsionSpring() Connector Behavior
*TransJoint() Slot + Align (Connector Section)
*UniversalJoint() Joint + Universal (Connector Section)

MDL CommandSetのマッピング

AbaqusソルバーにCommandSetは適用されません。

Templexテンプレートとソルバーモード

Templexテンプレートは、必要であればパラメトリック置換を含め、構文をソルバー入力デックに直接エクスポートするために使用することができます。Abaqusソルバーでは、ソルバーの入力デックで各ステートメントが占める位置が重要です。以下に挙げる6つのキーワードを使用して追加のテキストを配置できます。これらのキーワードは、Templexテンプレートの最初の行に含まれていなければなりません。テンプレートの残りのテキストは、指定された位置に従って書き出されます。
<@ABAQ/MODEL/HEAD>
モデルデータの先頭に記述するテキストを指定します。
<@ABAQ/MODEL/TAIL>
モデルデータの末尾を指定します。
<@ABAQ/HISTO/HEAD>
履歴データの先頭を指定します。
<@ABAQ/HISTO/TAIL>
履歴データの末尾を指定します。
<@ABAQ/HISTO/STEP/HEAD>
最初のステップの先頭にデータを記述することを指定します。
<@ABAQ/HISTO/STEP/TAIL>
最初のステップの末尾にデータを記述することを指定します。

1つのMDLモデルを複数のソルバーへのエクスポートに使用できます。この場合、solvermodeで予約されているキーワードを使用してTemplexテンプレートのインスタンスを作成します。この処理は2つの方法で実現できます。

例えば、次のように記述したMDLモデルがあるとします。
if( solvermode == "Abaqus" )

*Template(.....1...)

else

*Template(.....2...)

endif

これによって、SolversメニューでAbaqusを選択すると、Template 1の全体が使用されます。別のソルバーを選択すると、Template 2が使用されます。何らかのテンプレートを使用すると、それがTemplatesパネルのインターフェースに表示され、ソルバーの入力デックを保存するときに機能します。

これらのキーワードを使用するには、必要な文字列をテンプレートの先頭行に記述します。例えば、次のように記述したMDLモデルがあるとします。
*DefineTemplate(........)

<@ABAQ/MODEL/HEAD>

 text for abaqus

*EndDefine()

これによって、ソルバーとしてAbaqusを選択すると、“text for abaqus”が入力デックにエクスポートされます。テンプレートのうち、ユーザーインターフェースに表示される部分についても同様の処理が適用されます。

テンプレートのタイプ
  • Templexテンプレートには、独自のデフォルト動作と並んで、いくつかの出力先を設定できます。
  • USERテンプレートはどのようなソルバーファイルにもエクスポートできませんが、パラメータ記述によるテキストを他のファイルに配置する場合や(TemplexのOpenコマンドとCloseコマンドを使用します)、GUI専用としたテキストを扱う場合などに有用です。
  • SOLVER_INPUTテンプレートでは、そのテンプレートのテキストがAbaqusの.inpファイルにエクスポートされます。
次の各テンプレートはAbaqusソルバーには適用されません。
  • SOLVER_PARAM
  • GRAPHICS
  • ADAMS
  • ACF

CommandSets

AbaqusソルバーにCommandSetは適用されません。

関数式

MotionViewでは、その多くのエンティティで関数式をサポートしています。これらの関数は、時間と状態変数の関数とすることができます。関数式に対応するソルバーエンティティの一部として直接エクスポートされる関数式を作成できます。

ソルバーでは、MotionViewでエクスポートされるシンタックスを扱う必要があるので、その中立性にはある程度の制限があります。Abaqusソルバーの場合、サポートされている式とカーブは時間の関数とする必要があります。2つのポイント間の軸方向距離の関数とした式もサポートされています。MotionViewでは、このような関数がXYカーブに変換されてから入力デックに書き込まれます。

弾性体 / サブストラクチャ

プリ処理
MotionViewでは、MDLのボディをAbaqusのサブストラクチャとして表現できます。MDLモデルに弾性体を実装するには、弾性体として表現するコンポーネントごとにAbaqusのサブストラクチャを作成しておく必要があります(このプロセスについてはAbaqusのヘルプをご参照ください)。また、これらのコンポーネントの.h3dファイルをHyperMeshからエクスポートする必要があります。このファイルは、後工程のMotionViewによるプリ処理でグラフィックスに使用されます。この.h3dファイルの基底名(basename.ext)は、各コンポーネントのサブストラクチャファイルの基底名と一致している必要があります。
MotionViewでは、PropertiesタブでボディをFlexbodyに切り替えるだけでAbaqusのサブストラクチャを使用できます。そのサブストラクチャの.inpファイルと.supファイルを特定し、Nodesボタンを使用して目的の弾性体をMDLモデルに結合します。MDLのポイントの位置がAbaqusの接続節点と正確に一致した状態にすることができるほか、最終的なAbaqusの入力デックにエクスポートする許容値を入力することもできます。
ポスト処理
モデル全体のアニメーションを取得するには、各サブストラクチャに対応する.odbファイルに基づいてアニメーションをオーバーレイします。MODEL = .mdlとRESULTS = .mrfを設定して構成したアニメーション1つをオーバーレイします。この.mrfは、Tools > Custom Wizard > Abaqus Fil to Altair Formatsを使用してAbaqusの.filファイルを変換することで得られます。
Note: Templexテンプレートを使用して新しいボディを導入しないことをお勧めします。そのようにすると、アニメーションの正常な動作に必要なマッピングが無効になる可能性があります。

ユーザーサブルーチン

Abaqusにはユーザーサブルーチンが適用されません。ユーザーサブルーチンを参照するエンティティは、ソルバーの入力デックへのエクスポートでは使用されません。

MotionViewからのソルバーの起動

MotionViewでは、ソルバーの入力デックをエクスポートした後、プロセスを自動的に起動できます。Abaqusについては、インストール環境のaltair/utilities/mbd/launch_scriptsにデフォルトの起動スクリプトが用意されています。preferences.mvwファイルを使用して、これらの起動スクリプトを1つ以上登録しておくと、プリファレンスステートメント*RegisterSolverScript()を使用して、そのスクリプトをRunパネルで選択できます。
ポスト処理
アニメーション - 剛体のみを使用した過渡解析
MotionViewから直接エクスポートしたモデルに対するAbaqusの実行結果をアニメーション化します。
  1. AnimationウィンドウのLoad ModelパネルにあるModel欄でMDLモデルを選択します。
  2. Result欄で、変換済みの.mrfファイルを選択します。

    変換済みの.mrfファイルを取得するには、Tools > Custom Wizardsメニューからトランスレーターfil2mrfを実行します。現在のところ、MotionViewでは、剛体のアニメーションで.odbフォーマットをサポートしていません。

この方法では、プリ処理したモデルに設定されていたすべてのグラフィックが自動的に取得されます。アニメーションはマッピングに依存しているので、Templexテンプレートでボディを追加しない限り、また.inpファイルを使用してアニメーションを手動で編集しない限り、現状のままで保持されています。
プロッティング
Abaqusの実行結果をプロットするには、fil2mrfトランスレーターを使用してAltairバイナリフォーマット(.abf)のファイルを作成します。このファイルはPlotウィンドウに直接読み込むことができます。.abfファイルには、すべてのボディの並進変位と回転変位が記述されています。変位、速度、および加速度に対するあらゆる出力リクエストがAbaqusのODBファイルに書き込まれます。これ以外の出力リクエストはサポートされていません。

スプリング要素とブッシュ要素の剛性特性と減衰特性の定義

MotionViewでは、次の値を使用して、コイルスプリング要素、トーションスプリング要素、ブッシュ要素の剛性特性と減衰特性を定義できます。
  • 定数
  • Curve

Abaqusソルバーでは式を使用できません。Abaqusソルバーを使用する場合、剛性特性と減衰特性の定義に使用できるのは定数とカーブのみです。

定数を使用して剛性特性と減衰特性を定義していれば、ADAMSソルバーでもAbaqusソルバーでもモデルを正しく実行できます。

カーブを使用して剛性特性と減衰特性を定義している場合は、以下の各規則を使用して、ADAMSソルバーまたはAbaqusソルバーを使用して正しく実行できるモデルを取得します。
スプリングダンパ - コイルスプリング - 剛性
式の中で独立変数にマイナス記号を使用していないことを確認します。


Figure 1.
次のカーブと同じ傾向を持つ特性曲線を設定します。


Figure 2.
スプリングダンパ - コイルスプリング - 減衰
式の中で独立変数にマイナス記号を使用していないことを確認します。MotionViewでは、ソルバーに依存しないモデルで要求される‘{sd_.VR}’ではなく、‘-{sd_.VR}’のようにマイナス記号を使用した独立変数がデフォルトで書き込まれます。


Figure 3.
次のカーブと同じ傾向を持つ特性曲線を設定します。


Figure 4.
スプリングダンパ - トーションスプリング - 剛性
式の中で独立変数にマイナス記号を使用していないことを確認します。MotionViewでは、ソルバーに依存しないモデルで要求される‘{sd_.AZ}’ではなく、‘-{sd_.AZ}’のようにマイナス記号を使用した独立変数がデフォルトで書き込まれます。


Figure 5.
次のカーブと同じ傾向を持つ特性曲線を設定します。


Figure 6.
スプリングダンパ - トーションスプリング - 減衰
式の中で独立変数にマイナス記号を使用していないことを確認します。MotionViewでは、ソルバーに依存しないモデルで要求される‘{sd_.WZ}’ではなく、‘-{sd_.WZ}’のようにマイナス記号を使用した独立変数がデフォルトで書き込まれます。


Figure 7.
次のカーブと同じ傾向を持つ特性曲線を設定します。


Figure 8.
ブッシュ要素 - 並進特性 - 剛性
式の中で独立変数にマイナス記号を使用していないことを確認します。MotionViewでは、ソルバーに依存しないモデルで要求される‘{bsh _.DX}’ではなく、‘-{bsh_.DX}’のようにマイナス記号を使用した独立変数がデフォルトで書き込まれます。
この処理は、Y方向とZ方向にも同様に適用されます。


Figure 9.
次のカーブと同じ傾向を持つ特性曲線を設定します。


Figure 10.
ブッシュ要素 - 並進特性 - 減衰
式の中で独立変数にマイナス記号を使用していないことを確認します。MotionViewでは、ソルバーに依存しないモデルで要求される‘{bsh_.VX}’ではなく、‘-{bsh_.VX}’のようにマイナス記号を使用した独立変数がデフォルトで書き込まれます。
この処理は、Y方向とZ方向にも同様に適用されます。


Figure 11.
次のカーブと同じ傾向を持つ特性曲線を設定します。


Figure 12.
ブッシュ要素 - 回転特性 - 剛性
式の中で独立変数にマイナス記号を使用していないことを確認します。MotionViewでは、ソルバーに依存しないモデルで要求される‘{bsh_.AX}’ではなく、‘-{bsh_.AX}’のようにマイナス記号を使用した独立変数がデフォルトで書き込まれます。
この処理は、Y方向とZ方向にも同様に適用されます。


Figure 13.
次のカーブと同じ傾向を持つ特性曲線を設定します。


Figure 14.
ブッシュ要素 - 回転特性 - 減衰
式の中で独立変数にマイナス記号を使用していないことを確認します。MotionViewでは、ソルバーに依存しないモデルで要求される‘{bsh_.WX}’ではなく、‘-{bsh_.WX}’のようにマイナス記号を使用した独立変数がデフォルトで書き込まれます。
この処理は、Y方向とZ方向にも同様に適用されます。


Figure 15.
次のカーブと同じ傾向を持つ特性曲線を設定します。


Figure 16.