Simulink でのリアルタイムの PID 自動調整の制御
PID 自動調整器ブロックを展開することにより、ループ内に Simulink® がなくてもシステムをリアルタイムで調整できるようになります。ただし、Simulink から実験を制御しながら、ハードウェア上で自動調整アルゴリズムを実行すると便利な場合があります。
これを行う 1 つの方法として、PID コントローラーと PID 自動調整器ブロックを含むモデルを使用して、そのモデルをエクスターナル シミュレーション モードで実行することができます。エクスターナル モードにより、Simulink ブロック線図と生成コードから作成されるスタンドアロン プログラムとの間の通信が可能となります。このモードでは Simulink が、ハードウェアで実行中の調整アルゴリズムとの対話が可能なリアルタイムの監視インターフェイスとして機能します。たとえば、モデルの実行中に、Simulink インターフェイスから実験を開始や終了したり、調整目標を変更したりできます
エクスターナル モードで調整を行う場合、実験アルゴリズムのみを展開して、計算の PID 調整部分は Simulink で実行されるようにすることができます。これにより、ターゲット ハードウェア上のメモリを節約できます。PID 自動調整アルゴリズムをエクスターナル モードで実行するには、Simulink Coder™ などのコード生成製品が必要です。
エクスターナル モードでの調整のための Simulink モデル
PID 自動調整をエクスターナル モードで行うための Simulink モデルは、次の図のようになります。
ここでは Read plant output from hardware
と Write plant input to hardware
というブロックが、物理プラントとの間でデータの読み書きを行うハードウェア インターフェイスを表します。調整の準備が整ったら、このモデルをエクスターナル シミュレーション モードで実行します。
開ループ調整のバンプレス切り替え
Open-Loop PID Autotuner を使用するときは、コントローラーに積分器アクションが含まれる場合、調整実験中の積分器のワインドアップを防ぐために信号のトラッキングを実装することを検討してください。信号のトラッキングにより、PID コントローラーが、ループの外にある間も実際のプラント入力をトラッキングし続けることができます。そうでないと、調整プロセスの終わりに制御ループを閉じる時点でシステムにバンプが生じる可能性があります。
PID コントローラーが Simulink PID Controller ブロックである場合、コントローラー ブロックの [トラッキングモードを有効にする] パラメーターを使用してこのバンプを回避できます。次のブロック線図は、トラッキング モードが構成されている Open-Loop PID Autotuner ブロックおよび PID Controller ブロックを含むモジュールを示しています。プラント入力はコントローラー ブロックのトラッキング入力に接続しています。
エクスターナル モードの調整では、Simulink でモデル化されたプラントの PID 自動調整で説明されているように start-stop
信号を構成します。ここに示されているモデルは、バイナリ信号をもつ単純なスイッチを使用して実験を手動で開始および終了します。
コントローラー パラメーター、調整目標、および実験パラメーターを、Simulink でモデル化されたプラントの PID 自動調整で説明されているように構成することもできます。
モデルの実行とコントローラー ゲインの調整
ブロックのパラメーターを実験用に構成した後、モデルで [エクスターナル モード]
を選択して、シミュレーション時間を無限大に設定し、モデルを実行します。
Simulink がモデルをコンパイルして、接続されているハードウェアに展開します。
特定の時間で調整プロセスを開始および終了するように
start/stop
信号を構成した場合、実験が終了するまでシミュレーションを実行するよう許可します。手動の
start/stop
信号を構成した場合、プラントが定常状態に達したときに実験を開始します。% conv
出力で信号を観察し、信号が 100% の近くで安定した時点で実験を終了します。
調整が完了したら、Simulink でモデル化されたプラントの PID 自動調整で説明されているように調整されたゲインを確認して検証します。
Simulink を介して自動調整プロセスを制御するためにエクスターナル モードを使用する詳しい例は、Open-Loop PID Autotuner ブロックを使用した PID コントローラーのリアルタイム調整を参照してください。
エクスターナル モード使用時のメモリ フットプリントの削減
自動調整器ブロックには、リアルタイムの周波数応答推定を実行するモジュールと、結果の推定応答を使って PID ゲインを調整するモジュールの、2 つのモジュールが含まれています。既定では、ブロックを含む Simulink モデルをエクスターナル シミュレーション モードで実行すると両方のモジュールが展開されます。推定モジュールのみを展開することにより、ターゲット ハードウェアのメモリを節約できます。この場合、調整アルゴリズムはターゲット ハードウェアではなく Simulink ホスト コンピューター上で実行されます。そのためには、自動調整器ブロックで [メモリを削減し、タスク オーバーランを回避してください] オプションを使用します。このオプションを選択すると、展開されたアルゴリズムはオプションをオフにした場合の約 3 分の 1 のメモリを消費します。
PID ゲインの計算には周波数応答の推定よりもさらに多くの計算負荷がかかります。コントローラーのサンプル時間が高速の場合、ハードウェアによっては 1 度の実行サイクルでゲインの計算が終了しない場合もあります。したがって、計算能力の限られるハードウェアを使用する場合、このオプションをオンにすると高速なサンプル時間で PID コントローラーを調整することができます。
また、このオプションを有効にすると、調整実験が終了した時点と新しい PID ゲインが [pid gains] 出力端子に到達した時点の間で、複数のサンプリング周期の遅延が発生する可能性があります。ゲインをコントローラーにプッシュする前に、[start/stop] 信号を更新のトリガーとして使用するのではなく、最初に [pid gains] 出力端子で変更を確認します。
注意
このオプションを使用する場合、数値ブロック パラメーターが生成コード内でインライン化されるのではなく、調整可能になるようにモデルを構成しなければなりません。調整可能なパラメーターを指定するには、以下を行います。
モデル エディター: [コンフィギュレーション パラメーター] の [コード生成] 、 [最適化] で、[既定のパラメーター動作] を
[調整可能]
に設定します。コマンド ライン:
set_param(mdl,'DefaultParameterBehavior','Tunable')
を使用します。
参考
Closed-Loop PID Autotuner | Open-Loop PID Autotuner