Skip to content

youkoutaku/MPC-MATLAB-Examples

Repository files navigation

モデル予測制御(MPC)実装集

MATLAB License

English README | 日本語ドキュメント

MATLABによるモデル予測制御(Model Predictive Control, MPC)の実装例集です。二重積分系を対象とした軌道追従制御、制約付きMPC、LQRとの性能比較などの実装を提供します。

目次


概要

本リポジトリは、モデル予測制御(MPC)の理論と実装を学ぶための教育用MATLABコードです。二重積分系(位置・速度系)を対象システムとし、軌道追従制御、制約付きMPC、MATLABツールボックスとの比較、LQRとの性能比較など、多角的な検証を行っています。

主な特徴

  • 手動QP実装 - 二次計画法(QP)による完全な手動MPC実装
  • 制約対応 - 入力、状態、変化率制約を考慮した制約付きMPC
  • ツールボックス検証 - MATLAB MPC Toolboxとの比較検証
  • 性能比較 - MPC vs LQRの定量的性能評価
  • 動的軌道追従 - 正弦波参照軌道による時変追従制御
  • 詳細ドキュメント - 理論背景と実装の完全な日本語解説

動作環境

必須要件

  • MATLAB R2020b 以降
  • Optimization Toolboxquadprog 関数使用)

オプション

  • Control System Toolbox(システム解析・LQR比較用)
  • MPC ToolboxMPC_Toolbox.m 実行時のみ)

インストール

# リポジトリのクローン
git clone https://github.com/youkoutaku/MPC-MATLAB-Examples.git
cd MPC-MATLAB-Examples

MATLABを起動し、プロジェクトフォルダに移動してください:

cd('path/to/MPC-MATLAB-Examples')

すべての関数をPATHに追加してください:

addpath('lib')
addpath('test')

クイックスタート

最も簡単な例:軌道追従MPC

% プロジェクトフォルダで実行
addpath('lib')  % 補助関数をパスに追加
run('MPC_trajectory_main.m')

実行結果: 正弦波参照軌道を追従する位置・速度プロットが表示されます。

制約付きMPC(推奨)

% 制約付きMPCの実行
addpath('lib')  % 初回のみ
run('MPC_con_main.m')

% 制約充足性の検証
run('test/Check_Constraints.m')

実行結果: 入力・速度・位置制約を考慮した制御結果と制約活性化率が表示されます。

MPC vs LQR 比較

run('MPCvsLQR_QP_main.m')

実行結果: 両手法の軌道追従性能が並列比較されます。


参考文献

  • ドキュメント
  • Wang, L. (2009). Model Predictive Control System Design and Implementation Using MATLAB. Springer.
  • Camacho, E. F., & Bordons, C. (2007). Model Predictive Control. Springer.
  • 大塚 敏之, 非線形最適制御入門,コロナ社, 2011.
  • 王天威. 控制之美(卷2). 清华大学出版社,2023.

報告・質問

  • Issue: GitHub Issues
  • Email: 質問や改善提案をお気軽にお送りください

ライセンス

このプロジェクトはMITライセンスの下で公開されています。詳細はLICENSEファイルをご覧ください。


著者

Youkoutaku


⭐ このリポジトリが役に立ったら、スターをお願いします! ⭐

最終更新日:2025年12月15日

About

モデル予測制御のMATLAB実装例 (MATLAB implementations of Model Predictive Control (MPC))

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages