Home
Explore Uedu
Student Console
Register as Member/Login
(2) In future presentations of the research findings, in addition to the course project website and public presentations, your real name and personal information will not appear in this research report. If you are interested in the research results, we can provide you with an executive summary after the study is completed.
問卷中心
Teacher Console
Course Setup
Support & Messages
Uptime Data

UeduGPTs

--

Jupyters

0

Local AI

--

CISOSE26 本地 AI UG26
政治大學 AQI 15 29°C

AI Reply Desktop Notifications

Show a desktop notification when the AI TA finishes replying

Chat Message Notifications

Notify me when classmates post messages in the forum

Sound notification

Play an alert sound whenever there is a new notification

機電整合

為什麼你的 PID 參數調到「剛剛好」,換一顆負載就全毀了?

從手調 PID 升級到系統建模:用轉移函數、二階系統、波德圖與穩定餘裕,量化機電系統「離震盪有多遠」。

為什麼你的 PID 參數調到「剛剛好」,換一顆負載就全毀了?

你照著入門篇把轉檯定位系統做出來了:感測、PWM、離散 PID 一應俱全。你花了一個下午手調 $K_p$、$K_i$、$K_d$,終於讓轎廂平滑停層、轉檯精準定位。然後老闆說:「把轉檯換成兩倍重的那一款。」你重新通電——系統開始劇烈震盪,甚至完全發散。為什麼?

問題的根源在於:手調 PID 是在「試出一組剛好讓某個特定系統穩定的參數」,但你並不真正知道這個系統「離不穩定有多遠」。 你調出來的是一個點,不是一片安全區。當負載慣量 $J$ 變兩倍、或溫度讓馬達電阻 $R$ 漂移、或感測迴路多了 2 ms 延遲時,這個點可能就掉出穩定區之外了。

進階機電整合的核心,是從「試參數」升級到「用數學描述整個閉環系統的動態,量化它的穩定餘裕(stability margin),再據此設計控制器」。這篇文章帶你走過這條路:把物理系統寫成轉移函數(transfer function),理解二階系統的行為,用頻率響應(frequency response)讀出系統的「體質」,並計算它離震盪還有多少安全空間。

機電整合進階概念示意圖

從微分方程到轉移函數:系統的「指紋」

入門篇給了直流馬達的兩條時域微分方程式。但只要系統一複雜,直接解微分方程就變得不切實際。控制工程的關鍵工具是拉普拉斯轉換(Laplace transform),它把「時域的微分方程」變成「s 域的代數方程」。微分 $\frac{d}{dt}$ 變成乘以 $s$,積分變成除以 $s$,整個動態被壓縮成一個分式——轉移函數

轉移函數 $G(s)$ 定義為「輸出的拉普拉斯轉換」除以「輸入的拉普拉斯轉換」(假設零初始條件):

$$ G(s) = \frac{Y(s)}{U(s)} $$

以直流馬達為例,把入門篇那兩條方程式(電壓平衡與旋轉牛頓第二定律)做拉普拉斯轉換並消去電流 $i$,可得「輸入電壓 $V$ → 輸出轉速 $\omega$」的轉移函數:

$$ G(s) = \frac{\omega(s)}{V(s)} = \frac{K}{(Ls + R)(Js + b) + K^2} $$

分母展開是 $s$ 的二次多項式,所以馬達本質上是一個二階系統。但這裡有個關鍵的工程簡化:電氣時間常數 $\tau_e = L/R$ 通常遠小於機械時間常數 $\tau_m = J/b$(電流變化比轉子加速快得多)。當 $L \to 0$ 時,分母降為一次:

$$ G(s) \approx \frac{K}{R J s + (R b + K^2)} = \frac{K_{dc}}{\tau_m s + 1} $$

這是一個一階系統,$\tau_m = \dfrac{RJ}{Rb+K^2}$ 是時間常數,$K_{dc} = \dfrac{K}{Rb+K^2}$ 是直流增益。轉移函數的分母(特徵多項式)的根,叫做「極點(pole)」,它們完全決定了系統的動態行為。 這就是為什麼工程師說極點是系統的「指紋」。

