モデル予測制御 設計実装ワークフロー紹​介, MPC Implementation Example

버전 8.0.1.0 (8.58 MB) 작성자: Toshinobu Shintai
当サンプルモデルは、モデル予測制御(MPC)の設計と実装のワークフローを分かりやすく紹介するための資料です。 設計後、コード生成を行い、マイクロコントローラに実装するまでの流れを詳しくまとめています。
다운로드 수: 765
업데이트 날짜: 2023/9/14

モデル予測制御 設計実装ワークフロー紹介

目的

当サンプルモデルは、モデル予測制御(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の技術的な資料である。ある程度ツールの使い方を理解した後に読むこと。

2.線形MPC

最初に線形MPCを使った例を紹介する。プラントモデルとして、単純なSISOの不安定システムを用いる。以下のライブエディターを開いて作業を開始すること(以降、同様にライブエディターを開いて確認していく)。

線形MPCコントローラの設計と実装

3.陽的MPC

線形近似されたDCモーターモデルに対して陽的MPCを設計し、実装する。線形MPCと陽的MPCの比較を行う。

陽的MPCコントローラの設計と実装

4.適応MPC

適応MPCの設計と実装について、4輪走行車両の制御を例に紹介する。プラントモデルとしては、等価二輪モデルを用いる。

適応MPCコントローラの設計と実装

5.ゲインスケジュールMPC

適応MPCで用いたプラントモデルと設計手法を転用し、ゲインスケジュールMPCを設計、実装する。

ゲインスケジュールMPCコントローラの設計と実装

6.非線形MPC

非線形MPCの設計と実装について、シンプルな車両モデルの運転制御を例に紹介する。

非線形MPCコントローラの設計と実装

7.適応MPCに内点法ソルバー適用

適応MPCのソルバーとして、内点法を用いた場合の設計と実装について、4輪走行車両の制御を例に紹介する。プラントモデルとしては、等価二輪モデルを用いる。

適応MPCコントローラのQPソルバーの設定について検討

8.マルチステージの非線形MPC

マルチステージの非線形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 (2024). モデル予測制御 設計実装ワークフロー紹介, MPC Implementation Example (https://github.com/mathworks/mpc_implementation_example/releases/tag/v8.0.1), GitHub. 검색됨 .

MATLAB 릴리스 호환 정보
개발 환경: R2023a
R2020a에서 R2023a까지의 릴리스와 호환
플랫폼 호환성
Windows macOS Linux
태그 태그 추가

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

MPC_imple_PJ/Adaptive

MPC_imple_PJ/Explicit

MPC_imple_PJ/InvertedPendulumRobot

MPC_imple_PJ/Linear

MPC_imple_PJ/Multiple

MPC_imple_PJ/Nonlinear

MPC_imple_PJ/common

MPC_imple_PJ/obstacleAvoid

버전 게시됨 릴리스 정보
8.0.1.0

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v8.0.1

8.0.0.0

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v8.0

7.0.0.0

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v7.0

6.0

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v6.0

5.0

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v5.0

4.0.2

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v4.0.2

4.0.1

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v4.0.1

4.0

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v4.0

3.3.1

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v3.3.1

3.3

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v3.3

3.2.3

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v3.2.3

3.2.2

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v3.2.2

3.2.1

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v3.2.1

3.2

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v3.2

3.1.1

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v3.1.1

3.1

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v3.1

3.0.1

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v3.0.1

3.0

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v3.0

2.2

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v2.2

2.1

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v2.1

2.0

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v2.0

1.1.1

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v1.1.1

1.1

See release notes for this release on GitHub: https://github.com/mathworks/mpc_implementation_example/releases/tag/v1.1

1.0

이 GitHub 애드온의 문제를 보거나 보고하려면 GitHub 리포지토리로 가십시오.
이 GitHub 애드온의 문제를 보거나 보고하려면 GitHub 리포지토리로 가십시오.