Constant Radius

Constant Radius eventは円形路での車両の運転をシミュレートします。Constant Radius eventでは、一定の旋回半径を維持しながら、車両速度を変えることで横加速度を大きくします。ステアリングコントローラーとトルクコントローラーは、このイベント全体にわたって車両の経路と速度を維持します。結果をプロットするために、プロットテンプレートが用意されています。Constant Radius eventを使用して、車両のロール特性とアンダーステア特性を記述します。

アンダーステア
アンダーステアの概念の基礎には、車両で目的とする2つの挙動があります。その1つは、半径が一定の経路上で車両速度が上昇すると、ドライバーはその経路に従うようにステア角を大きくする必要があることです。もう1つは、横加速度の限界に到達する状態まで車両の速度が速くなると、車両はスピンする(ヨーレートが増加する状態)よりも、旋回半径が大きくなる方向に外側へドリフトすることです(ヨーレートの増加が停止)。後者の挙動では、リアタイヤの前にフロントタイヤが接地性を失う必要があります。前輪駆動車では、フロントタイヤが接地性を失うようにスロットルを開けることにより、過剰なアンダーステアを誘導できます。
ニュートラルステア
ニュートラルステアの車両の場合は、一定の旋回半径を維持するために必要なステア角が速度に関係なく一定です。ただし、速度の上昇に伴って車両の横滑り角を大きくして、必要な横力が発生するようにする必要があります。そのためには、ドライバーがステアリングとスロットルを慎重に操作し、車両のバランスを確保してスピンを防止する必要があります。
オーバーステア
オーバーステアの車両の場合は、一定の旋回半径を維持するために必要なステア角が速度に伴って小さくなるので、ドライバーによる車両の制御が難しくなります。または、オーバーステアの車両へのステップステア入力によって車両の横加速度とヨーレートが上昇し、車両がスピンする結果になります。対照的に、アンダーステアの車両では、ステップステア入力によって、制限された横加速度とヨーレートが生成されます。

サスペンションの設計が不十分な場合や、タイヤの選択を誤っている場合はアンダーステアが現れますが、速度、横加速度、および車両荷重の組み合わせによってはオーバーステアに移行する可能性があります。

アンダーステアの計算
アンダーステアは、フロントタイヤとリアタイヤの平均スリップ角の差です。ニュートラルステアの車両では、フロントタイヤとリアタイヤでスリップ角が同じになります。アンダーステアの車両では、フロントのスリップ角の方がリアのスリップ角より大きくなり、オーバーステアの車両では、リアのスリップ角の方がフロントのスリップ角より大きくなります。

値の意味は以下のとおりです。

= スリップ角:タイヤを上方から見下ろした状態で、速度ベクトルとタイヤのヘディングが成す角度を速度ベクトルから測定した値(ラジアン)。
Figure 1.

このイベントは、横加速度制御モードまたは速度制御モードで実行できます。横加速度制御モードでは、車両が円形経路上を一定速度で走行するため、横加速度が一定に維持されます。

速度制御モードでは、車両が円形経路上を加速しながら走行するため、横加速度が上昇します。イベントフォームを使用して、走行時間、一定半径、および終了速度を制御できます。


Figure 2. Constant Radiusイベント


Figure 3. 定常円旋回経路の上面図


Figure 4. ボディグラフィックスが表示された車両モデル

このイベントは、横加速度を一定に保ちながらまたは徐々に加速しながら、車両を定常円旋回させるように設計されています。このイベントは、車両を定常状態にするための直線経路から始まります。車両は旋回走行に移り、コントローラーは指定された速度または横加速度を維持します。

横加速度の制御

車両制御として横加速度を選択すると、このイベントは定常状態の横加速度で実行されます。目標とする横加速度と経路半径をフォームに入力します。車両の初期速度は、方程式v=sqrt(r*a)を使用して計算されます。この方程式は、フォームに埋め込まれています。

