Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

1 次システムの間接的なモデル規範形適応制御

この例では、設定値追従用に間接的なモデル規範形適応制御 (MRAC) システムを設計する方法を示します。プラントは不明な 1 次システムです。間接的な MRAC コントローラーはプラントのパラメーターを推定し、参照モデルを追従する反転ベースのコントローラーを実装します。

不明な 1 次プラント モデル

制御対象のプラントは次の 1 次動的システムです。

x˙=ax(t)+bu(t)

ここで

  • x はシステム状態です。

  • a および b は不明なシステム パラメーターです。

この不明な非線形システムについて、次の参照モデルを追従できるコントローラーを設計することが目標です。

x˙m=amxm(t)+bmr(t)

ここで

  • xm は参照モデルの状態です。

  • r(t) はユーザーによって提供される基準信号です。

  • ambm は参照モデル パラメーターです。

設定値追従コントローラー

間接的な MRAC コントローラーは推定器モデルを使用して aˆbˆ を計算します。これらはそれぞれ、不明なシステム パラメーター ab の推定値です。

xˆ˙=aˆx(t)+bˆu(t)

制御動作 u(t) を計算するために、コントローラーはフィードフォワード ゲイン kr とフィードバック ゲイン kx を使用します。

u(t)=-kxx(t)+krr(t)

コントローラー ゲインは参照モデル パラメーター (ambm) および推定オブザーバー パラメーター (aˆbˆ) から導出されます。

kr=bmbˆkx=1bˆ(am-aˆ)

コントローラーの構成

この例では、実際の参照モデルは次のとおりです。

x˙=x(t)+3u(t)

モデル出力が状態 x に対応している前提で、参照モデル パラメーターを指定します。

a = 1; 
b = 3;
c = 1;
d = 0;

この実際のモデルは、間接的な MRAC コントローラーでは不明です。代わりに、コントローラーは推定器モデルを使用して不明なプラント ダイナミクスを推定します。動作中、コントローラーはこのモデルのパラメーターを適応させ、不明なシステム パラメーターの推定値を改善できます。

推定器の初期パラメーターを指定します。

ahat = 0;
bhat = 1;

コントローラーの目標は、参照モデルの性能を追従することです。参照モデルのパラメーターを指定します。

am = -4;
bm = 4;

プラントの初期条件を指定します。

x_0 = 0;

推定器モデル パラメーターを更新するための学習率を指定します。

gamma_a = 2;  % ahat learning rate
gamma_b = 2;  % bhat learning rate

コントローラーのシミュレーション

Simulink モデルを開きます。

mdl = 'mracFirstOrder';
open_system(mdl)

このモデルでは、次を行います。

  • Actual Plant Model ブロックは、不明な 1 次システムのノミナル モデルを実装します。

  • Reference Command ブロックは基準信号を生成します。

  • Model Reference Adaptive Control ブロックは、推定器モデルの使用から導出される制御動作 u を出力します。

MRAC コントローラーでは制御対象のシステムで不明な外乱も推定できますが、この例ではそのような外乱がありません。代わりに、コントローラーの目標は不明なプラント モデルのパラメーターを単純に推定することです。直接的な MRAC コントローラーを使用した不明な外乱を推定する例については、ウイング ロックが発生した航空機のモデル規範形適応制御を参照してください。

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

sim(mdl);

実際のプラント出力と基準信号を表示します。コントローラーは実際のプラント状態を使用して基準信号を厳密に追従できます。

open_system(mdl+"/state")

Model Reference Adaptive Controller ブロックは、AhatBhat の出力端子を使用して推定器モデルのパラメーター aˆbˆ をそれぞれ出力するように設定されています。

open_system(mdl+"/params")

時間の経過とともに、コントローラーは推定器パラメーターの値を適応させます。基準信号における励起の永続性が十分であれば、aˆbˆ は実際の値の 1 と 3 にそれぞれ収束します。

参考

ブロック

関連するトピック