MF-SWIFT/MF-TyreのMotionSolveへの組み込み

MotionSolve入力デック

ここでは、車両設定でMF-SWIFT/MF-Tyreタイヤモデルを使用するようMotionSolveを設定する方法について説明します。ここでは、以下の点を想定しています。
  1. 作業の開始前に、タイヤなしの車両モデルを用意しています。
  2. MF-SWIFT/MF-Tyreタイヤファイルおよび互換性のある路面定義ファイルを用意しています。
  3. MF-Tyreタイヤモデルを実行するためのライセンスにアクセスできます(MF-SWIFTの場合のみ必要)。
タイヤモデルの有効化に必要なソルバーエンティティのコレクションが用意されています。以下で説明している一連のエンティティを使用して、タイヤモデルを利用する車両モデルを構築できます。
  1. 一連の必須マーカー。
  2. タイヤごとにホイール / タイヤボディ1つ。
  3. ホイールのスピン軸の回転ジョイント1つ。またはオプションで、非回転方向できわめて剛性率が高く回転方向では減衰のみするブッシュエンティティ。
  4. “user”タイプの2つのボディで作用するフォースエンティティ1つ。
  5. タイヤに関連するプロパティが含まれる配列1つ。
  6. タイヤプロパティファイルを参照するための文字列エンティティ1つ。
  7. 路面プロパティファイルを参照するための文字列エンティティ1つ。
  8. タイヤの状態およびタイヤの出力をMBDモデルと連結させるための状態方程式エンティティ1つおよび関連配列。

1.マーカーの設定

ホイールの中心に位置し、グラウンドボディに結合されるマーカーが必要です。これは、タイヤ力の定義に使用されるマーカーに重なったままになるフローティングマーカーです。
<Reference_Marker
    id                  = "11001020"
    label               = "Front Tire J Marker-left"
    body_id             = "30101"
    body_type           = "RigidBody"
    pos_x               = "1000."
    pos_y               = "-750."
    pos_z               = "1000."
 />
路面の高さを定義するために路面参照マーカーが必要です。このマーカーは地面に結合されます。
<Reference_Marker
    id                  = "11001010"
    label               = "Road Reference Marker Front-left"
    body_id             = "30101"
    body_type           = "RigidBody"
    pos_x               = "0."
    pos_y               = "0."
    pos_z               = "680.03"
 />
作用反作用のタイヤ力にマーカーが必要です。このマーカーは、ホイールとタイヤのボディに結合されています。マーカーの方向は、Y軸の正方向がタイヤの回転軸の左方向、X軸の正方向がホイールの平面上で進行方向、Z軸の正方向が上方になるように設定されています。
<Reference_Marker
    id                  = "11003020"
    label               = "Front Tire Force Reference-left"
    body_id             = "10403"
    body_type           = "RigidBody"
    pos_x               = "1000."
    pos_y               = "-750."
    pos_z               = "1000."
    a00                 = "-1."
    a10                 = "0."
    a20                 = "0."
    a02                 = "0."
    a12                 = "0."
    a22                 = "1."
 />

2.ホイールボディおよび拘束の設定

モデルには、ホイールボディ、および車両モデルの他のパートとホイールボディとの間の回転ジョイントを含める必要があります。回転ジョイントは、タイヤの回転軸を表すように調整する必要があります(以下の例を参照):
注: 回転ジョイントの代わりにブッシュを使用できますが、めったに使用されることはありません。
<Body_Rigid
    id                  = "10403"
    label               = "Wheel-left"
    cg_id               = "10403010"
    im_id               = "10403010"
    lprf_id             = "10403001"
    mass                = "36."
    inertia_xx          = "1750000."
    inertia_yy          = "1750000."
    inertia_zz          = "1000000."
    v_ic_x              = "-24587.2"
    v_ic_y              = "0."
    v_ic_z              = "0."
    w_ic_x              = "0."
    w_ic_y              = "0."
    w_ic_z              = "-76.842204"
    v_ic_x_flag         = "TRUE"
    v_ic_y_flag         = "TRUE"
    v_ic_z_flag         = "TRUE"
    w_ic_flag           = "TRUE"
/> 
<Constraint_Joint
    id                  = "104002"
    label               = "Wheel spindle rj-left"
    type                = "REVOLUTE"
    i_marker_id         = "10404020"
    j_marker_id         = "10401020"
/>

3.フォースベクトルの設定

入力デックには、“User”タイプのForce_Vector_TwoBodyフォース(作用反作用の力)が必要です。usrsub_dll_nameを“mbdtire”に指定し、usrsub_fnc_nameを“GFOSUB”または“mbdtire”に指定する必要があります。“USER”の引数のパラメータは以下のとおりです:
  • par1: ルーティングID(関数名がGFOSUBの場合にのみ使用)
  • par2: Force_Vector_TwoBodyのID
  • par3: タイヤに使用するReference_ArrayのID
<Force_Vector_TwoBody
     id                  = "1"
     label               = "tire_handling_fr_AAAA_v05_0_swift.tir_wheel.force"
     type                = "ForceAndTorque"
     i_marker_id         = "1239"
     j_floating_marker_id= "1225"
     ref_marker_id       = "1223"
     usrsub_param_string = "USER(908,1,1078)"
     usrsub_dll_name     = "mbdtire"
     usrsub_fnc_name     = "GFOSUB"
