2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

モデル予測制御の基礎と応用 - 逐次解法に基づく実践的制御手法 -

Posted at

[この記事は制御工学ブログで2024年2月16日に公開されたものを少し修正したものです。]

モデル予測制御(MPC)について

この記事ではモデル予測制御(Model Predictive Control, MPC)についてまとめます。モデル予測制御について説明した動画や関連記事リンクは最下部に置いています。モデル予測制御は,様々な制御問題に利用可能でかつ合理的な入力を生成することができる汎用的な制御手法です。MPCの応用領域やアルゴリズム,利用時に注意すべき点などについて述べた記事になります。本記事は概要を理解するための入門的な内容であり,数式はありませんので,実装する場合は関連書籍や文献を参考にして頂ければと思います。

モデル予測制御とは

MPCと応用領域

モデル予測制御(英語:Model Predictive Control,MPC) の日本語訳であり,Receding Horizon制御とも呼びます。制御工学分野の様々な適用範囲で利用されており近年は自動運転などで注目されています。モデル予測制御は、有限時間区間での最適化問題を逐次的に解く手法です。

20240115085504.jpg

制御対象としては様々なものが挙げられ、ドローン・ロケットや自動車の自動運転(ADAS含む),ディーゼルエンジン,移動ロボット,化学プラント(プロセス制御系)など多岐に渡る対象に利用可能です。

モデル予測制御における最適化問題

まず最適化問題について説明します。最適化問題とは与えられた条件を満たす解のうち,ある関数の値を最小もしくは最大にするものを求めることであり,目的関数・評価関数を良くしたい評価尺度のこととし,制約条件を解が満たすべき条件とすると,それらを満足する最適な解を求める問題になります。解きたい工学の問題を最適化問題に変換して取り扱います。

具体的に自動運転の最適化問題について説明します。まず,評価関数は移動時間やジャーク(加加速度)の大きさ,ガソリンの総量などがあり,制約条件としては自動車の運動方程式(ダイナミクスの制約)やハンドル角,アクセル・ブレーキに関する入力限界に関する制約,道幅の走行内で走行するという状態量に関する不等式制約などが挙げられます。

これらの条件を満たしかつ評価関数を最適化するようなハンドル角及び加速・減速の仕方(時々刻々とどのような値をとるか)を求めるのが最適化問題になります。

そして自動運転の最適化問題はほぼ無限の区間(道のり)での自動運転を行うことを前提としますので時間区間が無限大の最適化問題になります。

では,そのような問題が解けるかと言いますと制約条件や制御対象の同特性また評価指標に関しても視線傾向や様々な複雑な設定が絡みますので問題が解けるとは限りません

20240115090008.jpg

モデル予測制御のアルゴリズム

これに対して有限区間の最適化を扱うモデル予測制御では次のアルゴリズムに従って問題を解くことになります。まず,評価関数がこのように区間構と集コストを持つような形でまた制御対象及び制約条件が与えられているものとします。

これらの制約のもで最適化問題を解きますまず最初に有限区間での最適化問題を解き評価関数を最適化する入力Uを求めますそしてUの最初のステップの入力のみを制御対象に印加(入力)します。そして評価区間を1ステップ分のみ後退させます。

この時評価区間は現在時刻からある先の時刻tまでの区間を考えますがそれが時間の経過と共にその区間が移動していくことになります。最初に記載したReceding Horizon制御の「リシーディングホライズン」というワードはその評価区間が後退していくという部分を表している表現になります。

20240115090048.jpg

そしてこれを自動車の自動運転の問題に置き直した場合制約1.から3.を満たしかつ評価関数を最小化する入力δ及びUを求めよという問題になりますが,ここでの最適化の評価区間は有限の区間となります。

すなわち有限の評価区間(予測ホライズン)での最適化を行えばよいとということになります。ここまででモデル予測制御の特徴を説明しておきますと,区間が有限の問題を解きますので無限感の最適化と比べて解きやすいということが挙げられ,また最適化を逐次的に行っているので全体区間における解軌道も良くなると考えられます。これらを踏まえて利点としては

  • 制約条件を陽に扱える
  • 環境適用性が高い
  • 非線形の制御対象が扱える
  • 基本的な考え方が理解しやすい

ことなどが挙げられます。区間の最適化問題については様々な考え方ややり方が挙げられます。線形計画問題で扱う問題やメタヒューリスティクスなどが考えられます。各種最適化のソルバについては後述します。なお,問題設定が連続時間系で,モデルが伝達関数や微分方程式,連続の状態方程式で与えられる場合にも,多くのケースにおいて離散化モデルへの近似がどこかのタイミングで入ってくることになります。

有限の評価区間の最適化問題がどういうタイプの最適化問題に帰着するかは、問題のクラスや制約条件などに依存します。離散時間状態方程式に線形制約を含むようなケースでは、二次計画問題の枠組みで解くことができます。

数理計画法のソルバ

数理計画法のソルバとして、線形計画法ではGrobi (LP,QP,MIQPなど), Cplex, Matlab Optimizaition Toolbox,Nuoptなどを使用します。

非線形計画法のソルバ

非線形計画法のソルバとしてはfmincon, IPOPTなどが挙げられます。

