モデル予測制御
モデル予測制御は、予測モデルを用いて将来の応答を見通し、各サンプリング時刻で最適化問題を解いて最初の操作量のみを適用し、次時刻に再計算する「リシーディングホライゾン(移動予測)」の戦略である。明示的な入出力制約を自然に扱えること、多入出力系を一括で最適化できること、プロセス変動や外乱に対して実務的な調整自由度を持つことが特徴である。産業界では化学プラントから自動車、ロボティクス、エネルギーまで幅広く実装され、制御工学と最適化技術の接点として重要な位置を占める。
基本概念と特徴
モデル予測制御(MPC)は、予測区間内の目標追従と操作量の滑らかさを重み付きに評価し、制約条件下で最適な操作系列を求める。最適化の結果得られる操作系列のうち、現在時刻の先頭成分のみを適用し、次サイクルで再度最適化するため、モデル誤差や目標変更に逐次適応できる。線形系では凸二次計画(QP)として解ける場合が多く、非線形系ではNMPCとして逐次二次計画(SQP)や内点法が用いられる。
数学的定式化(コスト関数と制約)
代表的な定式化では、予測ホライゾンをH、制御ホライゾンをMとし、評価関数は出力誤差と操作量変化に対する二次型コストで与える。すなわち、J=∑ ||y\_k−r\_k||Q2+∑ ||Δu\_k||R2とし、入力上下限、出力上下限、操作変化率、終端集合などの制約を課す。線形時不変(LTI)の状態空間モデルを用いれば、Jは凸で、実装は安定かつ計算効率に優れる。
端点拘束とソフト制約
終端コストにはLQRに由来するリカッチ方程式解Pを用いることが多く、終端状態を不変集合に拘束することで安定性余裕を確保できる。また、制約違反を避けられない場合に備え、スラック変数で制約を「ソフト化」し、違反量に罰則を与える設計が実務的である。
動作原理(リシーディングホライゾン)
- 予測:モデルで将来の出力軌跡を計算し、目標との差を見積もる。
- 最適化:制約付きで評価関数を最小化する(線形系→QP、非線形系→NMPC)。
- 適用:得られた操作系列の先頭入力のみを実機に印加する。
- 更新:新たな測定に基づき状態を推定し、次時刻で再最適化する。
モデルの選択と同定
モデルは状態空間表現、ARX/ARMAX、サブスペース同定などから選ぶ。線形近似で十分ならLTIモデルが扱いやすく、強い非線形性や制約相互作用が支配的ならNMPCを検討する。オフセットを抑えるには、積分器の付与や定常外乱モデルの導入が有効である。
予測器・オブザーバ
状態が全観測できない場合はカルマンフィルタ(KF)や拡張KF、移動地平推定(MHE)で状態推定を行う。推定とMPCを組み合わせることで、ノイズ下でも安定した追従と制約遵守が実現できる。
設計手順
- 要件定義:追従性能、許容オーバーシュート、制約(安全・品質)を整理する。
- モデル整備:サンプリング時間、離散化、同定・検証を実施する。
- ホライゾン設定:予測Hと制御Mを決め、応答遅れを十分に覆う。
- 重み設計:出力誤差重みQ、操作変化重みR、終端重みPを調整する。
- 制約設計:入力・出力・Δuの上下限、終端集合、ソフト制約の罰則を設定する。
- 検証:シミュレーションと実機試験で性能・実時間性を確認する。
調整パラメータの考え方
モデル予測制御のチューニングでは、Hを長くすれば先見性が増すが計算量が増える。Mは小さくても多くの場合十分で、過度に大きいと過整形を招きやすい。重みQを上げれば追従優先、Rを上げれば操作の滑らかさ優先となる。終端重み・終端集合は安定性の鍵であり、線形近傍ではLQRに整合させると設計が容易である。
ロバスト性と安定性
モデル不確かさに対しては、チューブMPCや制約タイト化で最悪外乱を吸収する設計がある。オフセットフリー化には、擾乱状態を拡張状態として推定する方法が実用的である。終端条件と適切な重みにより、原点近傍での漸近安定を理論的に保証できる。
計算資源とリアルタイム化
実時間性確保には、ウォームスタート、事前因子化、コード生成、明示的MPC(オフラインで領域分割してアフィン制御則をテーブル化)などが有効である。組込みでは固定小数点や飽和処理、例外時の安全動作(フェールソフト)を準備する。
応用分野
プロセス産業では品質・エネルギー制約を満たしつつスループットを最大化する運用MPCが定着している。自動車分野では車間維持や経路追従、熱マネジメントに用いられ、ロボティクスでは多関節の協調制御や歩容生成に適する。電力・HVACでは需要変動と設備制約を両立させる。経済MPCではコストや利益を直接目的に置き、運転最適化と制御を統合する。
実装上の注意
スケーリングと正則化で数値特性を改善し、非一様サンプリングや通信遅延にはタイムスタンプと予測補間で対処する。制約可行性が失われそうな場合はソフト制約やバックアップ制御則を用意する。安全関連では、監視ロジックと境界チェックを独立層に置き、最適化の失敗時にも系が安全側に倒れる設計とすることが望ましい。
コメント(β版)