モデル予測制御 設計実装ワークフロー紹介, MPC Implementation Example
当サンプルモデルは、モデル予測制御(MPC)の設計と実装のワークフローを分かりやすく紹介するための資料である。(サンプルモデルの使い方については、こちらを参照)
特にマイクロコントローラに実装するときの検討事項について詳しくまとめている。
本モデルでは、以下のツールボックスを利用する。ただし、インストールしていなくても、モデルを実行せず閲覧するだけであれば可能である。また、例題によっては使わないツールボックスもある。
- MATLAB®
- Simulink®
- Control System Toolbox™
- Model Predictive Control Toolbox™
- Simulink Control Design™
- Simscape™, Simscape™ Multibody™
- Symbolic Math Toolbox™
- Navigation Toolbox™
- Image Processing Toolbox™, Computer Vision Toolbox™
- Automated Driving Toolbox™
- MATLAB Coder™, Simulink Coder™, Embedded Coder®
MPCについて初学者であり、以下の資料を見ていない場合は、本サンプルモデルより先に以下の資料に目を通しておくこと。
- モデル予測制御(MPC)とは? Part1 ~ 基本的な考え方
- モデル予測制御(MPC)とは? Part2 ~ Model Predictive Control Toolbox例題
- 応用 ~ アダプティブ・クルーズ・コントロールとセンサーフュージョン
以下の資料はMPCの技術的な資料である。ある程度ツールの使い方を理解した後に読むこと。
最初に線形MPCを使った例を紹介する。プラントモデルとして、単純なSISOの不安定システムを用いる。以下のライブエディターを開いて作業を開始すること(以降、同様にライブエディターを開いて確認していく)。
線形近似されたDCモーターモデルに対して陽的MPCを設計し、実装する。線形MPCと陽的MPCの比較を行う。
適応MPCの設計と実装について、4輪走行車両の制御を例に紹介する。プラントモデルとしては、等価二輪モデルを用いる。
適応MPCで用いたプラントモデルと設計手法を転用し、ゲインスケジュールMPCを設計、実装する。
非線形MPCの設計と実装について、シンプルな車両モデルの運転制御を例に紹介する。
適応MPCのソルバーとして、内点法を用いた場合の設計と実装について、4輪走行車両の制御を例に紹介する。プラントモデルとしては、等価二輪モデルを用いる。
マルチステージの非線形MPCは、コスト関数を予測ホライズンの各ステップごとに設定できる。それにより、通常の非線形MPCよりも高速に計算できる。
適応MPCを用いて、倒立振子型の自律走行ロボットの制御を構築する。物理モデルをSimscape Multibodyで構築し、それを制御する。
適応MPCを用いて、自律走行車両の制御を構築する。Automated Driving Toolboxを用いた走行環境から障害物を認識し、回避しながら走行制御を行う。
モデル予測制御ならびにカメラ画像によるターゲット認識を利用した衝突回避
過去のバージョンのファイル一式は、以下から得ることができる。ただし、過去のモデルには、古い時期に作成したサンプルしか含まれていないことに注意すること。
GitHubからクローンしている場合には、以下の該当バージョンに戻すことで、過去バージョンファイルを得ることができる。
R2023b: v8.0.1
R2023a: v7.0
R2022b: v6.0
R2022a: v5.0
R2021b: v4.0.2
R2021a: v3.3.1
R2020b: v2.2
R2020a: v1.1.1
Cite As
Toshinobu Shintai (2024). モデル予測制御 設計実装ワークフロー紹介, MPC Implementation Example (https://github.com/mathworks/mpc_implementation_example/releases/tag/v9.0), GitHub. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxTags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.