跳轉到

6.1 系統識別與 Koopman 算子理論#

6.1.1 前因:模型從哪裡來#

MPC 的一切優點都建立在「有模型」之上。傳統系統識別(System Identification)提供了兩類工具:

  • 基於頻域/階梯響應:工業 MPC 的 DMC 即以階梯響應實驗建模,但實驗成本高、只能覆蓋局部工作區。
  • 基於參數化模型:ARX、狀態空間的預測誤差法(PEM),本質上是對模型參數做非線性最小平方。

這些方法對線性系統已高度成熟,但面對非線性程序(聚合反應器、生物發酵、電力系統)時陷入兩難:黑箱非線性模型(如神經網路)難以納入 MPC 的最佳化框架;而局部線性化模型在大範圍操作下失真。2010 年代,Koopman 算子理論提供了第三條路:不改變系統的非線性本質,但把動力學表示為(無窮維)線性算子,再用資料有限維逼近。

6.1.2 Koopman 算子的基本思想#

考慮離散時間非線性系統:

\[ x_{k+1} = F(x_k) \]

Koopman(1931)的觀察是:與其在狀態空間中追蹤非線性演化,不如觀察觀測函數 \(g(x) \in \mathbb{R}^m\) 的演化。定義 Koopman 算子 \(\mathcal{K}\) :

\[ (\mathcal{K} g)(x) = g(F(x)) \]

\(\mathcal{K}\) 是線性算子(線性性直接由複合運算給出: \(\mathcal{K}(g_1 + g_2) = \mathcal{K}g_1 + \mathcal{K}g_2\) )。代價是 \(\mathcal{K}\) 作用於無窮維函數空間。控制版本則定義帶輸入的提升系統:若存在有限維觀測函數 \(\theta(x) \in \mathbb{R}^M\) 使

\[ \theta(x_{k+1}) \approx A_K \, \theta(x_k) + B_K \, u_k \]

則非線性系統在提升空間(lifted space)中變為線性系統,5.2、5.3 節的線性 MPC 工具即可直接套用。

6.1.3 DMD:從資料中提取 Koopman 近似#

動態模態分解(Dynamic Mode Decomposition, DMD)是 Koopman 有限維逼近的主力演算法。給定快照對 \((x_j, x_j^+ = F(x_j))\) , \(j = 1, \dots, T\) ,堆疊成矩陣:

\[ X = [x_1 \; x_2 \; \cdots \; x_T], \qquad X^+ = [x_1^{+} \; x_2^{+} \; \cdots \; x_T^{+}] \]

DMD 求解最小平方問題:

\[ A_{\mathrm{DMD}} = \arg\min_A \| X^+ - A X \|_F \]

在實務中,先對 \(X\) 做截斷 SVD 降維( \(X \approx U_r \Sigma_r V_r^{\top}\) ),再計算:

\[ \tilde{A} = U_r^{\top} X^+ V_r \Sigma_r^{-1} \]

\(\tilde{A}\) 的特徵值即 Koopman 特徵值的近似,對應系統的主導模態(衰減率、振盪頻率)。對受控系統,擴展 DMD with control(DMDc)同時估計 \(A_K\) 與 \(B_K\) ;延遲嵌入(time-delay embedding)則以過去狀態堆疊充當觀測函數,可證明在一般條件下收斂到真實 Koopman 模態。

6.1.4 觀測函數的選擇:從手挑到機器學習#

Koopman 方法成敗繫於觀測函數 \(\theta\) 。三代做法遞進:

  1. 手工基底:多項式(如 \(x, x^2, x_1 x_2\) )、傅立葉基底。簡單但未必完備。
  2. 字典學習:從候選函數庫中以稀疏回歸(如 SINDy)挑選最簡字典。
  3. 神經網路觀測函數(deep Koopman,2010 年代末):以自編碼器學習 \(\theta\) ,編碼器為 \(\theta\) ,解碼器為其反演,並對提升空間施加線性動力學損失:
\[ \mathcal{L} = \sum_k \left\| \theta(x_{k+1}) - A_K \theta(x_k) - B_K u_k \right\|^2 + \lambda \left\| \hat{x}_k - \theta^{-1}(\theta(x_k)) \right\|^2 \]

第三代的意義深遠:神經網路在此不扮演控制器,而是扮演「把非線性問題整理成線性問題」的特徵學習者。這是資料驅動方法與經典控制理論的一次和平共處。

6.1.5 Koopman-MPC:理論回饋到控制#

在提升空間中,MPC 問題變為:

\[ \min_{U} \; \sum_{i=0}^{N_p-1} \left( \| \theta_{k+i} \|_Q^2 + \| u_{k+i} \|_R^2 \right), \quad \text{s.t.} \quad \theta_{k+i+1} = A_K \theta_{k+i} + B_K u_{k+i} \]

這仍是(若 \(\theta\) 為狀態的已知非線性函數,則約束為非線性;若以 \(\theta(x_k)\) 為線上量測,則)可用線性 QP 或以凸鬆弛求解的問題。相較於非線性 MPC(NMPC)所需的序列二次規劃(SQP),Koopman-MPC 保留了 5.3 節求解器生態的可用性,計算上佔盡便宜。

6.1.6 實例:軟體機器人與化工程序#

  • 化工批式反應器:溫度-濃度動力學強非線性。以多項式字典 + DMD 建立提升模型,再設計 Koopman-MPC,能在寬廣操作區內跟蹤轉化率設定點,優於單點線性化 MPC。
  • 軟體機器人(soft robot):材料大變形、難以物理建模。以深度 Koopman 從運動捕捉資料學習提升模型,實現了毫秒級的形狀閉環控制——傳統 NMPC 在同級硬體上無法達到此頻率。

兩例共同說明:Koopman 的價值在以資料換模型、以線性換計算。

小結#

Koopman 算子理論把「非線性系統的線性化」從局部切空間推廣到全局函數空間;DMD 及其延伸提供了資料驅動的有限維近似,而深度學習則自動化了觀測函數的設計。於是,非線性預測、非線性最佳化這兩大 NMPC 難題被同時迴避,線性 MPC 的理論與求解器基礎設施得以完整繼承。

延伸到下一節#

Koopman-MPC 仍是「有模型」的控制,只是模型改由資料學得。與此相對,強化學習社群在同期發展了完全不建模的路線:直接從與環境互動中學習控制策略。這條路看似更直接,但在控制場景中遇到了難以迴避的樣本效率與安全障礙——這是 6.2 節的主題。