Model Predictive Control Toolbox

モデル予測コントローラーの設計およびシミュレーション

 

Model Predictive Control Toolbox™ は、モデル予測コントローラー (MPC) の設計およびシミュレーションのための関数、アプリ、および Simulink® ブロックを提供します。このツールボックスにより、プラント モデルと外乱モデル、ホライズン、制約、および重みを指定できます。閉ループ シミュレーションを実施することにより、コントローラーの性能を評価することができます。

実行時に重みと制約を変化させることにより、コントローラーの挙動を調整できます。非線形プラントの制御には、適応ゲイン スケジュール MPC を実装することができます。速いサンプルレートを持つアプリケーションについては、通常のコントローラーから明示モデルの予測コントローラーを生成、または近似解を実装することができます。

ラピッド プロトタイピングと組み込みシステム実装については、ツールボックスが C コードおよび IEC 61131-3 ストラクチャード テキストの生成をサポートします。

今すぐ始める:

モデル予測コントローラーの設計

MPC コントローラーを設計して、入力と出力に制約のある MIMO システムを制御します。閉ループ シミュレーションを実施して、コントローラーの性能を評価します。

MATLAB での MPC 設計

コマンドライン関数を使用して MPC コントローラーを設計します。内部プラント モデルを定義して、重み、制約、および他の制御パラメーターを調整し、閉ループのシステム応答をシミュレーションしてコントローラーの性能を評価します。

コマンド ラインで MPC コントローラーを設計

Simulink での MPC 設計

Simulink でツールボックスにより提供される MPC コントローラー ブロックやその他のブロックを使用して、MPC コントローラーをモデル化してシミュレーションします。Simulink Control Design™ を使用し、Simulink モデルを平衡化および線形化して、MPC コントローラー向けに内部の線形時不変プラント モデルを算出、プラント入力と出力のノミナル値を算出します。

MPC デザイナー アプリ

  内部プラント モデルを定義して、ホライズン、重み、および制約を調整することにより、MPC コントローラーを対話型で設計します。シミュレーション シナリオを使用してコントローラー性能を検証します。複数の MPC コントローラーで応答を比較します。

自動運転アプリケーション

事前に用意された Simulink ブロックを用いて ADAS システムの開発を加速します。リファレンス サンプルを用いて ADAS コントローラーを素早く開発します。MPC コントローラーの車両への展開のため、Simulink ブロックからコードを生成します。

事前に用意されているブロック

車間距離制御装置システム、車線逸脱防止支援システム、およびパス追従制御システムのブロックを ADAS アプリケーションの開始ポイントとして使用し、必要に応じてカスタマイズします。MPC コントローラーの展開のために、事前に用意されているブロックからコードを生成します。

事前に用意された Simulink ブロックを車間距離制御装置システムの設計に使用

リファレンス アプリケーション

自動運転システムにおける MPC コントローラーの設計および展開を行うワークフローを実施する、リファレンス アプリケーションを活用します。また、リファレンス アプリケーションでは、システムの異なる部分をさまざまな忠実度でモデル化する方法を確認することができます。

線形モデル予測コントローラー

線形ダイナミクスを持つシステム用 MPC コントローラーを設計します。運用条件により変化するダイナミクスを持つプラントのための、適応ゲイン スケジューリング MPC コントローラーを開発します。

線形 MPC

Control System Toolbox™ の線形時不変 (LTI) システムとして内部プラントモデルを指定、または Simulink Control Design で Simulink モデルを線形化することで線形 MPC コントローラーを設計します。また、System Identification Toolbox™ で入出力測定値から作成されたモデルをインポートすることも可能です。

線形 MPC 設計の内部プラント モデルを指定

適応 MPC

コマンドライン関数と適応 MPC コントローラー ブロックを使用して、適応 MPC コントローラーの設計およびシミュレーションを行います。各演算ステップでプラント モデルを更新し、コントローラーの入力に使用します。漸近的安定保証を備えた組み込みの線形時変 (LTV) カルマン フィルターを、適応モデル予測コントローラーの状態推定に使用します。

ゲイン スケジュール MPC

複数 MPC コントローラー ブロックにより、幅広い運用条件で非線形プラントを制御します。実行時にそれぞれの操作点とコントローラー間のスイッチに合わせて、MPC コントローラーを設計します。

ゲイン スケジュール MPC コントローラーの設計に複数 MPC コントローラーを使用

MPC の設計パラメーター、状態推定、および設計レビュー

内部プラント モデルを定義して、制御パラメーターを調整し、閉ループのシステム応答をシミュレーションしてコントローラーの性能を評価することにより、反復的にコントローラーの設計を改善します。潜在的な設計上の問題を発見するためコントローラーをレビューします。

