ステアリングとスプリングトラベルのロック

ステアリングとスプリングトラベルをロックするために必要なMotionSolveの.xmlステートメントの説明。

横力によるステアコンプライアンスのような特性を計算する場合は、ステアリングを固定した状態に維持する必要があります。ただし、ステアリングホイールで発生したトルクに起因するホイール中心のステアモーションを計算する場合は、ステアリングホイールを回転できるようにしておく必要があります。同様に、サスペンションのライドレートを計算する場合は、サスペンションのスプリングが自由に変形できるようにする必要がありますが、キングピン軸を特定するためにホイール中心のステアモーションを計算する場合は、スプリングの運動に起因してキングピンの方向が変化しないように、スプリングをロックする必要があります。ステアリングとスプリングトラベルをロックするには、その運動を一旦アクティブ化してアナリシスを実行したうえで、運動を非アクティブにします。一方で、サスペンションのコンプライアンス行列を数値的に操作することにより、特定の自由度をロック(除去)することもできます。この方法であれば、時間とコストを要する別のアナリシス手順を踏む必要がありません。

ロックを容易にするには、ロックする対象と場所に関する情報をモデルに追加し、その情報をモデルからサブルーチンに渡す必要があります。この情報を渡すには、この処理に対応するユーザーサブルーチン“REGISTER_TRAVEL_LOCK”と“REGISTER_STEERING_LOCK”を呼び出します。これらのユーザーサブルーチンで使用するSTRING_READ APIによって、シミュレーションの開始時に、これらの関数を一度呼び出すことができます。この情報は内部で登録され、ホイールトラベルに起因するステア軸や、ある瞬間軸を計算するルーチン使用されます。ロックの概念は、ステアリングシステムとスプリングシステムにのみ定義したモデリング特性としてロックを捉えることにあります。これにより、どのような情報も、アタッチメントを使用してモデリングレベルで試験装置に転送されることがありません。Reference_String要素が、その意図された目的とは異なる方法で使用されてきたことに留意してください。このAPIの本来の目的は、モデルで必要とされる文字列を、ユーザーサブルーチンで生成して提供することにあります。ロックメカニズムでは、このAPIを使用して、モデルからユーザーサブルーチンに情報が渡されます。サブルーチンから返される文字列は、モデルでは使用されません。

ステアリングロック

USERタイプの文字列を追加することにより、ステアリングロックをソルバーモデルで定義できます。ソルバーレベルでは次のような処理になります。
<Reference_String
    id = "325001"
    label = "SolverString-LockRegistration"
    usrsub_dll_name = "msautoutils"
    usrsub_param_string = "USER( 0, 32500100 )"
    usrsub_fnc_name = "REGISTER_STEERING_LOCK"
  />

この例では、2つの引数を指定してユーザーサブルーチンを呼び出しています。1番目の引数である“0”は配列のバージョンです。現在のところ、バージョン0のみがサポートされています。2番目の引数は、参照配列のソルバーIDです。この配列には以下の5つの要素があります。

Index 名前 想定される型 制約 目的
0 Axle ID 符合なし整数   0 要求で使用するアクスルIDへのリンクを指定します。通常、この値はフロントアクスルでは0、リアアクスルでは1です。

実装上は任意の整数値を指定でき、この値に基づいてロックがアクスルに割り当てられます。IDが1のアクスル上でスクラブ半径を要求する場合は、アクスルIDが0のロックは使用されませんが、アクスルIDが1のロックがあれば、それが使用されます。

1 Full varname 整数 / 文字列ID   ss_strg_jt_fullvar.id モデル階層またはメッセージングの中でステアリングジョイントを特定します。
2 Marker 1 ID 整数 / マーカーID   spr.i.id インデックス4の要素が正の値である場合は、ロックする場所とボディを指定します。

インデックス3の要素に値の指定がなく(-1)、インデックス4の要素が正の値である場合は、z軸を基準としたロック方向を指定します。

インデックス3の要素に値が指定されている場合は(2番目のマーカー)、目的の方向の参照ポイントを指定します。

3 Marker 2 ID 整数 / マーカーID   spr.j.id インデックス4の要素が負の値である場合は、ロックする場所とボディを指定します。

目的の方向の2番目のポイントが定義されていれば、それを指定します(2番目のマーカー)。

4 Lock Mode 整数 {-6; -5; … -1; 1; 2; … 6} 3 インデックス3の要素が定義されていない場合に、ロックにどの軸を使用するかを指定し、マーカー1と2を入れ替えるかどうかを指定する整数。

