當單一回饋迴路不夠用時,工程師還有哪些武器?
深入串級控制、前饋控制、史密斯預估器與多變數耦合(RGA),看進階控制結構如何把被動補救升級為主動防禦,並直接轉化為經濟價值。
當單一回饋迴路不夠用時,工程師還有哪些武器?
你已經知道,一座放熱反應器靠回饋(feedback)控制把溫度穩在設定點:量測溫度、算誤差、調冷卻劑流量。但回饋有一個天生的弱點——它必須等到擾動「已經」影響了被控變數,才會開始反應。換句話說,回饋是「亡羊補牢」式的控制:誤差先出現,控制器才動作。
設想一個真實場景:反應器的冷卻劑來自一條共用的冷卻水總管,隔壁的機組突然大量用水,使你這台反應器的冷卻水壓力驟降、流量隨之減少。等到這個擾動「傳導」成反應器溫度上升、被溫度感測器抓到,可能已經過了好幾分鐘——而對一個放熱反應,這幾分鐘足以讓溫度衝高、選擇性崩壞,甚至逼近失控邊界。單一回饋迴路在這裡是「來不及」的。
這篇文章要談的,正是工程師在單迴路 PID 之外、用來對付這類問題的進階控制結構(advanced control structures):串級控制(cascade control)、前饋控制(feedforward control)、以及對付死區時間的史密斯預估器(Smith Predictor)。它們不是要取代 PID,而是把多個 PID 巧妙地組合、或加上前瞻資訊,讓控制系統從「被動補救」進化成「主動防禦」。

