Main Content

極値探索制御を使用したアンチロック ブレーキ

この例では、極値探索制御 (ESC) を使用してアンチロック ブレーキ システム (ABS) の制動トルクを最適化する方法を示します。

アンチロック ブレーキ システム

アンチロック ブレーキ システムは、各車輪の制動トルクを調整することで車両のブレーキがロックしないようにします。このようなシステムでは、次の関数で車輪のすべり係数を定義します。

slip=1-ωwωv

ここで、ωw は車輪角速度、ωv はブレーキなしの条件下での車輪角速度です (車両速度を車輪半径で除算した値)。この方程式に基づき、車輪速度と車両速度が等しい場合のすべりは 0 で、車輪がロックされている場合 (ωw が 0) のすべりは 1 です。ブレーキの望ましいすべり値は 0.2 です。つまり、車輪回転数は、車両速度が同じで、ブレーキなしの条件下での回転数の 0.8 倍に等しくなります。このすべり値はタイヤと路面間の粘着力を最大化し、利用可能な摩擦で停止距離を最小化します。

タイヤと路面間の摩擦係数 μ は、"mu スリップ曲線" と呼ばれるすべりの関数です。

タイヤの周囲に作用する摩擦力 Ff は、摩擦係数 μ に車輪にかかる重量 W を乗算した積です。Ff を車両の質量で除算した値は、車両減速度に等しくなります。これを積分して車両速度を求めることができます。

アンチロック ブレーキ コントローラーでは、実際のすべりと望ましいすべりの間の誤差に基づいて "バンバン制御" を使用するのが理想的です。望ましいすべり値は定数で、mu スリップ曲線がピーク値に到達するすべり値に対応します。詳細については、アンチロック ブレーキ システムのモデル化を参照してください。

車両モデル パラメーターの指定

この例では次の車両パラメーターを定義します。

  • m — 車両の質量

  • W — 車両の重量

  • B — 車輪の減衰トルク係数

  • Rr — 車輪半径

  • I — 車輪の慣性

m = 400;
W = m*9.81;
B = 0.01;
Rr = 0.3;
I = 1;

また、初期の車両前進速度 v0 と初期の車輪角速度 x0 も指定します。

v0 = 120/3.6;
w0 = 400/3.6;

アンチロック ブレーキ システムの極値探索制御

この ABS の例では、次の方程式に示すすべり係数の関数である摩擦係数を最大化する極値探索コントローラーを設計します。

μ=2μ*λ*λ(λ*2+λ2)

ここで、μ*λ* はそれぞれ理想的な摩擦係数とすべり係数です。得られたすべり係数 λ が理想的なすべり係数 λ* に等しい場合、実際の摩擦 μμ* に等しくなります。ABS は、すべり係数と摩擦係数の関数である制動トルクを制御することで、この最大減速度、つまり最短停止距離の目的を達成します。

Simulink Control Design ソフトウェアでは、ESC アルゴリズムをExtremum Seeking Controlブロックを使用して実装しています。この例では、このブロックと ABS システム モデルが含まれている ExtremumSeekingControlABS モデルを開きます。

mdl = 'ExtremumSeekingControlABS';
open_system(mdl)

Extremum Seeking Control ブロックの出力は、すべり係数 λ です。ESC コントローラーによって μ の値が最大化されるため、この値をブロックの目的関数入力として使用します。

すべり係数の初期推定を指定します。

IC = 0.15;

また、理想的なすべり係数 lambda_star と理想的な摩擦係数 mu_star も指定します。

lambda_star = 0.25;
mu_star = 0.6;

Extremum Seeking Control ブロックは、変調信号を使用してパラメーター値に摂動を与えます。その後、パラメーター更新を計算する前に、目的関数信号に結果として生じた変化を復調します。このブロックの極値探索制御パラメーターを設定します。

最初に、調整するパラメーターの数 (N) および学習率 (lr) を指定します。

N = 1;
lr = 0.3;

復調信号と変調信号は、その周波数 (omega)、位相 (phi_1phi_2)、および振幅 (ab) を指定することにより設定します。

omega = 0.7; % Forcing frequency
a = 1; % Demodulation amplitude
b = 0.02; % Modulation amplitude
phi_1 = pi/2; % Demodulation phase
phi_2 = 0; % Modulation phase

この例では、ローパス フィルターを使用して復調された信号から高周波数のノイズを除去し、ハイパス フィルターを使用して摂動を加えられた目的関数信号からバイアスを除去します。これらのフィルターのカットオフ周波数を指定します。

omega_lpf = 1;
omega_hpf = 0.5;

アンチロック ブレーキ システムのシミュレーション

モデルのシミュレーションを実行します。

sim(mdl);

摩擦係数のシミュレーション結果を表示します。μ は 2 秒以内に最大値に達しています。

open_system([mdl '/mu'])

車両速度と車輪角速度を表示します。どちらもブレーキのシミュレーション中に 0 まで低下しています。

open_system([mdl '/velocity'])

open_system([mdl '/wheel velocity'])

bdclose('ExtremumSeekingControlABS')

参考文献

[1] Ariyur, Kartik B., and Miroslav Krstić."Real Time Optimization by Extremum Seeking Control". Hoboken, NJ:Wiley Interscience, 2003.

参考

ブロック

関連するトピック