MyEnigma

とあるエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

モデル予測制御(Model Predictive Control:MPC)の応用例

Model Predictive Control System Design and Implementation Using MATLAB® (Advances in Industrial Control)

Model Predictive Control System Design and Implementation Using MATLAB® (Advances in Industrial Control)

目次

はじめに

先日、モデル予測制御

(Model Predictive Control:MPC)の技術的概要を紹介しましたが、

myenigma.hatenablog.com

myenigma.hatenablog.com

今回は、自分用のメモとして、

MPCを使った実際の応用例について

まとめておきたいと思います。

 

応用例を見つけ次第、追記していきます。

 

Space Xのロケット自動着陸システム

最近、自動システム系で最もぶったまげたのが、

上記のSpace Xのロケット自動着陸システムです。

ロケットの再利用を目的としたものですが、

あまりにもすごすぎて、映画かなにかかと思いました。

 

ロケットを精密に(10m以下)目標の場所に到達させるのは、

下記の5つの原因から非常に難しいと言われています。

1 空気との摩擦による、熱の影響

2 自重が重いため、多少の加減速でも強い力がかかる

3 強い風などの外乱

4 大気圏突入時の通信の断絶

5 放射能による機器への影響

 

このような状況で、

上記の動画のような神業を実現するためには

どんな制御システムを使っているのかなと思っていました。

色々調べた所、確定ではないですが、

SpaceXのエンジニアによると、

以前紹介したCVXGENを使って、

凸最適をリアルタイムで解きながら、

制御しているようです。

CVXGENに関しては、

こちらを参照して下さい。

myenigma.hatenablog.com

 

戦闘機の制御

f:id:meison_amsl:20170617073729p:plain

 

下記のミネソタ大学の研究では、

F-16戦闘機の制御のために、MPCを使っています。

Receding horizon control of an F-16 aircraft: A comparative study - IEEE Xplore Document

 

戦闘機の進行方向の状態量(高度、ピッチ角、進行速度、進入角、ピッチレート)

を入力 (スラストとフラッグ角)で遷移させるモデルを作成し、

それを元に戦闘機のMPC制御のシミュレーションを実施しています。

 

MPCの制御により、大きな外乱を受けた時でも

安定して目標高度に追従できたようです。

 

また、下記のドローンの編隊飛行と同様、

戦闘機の編隊飛行にも使用されているようです。

f:id:meison_amsl:20171126034515p:plain

 

ドローンの精密制御と編隊飛行

 

MPCはドローンの精密制御にも使われています。

三次元のドローンのモデルから、

精密な位置や姿勢の制御にMPCが利用されているようです。

 

加えて、下記の論文では、

二種類の階層的なMPCコントローラを使うことで、

複数台のドローンの編隊飛行を実現しています。

f:id:meison_amsl:20171126032011p:plain

f:id:meison_amsl:20171126032019p:plain

 

ミニチュアレーシングカーの制御

 

スイスのETHの研究では、

上記の動画のようにミニチュアのレーシングカーの制御を

MPCで実現しています。

Autonomous RC Racing

 

非線形のDynamic Bicycle Modelを元に、

事前に生成されたコースを正確に追従しています。

 

自動運転車両の経路追従システム

f:id:meison_amsl:20170508104040p:plain

 

Google Carの元になった、

Stanford大学の自動運転車両の2011年の最後の論文によると、

この車両の経路追従はMPCを使っているようです。

実際は、各コース点で非線形モデルを線形化した

LQRのようですが。

myenigma.hatenablog.com

 

すべりやすい環境における自動車のステアリング制御システム

上記の動画のように、

非常にすべりやすい環境における

自動車のレーンチェンジ用のステアリング制御システムなどにも、

MPCは使われているようです。

Predictive Active Steering Control for Autonomous Vehicle Systems - IEEE Xplore Document

 

ヒューマノイドの全身運動制御

下記の論文の研究では、

上記の動画のようにヒューマノイドロボットの全身運動の制御を

MPCで実現しています。

 

非線形MPCによるホバークラフトや船舶の自動制御

ship.png (250×175)

hover.png (250×188)

京都大学の大塚先生の研究室では、

非線形MPCを使ったホバークラフトや船舶の自動制御の研究を実施しています。

この手法では非線形モデルを線形化するのでなく、

C/GMRESという非線形最適化手法を使って、

非線形MPCを高速に解いているようです。

詳細は下記の大塚先生の書籍と論文がわかりやすいと思います。

実時間最適化による制御の実応用

実時間最適化による制御の実応用

非線形最適制御入門 (システム制御工学シリーズ)

非線形最適制御入門 (システム制御工学シリーズ)

 

化学プラントの制御

chem_plant--photograph_848w477h.jpg (848×477)

64353-0.jpg (478×390)

 

化学プラントにおける制御システムでは、

MPCが非常に広く使われています。

これは複数の入力と複数の出力を持つプラントでは、

それぞれの要素が互いに影響を与えているため、

1入力1出力しか扱うことができない古典制御では、

性能を出すことができないためのようです。

 

加えて、化学プラントのようなシステムは

時間変化に対して緩慢にシステムが変化するため、

将来を予測した制御が不可欠になることも、

MPCが使われる理由です。

 

一般的なプラントの制御は

下記の図のように、全体の最適制御をMPCが実施し、

各アクチュエータに対する目標値を出力します。

そして、それぞれのアクチュエータの単一制御を、

個別なPIDが実施するようなシステムが一般的なようです。

f:id:meison_amsl:20170824141807p:plain

これはMPCが高周期な制御が難しいため、

MPCは目標値の参照軌道のみを出力し、

それらを精密に制御するのは、高周期に制御可能で、

パラメータチューニングが容易なPIDが適しているからです。

 

より詳しいプラント制御の実例は、

下記の書籍が詳しいです。

実例としてシェル石油蒸留塔とNewellとLeeの蒸発器の

MPC制御に関する説明がされています。

モデル予測制御―制約のもとでの最適制御

モデル予測制御―制約のもとでの最適制御

 

ディーゼルエンジンの制御

f:id:meison_amsl:20170917023116p:plain

 

MPCはディーゼルエンジンの制御にも使用されています。

www.mathworks.com

 

例えば、

ディーゼルエンジンにおける

排出ガス低減と燃費低減のために、

吸気側に戻す排気ガス流量の制御(Exhaust Gas Recirculation: EGR)と

ターボチャージャーの制御(Variable nozzle Geometry Turbocharger : VGT)を

同時に実施するEGR & VGT制御システムが必要です。

しかし、これらは互いに影響し合うシステムであり、

かつ、弁開度や通路面積には物理的な制約条件が存在するため、

制約を満たし、多入力多出力のシステムを扱える、

MPCが利用されるようです。

 

ハイブリッド自動車の制御

131121.image0.jpg (535×313)

ハイブリッドの自動車の制御では、

燃費の改善が大きな目標です。

そこでMPCを使って

燃料消費量を最小化しながら、

エンジン、モーター/ジェネレータ、バッテリーなど

各ユニット間でうまく協調させて制御する手法などが研究されています。

 

参考資料

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

Model Predictive Control System Design and Implementation Using MATLAB® (Advances in Industrial Control)

Model Predictive Control System Design and Implementation Using MATLAB® (Advances in Industrial Control)