看一個例子:算出馬達的時間常數

沿用入門篇的馬達:$K = 0.05\ \text{N·m/A}$、$R = 2\ \Omega$。再補上 $J = 1.2\times10^{-4}\ \text{kg·m}^2$、$b = 2\times10^{-4}\ \text{N·m·s}$。

機械時間常數:

$$ \tau_m = \frac{RJ}{Rb + K^2} = \frac{2 \times 1.2\times10^{-4}}{2 \times 2\times10^{-4} + 0.05^2} = \frac{2.4\times10^{-4}}{4\times10^{-4} + 2.5\times10^{-3}} \approx 0.0828\ \text{s} $$

也就是約 83 ms。一階系統對階躍輸入的響應是 $\omega(t) = \omega_\infty(1 - e^{-t/\tau_m})$,在 $t = \tau_m$ 時達到終值的 63.2%,在 $t \approx 4\tau_m \approx 0.33\ \text{s}$ 時達到 98%。這個數字立刻告訴你:不論控制器多聰明,這顆馬達自然的反應速度就是這麼快,你的控制頻率沒必要遠超過它,但取樣週期 $T_s$ 必須遠小於 $\tau_m$(例如取 $\tau_m/20 \approx 4\ \text{ms}$)才能讓數位控制忠實逼近連續設計。

注意「把負載換兩倍重」就是 $J$ 變兩倍。代入上式,$\tau_m$ 約變成 0.143 s——系統明顯變鈍。這還只是開迴路;閉上迴路後,$J$ 的變化會直接改變閉環極點位置,這正是手調參數失效的數學原因。

二階系統:超調、阻尼與自然頻率

當你把位置(而非轉速)當輸出,或保留電感 $L$,系統就是不折不扣的二階。二階系統是整個控制工程的「原型」,因為高階系統的行為往往由最靠近虛軸的一對極點(dominant poles)主宰,近似成二階。標準二階轉移函數寫成:

$$ G(s) = \frac{\omega_n^2}{s^2 + 2\zeta\omega_n s + \omega_n^2} $$

兩個參數定義了一切:

  • 自然頻率(natural frequency) $\omega_n$:系統「想振動」的固有頻率,決定反應快慢。
  • 阻尼比(damping ratio) $\zeta$:決定振盪會不會、以及多快被壓下來。

極點位於 $s = -\zeta\omega_n \pm \omega_n\sqrt{\zeta^2-1}$。依 $\zeta$ 的大小分三種情況:

  • $\zeta > 1$(過阻尼,overdamped):兩個實極點,緩慢無振盪。
  • $\zeta = 1$(臨界阻尼,critically damped):最快的無超調響應。
  • $0 < \zeta < 1$(欠阻尼,underdamped):一對共軛複數極點,會超調並振盪後收斂。

機電系統最常落在欠阻尼區,因為我們想要快、但快就容易超調。對欠阻尼系統,有幾個能「秒算」的工程公式。最大超調量(percent overshoot) 只跟 $\zeta$ 有關:

$$ M_p = \exp\!\left(\frac{-\pi\zeta}{\sqrt{1-\zeta^2}}\right) \times 100\% $$

安定時間(settling time,2% 準則) 約為:

$$ t_s \approx \frac{4}{\zeta\omega_n} $$

動手試試:從規格反推設計

假設轉檯定位的規格是:超調不得超過 5%、安定時間在 0.5 秒內。我們反推需要的極點位置。

先由超調限制求 $\zeta$。令 $M_p = 0.05$:

$$ \ln(0.05) = \frac{-\pi\zeta}{\sqrt{1-\zeta^2}} \;\Rightarrow\; -2.996 = \frac{-\pi\zeta}{\sqrt{1-\zeta^2}} $$

解得 $\zeta \approx 0.690$。工程上常取 $\zeta \approx 0.7$(對應約 4.6% 超調),這也是「最佳折衷阻尼」的經典值。

再由安定時間求 $\omega_n$。令 $t_s = 0.5\ \text{s}$:

