はじめまして、sacomyと申します。
日々、制御工学を勉強しているのですが、Outputできる機会が欲しいと思い、これから記事を投稿していくつもりです。
正直あまり有用な記事はかけないかと思いますが、自分のメモ代わりがてらと言った感じにしようかと思います。
さて、表題の通りモデル予測制御のお気持ちということで、具体的にモデル予測制御の数式や処理に関してはさておき、どんなものなのか、なぜこんな制御則を取る必要があるのかを書いていきたいと思います。
モデル予測制御とは
システムの動的なモデルを用いて、未来の状態や出力を予測して、その予測される動きができるだけ希望に沿うように入力を決めるというもの。
モデルを使って未来を予測して制御する。
システムのモデルを予測して制御するものではない→適応制御
なぜモデル予測制御をする必要があるのか
前項の説明の通り、未来の出力を予測して入力を決定するため、通常のPID制御などに比べて目標値の大きな変化などに影響を受けにくい。
例えば、
車輪移動体を考えた時に急旋回時に偏差が小さいままで走行が可能になる、
時間遅れがあるシステムについても目標値への追従の際のオーバーシュートを防ぐことができる。
などの利点があげられる。
もうちょっと詳しく
離散時間システムを考える。
現時刻からある区間Mステップ(制御ホライズン)に渡って入力を変化させていくとき、
Pステップ先に渡る区間(予測ホライズン)で出力や状態がどのように変化するかをシステムの動的モデルを使って予測する。
その予測ができるだけ目標値に近くなるようにMステップに渡る入力をシステムに課せられた制約の元で最適化を行い求める。
求まったMステップに渡る入力の中で次ステップの入力のみをシステムへの入力として、次ステップの処理へと移る(この繰り返し)。
この際必要となってくるのが、
- 出力の挙動の計算のためのモデルの構築
- 外乱やモデル化誤差を考慮した出力の予測
- 入力の決定
出力の予測の際には現在の時刻における実際の出力とモデルによる理想的な出力の差を取ってnステップ後のモデル化誤差として使用する方法などがある。
入力の決定の際には以下のような評価関数を用いて最適化を行う。
$ J=(y_r-y_p)^T\Lambda(y_r-y_p) + u^T\Phi u$
($\Lambda, \Phi$:重み係数を対角成分に配置した対角行列)
あとがき
モデル予測制御のお気持ちについて軽くまとめてみました。
初投稿ということもあり、あまり内容のない記事になってしまいましたが、参考となれば幸いです。
ご質問、ご指摘等あればコメントお願いします。