コントローラーのパラメーター

内部プラント モデルを定義したあと、サンプル時間、予測・制御ホライズン、スケール係数、入力制約と出力制約、および重みを指定して、MPC コントローラーの設計を完成させます。また、ツールボックスで制約緩和と時変制約、および重みもサポートします。

MPC デザイナー アプリでコントローラーのパラメーターを指定

状態推定

組み込みの状態推定処理を用いて出力測定からコントローラーの状態を推定します。また、カスタムのアルゴリズムで推定された値をコントローラーに入力する必要がある場合は、カスタムの状態推定オプションを使用することも可能です。

カスタムの状態推定

設計レビュー

ツールボックスで提供される診断関数を使用して、MPC コントローラーでの潜在的な安定性とロバスト性の問題を検出します。この診断ツールを使用して、コントローラーの重みと制約を設計中に調整し、実行時エラーを防ぎます。

設計レビュー レポートでの推奨事項によりコントローラーの設計を改善

実行時パラメーターの調整と性能監視

実行時に重みと制約を調整し、コントローラーの性能を改善します。コントローラーの実行時のパフォーマンスを解析します。

実行時パラメーター調整

MPC コントローラーの実行時の重みと制約を調整して、再設計または再実装無しでランタイムでの性能を最適化します。MATLAB と Simulink 両方で実行時のコントローラー調整を行います。

実行時の重みと制約の調整

実行時のパフォーマンスの監視

最適化ステータス信号にアクセスし、最適化が失敗することがあるレアなケースを検知して、バックアップの制御戦略を使用するかどうかを決定します。

コントローラーの失敗をリアルタイムで検知

高速モデル予測コントローラーを実装

制限された演算スループットを持つアプリケーションで MPC コントローラーを設計、シミュレーション、および展開します。

陽的 MPC

通常の MPC 設計から陽的 MPC コントローラーを生成します。メモリー フットプリント削減のため、生成された陽的 MPC コントローラーを単純化します。

前もって設計されたMPCコントローラーから陽的 MPC コントローラーを生成

近似 (準最適) 解

近似 (準最適) 解を用いた最低実行時間保証の MPC コントローラーを設計、シミュレーション、および実装します。

最適化と近似 (準最適) 解での実行時間の比較

非線形モデル予測コントローラー

非線形予測モデル、コスト関数、および制約を用いてプラント制御の非線形 MPC コントローラーを設計します。

最適化計画

非線形コストまたは非線形制約を持つ非線形モデルを必要とする、最適化計画アプリケーション向けの非線形 MPC コントローラーを使用します。

非線形 MPC を用いた飛行ロボットの軌跡最適化と制御

フィードバック制御

非線形コストと非線形制約に基づき、非線形プラントの閉ループ制御をシミュレーションします。デフォルトでは、非線形 MPC コントローラーが Optimization Toolbox™ を使用して非線形計画法の問題を解決しています。独自のカスタム非線形ソルバーを指定することも可能です。

発熱化学反応器の非線形モデル予測制御

経済 MPC

経済 MPC コントローラーを設計し、任意の非線形制約における任意のコスト関数向けコントローラーを最適化します。線形、または非線形予測モデル、カスタムの非線形コスト関数、およびカスタムの非線形制約を使用することができます。

エチレンオキシド製造における経済面の MPC 制御

コード生成

Simulink と MATLAB で設計されたモデル予測コントローラー向けのコードを生成して、リアルタイム制御アプリケーションに展開します。

MATLAB と Simulink を使ったコードの生成

Simulink で MPC コントローラーを設計するか、Simulink Coder™ または Simulink PLC Coder™ をそれぞれ使用して、C コードと IEC 61131-3 ストラクチャード テキストを生成します。MATLAB Coder™ を使用して MATLAB で C コードを生成してリアルタイム制御に展開します。または、MATLAB CompilerTM を用いて MPC コントローラーを展開します。

MPC コントローラー ブロックからの C コードの生成

組み込みソルバー

組み込みプロセッサへの効率的な実装のために、提供されている二次計画法 (QP) ソルバーからコードを生成します。生成されたコードを任意の数のプロセッサに展開します。提供される QP ソルバーは、標準の MPC 定式化で使用するか、カスタムの MPC 問題解決のために使用します。

カスタムの MPC コントローラー

カスタムの QP ソルバー

任意のカスタム二次計画法 (QP) ソルバーをシミュレーションとコード生成に使用します。

カスタムの QP ソルバーのシミュレーションとコード生成