次の表にイベントシーケンスを示します:
イベントステップ
説明
開始
車両は、フォームに入力した横加速度が発生する速度で、定常円の接線方向に直線走行を開始します。
定常円旋回軌道への進入
車両は定常円旋回軌道に入ります。旋回方向は、フォームの入力内容(左または右)に応じて決まります。ステアリングは、ステアコントローラーによって制御されます。速度は、駆動トルクコントローラーによって維持されます。速度が一定なので横加速度は一定になります。
定常円旋回経路の走行
イベントで指定した時間だけ、車両が定常円旋回経路上を走行します。
イベントの終了
円旋回に指定した時間に達するとイベントが終了します。

一般的に、一連の横加速度制御イベントを実行することで車両の特性が判明します。一連のイベントでは、左右の旋回がシミュレートされると共に(車両の対称性を確認するため)、加速度が上昇するときの車両の動作特性を明らかにするために横加速度のスイープがシミュレートされます。トラック半径は、相関データを生成するために使用されているテストトラックの半径と一致する必要があります。

速度制御

車両制御が速度の場合は、車両は間断なく加速しながら円形経路上を走行するので、横加速度が大きくなります。このイベントでは、車両の横加速動作のスイープがシミュレートされます(加速しながら)。左右に旋回させることが可能であり、円軌道内の走行時間を変化させることで、緩やかな加速をシミュレートできます。十分な時間がある場合は、車両は円軌道を複数周走行します。次の表にイベントシーケンスを示します。
イベントステップ
説明
開始
車両は、定常円旋回経路の接線に向かって走行します。初期速度は、円半径と指定された初期横加速度に基づいて決定されます。加速度が低いと、初期速度も低くなります。
定常円旋回経路への進入
車両は、定常円旋回経路に進入して加速を開始します。
定常円旋回経路の走行
車両は、定常円旋回経路に沿って走行して加速します。車両の速度は、Time in circular trackで指定された時間をかけて初期速度から最終速度に上昇します。加速が結果に与える影響をできるだけ小さくするには、長めの時間を指定します。
イベントの終了
Time in circular trackで指定された時間が経過すると、イベントが終了します。

モデルが円形経路を維持できない場合は、Could not Find Ideal SWA in 20 Iterationsというエラーメッセージがログファイルに出力されます。これは、経路に沿って走行していないことを示す一般エラーです。このエラーの原因としては、モデルやタイヤに関するさまざまな問題が考えられます。このエラーが表示される前の時点のモデル結果を調べて、そのときの車両の動作を確認してください。

イベントを定義するために9タイプのモデリング要素コンテナーが使用されています。このイベントには、3つのサブシステムとして、出力リクエスト、ステアコントローラー、および駆動トルクコントローラーもあります。

データセット

このシステムでは、Constant Radius eventを記述するデータを収めたデータセットが1つ使用されています。このイベントでは、車両制御、横加速度、車両の最終速度、円形経路を走行する時間、円の半径、および旋回方向(左または右)を設定できます。車両速度、ホイール回転速度、および地上高は計算値なので、変更しないようにする必要があります。

フォーム

フォームは、レーンチェンジイベントを変更する唯一の場所です。変更可能なパラメータは、円の半径、旋回方向、円形経路を走行する時間、車両制御、横加速度、および車両の最終速度です。地上z座標と初期車両速度は計算値です。地上z座標は、ホイールの重心のZ位置とタイヤ転がり半径を使用して計算されます。これらの値は、タイヤのデータとして用意されています。

グラフィックス

1つのグラフィックスがイベントに定義されています。グラフィックスは、路面グラフィックスを定義し、ユーザーが入力する必要はありません。グラフィックスの詳しい説明をここに記載します。

スキッドパッドのグラフィックスは、走行する経路を示すために用意され、Constant Radius eventフォームのデータを使用するパラメータで定義されます。スキッドパッドのグラフィックスは、イベントが根本的に変更されないかぎり、編集する必要はありません。


Figure 5. スキッドパッドのグラフィックス

ジョイント

Constant Radius eventにはボールジョイントが1つあります。このジョイントは、ダミーボディをステアリングラックに結合します。このジョイントは、ADAMSで特定のイベントが機能できるように設けられています。モデルを手動で構築する場合は、ダミーボディをステアリングラックに結合します。