串級控制:把擾動擋在外層之前
串級控制的核心洞察是:與其等擾動傳遍整個程序才反應,不如在擾動剛進入時就先攔截它。做法是把一個慢的「主迴路」和一個快的「副迴路」串接起來,形成兩層巢狀的控制。
回到反應器溫度控制的例子。傳統單迴路是:溫度控制器(主控制器)直接去調冷卻劑閥門。串級的做法則拆成兩層:
- 副迴路(inner loop / secondary):先設一個「冷卻劑流量控制器」,它的工作只是把冷卻劑流量穩穩維持在某個值。這個迴路很快——閥門到流量計之間幾乎沒有死區時間,時間常數可能只有幾秒。
- 主迴路(outer loop / primary):溫度控制器不再直接動閥門,而是去設定副迴路的流量設定點。溫度偏高,就叫副迴路「把冷卻劑流量加大到某個值」。
關鍵在於:當冷卻水壓力擾動發生、流量開始往下掉時,副流量控制器在幾秒內就察覺並把閥門開大補回流量——擾動還沒來得及影響溫度,就被內層迴路擋下了。主溫度迴路根本不必出手。
用方塊圖的語言,串級把程序動態 $G_p$ 拆成兩段串聯 $G_p = G_{p2}\, G_{p1}$,其中 $G_{p2}$(閥門到流量)快、$G_{p1}$(流量到溫度)慢:
$$ \underbrace{C_1(s)}_{\text{主:溫度}} \longrightarrow \underbrace{C_2(s)}_{\text{副:流量}} \longrightarrow \underbrace{G_{p2}(s)}_{\text{閥門}\to\text{流量}} \longrightarrow \underbrace{G_{p1}(s)}_{\text{流量}\to\text{溫度}} $$
串級成立的兩個工程準則,務必記住:
- 副迴路必須明顯比主迴路快(經驗上時間常數至少差 3–5 倍)。否則內外兩層動態互相糾纏,反而更難整定。
- 副迴路要能涵蓋主要擾動的入口。冷卻水壓力擾動是透過「流量」進入程序的,所以把流量設成副被控變數,正好把這個擾動關進內層。如果擾動是從別的路徑進來(例如進料溫度),流量副迴路就攔不到它——那需要別的手段(見下一節)。
前饋控制:在擾動「動手」之前就先補償
串級擋住的是「能被副迴路量到」的擾動。但有些擾動可以直接量測,卻不在任何回饋路徑上——最典型的就是進料的變化。
假設反應器的進料流量 $F$ 與進料溫度 $T_{in}$ 會隨上游製程波動,而你有流量計和溫度計可以即時量到它們。回饋控制要等這些變化先擾亂了反應器溫度才會反應;但前饋控制可以做得更聰明:既然我量得到進料擾動,我就用程序模型「算出」它將造成多大影響,然後搶先調整冷卻劑去抵銷,理想上讓被控變數根本不偏離設定點。
前饋控制器的設計直接來自程序模型。設擾動對輸出的轉移函數為 $G_d(s)$、操作變數對輸出的轉移函數為 $G_p(s)$。我們希望擾動 $d$ 對輸出 $y$ 的淨效應為零,也就是讓前饋動作恰好抵銷擾動:
$$ G_p(s)\, G_{ff}(s) + G_d(s) = 0 \quad\Longrightarrow\quad G_{ff}(s) = -\frac{G_d(s)}{G_p(s)} $$
這就是理想前饋控制器:它是「擾動路徑」與「控制路徑」兩個程序模型的比值(取負號)。直覺很美——只要我知道擾動會怎麼影響程序、也知道我的動作會怎麼影響程序,我就能算出該補多少。
但理想前饋有三個現實限制,值得認真理解:
- 它完全依賴模型準確度。$G_{ff}$ 是用 $G_p$ 與 $G_d$ 算出來的;模型錯了,補償就不準。
- 它無法處理「沒量到」的擾動。前饋只對你裝了感測器去量的那個擾動有效,其餘一概不管。
- 它沒有回饋的自我修正能力。前饋是「開環」補償,沒有閉環去檢查補得對不對。
正因如此,工業上幾乎不會單獨用前饋,而是前饋+回饋(feedforward-feedback)併用:前饋負責快速、大幅地抵銷量得到的主要擾動,回饋負責收尾——清掉模型誤差與所有沒量到的小擾動造成的殘餘偏差。這是一個漂亮的分工:前饋管「快與準的粗活」,回饋管「慢而紮實的細活」。
看一個例子
讓我們把前饋設計具體算一遍。假設一座加熱混合槽,被控變數是出口溫度 $T$,操作變數是蒸氣閥開度 $u$,擾動是進料流量 $F$。對這兩條路徑各做一次階躍測試,量得(皆為一階加遲延,FOPDT):
- 控制路徑:$G_p(s) = \dfrac{2.0\, e^{-1 s}}{6 s + 1}$(單位:°C/%,時間 min)
- 擾動路徑:$G_d(s) = \dfrac{-3.0\, e^{-2 s}}{4 s + 1}$(單位:°C per (L/min);進料變多溫度下降,故為負)
代入理想前饋公式:
$$ G_{ff}(s) = -\frac{G_d(s)}{G_p(s)} = -\frac{-3.0\, e^{-2 s}/(4 s + 1)}{2.0\, e^{-1 s}/(6 s + 1)} = \frac{3.0}{2.0}\cdot\frac{6 s + 1}{4 s + 1}\cdot e^{-(2-1)s} $$
$$ G_{ff}(s) = 1.5\,\cdot\,\frac{6 s + 1}{4 s + 1}\, e^{-1 s} $$
讀懂這個結果,是理解前饋的關鍵:
- 靜態增益 1.5:進料流量每增加 1 L/min,前饋器立刻把蒸氣閥多開 1.5%——這是把 $G_d$ 與 $G_p$ 的穩態增益相除($3.0/2.0$)得來,補償掉進料變多帶來的降溫。
- 超前/落後項 $\frac{6s+1}{4s+1}$:這是動態補償(lead-lag)。因為擾動路徑($\tau=4$)比控制路徑($\tau=6$)快,前饋必須「先衝後收」,用一個 lead-lag 環節讓補償的動態形狀對得上擾動的動態形狀。
- 死區時間 $e^{-1s}$:擾動延遲 2 min、控制延遲 1 min,差值 1 min 是「可實現」的純延遲(前饋故意晚 1 min 出手,好讓兩條路徑的效應在時間上對齊)。
這裡藏著前饋物理可實現性(realizability)的關鍵條件:若控制路徑的死區時間反而比擾動路徑長($\theta_p > \theta_d$),$G_{ff}$ 就會出現 $e^{+s}$ 這種「需要預知未來」的項——那是做不到的。此時只能退而求其次,把延遲設為零、靠後段的回饋去補。這也呼應了一個入門就強調的鐵律:死區時間是控制的頭號敵人,在前饋裡同樣如此。
對付死區時間:史密斯預估器的巧思
說到死區時間,入門篇提過:在死區時間 $\theta$ 內,控制器「看不到」自己動作的效果,因而容易過度修正、引發振盪。當 $\theta/\tau_p$ 很大(死區時間相對於時間常數很長,例如線上層析儀的取樣分析迴路),普通 PID 幾乎沒辦法積極控制——增益一拉高就振盪。
史密斯預估器(Smith Predictor)是 1957 年提出、至今仍優雅的解法。它的核心想法是:既然問題出在「看不到延遲後的結果」,那就用模型把延遲後的結果「預測」出來,讓控制器去控制這個沒有延遲的預測值。
具體做法是在控制器旁邊跑一個程序模型,這個模型分成兩部分:一個「無延遲」的動態模型 $\tilde{G}_p(s)$(已扣掉死區時間),和一個純死區時間 $e^{-\tilde{\theta}s}$。控制器實際上是去控制無延遲模型的輸出,等於把那段惱人的死區時間「移到回饋迴路外面」。若模型完美,閉環的特徵方程裡就不再含 $e^{-\theta s}$ 這個製造相位落後的元凶:
$$ 1 + C(s)\,\tilde{G}_p(s) = 0 $$
注意這條方程裡沒有死區時間項——這正是史密斯預估器的威力:它讓你能用較積極的控制器增益,彷彿程序根本沒有延遲一樣。
當然,天下沒有白吃的午餐。史密斯預估器的代價是對模型誤差極度敏感:它把死區時間從閉環移走的前提,是模型裡的 $\tilde{\theta}$ 與真實 $\theta$ 要對得很準。真實程序的死區時間常隨流量、負載而漂移;一旦模型死區時間估錯,預估器補償的相位就對不上,反而可能比普通 PID 更不穩。因此實務上它需要搭配良好的模型維護,或改用對誤差較寬容的變形(如濾波式的死區時間補償器)。這也說明了為什麼許多工廠寧可用調得保守的 PID——穩健性(robustness)有時比性能(performance)更值錢,這個取捨在進階控制裡反覆出現。
多變數耦合:當一個動作牽動全身
到目前為止,我們談的都還是「一個操作變數對一個被控變數」。但真實的精餾塔、反應器往往是多輸入多輸出(MIMO)的:你想同時控制塔頂與塔底兩處的純度,手上有回流量與再沸器熱量兩個操作變數。麻煩在於——這兩個操作變數會互相干擾:你動回流量去修塔頂純度,塔底純度也跟著被牽動。
衡量這種耦合強弱的標準工具是相對增益矩陣(Relative Gain Array, RGA)。它的元素 $\lambda_{ij}$ 比較「其他迴路全開」與「全關」兩種情況下,操作變數 $u_j$ 對被控變數 $y_i$ 的增益比值:
$$ \lambda_{ij} = \frac{(\partial y_i / \partial u_j)_{\text{其他迴路開環}}}{(\partial y_i / \partial u_j)_{\text{其他迴路閉環}}} $$
RGA 怎麼讀,有幾條清楚的判準:
- $\lambda_{ij} \approx 1$:這對配對幾乎不受其他迴路影響,是理想配對,放心用單迴路控制。
- $\lambda_{ij} \approx 0$:$u_j$ 對 $y_i$ 幾乎沒影響,別配對。
- $0.5 < \lambda_{ij} < 1$:有耦合但可接受。
- $\lambda_{ij} > 1$ 或為負值:嚴重耦合甚至反向耦合,單迴路會打架。$\lambda_{ij}<0$ 尤其危險——意味閉環時某迴路的作用方向會反轉,是控制系統不穩的警訊。
對 $2\times 2$ 系統,RGA 只需一個數 $\lambda$ 就決定整個配對結構(另三格由列、行和為 1 推出)。當 RGA 顯示耦合無法忽略時,工程師有兩條路:要嘛重新挑配對(讓 $\lambda$ 盡量接近 1),要嘛上解耦器(decoupler)或乾脆改用統一處理多變數的模型預測控制(MPC)——MPC 把所有輸入輸出耦合一次納入同一個最佳化問題,正是它在現代化工廠當主力進階控制的原因。
把它和優化學連起來
進階控制結構帶來的,不只是「控得更穩」,更是直接的經濟價值——這一點延續入門篇「減少變異、逼近限制(squeeze and shift)」的觀念,但更具體。
考慮反應器溫度控制對利潤的影響。設利潤隨溫度 $T$ 上升而增加(轉化率提高),但有一條硬限制 $T \le T_{max}$(超過就觸發副反應或安全連鎖)。操作員必須把設定點設在 $T_{sp} = T_{max} - n\sigma$,其中 $\sigma$ 是溫度控制的標準差,$n$ 是安全係數(例如 $n=3$ 對應 99.7% 的時間不超限):
$$ T_{sp} = T_{max} - n\,\sigma $$
而每提高 1 °C 設定點能多賺的利潤近似為 $\dfrac{\partial P}{\partial T}$,於是控制改善帶來的利潤增量可寫成:
$$ \Delta P \approx \frac{\partial P}{\partial T}\cdot \Delta T_{sp} = \frac{\partial P}{\partial T}\cdot n\,(\sigma_{\text{舊}} - \sigma_{\text{新}}) $$
這條看似簡單的式子,是整個進階控制的經濟學基礎:串級+前饋+MPC 把溫度標準差 $\sigma$ 壓小,省下的安全緩衝 $n(\sigma_{舊}-\sigma_{新})$ 就能直接轉成設定點上移、轉成利潤。 假設某反應器原本 $\sigma_{舊}=3$ °C,上了串級+前饋後 $\sigma_{新}=1$ °C、取 $n=3$,則設定點可上移 $3\times(3-1)=6$ °C;若每 °C 約值年產值的 0.5%,這 6 °C 就是可觀的數字。投資進階控制的回收,算的正是這筆帳。
至於那個「最佳設定點該設在哪」的問題,則是即時優化(RTO)的工作:RTO 依當前原料價、產品價、能源成本,週期性求解帶限制式的最佳化問題,把最佳操作點交給下層的控制系統去守住。優化決定「目標」,控制決定「守得多緊」,而進階控制結構決定了你能把目標設得多貼近限制邊界——三者環環相扣。
重點回顧
- 串級控制(cascade)用快副迴路攔截擾動:把控制拆成快的內層(如流量)與慢的外層(如溫度),讓擾動在影響主被控變數之前就被內層擋下。成立要件是副迴路明顯快於主迴路,且能涵蓋主要擾動入口。
- 前饋控制(feedforward)搶在擾動發作前補償:對可量測的擾動,用 $G_{ff}=-G_d/G_p$ 算出補償動作搶先抵銷。它快但依賴模型、且只管量得到的擾動,故必須與回饋併用——前饋管粗活、回饋收殘差。
- 史密斯預估器對付長死區時間:用無延遲模型把死區時間移出閉環,讓控制器能更積極;代價是對模型死區時間誤差極敏感,凸顯穩健性 vs. 性能的取捨。
- RGA 量化多變數耦合:$\lambda_{ij}\approx 1$ 是理想配對,$\lambda<0$ 是危險訊號;耦合嚴重時改用解耦器或 MPC。
- 進階控制=經濟價值:控得越穩($\sigma$ 越小),安全緩衝越小、設定點越能貼近限制,利潤增量 $\Delta P \approx \frac{\partial P}{\partial T}\, n\,\Delta\sigma$,這是投資進階控制的回收依據。
深入探討(研究所視角)
研究所階段,這些進階結構會被放進更嚴謹的系統理論與最佳化框架中,以下幾個方向值得深究:
1. 死區時間補償的穩健性理論。 史密斯預估器的弱點是對 $\theta$ 的模型誤差敏感。研究上用強健控制(robust control)的 $H_\infty$ 框架與結構奇異值 $\mu$ 分析,量化「模型死區時間在多大範圍內漂移仍能保證穩定」,並設計加入濾波器的改良型預估器(filtered Smith Predictor)以換取穩健性。這是「性能—穩健性取捨」可被數學化的典型例子。
2. 多變數控制的系統化設計。 RGA 只是配對診斷的起點。研究所會進到奇異值分解(SVD)與條件數(condition number)分析整個傳遞函數矩陣的方向性增益,理解 ill-conditioned 系統(如高純度精餾塔)為何極難控;以及動態解耦與內模控制(IMC)在 MIMO 下的推廣。
3. 模型預測控制(MPC)的最佳化內核。 MPC 在每個取樣時刻線上求解一個帶限制的二次規劃(QP):
$$ \min_{\Delta u} \ \sum_{k=1}^{N_p}\| y(k)-y_{sp}\|_Q^2 + \sum_{k=0}^{N_c-1}\|\Delta u(k)\|_R^2 \quad \text{s.t.}\ u_{min}\le u\le u_{max},\ \Delta u_{min}\le \Delta u\le \Delta u_{max} $$
它把前饋(透過量測擾動模型)、多變數耦合、操作與安全限制,全部統一在一個最佳化問題裡——本文談的串級、前饋、解耦,某種意義上都是 MPC 的特例或前身。研究主題包含求解器的即時性、穩定性保證(terminal cost / constraint)、以及把 RTO 與 MPC 合併的經濟型 MPC(economic MPC)——直接以利潤為目標函數,而非追蹤設定點。
4. 資料驅動與學習型控制。 第一原理模型難以涵蓋所有非線性與時變動態,近年興起以系統辨識(system identification)自動建模、以強化學習(reinforcement learning)或高斯過程(Gaussian process)建構自適應控制器的研究。挑戰在於:如何在「探索新策略」與「保證程序安全」之間取得平衡——這也讓程序控制與機器學習、最佳化在程序系統工程(Process Systems Engineering, PSE)的前沿交會。