Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Model Predictive Control (MPC)

モデル予測制御(MPC)は、モデルを使って短い行動系列を計画し、最初の行動だけを実行して、各ステップで再計画します。構成要素、用途、コードを解説します。

モデル予測制御(MPC)は、システムモデルを使って短い将来の期間にわたる挙動を予測し、制約を守りながら目標を最もよく達成する行動列を選び、最初の行動だけを実行する制御手法です。その後、新たな計測値を使って次の時点から一連の処理を繰り返します。この計画、実行、再計画のサイクルは後退ホライズン制御と呼ばれ、現在の誤差に反応するだけでなく、今後起きることを予測できます。MPCは1970年代後半の石油精製や化学処理の分野で発展し、ShellのDynamic Matrix Controlは初期の産業用実装の一つでした。現在はロボット、自動運転車、建物の空調システムなどを制御しています。

MPCコントローラーの構成要素#

すべてのMPCコントローラーは、次の4つの要素を組み合わせます。

  • ダイナミクスモデル: 現在の状態と行動から次の状態を予測します。たとえば、特定の操舵角に対する車の位置や向きの変化を予測します。物理方程式、記録データを使ったシステム同定、記録済みの軌跡で学習したニューラルネットワークから作成できます。
  • コスト関数: 予測した軌道を評価します。通常は、目標からの距離、エネルギー消費量、制御の急激な変化にペナルティを与えます。
  • 制約: 最大モータートルク、速度制限、障害物周辺の進入禁止区域など、すべての計画が満たす必要のある制限です。制約を明示的に扱える点が、古典的なPID制御に対するMPCの主な利点です。PID制御は誤差が現れてから反応し、制限を先読みできません。
  • オプティマイザー: 制御ステップごとに、ホライズン内で最適な行動列を探索します。

モデルによって最適化の難易度が決まります。二次コストを持つ線形モデルは二次計画問題となり、専用ソルバーで数ミリ秒以内に解けます。一方、非線形モデルには非線形MPCソルバーが必要で、通常は状態推定用の拡張カルマンフィルターやサンプリングベースの探索と組み合わせます。制御ステップごとにオプティマイザーは、候補計画の予測と改善を内側のループで行います。コントローラーは外側のループで1つの行動を実行し、新たに計測した状態から処理を再開します。

ホライズンの長さは、調整の中心となる選択項目です。ホライズンを長くすると、車両は急カーブの手前で早めにブレーキをかけられます。しかし、ステップを増やすたびに計算量が増え、モデルの予測誤差が累積します。また、最適化全体を1つの制御周期内に完了させなければなりません。

コードで見る後退ホライズン#

以下のスニペットでは、位置5まで移動して停止する台車を制御します。加速度はプラスまたはマイナス1に制限されています。各ステップで、ランダムな加速度計画を500個サンプリングし、台車のダイナミクスを使って各計画の軌道を予測し、最もコストの低い計画の最初の行動を実行してから、新しい状態に基づいて再計画します。

import numpy as np

rng = np.random.default_rng(0)
position, velocity, target = 0.0, 0.0, 5.0
dt, horizon = 0.1, 30

for _ in range(100):
    # Sample 500 candidate plans of accelerations within the actuator limit of +/-1
    plans = rng.uniform(-1, 1, size=(500, horizon))
    # Predict every plan's trajectory with the cart's dynamics model
    v = velocity + dt * plans.cumsum(axis=1)
    p = position + dt * v.cumsum(axis=1)
    # Cost: distance from the target at each step plus speed at the end of the horizon
    cost = ((p - target) ** 2).sum(axis=1) + 10 * v[:, -1] ** 2
    # Apply only the first action of the cheapest plan, then replan from the new state
    velocity += dt * plans[cost.argmin(), 0]
    position += dt * velocity

print(f"position: {position:.2f}, velocity: {velocity:.2f}")

10秒間シミュレーションした後、カートは位置5.04、速度0.04で停止します。ランダムに選んだ計画は単独ではどれも適切ではありませんが、1ステップを実行して計測状態から再計画することで、誤差を継続的に補正できます。この手法はランダムシューティングと呼ばれ、サンプリングベースMPCの最も単純な手法です。同じファミリーには、クロスエントロピー法やモデル予測経路積分(MPPI)制御も含まれます。Georgia Techの研究者はMPPIを使い、通常サイズの5分の1のラリーカーでダートトラックを走行しました。

プラント、ロボット、自動車、建物におけるMPC#

  • プロセス産業: 製油所、化学プラント、発電所では、スループットを最大化する制限値に近い状態で温度、圧力、製品品質を維持するためにMPCを使用しています。この分野でMPCは発展しました。
  • 脚式ロボット: MITのCheetah 3は、地面反力を1秒間に何度も再計算する凸MPCを使って走行し、バランスを保ちました。その後MITは、このコントローラーをMini Cheetah向けのオープンソースソフトウェアとして公開しました。
  • 運転: 自動運転車の経路追従コントローラーは、MPCを使って操舵、加速、快適性の制約を守りながら、計画された軌道を滑らかに追従します。
  • 建物: 空調コントローラーは、天候と在室状況の予測から数時間先の室温を予測し、エネルギーが最も安い時間帯に予冷または予熱します。
  • PID制御: PIDコントローラーは、現在の誤差、その積分値、変化率から出力を計算します。シンプルで低コストですが、未来のモデルがなく、制約も扱えません。
  • 線形二次レギュレーター(LQR): LQRは、二次コストを持つ線形システムに対し、無限ホライズンで最適なフィードバック則を閉形式で求めます。MPCは有限ホライズンの問題をオンラインで解くため、制約を適用し、非線形モデルを扱えます。
  • 強化学習: 強化学習(RL)は、デプロイ前に経験からポリシーを学習します。デプロイ後の行動選択は、1回の高速な順伝播で行えます。一方、MPCは明示的なモデルを使い、オンラインで新たな最適化を解きます。

両者は次第に融合しています。モデルベースの深層強化学習は世界モデルを学習し、MPCでその中を計画します。TD-MPC2などの手法は、学習済みの潜在空間で計画し、短いホライズンの終端より先に起きることを学習済み価値関数で評価します。学習済みダイナミクスモデルは予測モデリングの一種であり、ホライズンにわたる予測精度によって、コントローラーが有効に計画できる先の長さが決まります。

MPCのための知覚#

MPCコントローラーの計画精度は知覚性能に左右されます。人々の間を移動するロボットのようなフィジカルAIシステムでは、状態に人々の位置と進行方向を含める必要があります。Ultralytics YOLO26をトラッキングモードで実行するカメラは、各フレームの人物ごとにバウンディングボックスと永続的なトラックIDを出力します。深度推定またはカメラキャリブレーションとカルマンフィルターを組み合わせると、これらのトラックから障害物の位置と速度を得られます。コントローラーの制約は、障害物との衝突を避けるように設定されます。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう