モデル予測制御の数理 +制約の考慮

皆様こんにちは.18のhiraです.
モデル予測制御(MPC)はシステムの数理モデルを持っておき,ある入力 \bf{u} をシステムに与えた時の出力 \bf{y} を予測し,その予測結果が目標とする理想の出力軌道である「参照軌道」に近づくよう入力を最適化する制御です.この時安全上・物理特性などに関する制約を設けることができます.
この手法の数理的基礎と制約がどうからむかを備忘録として書いておきます.
以下の数式はこちらの書籍を参考にしました.
また一部数式がブログの他の文字とかぶって見えにくくなっていますのでご了承ください.

“モデル予測制御の数理 +制約の考慮” の続きを読む

MATLABの非線形モデル予測制御で車の簡単自動運転チュートリアル【100行でOK!】

皆様こんにちは.18のhiraです.

自動車やドローン,ロケットや工場プラントなど様々な分野での応用が期待され,MATLABでも専用パッケージが提供されているのがモデル予測制御(MPC)です.従来は線形モデルが中心でしたが,最近開発が進む非線形のモデルを用いることでより多くのシステムに適用することができます.

今回はそんな非線形MPCを用いて,カッコよく自動車の経路追従をしてみます.

(動画)

この例のMATLABコードはこちらのgithubをご覧ください.
またMATLABによる(線形)モデル予測制御の作成とチューニング,シミュレーション,Cコード化の最初の一歩となるようなチュートリアルは,ぜひ過去の記事をご覧ください.

“MATLABの非線形モデル予測制御で車の簡単自動運転チュートリアル【100行でOK!】” の続きを読む

MATLABで自作ロボットのモデル予測制御 & Cコード生成/ビルドチュートリアル

皆様こんにちは.18のhiraです.

近年,自動運転やロケットやドローン,戦闘機でも「モデル予測制御(MPC)」なる制御方法が注目されているようです.
なんでもこのMPCを使うと運動モデルさえあれば誰でも簡単に(注 “誰でも”等の範囲は要検討)複雑なロボットを好きな軌道で動かすことができるようです!

この魅力的なMPCは,なんとMATLABの「Model Predictive Control Toolbox」を使うことでほぼGUI上で手軽に作ることができます.しかも作ったコードはC/C++に変換でき,それをビルドすればRaspberry Piといったマイコン上で動かすこともできます.

今回は簡単なバネ台車モデルを使い,MATLAB上でのMPCモデル及び運動軌道の作成,さらにC/C++のコードの生成とビルド方法を紹介します.

ヘンタイ技術のカタマリSpaceXの着陸ロケットもMPCで動くとか.イーロン・マスクも目じゃねえぜ!

“MATLABで自作ロボットのモデル予測制御 & Cコード生成/ビルドチュートリアル” の続きを読む