Main Content

Simulink による NARMA-L2 ニューラル コントローラーの設計

この節で説明するニューロコントローラーは、フィードバック線形化制御と NARMA-L2 制御という 2 つの異なる名前で呼ばれます。プラント モデルが特定の形式 (コンパニオン形式) を持っている場合は、フィードバック線形化と呼ばれます。プラント モデルを同じ形式で近似できる場合は、NARMA-L2 制御と呼ばれます。この種類の制御の中心となる考え方は、非線形性を打ち消して、非線形システム ダイナミクスを線形ダイナミクスに変換することです。この節では、まずコンパニオン形式システム モデルを紹介し、ニューラル ネットワークを使用してこのモデルを同定する方法を説明します。さらに、同定したニューラル ネットワーク モデルを使用してコントローラーを開発する方法を説明します。その後、Deep Learning Toolbox™ ブロックセットに含まれている NARMA-L2 Control ブロックの使用方法の例を示します。

NARMA-L2 モデルの同定

モデル予測制御と同様に、フィードバック線形化 (または NARMA-L2) 制御を使用する最初のステップは、制御対象のシステムを同定することです。ニューラル ネットワークに学習させ、システムのフォワード ダイナミクスを表現します。最初のステップは、使用するモデル構造を選択することです。一般的な離散時間非線形システムを表現するために使用される標準モデルの 1 つは、次の非線形自己回帰移動平均 (NARMA) モデルです。

y(k+d)=N[y(k),y(k1),,y(kn+1),u(k),u(k1),,u(kn+1)]

ここで、u(k) はシステム入力、y(k) はシステム出力です。同定段階では、非線形関数 N に近づくようにニューラル ネットワークに学習させていきます。これは、NN Predictive Controller に使用されている同定手順です。

システム出力がなんらかの基準軌跡
y(k + d) = yr(k + d) に従うようにする場合、次のステップは以下の形式の非線形コントローラーを開発することです。

u(k)=G[y(k),y(k1),,y(kn+1),yr(k+d),u(k1),,u(km+1)]

このコントローラーを使用する際の問題は、ニューラル ネットワークに学習させ、平均二乗誤差を最小化する関数 G を作成する場合に、動的な逆伝播 ([NaPa91] または [HaJe99]) を使用する必要があることです。これは非常に時間がかかる場合があります。Narendra と Mukhopadhyay によって提案された 1 つの解決策 [NaMu97] は、近似モデルを使用してシステムを表現することです。この節で使用するコントローラーは NARMA-L2 近似モデルに基づきます。

y^(k+d)=f[y(k),y(k1),,y(kn+1),u(k1),,u(km+1)]+g[y(k),y(k1),,y(kn+1),u(k1),,u(km+1)]u(k)

このモデルはコンパニオン形式であり、次のコントローラー入力 u(k) が非線形性の中に含まれていません。この形式の利点は、システム出力が基準 y(k + d) = yr(k + d) に従う制御入力を求めることができる点です。結果として得られるコントローラーは次の形式になります。

u(k)=yr(k+d)f[y(k),y(k1),,y(kn+1),u(k1),,u(kn+1)]g[y(k),y(k1),,y(kn+1),u(k1),,u(kn+1)]

この方程式を直接使用すると、制御入力 u(k) を同じ時点の出力 y(k) に基づいて決定しなければならないため、実現上の問題が生じる可能性があります。そのため、代わりに次のモデルを使用します。

y(k+d)=f[y(k),y(k1),,y(kn+1),u(k),u(k1),,u(kn+1)]+g[y(k),,y(kn+1),u(k),,u(kn+1)]u(k+1)

ここで、d ≥ 2 です。次の図はニューラル ネットワーク表現の構造を示しています。

NARMA-L2 コントローラー

NARMA-L2 モデルを使用すると、次のコントローラーが得られます。

u(k+1)=yr(k+d)f[y(k),,y(kn+1),u(k),,u(kn+1)]g[y(k),,y(kn+1),u(k),,u(kn+1)]

これは、d ≥ 2 で成り立ちます。次の図は NARMA-L2 コントローラーのブロック線図です。

このコントローラーは、次の図に示すように、前に同定した NARMA-L2 プラント モデルを使用して実装できます。

NARMA-L2 Controller ブロックの使用

この節では、NARMA-L2 コントローラーに学習させる方法を説明します。最初のステップは、NARMA-L2 Controller ブロックを Deep Learning Toolbox ブロック ライブラリから Simulink® エディターにコピーすることです。方法については、Simulink のドキュメンテーションを参照してください。次の例ではこのステップは省略しています。

NARMA-L2 コントローラーの使用方法を示すために、Deep Learning Toolbox ソフトウェアにはモデル例が用意されています。この例では、次の図のように電磁石の上につり下げられた磁石の位置の制御が目的です。ここで、磁石の移動は垂直方向のみに制限されています。

このシステムの運動方程式は、次のようになります。

d2y(t)dt2=g+αMi2(t)y(t)βMdy(t)dt

ここで、y(t) は電磁石とその上の磁石との距離、i(t) は電磁石に流れる電流、M は磁石の質量、g は重力定数です。パラメーター β は磁石がその内部を移動する物質によって決まる粘性摩擦係数、α は電磁石の銅線の巻き数と磁石の強度によって決まる場の強さの定数です。

この例を実行します。

  1. MATLAB® を起動します。

  2. MATLAB コマンド ウィンドウに narmamaglev と入力します。このコマンドにより Simulink エディターが開き、次のモデルが表示されます。NARMA-L2 Control ブロックは既にモデルの中にあります。

  3. NARMA-L2 Controller ブロックをダブルクリックします。これにより、次のウィンドウが開きます。このウィンドウによって、NARMA-L2 モデルに学習させることができます。モデル予測コントローラーとは異なり、このコントローラーはモデルから直接決定されるため、個別のウィンドウがありません。

  4. このウィンドウは、他の [Plant Identification] ウィンドウと同様に機能し、したがって学習プロセスは繰り返されません。代わりに、NARMA-L2 コントローラーのシミュレーションを行います。

  5. Simulink エディターに戻り、メニュー オプション [シミュレーション][実行] を選択して、シミュレーションを開始します。シミュレーションが実行されると、プラント出力と基準信号が次の図のように表示されます。