$$ \omega_n = \frac{4}{\zeta\, t_s} = \frac{4}{0.7 \times 0.5} = 11.4\ \text{rad/s} $$

於是目標閉環極點為:

$$ s = -\zeta\omega_n \pm j\omega_n\sqrt{1-\zeta^2} = -8.0 \pm j\,8.16 $$

這就是控制器設計的真正起點:你不再是亂試 $K_p$、$K_i$、$K_d$,而是先把規格翻譯成「我要把閉環極點放在 $-8 \pm 8.16j$」,再回頭算出能達成此目標的 PID 增益(極點配置法,pole placement)。 這把「調參數」從玄學變成了求解代數方程。

頻率響應:用「掃頻」讀出系統體質

時域看得到超調與安定時間,但要量化「離震盪還有多遠」,頻域工具更銳利。核心想法是:把 $s = j\omega$ 代入轉移函數,$G(j\omega)$ 就告訴你「當輸入是頻率 $\omega$ 的正弦波時,輸出的振幅放大幾倍、相位落後幾度」。把所有頻率的振幅(取分貝)與相位畫出來,就是波德圖(Bode plot)

對一階系統 $G(s) = \dfrac{K_{dc}}{\tau_m s + 1}$,其頻率響應的幅值為:

$$ |G(j\omega)| = \frac{K_{dc}}{\sqrt{(\tau_m\omega)^2 + 1}} $$

當 $\omega = 1/\tau_m$ 時(轉折頻率,corner frequency),幅值降為直流增益的 $1/\sqrt{2} \approx 0.707$ 倍,即下降 3 dB。這個頻率就是系統的頻寬(bandwidth) $\omega_B$——超過它,系統就「跟不上」輸入變化了。沿用前例 $\tau_m = 0.0828\ \text{s}$:

$$ \omega_B = \frac{1}{\tau_m} \approx 12.1\ \text{rad/s} \approx 1.92\ \text{Hz} $$

頻寬把入門篇的取樣定理串了起來: 系統頻寬約 2 Hz,依「控制頻率至少為頻寬 10–20 倍」的經驗法則,控制迴圈該跑在 20–40 Hz 以上;前面算的 $T_s \approx 4\ \text{ms}$(250 Hz)綽綽有餘。

穩定餘裕:把「離震盪多遠」變成數字

現在回答開頭的問題:怎麼量化系統離不穩定有多遠?答案是增益餘裕(gain margin, GM)相位餘裕(phase margin, PM)

一個負回授系統會在「開環增益為 1(0 dB)且相位剛好 $-180°$」時陷入持續振盪——因為此時負回授變成了正回授。穩定餘裕就是量「我們離這個危險點還有多少」:

  • 相位餘裕 PM:在增益剛好為 0 dB 的頻率(增益穿越頻率 $\omega_{gc}$)處,相位比 $-180°$ 還高出多少度。
  • 增益餘裕 GM:在相位剛好為 $-180°$ 的頻率(相位穿越頻率 $\omega_{pc}$)處,增益還差多少 dB 才到 0 dB。

兩者越大越安全。實務經驗值:PM 約 $45°\sim60°$、GM 約 $6\sim12\ \text{dB}$ 是健康系統的甜蜜區。有個極實用的近似:對主導極點為二階的系統,相位餘裕與阻尼比近似滿足

$$ \zeta \approx \frac{PM\,(\text{度})}{100} $$

所以 $PM = 70°$ 對應 $\zeta \approx 0.7$——和我們前面從超調規格算出的阻尼比完全呼應。這就是頻域與時域的美妙統一:你在波德圖上看到「相位餘裕 70 度」,就等於在階躍響應上看到「超調約 5%」。

回到老闆的負載問題:當 $J$ 變兩倍,開環增益曲線整體上移、相位曲線下滑,增益穿越頻率 $\omega_{gc}$ 移動,相位餘裕可能從原本的安全 $50°$ 掉到 $10°$ 甚至負值。$PM < 0$ 就是發散震盪。手調 PID 之所以「換負載就全毀」,正是因為它原本的相位餘裕太小,禁不起參數漂移——而你當初根本不知道餘裕有多少。 把系統建模、畫出波德圖、保留足夠餘裕,才是穩健(robust)設計。

