MPC(模型預測控制,Model Predictive Control)

定義

模型預測控制(Model Predictive Control, MPC)在每個控制週期做三件事:

  1. 用系統模型預測未來 NN 步的狀態。
  2. 求解一個最佳化問題,找出讓代價最小、又滿足所有約束的控制序列。
  3. 只執行序列中的第一步,下一個週期再重新量測、重新求解(滾動時域,receding horizon)。

數學表示

min⁡u0,…,uN−1∑k=0N−1(∥xk−xkref∥Q2+∥uk∥R2)+∥xN−xNref∥P2\min_{u_0,\dots,u_{N-1}} \sum_{k=0}^{N-1} \left( \|x_k - x_k^{ref}\|_Q^2 + \|u_k\|_R^2 \right) + \|x_N - x_N^{ref}\|_P^2 s.t.xk+1=f(xk,uk),xk∈X,uk∈U\text{s.t.}\quad x_{k+1} = f(x_k, u_k),\quad x_k \in \mathcal{X},\quad u_k \in \mathcal{U}

QQ、RR 權衡「追蹤準不準」與「控制力道大不大」,X\mathcal{X}、U\mathcal{U} 是狀態與輸入的約束。

使用情境

  • 足式機器人:MIT Cheetah 以凸優化 MPC 規劃每隻腳的地面反作用力。
  • 自駕車與移動機器人:追蹤路徑的同時遵守速度與轉向限制,或結合 CBF 做安全避障。
  • 機械手臂:考慮關節限制與碰撞的軌跡追蹤。

常見限制

  • 計算量大:必須在控制週期內解完最佳化,對嵌入式平台是挑戰。
  • 依賴模型:模型越不準,預測越偏,常與學習方法或自適應控制結合。

延伸閱讀

常見問題

faq_01.log
MPC 和 PID 差在哪?
PID 只根據目前誤差反應;MPC 會用模型預測未來 N 步,並在最佳化中直接納入速度、加速度、力矩、避障等約束。代價是需要系統模型,計算量也大得多。
faq_02.log
NMPC 是什麼?
非線性模型預測控制(Nonlinear MPC),直接使用非線性動態模型做預測與最佳化,比線性 MPC 更準確但求解更困難。機器人推車回收、非完整約束移動機器人的控制常使用 NMPC。

相關文章

相關術語