MotionSolveモデルでのCD-Tireの使用
アイテム | 説明 |
---|---|
タイヤファイル | タイヤのデータモードを含むタイヤファイル。通常試験機関またはタイヤサプライヤーから取得されます。 |
路面ファイル | シミュレーションで使用される路面の説明。 |
タイヤ力ステートメント | タイヤ力を表すMBS要素(GFOSUB)。 |
タイヤの方向 | タイヤを方向付ける一連のマーカー。GFORCEステートメント上で参照されます。 |
リクエスト | タイヤの挙動に関する情報のリクエスト。いくつかの異なる座標フレームに関して、各種のフォースおよび状態を指定できます。 |
文字列 | 文字列は、ソルバーで必要な各種ファイルおよびデータを特定します。 |
完全なCD-Tire定義を含むタイヤシステムが、MotionViewの今後のリリースで計画されています。
既存のADAMS(.adm)ファイルを使用したMotionSolveでの実行
ADAMS/carまたはADAMS/viewから書き出された既存の.admファイルは、MotionSolveで実行するために変更する必要はありません。CDTireユーザー定義路面
ユーザー路面の定義は、タイヤのモデル化の重要な機能です。MotionSolveでCD-Tireを使用することで(バージョン10.0 SA205以降)、ユーザー定義の路面をサポートできます。- 一連のユーザー路面のソースファイルをコンパイルしてリンクすることで、user road dllを作成します。
- GFORCEユーザーパラメータリストでユーザー路面オプション(1100)を選択します。
<Force_Vector_TwoBody id = "20" label = "CDTire2" type = "ForceAndTorque" i_marker_id = "1621" j_floating_marker_id= "2305" ref_marker_id = "7" usrsub_param_string = "USER(838,1611,1612,1613,1614,2303,2200,2,4,1,1,20,21,1100,21)" usrsub_dll_name = "cdtire" usrsub_fnc_name = "gfosub" />
- 使用する路面ファイルに対応する適切なユーザー路面ファイル名の文字列を定義します。
<Reference_String id = "25" label = "CDTire2_roadfile_root" string = "./prop_files/cdt_data/road_data/rsm1_" />
ユーザー路面ファイルがCDTireによって開かれ、そのファイル入出力単位が引数としてユーザー路面DLLエントリ関数に渡されます。
- dll_nameと関数名が2つのコロン(::)で区切られたユーザー路面DLL関数名を定義します。
<Reference_String id = "16" label = "CDTire1_user_road_dll_fname" string = "cdt_zbuser::ZB1100" />
上記のコードは、ユーザーDLL“cdt_zbuser.dll”を読み込んで“ZB1100”関数を呼び出すサンプルモデルに相当します。例えばDLLが使用できなかったり、ZB1100エクスポートシンボルが欠落したりするためにパートの読み込みとコールが失敗すると、プロセスは停止します。
SUBROUTINE ZB1100( X, Y, Z, MUE, IBINIT, INSTANCE, IUNIT, OUNIT, IERR )
INPUTS: X, Y ....... Road coordinates relative to P5 marker in [mm]
IBINIT ..... Initialization flag ( =0 init, <>0 eval )
INSTANCE ... CDTire instance number ( PAR(8) of GFORCE )
IUNIT ...... FORTRAN unit of road data file, already open
OUNIT ...... FORTRAN unit of road log file, already open
OUTPUTS: Z ......... Road surface height in [mm] at (X,Y) relative P5
MUE ....... Friction coefficient of road surface at (X,Y)
IERR ...... Error flag ( =0 success, <>0 stop calculation )
FORTRANまたはC/C++でもユーザー路面を記述できますが、呼び出し元関数からは、ユーザー路面ファイル名が文字列として渡され、ファイルの単位が必ず整数として渡されます。
ユーザー路面関数から数理関数やMotionSolveのユーティリティ関数を呼び出す場合、リンカーの要件を満足するために、必要な依存関係をユーザー側で定義する必要があります。最後に、DLLがエンティティポイント名(この場合ZB1100)をエクスポートすることを確認する必要もあります。DLLからさまざまな方法でシンボルをエクスポートできますが、ここではそれらには触れません。