モデル予測制御 設計実装ワークフロー紹介, 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®
目次
1.一般的な紹介資料
MPCについて初学者であり、以下の資料を見ていない場合は、本サンプルモデルより先に以下の資料に目を通しておくこと。
ビデオ
- モデル予測制御(MPC)とは? Part1 ~ 基本的な考え方
- モデル予測制御(MPC)とは? Part2 ~ Model Predictive Control Toolbox例題
- 応用 ~ アダプティブ・クルーズ・コントロールとセンサーフュージョン
技術紹介記事
ホワイトペーパー
以下の資料はMPCの技術的な資料である。ある程度ツールの使い方を理解した後に読むこと。
2.線形MPC
最初に線形MPCを使った例を紹介する。プラントモデルとして、単純なSISOの不安定システムを用いる。以下のライブエディターを開いて作業を開始すること(以降、同様にライブエディターを開いて確認していく)。
3.陽的MPC
線形近似されたDCモーターモデルに対して陽的MPCを設計し、実装する。線形MPCと陽的MPCの比較を行う。
4.適応MPC
適応MPCの設計と実装について、4輪走行車両の制御を例に紹介する。プラントモデルとしては、等価二輪モデルを用いる。
5.ゲインスケジュールMPC
適応MPCで用いたプラントモデルと設計手法を転用し、ゲインスケジュールMPCを設計、実装する。
6.非線形MPC
非線形MPCの設計と実装について、シンプルな車両モデルの運転制御を例に紹介する。
7.適応MPCに内点法ソルバー適用
適応MPCのソルバーとして、内点法を用いた場合の設計と実装について、4輪走行車両の制御を例に紹介する。プラントモデルとしては、等価二輪モデルを用いる。
8.マルチステージの非線形MPC
マルチステージの非線形MPCは、コスト関数を予測ホライズンの各ステップごとに設定できる。それにより、通常の非線形MPCよりも高速に計算できる。
Ex.1.適応モデル予測制御による倒立制御走行ロボットの倒立制御
適応MPCを用いて、倒立振子型の自律走行ロボットの制御を構築する。物理モデルをSimscape Multibodyで構築し、それを制御する。
Ex.2.モデル予測制御ならびにカメラ画像によるターゲット認識を利用した衝突回避
適応MPCを用いて、自律走行車両の制御を構築する。Automated Driving Toolboxを用いた走行環境から障害物を認識し、回避しながら走行制御を行う。
モデル予測制御ならびにカメラ画像によるターゲット認識を利用した衝突回避
過去バージョン
過去のバージョンのファイル一式は、以下から得ることができる。ただし、過去のモデルには、古い時期に作成したサンプルしか含まれていないことに注意すること。
GitHubからクローンしている場合には、以下の該当バージョンに戻すことで、過去バージョンファイルを得ることができる。
R2023a: v7.0
R2022b: v6.0
R2022a: v5.0
R2021b: v4.0.2
R2021a: v3.3.1
R2020b: v2.2
R2020a: v1.1.1
引用
Toshinobu Shintai (2023). モデル予測制御 設計実装ワークフロー紹介, MPC Implementation Example (https://github.com/mathworks/mpc_implementation_example/releases/tag/v8.0.1), GitHub. 取得済み .
MATLAB リリースの互換性
プラットフォームの互換性
Windows macOS Linuxタグ
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!