Model Predictive Control
- 又稱: MPC, receding horizon control, model-based predictive control
- 類別: Control › Feedback control
- 標籤: control, optimization, legged-locomotion, trajectory-optimization, real-time-control, constraints
一種以最佳化為基礎的控制策略,利用系統的動態模型預測有限時域內的未來行為,並即時計算最佳控制動作。
定義
模型預測控制(MPC)是一種進階控制策略,利用系統的數學模型預測其未來行為,並在有限的時間範圍內最佳化控制動作。在每個控制週期,MPC 都會求解一個有約束的最佳化問題:給定系統的當前狀態,找出一串控制輸入,使成本函數(例如追蹤誤差或能源消耗)最小,同時滿足狀態、輸入與輸出的約束。最佳序列中只有第一個控制動作會被執行,接著在下一個時間步以更新後的狀態量測重複整個過程,這種技術稱為滾動時域控制。
MPC 相較於 PID 等傳統控制器的主要優勢,在於它能明確處理約束。PID 控制器在誤差發生之後才做出反應,無法預見未來會違反約束。相反地,MPC 會向前看,主動調整動作以保持在物理極限之內,例如關節扭矩極限、速度上下限、障礙物邊界或穩定裕度。這種預測能力讓它對動力學複雜、操作約束嚴格的系統特別有效。
MPC 的表述方式依所用的系統模型而不同。線性 MPC 使用線性模型,可以有效率地以二次規劃求解,適合以千赫茲頻率進行即時控制。非線性 MPC(NMPC)使用非線性模型以取得更高的精度,但需要更多運算量,依問題規模通常以 10-100 Hz 執行。最佳化演算法與運算硬體的近期進展,讓 NMPC 能用於越來越複雜的機器人系統。
在機器人學中,MPC 已成為足式行走運動的主流控制方法。四足機器人與人形機器人使用 MPC 規劃落腳序列、保持平衡並適應不平的地形,同時遵守防止打滑的摩擦錐約束。Boston Dynamics 的機器人、MIT Mini Cheetah 與 Unitree 的四足機器人,其行走運動控制器都仰賴各種 MPC 變體。這種方法對自駕車、無人機飛行與工業機器手臂控制同樣有價值。
MPC 的主要挑戰是運算成本。在每個控制週期求解一個最佳化問題需要可觀的運算能力,而且求解時間必須短於控制週期。這在過去讓 MPC 只能用於化工廠等緩慢的過程,但 OSQP、ACADOS 與 CasADi 等現代求解器,已讓即時 MPC 以數百赫茲的控制頻率進入機器人應用。
為何重要
模型預測控制(MPC)銜接了離線軌跡規劃與即時反應式控制之間的落差。正是因為它,現代足式機器人能走過崎嶇地形,無人機能在狹窄空間中導航,自駕車能在遵守速限的同時沿著車道行駛,這一切都靠預見未來,而不只是對當下做出反應。
主要應用
- 足式機器人行走運動:四足機器人與人形機器人的平衡控制、步態生成與地形適應
- 自駕車控制:在交通約束下進行車道跟隨、避障與速度調節
- 無人機飛行控制:激烈機動、抑制風擾與多機協調
- 工業機器手臂控制:在扭矩與速度極限下精確追蹤軌跡
- 程序控制:化工廠、HVAC 系統與能源管理,這正是 MPC 的起源
- 太空船姿態控制:在推進器約束下以最省燃料的方式調整朝向
實際應用
四足機器人典型的 MPC 實作流程如下:狀態估計器以 500 Hz 提供目前的機體位置、速度與朝向。MPC 控制器取得這個狀態,加上操作人員給出的期望速度指令,求解簡化的動力學模型(通常是單一剛體模型),找出接下來 0.5-1 秒內每隻腳的最佳地面反作用力。這個最佳化以 30-100 Hz 執行。得到的力軌跡會傳給較低層的全身控制器或關節 PID 迴路,由它們以 500-1000 Hz 執行這些力。
MIT Mini Cheetah 是最知名的研究用四足機器人之一,它採用凸 MPC 表述,能在 3 毫秒內解出一個二次規劃,實現穩健的小跑、跳躍奔跑,甚至後空翻。這證明了 MPC 能走出實驗室,進入動態、高速的機器人行走運動。
常見誤解
- MPC 對即時機器人應用來說太慢:現代求解器讓線性 MPC 達到千赫茲的控制頻率,非線性 MPC 也能達到 100+ Hz
- MPC 會完全取代 PID 控制器:實務上,MPC 常負責產生參考軌跡,再由內迴路的 PID 控制器去追蹤
- MPC 需要完美的模型:MPC 本質上對中等程度的模型誤差具有強健性,因為它在每個時間步都以新的狀態量測重新規劃
- MPC 只適用於化工廠這類緩慢的過程:雖然它起源於此,但如今 MPC 控制著一些最快速的機器人系統,包括無人機與奔跑機器人
誰需要了解
- 從事足式行走運動或移動機器人的機器人工程師
- 設計進階回饋控制器的控制系統工程師
- 實作運動規劃與控制的自駕車開發者
- 需要靈活飛行控制的無人機(UAV)工程師
- 機器人學或控制理論的研究生
相關技術
- 二次規劃
- 凸最佳化
- OSQP
- CasADi
- ACADOS
- 線性代數
- 軌跡最佳化
相關專案
- Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
- GTSAM: Factor-graph optimization library powering many modern SLAM backends
- PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
- MuJoCo MPC: DeepMind's interactive real-time model predictive control framework for MuJoCo
- PyPose: PyTorch library for differentiable robotics with deep learning and Lie group optimization
- NeuPAN: Real-time end-to-end planner that maps raw lidar points directly to robot actions
影片
- Model Predictive Control: Steve Brunton
- Why Use Model Predictive Control? | Understanding MPC, Part 1: MATLAB