Main Content

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

Simulink によるモデル規範形ニューラル コントローラーの設計

ニューラル モデル規範形制御アーキテクチャは、次の図に示すように、コントローラー ネットワークとプラント モデル ネットワークの 2 つのニューラル ネットワークを使用します。プラント モデルが最初に同定されてから、プラント出力が規範モデル出力に従うようにコントローラーに学習させます。

Model reference diagram with input labeled "Command Input" and outputs labeled "Control Error" and "Plant Output"

次の図は、Deep Learning Toolbox™ ソフトウェアに実装されているニューラル ネットワーク プラント モデルとニューラル ネットワーク コントローラーの詳細を示しています。各ネットワークには 2 つの層があり、隠れ層で使用するニューロンの数を選択できます。コントローラー入力には、以下の 3 組があります。

  • 遅延規範入力

  • 遅延コントローラー出力

  • 遅延プラント出力

これらの各入力について、使用する遅延値の数を選択できます。遅延の数は通常、プラントの次数に合わせて増えます。ニューラル ネットワーク プラント モデルへの入力は次の 2 組があります。

  • 遅延コントローラー出力

  • 遅延プラント出力

コントローラーと同様に、遅延の数を設定できます。次の節では、パラメーターの設定方法を説明します。

Model diagram with sections labeled "Neural Network Controller" and "Neural Network Plant Model". The model has input labeled "r(t)" and outputs labeled "e_c(t)" and "c(t)"

Model Reference Controller ブロックの使用

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

モデル規範形コントローラーの使用方法を示すために、Deep Learning Toolbox ソフトウェアにはモデル例が用意されています。この例では、次の図に示すようにシンプルな単一リンクのロボット アームの動きを制御します。

Diagram of robot arm with angle of angle from the vertical labeled with phi.

アームの運動方程式は次になります。

d2ϕdt2=10sinϕ2dϕdt+u

ここで、ϕ はアームの角度、u は DC モーターから供給されるトルクです。

目的は、アームが次の規範モデルに追従するようにコントローラーに学習させることです。

d2yrdt2=9yr6dyrdt+9r

ここで、yr は規範モデルの出力で、r は入力基準信号です。

この例では、5-13-1 アーキテクチャのニューラル ネットワーク コントローラーを使用します。コントローラーへの入力は、2 つの遅延規範入力、2 つの遅延プラント出力、および 1 つの遅延コントローラー出力で構成されます。サンプリング間隔には 0.05 秒を使用します。

この例を実行します。

  1. MATLAB® を起動します。

  2. MATLAB コマンド ウィンドウに mrefrobotarm と入力します。このコマンドにより Simulink エディターが開き、Model Reference Control ブロックが既に含まれているモデルが表示されます。

    Screenshot of mrefrobotarm Simulink model

  3. Model Reference Control ブロックをダブルクリックします。これにより、モデル規範形コントローラーに学習させるための次のウィンドウが表示されます。

    Screenshot of Model Reference Control dialogue box

  4. 通常、次のステップは、[Plant Identification] をクリックして [Plant Identification] ウィンドウを開くことです。その後、プラント モデルに学習させます。[Plant Identification] ウィンドウは前のコントローラーで使用したものと同じであるため、ここではそのプロセスを省略します。

  5. [Generate Training Data] をクリックします。コントローラーの学習用のデータの生成が開始されます。データが生成された後、次のウィンドウが表示されます。

    Screen shot of Plant Input-Output Data for NN Model Reference Control dialogue box

  6. [Accept Data] をクリックします。[Model Reference Control] ウィンドウに戻り、[Train Controller] をクリックします。データの 1 つのセグメントがネットワークに与えられ、指定された反復回数 (この場合は 5 回)、ネットワークの学習が行われます。このプロセスは、一度に 1 セグメントずつ行われ、学習セット全体がネットワークに与えられるまで続きます。コントローラーの学習は、プラント モデルの学習よりも大幅に時間がかかる場合があります。これは、コントローラーの学習に "動的" な逆伝播を使用しなければならないためです ([HaJe99] を参照)。学習が完了した後、結果として得られた閉ループ システムの応答が次の図のように表示されます。

    Screen shot of Plant Input-Output Data for NN Model Reference Control dialogue box

  7. [Model Reference Control] ウィンドウに戻ります。コントローラーの性能が正確でない場合、[Train Controller] を再度選択して、同じデータセットでコントローラーの学習を継続できます。新しいデータセットを使用して学習を継続する場合は、[Generate Data] または [Import Data] を選択してから [Train Controller] を選択します (同じ重みで学習を継続する場合は、[Use Current Weights] が選択されていることを確認してください)。プラント モデルの再学習が必要になる場合もあります。プラント モデルが正確でない場合、コントローラーの学習に影響することがあります。この例の場合、コントローラーは十分正確であるため、[OK] を選択します。これにより、コントローラーの重みが Simulink モデルに読み込まれます。

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

    2-D line plot with title "X Y Plot". The horizontal axis is labeled "X Axis". The vertical axis is labeled "Y Axis".