この値が負の場合は、ロックする場所と親ボディを、マーカー2を使用して指定するように要求されます。2つのマーカーを使用している場合は、これらのマーカーを通過するラインが目的の方向になるので、“-1”のみが有効な値です。

この値が正の場合は、ロックする場所と親ボディを、マーカー1を使用して指定するように要求されます。この場合は、マーカー2を定義していない場合にのみ絶対値が有効です。この場合は、値1を指定すると、マーカー1に対してX軸方向の並進をロックする要求になります。

値5を指定すると、マーカー1に対してy軸を中心とする回転をロックする要求になります。

1: x方向の並進

2: y方向の並進

3: z 方向の並進

4: x軸を中心とする回転

5: y軸を中心とする回転

6: z軸を中心とする回転

現時点の実装では、3、6、-1の各値のみがサポートされています。

トラベルロック

トラベルロックも、ステアリングロックと同様の方法で定義します。
<Reference_String
    id = "310002"
    label = "SolverString-LockRegistration-right"
    usrsub_dll_name = "msautoutils"
    usrsub_param_string = "USER( 0, 31000200 )"
    usrsub_fnc_name = "REGISTER_TRAVEL_LOCK"
  />

この呼び出し自体では、上記とは別のエントリポイントと別の配列を使用します。この配列のサイズは6です。この配列にはステアリングロックと同じ情報が記述されていますが、そのほかに、車両のどちら側をロックするかの情報がこの配列から渡されます。

Index 名前 想定される型 制約 目的
0 Axle Index 符合なし整数   0 要求で使用するアクスルIDへのリンクを指定します。通常、この値はフロントアクスルでは0、リアアクスルでは1です。

実装上は任意の整数値を指定でき、この値に基づいてロックがアクスルに割り当てられます。IDが1のアクスル上でスクラブ半径を要求する場合は、アクスルIDが0のロックは使用されませんが、アクスルIDが1のロックがあれば、それが使用されます。

1 Full varname 整数 / マーカーID   ss_lock_ent_fullvar_l.id モデル階層またはメッセージングの中でスプリングを特定します。
2 Side 符合なし整数 {0;1} 0 この情報は現在の実装では使用されません。どのスプリングロックを車両のどちら側に配置するかを指定します。将来の実装では、サスペンションの片側のみをロックする必要がある場合に、この情報が有用となります。
3 Marker 1 ID 整数 / マーカーID   spr.i.id インデックス4の要素が正の値である場合は、ロックする場所とボディを指定します。

インデックス3の要素に値の指定がなく(-1)、インデックス4の要素が正の値である場合は、z軸を基準としたロック方向を指定します。

インデックス3の要素に値が指定されている場合は(2番目のマーカー)、目的の方向の参照ポイントを指定します。

4 Marker 2 ID 整数 / マーカーID   spr.j.id インデックス4の要素が負の値である場合は、ロックする場所とボディを指定します。

目的の方向の2番目のポイントが定義されていれば、それを指定します(2番目のマーカー)。

5 Lock Mode 整数 {-6; -5; … -1; 1; 2; … 6} -1 インデックス3の要素が定義されていない場合に、ロックにどの軸を使用するかを指定し、マーカー1と2を入れ替えるかどうかを指定する整数。

この値が負の場合は、ロックする場所と親ボディを、マーカー2を使用して指定するように要求されます。2つのマーカーを使用している場合は、これらのマーカーを通過するラインが目的の方向になるので、“-1”のみが有効な値です。

この値が正の場合は、ロックする場所と親ボディを、マーカー1を使用して指定するように要求されます。この場合は、マーカー2を定義していない場合にのみ絶対値が有効です。この場合は、値1を指定すると、マーカー1に対してX軸方向の並進をロックする要求になります。

値5を指定すると、マーカー1に対してy軸を中心とする回転をロックする要求になります。

1: x方向の並進

2: y方向の並進

3: z 方向の並進

4: x軸を中心とする回転

5: y軸を中心とする回転

6: z軸を中心とする回転

現時点の実装では、3、6、-1の各値のみがサポートされています。

Assembly Wizardを使用して生成したモデルには、スプリングとステアリングのロックサブシステムがあります。このサブシステムによって、マーカーや目的の方向などの選択が自動的にロックモードにエンコードされます。このようなモデルは、他のすべての値を定義するうえで有効なサンプルにもなります。