/>

4.タイヤ参照配列の設定

タイヤに必要な値の多くが、par3のReference_Arrayに格納されます:
<Reference_Array
     id                  = "1096"
     label               = "tire_handling_rr_AAAA_v05_0_swift.til_wheel.input_array"
     type                = "IC"
     num_element         = "15">
   1.0950000E+03   4.0000000E+00   0.0000000E+00   9.4000000E+01   9.9000000E+01
   1.0200000E+02   1.0000000E+02   1.0100000E+02   3.1350000E+02   0.0000000E+00
  -1.0000000E+00   1.0970000E+03   1.0980000E+03   0.0000000E+00   0.0000000E+00
注: この配列には、最大16個の数値を含めることができ、最初の7つのパラメータのみ必須です。それらの数値の説明は以下に示しています。

この配列のタイプは“IC”である必要があります。

パラメータ番号 説明
1 タイヤの状態(GSEのX配列)を保持する<Reference_Array>のID。
2 タイヤの時間継続状態変数の数(これは後で変更できます)。
3 車両の左側と右側のどちらにタイヤを取り付けるかを示した数値(0 =左、1 =右)。
4 軸名(front、rear、trailerなど)を示す<Reference_String>のID。
5 タイヤプロパティファイルのパスと名前を示す<Reference_String>のID。
6 シミュレーションタイプのリストを示す<Reference_String>のID(現在は未使用)。
7 路面プロパティファイルのパスと名前を示す<Reference_String>のID。
8 接触タイプを示す<Reference_String>のID(現在は未使用)。
9 リグ半径(サスペンション解析タイヤで使用)。
10 定常解析で使用する<Control_Diff>要素のID。
11 Tydex ISWITCH設定(タイヤプロパティファイルで指定されるUSE_MODEの方がこれより優先されます)。
12 スケーリング係数およびドリフト係数を保持する<Reference_Array>のID。
13 ユーザーパラメータを保持する<Reference_Array>のID。
14 ホイールの回転をロックするJPRIMのID(定常解析用)。
15 リグの剛性(サスペンション解析タイヤ)。
16 スムージング時間。

5.路面およびタイヤのプロパティファイルの設定

上記の要素5では、タイヤプロパティファイルを含む文字列のIDが示されます:
<Reference_String
     id                  = "86"
     label               = "tire_handling_fr_AAAA_v05_0_swift.tir_wheel.tpf_file"
     string              = "TNO_car205_60R15_swift_sin.tir"
/>
注: MotionSolveで、タイヤプロパティファイルをMF-Tyreとして認識できるようにするには、以下が必要です。
  1. [MODEL]セクションで、属性“PROPERTY_FILE_FORMAT”を‘SWIFT-TYRE’に設定する必要があります。
  2. [MODEL]セクションで、属性“FUNCTION_NAME”を‘tnodelft::DTYRE’に設定する必要があります。
  3. [MODEL]セクションで、属性“ROAD_SOURCE”を‘TNO’に設定する必要があります。属性“ROAD_SOURCE”には以下の3つの有効なオプションを指定できます:
    • ROAD_SOURCE = ‘TNO’ – MF-Tyre/MF-SWIFT内部路面定義を使用します。
    • ROAD_SOURCE = ‘MBS’ – MotionSolveの路面定義を使用します。
    • ROAD_SOURCE = ‘USER’ – ユーザー作成の路面を使用します。
上記の要素7では、路面プロパティファイルを含む文字列のIDが示されます:
<Reference_String
     id                  = "87"
     label               = "tire_handling_fr_AAAA_v05_0_swift.tir_wheel.rpf_file"
     string              = "2d_flat_TNO.rdf"
/>

6.GSEの設定

上記の要素に加えて、タイヤモデルをMBDモデルと連結させるためにGSE(タイプは“USERSUB”)が必要です。以下に例を示します:
<Control_StateEqn
     id                  = "3"
     label               = "tir_wheel.tire_gse"
     type                = "USERSUB"
     x_array_id          = "1077"
     y_array_id          = "1076"
     u_array_id          = "1075"
     num_state           = "5"
     num_output          = "0"
     usrsub_param_string = "USER(908,1,1078)"
     usrsub_dll_name     = "mbdtire"
     usrsub_fnc_name     = "gsesub"
     usrsub_der1_name    = "GSEXX"
     usrsub_der2_name    = "GSEXU"
     usrsub_der3_name    = "GSEYX"
     usrsub_der4_name    = "GSEYU"
     is_static_hold      = "FALSE"
  />
  1. Control_StateEqnのタイプは“USERSUB”である必要があります。
  2. usrsub_param_stringのタイプはUSER (908, xxx, yyy)です。xxxはタイヤのIDで、yyyはタイヤ参照配列のIDです。これは、各タイヤのForce_Vector_TwoBodyで指定されるUSER()文字列と対応している必要があります。
  3. usrsub_dll_nameは、“mbdTire”である必要があります。
  4. usrsub_fnc_nameは、“gsesub”である必要があります。
  5. x_array_idは、タイヤの状態を保持する配列のIDを指します。
  6. y_array_idは、GSEからの出力(フォースとモーメント)を保持する配列のIDを指します。
  7. u_array_idは、入力変数の値を保持する配列のIDを指します。
  8. num_stateは、タイヤの状態の数を示します。これは、内部で変更されます。
  9. num_outputは、タイヤからの出力の数を示します。これは、6(Fx、Fy、Fz、Mx、My、Mz)に等しくない場合、内部で変更されます。