マーカー

Constant Radius eventにはイベントが1つあります。経路の原点は、スキッドパッドグラフィックスの原点であり、車体の重心になるようにパラメータで定義されます。マーカーはポイントを指し示し、ポイントにはパラメータのロジックが含まれます。

モーション

3つのモーションがイベントに組み込まれています。車両に対するステアリングモーションは、ステアコントローラーによって提供され、ステアリングコラムを車体に接合する回転ジョイントに作用します。モデルにステアリングコラムがない場合、このジョイントはステアリングラック入力軸と車体の間で機能します。

前輪と後輪のモーションは、ホイールハブをナックルに結合する、ホイールスピンドルの回転ジョイントに作用します。ホイールがナックルに固定されていることから、当初のこのモーションは0なので、モデルは静的に収束します。タイヤが回転できるように、静的平衡解析の後、モーションは非アクティブ化されます。

ポイント

2つのポイントがイベント内で定義されています。すべてのポイントを使用してスキッドパッドのグラフィックスが作成されます。ポイントには、それらのX、Y、Zの位置を定義するパラメータのロジックが格納されます。ポイントは変更しないでください。

ソルバー変数

Constant Radius eventは、1つのソルバー変数のSteer Path変数のみで構成されています。この変数は、必要な経路に沿って走行するためにハンドルに入力を適用するユーザーサブルーチンを呼び出します。

ソルバー変数USERサブルーチン呼び出しの番号は次のとおりです。
番号
説明
5020
ブランチID。5020はConstant radiusイベントを指します。
70000000
Driver Model Controllerデータを含むソルバー配列のID。この配列は、ステアコントローラーシステムにあります。
70000100
車両情報を記述した車両データ配列のID。この配列は、ステアコントローラーシステムにあります。
30
円の半径の値。

Templates

Constant Radius eventタスクにはテンプレートが1つあります。テンプレートはソルバー固有で、MotionSolveテンプレートのみがドキュメント化されています。このテンプレートは、</Model>コマンドの後にソルバーデックに挿入されて、このイベントの実行を制御します。

このイベントのテンプレートを以下に示します:
<ResOutput
     angle_type          = "YPR"
  />
  <ResOutput
     mrf_file            = "TRUE"
  />
  <ResOutput
     plt_file            = "TRUE"
  />
  <H3DOutput
     switch_on           = "TRUE"
     increment           = "1"
  />
  <ResOutput
     abf_file            = "TRUE"
  />
{if (tire_dataset.opt_omega.ival ==1)}
<!--Initial static analysis -->

<Simulate
	analysis_type = "Static"
	end_time      = "0.0"
/>	
{endif}


<Deactivate
	element_type = "MOTION"
	element_id = "{mot_frnt_wheel.l.idstring}"
/>
<Deactivate
	element_type = "MOTION"
	element_id = "{mot_frnt_wheel.r.idstring}"
/>
<Deactivate
	element_type = "MOTION"
	element_id = "{mot_rear_wheel.l.idstring}"
/>
<Deactivate
	element_type = "MOTION"
	element_id = "{mot_rear_wheel.r.idstring}"
/>
{if (tire_dataset.opt_omega.ival ==2)}
<!--Initial static analysis -->

<Simulate
	analysis_type = "Static"
	end_time      = "0.0"
/>	
{endif}
<Deactivate
	element_type = "JPRIM"
	element_id = "{j_clamp_1_body.idstring}"
/>
<Deactivate
	element_type = "JPRIM"
	element_id = "{j_clamp_2_body.idstring}"
/>

<Motion_Joint
     id                  = "{wh_motion.idstring}"
     expr                = "VARVAL({sv_str_path.idstring})"
/>


<Simulate
     analysis_type       = "Transient"
     end_time            = "{(pi*ds.radius.value*1000.0/2.0)/(447.04*ds.veh_vel.value)+ds.step_time.value+2.0}"
     print_interval      = "0.02"
  />
<Stop/>

参考資料

ISO +4138-2004 - Passenger cars — Steady-state circular driving behaviour — Open-loop test methods