5.3 顯式 MPC 與即時優化求解器#
5.3.1 前因:理論已備,速度成為瓶頸#
5.2 節確立了帶終端約束的線性 MPC 可化為標準 QP,並有嚴格的穩定性保證。但工程落地面臨算力經濟學的考驗:對採樣週期為毫秒級的系統(伺服馬達、汽車動力學、電力電子),在硬體上每步求解一個含數百個約束的 QP,在 2010 年以前幾乎不可行。問題於是分裂為兩條路線:
- 離線路線:把 QP 的解「預先」算好,線上只需查表——顯式 MPC(Explicit MPC)。
- 線上路線:設計專為嵌入式硬體優化的求解器,使 QP 求解本身快到毫秒級——即時 QP 求解器。
兩條路線共同背後的驅動力是嵌入式計算平台的普及:微控制器算力增長使「控制器 = 求解器」的架構能離開機房、進入即時迴路。
5.3.2 顯式 MPC:解作為分段線性函數#
Bemporad、Morari 等人在 2000 年代初證明了一個深刻的結構性結果:帶約束線性 MPC 的最優解是狀態的分段線性(piecewise affine, PWA)函數。
回顧 5.2 節的 QP:
用 KKT 條件(Karush–Kuhn–Tucker)分析:對固定的主動約束集 \(\mathcal{A}(x)\) ,最優解是 \(x\) 的仿射函數:
主動約束集只有在 \(x\) 跨越特定超平面時才改變,因此狀態空間被劃分為有限個多面體區域 \(\mathcal{R}_i\) ,每區域上 \(U^{\star}(x)\) 仿射:
離線列舉所有區域後,線上控制退化為「多面體會員測試 + 一次矩陣乘法」,只需微秒級。
flowchart LR
A[離線: 狀態空間多參數 QP] --> B[列舉主動約束集]
B --> C[多面體區域 R_i 與仿射律 K_i, c_i]
C --> D[線上: 找到 x 所在區域]
D --> E[套用 u = K_i x + c_i]5.3.3 顯式 MPC 的代價:區域爆炸#
顯式 MPC 的區域數量隨視界 \(N\) 與約束數量指數增長:一個 \(n = 4\) 、 \(N = 10\) 的問題可能產生上千個區域。記憶體與查找時間隨之膨脹,因此顯式 MPC 適合低維、短視界、高速的系統。對高維問題,區域爆炸使離線計算不可行——這正是線上求解器路線存在的理由。
5.3.4 即時 QP 求解器之一:內點法#
內點法(Interior Point Method, IPM)以障礙函數處理不等式約束,每步求解一個牛頓系統:
其優點是迭代次數幾乎不隨問題規模增長(通常 10–30 次即收斂),且每次迭代有良好的條件性質。MPC 的 QP 有特殊結構:KKT 系統是塊狀带狀(block-banded)的,可用condensed 或結構保持的稀疏分解,使每次迭代的計算量從 \(O(N^3)\) 降到 \(O(N)\) 。這類「結構感知 IPM」成為 2010 年代嵌入式 MPC 求解器(如 FORCES、FIORDOS)的核心。
5.3.5 即時 QP 求解器之二:ADMM 與 OSQP#
交替方向乘子法(Alternating Direction Method of Multipliers, ADMM)以更寬鬆的收斂率換取極簡的每步迭代。OSQP(2016 年提出的開源求解器)將 QP 寫為:
其 ADMM 迭代僅涉及一次 KKT 線性系統求解與一次投影:
其中 \(\Pi_{[l,u]}\) 是對盒約束的投影(逐元素截斷,計算近乎免費)。若因子化 KKT 矩陣一次後重複使用,每次迭代只剩前代後代(back substitution),在微控制器上單次迭代僅需微秒。OSQP 的成熟使「百毫瓦級微控制器上跑 MPC」成為現實。
5.3.6 嵌入式 MPC 的工程實務#
| 面向 | 典型做法 |
|---|---|
| 硬體 | Cortex-M 級微控制器、FPGA、DSP |
| 定點化 | Q15/Q31 定點數取代浮點,需注意數值範圍 |
| 矩陣預因子化 | KKT 矩陣離線 LDL 因子化,線上只做回代 |
| 熱啟動 | 以上一步解為初值,迭代次數大幅下降 |
| 失敗回退 | 達到迭代上限時沿用上一步控制量,保證安全性 |
熱啟動與終端約束的組合尤其重要:因為相鄰採樣時刻的最優解變化很小,熱啟動常使迭代次數降到個位數,這是「滾動優化的時間連續性反過來降低計算負擔」的典型案例。
5.3.7 實例:四旋翼無人機的姿態 MPC#
四旋翼姿態控制是嵌入式 MPC 的標竿應用:狀態維度約 12(位置、速度、姿態、角速度),輸入 4 個馬達轉速,約束包括轉速上下限與傾角上限。採用 \(N = 20\) 的 MPC 與 OSQP 型求解器,在 1 kHz 的控制頻率下於飛行控制器上即時運行,實現了穿越狹窄障礙的敏捷飛行。同樣的問題用顯式 MPC 則因區域爆炸而不可行,正好印證兩條路線的適用邊界。
小結#
2010 年代將 MPC 從「機房裡的先進控制」推進到「晶片上的即時控制器」。顯式 MPC 證明了最優控制律的 PWA 結構,適合低維高速系統;內點法與 ADMM 求解器(OSQP 等)利用 QP 的稀疏與帶狀結構實現毫秒級線上求解,適合高維問題。理論結構、演算法設計與硬體算力在此形成三向驅動。
延伸到下一節#
以上框架有一個根本假設:模型已知且線性。對非線性工業程序,模型從哪裡來?2010 年代,系統識別領域出現了 Koopman 算子理論這一新範式——它承諾把非線性動力學「提升」到高維線性空間,使線性 MPC 的全套工具得以沿用。這是 6.1 節的主題。