Model Predictive Control Toolbox™ は、線形および非線形のモデル予測制御 (MPC) を使用してコントローラーの設計およびシミュレーションを行うための関数、アプリ、Simulink® ブロックを提供します。このツールボックスを使用することで、プラントモデルや外乱モデル、ホライズン、制約、重みを指定できます。閉ループ シミュレーションを実行することにより、コントローラーの性能を評価できます。
実行時に重みと制約を変化させることにより、コントローラーの挙動を調整できます。このツールボックスには、展開可能な最適化のソルバーが付属しています。また、カスタムのソルバーを使用することもできます。非線形プラントを制御するには、適応型 MPC、ゲインスケジュール型 MPC、および非線形 MPC コントローラーを実装できます。サンプルレートが高速なアプリケーションについては、通常のコントローラーから陽的なモデル予測コントローラーを生成するか、近似解を実装できます。
ラピッド プロトタイピングや組み込みシステム実装 (最適化ソルバーの展開など) については、このツールボックスを使用して、C コードや IEC 61131-3 ストラクチャード テキストを生成することができます。
詳細を見る:
MPC デザイナーアプリ
MPC コントローラーを対話的に設計するには、内部プラントモデルの定義と、ホライズン、重み、制約の調整を行います。シミュレーション シナリオを使用して、コントローラーの性能を検証します。複数の MPC コントローラーの応答を比較します。
Simulink での MPC の設計
ツールボックスで提供される MPC Controller ブロックやその他のブロックを使用して、Simulink で MPC コントローラーをモデル化し、シミュレーションします。Simulink Control Design™ を使用して Simulink モデルを平衡化および線形化することで、MPC コントローラー向けに内部線形時不変プラントモデルを計算し、プラント入力と出力のノミナル値を取得します。
MATLAB での MPC 設計
コマンドライン関数を使用して MPC コントローラーを設計します。内部プラントモデルを定義し、重み、制約、および他のコントローラー パラメーターを調整します。閉ループシステムの応答をシミュレーションして、コントローラーの性能を評価します。
事前に用意されているブロック
車間距離制御システムや車線逸脱防止支援システム、パス追従制御システムのブロックを ADAS アプリケーションの出発点として使用し、必要に応じてカスタマイズします。車載展開用のコードを事前に用意されているブロックから生成します。
リファレンス アプリケーションの例
リファレンス アプリケーションの例を使用して、自動運転システムに必要な MPC コントローラーの設計と展開のワークフローを実施します。また、リファレンス アプリケーションの例では、システムのさまざまな部分を多様な忠実度でモデル化する方法を確認することもできます。
線形 MPC
線形 MPC コントローラーを設計するには、Control System Toolbox™ の線形時不変 (LTI) システムとして内部プラントモデルを指定するか、Simulink Control Design で Simulink モデルを線形化します。また、System Identification Toolbox™ を使用して、測定された入出力データから作成されたモデルをインポートすることもできます。
適応型 MPC
コマンドライン関数と Adaptive MPC Controller ブロックを使用して、適応型 MPC コントローラーの設計およびシミュレーションを行います。実行時にプラントモデルを更新し、コントローラーの入力に指定します。漸近安定性が保証された組み込みの線形時変 (LTV) カルマンフィルターを使用して、適応型モデル予測コントローラーで状態推定を行います。
ゲインスケジュール型 MPC
Multiple MPC Controller ブロックによって、幅広い操作条件で非線形プラントを制御します。実行時にそれぞれの操作点とコントローラー間のスイッチに合わせて、MPC コントローラーを設計します。
コントローラーのパラメーター
内部プラントモデルを定義したあと、サンプル時間、予測制御ホライズン、スケール係数、入力制約と出力制約、および重みを指定して、MPC コントローラーを設計します。また、このツールボックスでは、制約緩和や時変制約と重みもサポートされています。
状態推定
組み込みの状態推定器を使用して、測定された出力からコントローラーの状態を推定します。また、カスタムのアルゴリズムで状態推定を行うこともできます。
設計レビュー
MPC コントローラーで組み込みの診断関数を使用して、潜在的な安定性とロバスト性の問題を検出します。この診断結果を使用して、実行時の故障を回避できるように、設計中にコントローラーの重みと制約を調整します。
実行時パラメーターの調整
MPC コントローラーの重みと制約を調整して、再設計や再実装をせずに実行時の性能を最適化します。MATLAB® と Simulink の両方で、実行時のコントローラー調整を行います。
実行時の性能の監視
最適化ステータス信号にアクセスし、最適化の収束に失敗する希有な状況を検出します。この情報を使用して、バックアップの制御戦略について判断します。
陽的 MPC
陰的 MPC 設計から陽的 MPC コントローラーを生成し、実行を高速化します。メモリー フットプリントの削減のため、生成された陽的 MPC コントローラーを単純化します。
近似 (準最適) 解
近似 (準最適) 解を使用して、最悪実行時間保証の MPC コントローラーの設計、シミュレーション、展開を行います。
最適化計画
非線形コストまたは非線形制約を持つ非線形モデルが必要な最適化計画アプリケーションには、非線形の MPC コントローラーを使用します。
フィードバック制御
非線形コストと非線形制約に基づき、非線形プラントの閉ループ制御をシミュレーションします。既定では、非線形 MPC コントローラーで Optimization Toolbox™ を使用して、非線形計画法の問題を解決します。また、独自のカスタム非線形ソルバーを指定することもできます。
経済的 MPC
経済的 MPC コントローラーを設計し、任意の非線形制約に基づき、任意のコスト関数向けにコントローラーを最適化します。線形または非線形予測モデル、カスタムの非線形コスト関数、およびカスタムの非線形制約を使用できます。
MATLAB と Simulink を使ったコード生成
Simulink で MPC コントローラーを設計するか、Simulink Coder™ または Simulink PLC Coder™ をそれぞれ使用して、C コードと IEC 61131-3 ストラクチャード テキストを生成します。MATLAB Coder™ を使用して MATLAB で C コードを生成し、リアルタイム制御に展開します。または、MATLAB Compiler™ を使用して、MPC コントローラーをスタンドアロン アプリケーションとしてパッケージ化し、共有することもできます。
組み込みのソルバー
組み込みプロセッサ上で効率的に実装するために、提供されている有効制約法および内点二次計画法 (QP) ソルバーからコードを生成します。非線形問題については、Optimization Toolbox の逐次二次計画法 (SQP) ソルバーを使用して、シミュレーションとコード生成を行います。生成したコードを任意の数のプロセッサに展開します。
カスタムソルバー
Embotech の FORCES PRO QP と非線形計画法 (NLP) ソルバーを使用して、線形および非線形 MPC コントローラーのシミュレーションとコード生成を行います。また、カスタムの QP ソルバーや NLP ソルバーを使用して、シミュレーションやコード生成を行うこともできます。