重點回顧

  • 轉移函數 $G(s)$ 把時域微分方程壓成 s 域分式,其分母的根(極點)是系統的「指紋」,完全決定動態;直流馬達因 $\tau_e \ll \tau_m$ 常可從二階近似為一階 $\dfrac{K_{dc}}{\tau_m s+1}$。
  • 二階系統由自然頻率 $\omega_n$ 與阻尼比 $\zeta$ 主宰;超調 $M_p = e^{-\pi\zeta/\sqrt{1-\zeta^2}}$ 只跟 $\zeta$ 有關,安定時間 $t_s \approx 4/(\zeta\omega_n)$,可從規格反推目標極點位置。
  • 極點配置法讓設計從「亂試 PID」升級為「先定極點、再解增益」,把調參數變成可重複的工程程序。
  • 波德圖與頻寬揭示系統能跟上多快的輸入;頻寬 $\omega_B = 1/\tau_m$ 直接決定該用多高的控制頻率,與取樣定理一脈相承。
  • 增益餘裕與相位餘裕量化「離震盪多遠」:健康值約 PM $45°\sim60°$、GM $6\sim12\ \text{dB}$,且 $\zeta \approx PM/100$ 把頻域與時域接通;餘裕不足正是「換負載就全毀」的數學病因。

深入探討(研究所視角)

本文用單輸入單輸出(SISO)的線性轉移函數打通了時域與頻域,但真實機電系統的前沿挑戰,往往來自這些假設的失效。

根軌跡與參數變動。 老闆換負載讓 $J$ 連續變化,閉環極點會在 s 平面上劃出一條軌跡,這正是根軌跡法(root locus)研究的對象:當某個參數(如控制器增益或負載慣量)從 0 掃到無限大時,極點如何遷移、何時跨越虛軸進入不穩定區。它讓你一眼看出「設計對參數變動的敏感度」,是穩健性分析的幾何利器。

非最小相位與時間延遲。 入門篇的感測濾波、嵌入式運算、PWM 都引入純時間延遲(time delay) $e^{-sT_d}$。延遲在波德圖上只增加相位落後、不改變增益,因此會無情地吃掉相位餘裕——這解釋了為何「多加一級濾波器讓訊號更乾淨」反而可能讓系統失穩。更棘手的是非最小相位(non-minimum phase)系統(右半平面零點),它們有「先往反方向動再回正」的反直覺響應,存在理論上的頻寬上限,是控制設計的硬骨頭。

從線性到非線性與不確定性。 真實致動器有飽和(saturation)、齒輪有背隙(backlash)、接觸面有庫倫摩擦(Coulomb friction),這些非線性讓線性轉移函數只在小訊號附近成立。研究所層級會用李雅普諾夫穩定性(Lyapunov stability)直接對非線性系統證明穩定,或用強健控制($H_\infty$ control)明確地把「模型不確定性」納入設計,保證在一整個參數範圍內都穩定——這才是真正回答「換負載也不會毀」的嚴謹途徑。

前沿方向。 當系統難以建模時,資料驅動控制(data-driven control)自適應控制(adaptive control)讓控制器在運行中即時辨識系統參數並自我調整;模型預測控制(MPC)則在每個時步求解帶約束的最佳化,天然處理飽和與安全限制。但無論工具多先進,本文的主線始終是底層素養:先理解極點在哪、頻寬多寬、餘裕多大,你才知道一個「會自己穩下來」的系統,究竟穩在哪裡、又會在哪裡失守。

AI 共讀助教正在陪你讀:為什麼你的 PID 參數調到「剛剛好」,換一顆負載就全毀了?
嗨!我是這篇文章的共讀助教,只根據〈為什麼你的 PID 參數調到「剛剛好」,換一顆負載就全毀了?〉的內容回答。可以問我「解釋某段」「舉個例子」「出題考我」,或反白文中段落後點下方「解釋選取段落」。