タイヤリムの状態の計算には、入力変数が使用されます。それらの変数は、以下の表に従って定義されます:
変数名 U配列 説明
Time U[0] シミュレーション時間 TIME
Rim dx/dy/dz U[1/2/3] 地軸システムにおけるWC変位 DX/Y/Z(tire i marker, rm, rm)
Rim X dot X/Y/Z U[4/5/6] ホイールのX軸の全体座標系X/Y/Z軸との方向余弦 SYSARY(UVX/Y/Z)
Rim Y dot X/Y/Z U[7/8/9] ホイールのY軸の全体座標系X/Y/Z軸との方向余弦 SYSARY(UVX/Y/Z)
Rim VX/Y/Z U[10/11/12] ホイール中心の並進速度 SYSFNC(VX/Y/Z, i, rm, rm…)
Rim WX/Y/Z U[13/14/15] ホイール中心の回転速度 SYSFNC(WX/Y/Z, i, rm, rm…)

7.MF-TyreとMF-SWIFTの比較

MF-TyreタイヤモデルとMF-SWIFTタイヤモデルの違いは、後者ではタイヤ力、モーメント、およびその他の運動学的数量の計算で剛体リング動解析が使用されることです。タイヤプロパティファイルでプロパティ“USE_MODE”を操作することによって、これら2つのタイヤモデルを切り替えることができます。

USE_MODEでは、実行する計算のタイプを指定します:
0: Fzのみ、Magic Formula評価なし
1: Fx,Myのみ
2: Fy,Mx,Mzのみ
3: Fx,Fy,Mx,My,Mzの組み合わせのないフォース / モーメントの計算
4: Fx,Fy,Mx,My,Mzの組み合わされたフォース / モーメントの計算
5: Fx,Fy,Mx,My,Mzの組み合わされたフォース / モーメントの計算+ターンスリップ
+0: 定常挙動
+10: 緩和挙動を含む
+20: 緩和挙動を含む(非線形)
+30: 剛体リング動解析を含む
+100: スムーズな路面接触
+200: スムーズな路面接触(円形断面、オートバイ)
+400: 2次元路面の路面接触(移動距離を使用)
+500: 3次元路面の路面接触
MF-SWIFTタイヤを使用するには、USE_MODEに“30”を加算する必要があります。例えば、USE_MODE = 434は、以下を意味します。
  • 組み合わされたスリップ
  • 剛体リング動解析
  • 2次元路面の路面接触

8.MF-SWIFT/MF-Tyreからのタイヤリクエスト

mbdTireで抽出可能な通常のタイヤリクエストに加え、TNO MF-Tyre/MF-SWIFTには、以下のシンタックスでmbdTire REQSUBを使用して抽出可能なその他のリクエストがいくつか含まれます。
<Post_Request
     id                  = "759"
     comment             = "road_contact_point_location_rear_LH"
     type                = "USERSUB"
     usrsub_param_string = "USER(902,reqType,tireId)"
     usrsub_dll_name     = "NULL"
     usrsub_fnc_name     = "REQSUB"
     cname2              = "X_rear"
     cname3              = "Y_rear"
     cname4              = "Z_rear"
     cname6              = "tire_radial_penetration_rear"
     cname7              = "tire_radial_penetration_velocity_rear"
     cunit1              = "no_units"
     cunit2              = "length"
     cunit3              = "length"
     cunit4              = "length"
     cunit5              = "no_units"
     cunit6              = "length"
     cunit7              = "velocity"
     cunit8              = "no_units"
  />
上記のリクエスト要素では、reqTypeは以下のいずれかになります。
1 タイヤの転がり状態
2 タイヤのキネマティック特性(Tydex-W/ISO)
3 タイヤの接触パッチでのフォース(Tydex-W/ISO)
4 タイヤの接触パッチでのフォース(SAE)
5 タイヤのキネマティック特性(SAE)
6 タイヤのハブでのフォース(Tydex-C)
7 その他のタイヤの状態
  • 縦方向の摩擦係数MUXCNT
  • 横方向の摩擦係数MUYCNT
8 その他のタイヤの状態:
  • ニューマチックトレール
  • 縦方向の緩和長
  • 横方向の緩和長
9 N/A
10 GFORCE rmマーカーフレーム内のタイヤの面に沿った接触パッチの位置
11 GFORCE rmマーカーフレーム内のタイヤのハブ速度
14 その他のタイヤの状態:
  • 移動距離
  • 面の実効高さ
  • 面の実効角度
  • 面の実効曲率
  • 接触の長さ