為何要建模——又為何是個比值?
想像你正在調校汽車的定速巡航。你把油門踏板踩深一點;幾秒後車速緩緩爬升。再踩深一些,它爬得更快。那輛車裡某處藏著一個*關係*——一條把踏板位置(輸入)轉換成車速(輸出)的規則。你無法操控你無法預測的東西,所以在設計任何控制器之前,這個關係都得先寫下來。寫下來的這條規則,工程師稱之為模型。
那輛車誠實的物理是一條微分方程:力、慣性、阻力,全與導數糾纏在一起。微分方程威力強大卻難以擺弄——要把兩條合併,你得求解、代入、再祈禱。控制工程的絕招,是讓每個訊號都通過拉普拉斯轉換,它把 d/dt 變成乾淨俐落地乘上 s。在那個轉換後的世界裡,一整條微分方程化為一條*代數*方程,而輸入對輸出的規則就成了兩個多項式相除的簡單比值。
那個比值就是轉移函數,寫作 G(s) = Y(s) / X(s)——輸出的拉普拉斯轉換除以輸入的拉普拉斯轉換(假設系統從靜止狀態啟動)。它是整條學習軌道中最重要的物件。你之後會遇到的每一個工具——極點與零點、根軌跡、波德圖——都不過是*讀取* G(s) 的不同方式。學會寫出它,你就一口氣解鎖了它們全部。
範例一:RC 電路化為 G(s)
讓我們用電子學中最樸實的電路把公式掙到手:一個電阻 R 與一個電容 C 串聯,輸出取自電容兩端。以電壓 v_in(t) 驅動輸入;在 C 兩端讀出輸出 v_out(t)。這對小小的 RC 就是一個低通濾波器,是每個音訊音調控制與感測器平滑電路的心跳——也是拿來建模的完美第一個受控體。
R
v_in o──[ /\/\/ ]──┬──────o v_out
│
─┴─ C (current i flows through both)
───
│
GND o──────────────┴──────o GND
Same current i in R and C -> one differential equation links v_in and v_out.我們只需要兩個物理事實。第一,同一個電流 i 流過兩個元件(這是串聯迴路)。第二,克希荷夫電壓定律告訴我們輸入電壓被分配給電阻與電容:v_in = i·R + v_out。流入電容的電流是 i = C · dv_out/dt——這個導數正是系統的*動態*、延遲與性格的全部來源。把它代回去,你就得到一條乾淨的微分方程。
Time domain: v_in(t) = R·C · dv_out/dt + v_out(t)
Apply Laplace ( d/dt -> s , zero initial charge ):
V_in(s) = R·C·s·V_out(s) + V_out(s)
= (R·C·s + 1) · V_out(s)
Transfer function:
V_out(s) 1
G(s) = ──────── = ───────────── ( let tau = R·C )
V_in(s) R·C·s + 1
1
= ───────────────
tau·s + 1看看剛剛發生了什麼。一個電路、一塊實體硬體,被壓縮成符號 1/(τs + 1)。乘積 τ = RC 就是時間常數——當 R = 10 kΩ、C = 1 µF 時,τ = 10 ms,所以濾波器在被擾動後約需 50 ms(五個時間常數)才能完全穩定下來。這一個數字就嵌在 G(s) 裡,在你畫出任何圖之前,就已經告訴你系統有多快。
範例二:質量-彈簧-阻尼系統——以及控制為何普世通用
現在完全離開電子學。想像桌上有一塊質量為 m 的滑塊,用彈簧(剛度 k)與避震器(阻尼 b)繫在牆上。你以力 f(t) 推它;它以位移 x(t) 回應。這就是汽車懸吊、是隨風搖晃的大樓、是機械臂落定到目標——它本該與上面的 RC 電路*毫無關係*。看看同一套食譜對它做了什麼。
wall ║ Newton's second law:
║ /\/\/\ spring k ┌──────┐
║─────────────────┤ m │ ── f(t) push m·x'' + b·x' + k·x = f(t)
║ ===[ damper b ]==┤ │ -> x(t)
║ └──────┘ (x'' = acceleration, x' = velocity)
Laplace (rest start): (m·s^2 + b·s + k) · X(s) = F(s)
X(s) 1
G(s) = ───── = ───────────────────
F(s) m·s^2 + b·s + k重點來了——這正是整個級別的妙處所在。RC 電路給出*一階* G(s)(s 的一次方);質量-彈簧-阻尼給出*二階* G(s)(含 s² 項,因為加速度是二階導數)。但兩者都不過是 1 /(s 的多項式)。一個熱學受控體——溫度落後於加熱器的烤箱——產生的代數一模一樣。電的、機械的、熱的:一旦它們穿上轉移函數的戲服,數學就再也分不出彼此。
方塊圖代數:把方塊拼接起來
真實系統從來不是單一方塊。定速巡航有放大器、再來是馬達、再來是車體——三個轉移函數首尾相接。方塊圖把每一個畫成一個標了名的方塊,一支箭頭進、一支箭頭出,而在 s 域裡工作的妙處在於:把它們組合起來,就是純粹的課本代數。你需要的規則只有三條,而第三條正是控制之所以存在的全部理由。
(1) SERIES (cascade) — outputs feed inputs, gains multiply:
X ──►[ G1 ]──►[ G2 ]──► Y G_total = G1 · G2
(2) PARALLEL — same input, outputs add:
┌►[ G1 ]┐
X ──┤ (+)──► Y G_total = G1 + G2
└►[ G2 ]┘
(3) FEEDBACK (closed loop) — the big one:
X ─►(+)──►[ G ]──┬──► Y G
▲ │ G_total = ───────────
│ │ 1 + G·H
└──[ H ]◄──┘ (negative feedback)前兩條規則一看就懂:串接的方塊把增益相乘(10 倍放大器接 3 倍級就是 30 倍),並聯的路徑相加。第三條才是寶石。取前向路徑 G,把輸出經量測方塊 H 回授,再從輸入中減去它——這正是第 1 級的迴授迴路。一小段代數推導,就把整團糾結塌縮成單一的閉迴路轉移函數。
Derivation of the closed-loop formula (negative feedback):
error E = X - H·Y (input minus measured output)
output Y = G·E (forward path acts on the error)
Substitute E: Y = G·(X - H·Y)
Y = G·X - G·H·Y
Y + G·H·Y = G·X
Y·(1 + G·H) = G·X
Y G
───── ─── = ─────── <- closed-loop transfer function
X 1 + G·H組合起來:一個符號裝下整條迴路
讓我們化簡一條完整的控制迴路,感受機件喀嗒就位的瞬間。假設一個控制器 K(目前先當作純增益)驅動我們的 RC 受控體 G(s) = 1/(τs+1),且我們完美地量測輸出,所以 H = 1。把零件代入「先串聯、再迴授」,看著閉迴路浮現成一個單一、可讀的轉移函數。
Forward path: K · G(s) = K / (tau·s + 1)
Feedback: H = 1 (unity feedback)
Closed loop:
K·G K/(tau·s+1)
T(s) = ───────── = ────────────────────
1 + K·G 1 + K/(tau·s+1)
Multiply top & bottom by (tau·s + 1):
K K/(1+K)
T(s) = ───────────────── = ──────────────────────
tau·s + 1 + K [tau/(1+K)]·s + 1
New time constant: tau' = tau / (1 + K) <- feedback made it FASTER讀一下結果。閉合迴路一次做了兩件事:它讓系統變快了(時間常數縮小為 1/(1+K) 倍),也改變了極點的位置(從 s = -1/τ 移到 s = -(1+K)/τ,更深地滑入穩定的左半平面)。把 K 調得越高,系統反應越快——一時間看起來像是免費的效能。接下來幾個級別會揭露陷阱:在更高階的受控體上,太大的增益會把極點拖向失穩,而控制的全部藝術,就在於聰明地選擇 K。但你所調校的*物件*始終是這一個——你用三步代數建出來的轉移函數。
- 從各方塊的物理寫出它的轉移函數(RC、質量-彈簧、馬達、控制器 K)。
- 把串聯的方塊相乘,將前向路徑塌縮成單一的 G(s)。
- 套用迴授公式 G/(1+GH),把迴路摺成單一的閉迴路 T(s)。
- 讀它的分母:那些根就是決定穩定性與速度的極點——也就是下一級的主題。