そのほか:マルチパラメトリック計画問題(区分的アフィンなコントローラ設計)、

停留条件を含む形で定式化し、オイラーラグランジュ方程式により問題を定式化して、勾配法、シューティング法で解きます。

さらに制御工学特有の手法として京大の大塚先生による連続変形法を用いた高速手法(C/GMRES)などが提案されています。MATLABのMPC Toolboxでも使用可能です。

20240115090128.jpg

実装上の注意点

最後にモデル予測制御を実装する上での注意点について述べて終わりたいと思います。まず、逐次的に最適化問題を解く必要がありますので1ステップの間で最適化問題を解き終わらなければならないというような問題があります。すなわちPID制御などと比べて計算コストのかかる制御手法とということになります。

また,制御対象の時定数と比べて十分に長い評価区間を設定しなければ最適化してもあまり意味がないということになります。時定数の短い制御対象であると評価区間を適当に設定してもある程度そのモデル予測制御の効果が出てきますが,時定数が長い制御対象に対しては評価区間をより長く設定することが肝要です。

他方、上記に示しているように、1ステップで問題を解けるようなスケーリングのために、離散化のサンプリング時間選定も重要な要素になり得ます。

モデル予測制御においては終端時刻の状態評価のための重みを設定しますが,その終端重みにおける評価関数の選定には十分な注意を払う必要があります。個別の評価区間で最適解が得られたとしても全体の応答が悪くなるようなケースが生じ得ます。さらにはその重みの設定がうまく設定されていないと不安定化するような恐れがあります。例えば,制御対象に不安定零点を含むような場合はMPCの運用に注意すべきです。

評価関数内の重みの設定にも様々なノウハウがあります。逆最適性などに関する文献を調査することが重み職人へのアプローチの一つです。

20240115090213.jpg

カルマンフィルタ・モデル誤差抑制補償器とMPCの併用

モデル予測制御は有効な制御手法である一方,欠点も存在しますので,それを補うためのテクニックは色々と必要になります。

モデル予測制御では,制御対象の状態量に基づいて制御入力が決定されるため,状態量を全て観測する必要があります(そのようなケースが多いです。)。そのため,わからない状態量についてはカルマンフィルタオブザーバによって推定する必要があります。

また,モデルに準拠した形で入力決定することから,モデル誤差や外乱の影響については別途考慮する必要があります。例えば,モデル予測制御とモデル誤差抑制補償器を併用することによって,制御系のロバスト性はモデル誤差抑制補償器で対応できるため,ノミナルなモデルが正しいと思ってモデル予測制御を設計することが可能です。外乱補償という点で外乱オブザーバも同様の使われ方になります。

【モデル誤差抑制補償器】によって制御システムのロバスト性を向上させる - 制御工学研究者のブログ

説明動画(モデル予測制御)

以下はモデル予測制御について説明している動画になります。

モデル予測制御

モデル予測制御の関連記事・文献

関連記事はこちらです。以下はMathworksの記事になります。MathworksはMATLABを提供しており制御アルゴリズムにおいて強みがあります。

モデル予測制御 - MATLAB & Simulink (mathworks.com)

以下はQiitaの記事で,MPCを用いて軌道追従制御シミュレーションを行っているものです。

モデル予測制御(MPC)による軌道追従制御 #MATLAB - Qiita

以下はモデル予測制御を用いて倒立振子(制御工学の実験でよく利用される対象)を安定化する記事です。

モデル予測制御による倒立振子 #Python - Qiita

Proxima Technology社のHP内のSmart MPCの記事はこちらです。多彩なシミュレーション動画などがアップされています。

株式会社プロキシマテクノロジー Proxima Technology Inc. (proxima-ai-tech.com)

Excelで制御工学

モデル予測制御(MPC) step1-EXCELで制御工学! (pekopoko4control.blogspot.com)

制御工学チャンネル内の以下のページでもMPCについてまとめています。

制御工学チャンネル:500本以上の制御動画ポータルサイト - Nonlinear-Control-02 (control-theory.com)

モデル予測制御に関する解説記事(文献)はこちらです。

以上がモデル予測制御に関する関連記事になります。

モデル予測制御に関する書籍

大塚先生の実時間最適化に関する書籍です。非線形モデル予測制御についての説明を中心とした内容です。

システム制御工学シリーズ 18 非線形最適制御入門 | コロナ社 (coronasha.co.jp)

実時間最適化による制御の実応用 | コロナ社 (coronasha.co.jp)

足立先生,管野先生によるモデル予測制御の書籍です。

モデル予測制御 - 東京電機大学出版局 科学技術と教育を出版からサポートする (tdupress.jp)

南先生のPythonを用いた制御に関する書籍です。モデル予測制御についても書籍内で触れています。

Pythonによる制御工学入門(改訂2版) | Ohmsha

Proxima Technologyの深津さんらによる書籍:

『PythonとCasADiで学ぶモデル予測制御』(深津 卓弥,菱沼 徹,荒牧 大輔)|講談社BOOK倶楽部 (kodansha.co.jp)

以上のように、モデル予測制御について、その概要や特徴、メカニズムについて述べました。本記事は以上です。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?