## 什麼是 internal model principle intrernal model控制簡稱為IMP或是IMC。一言以蔽之就是只要在控制系統的閉迴路中加入代表要追蹤(tracking)的參考訊號(ref)的模型,並維持系統的穩定性,那系統的穩態誤差就會為0。 用控制理論的說法就會是系統閉迴路的pole必須包含tracking ref。例如要零誤差追蹤一個step function,那整個迴路的轉移函數中就必須有$\frac{1}{s}$這一項。 > 如此一來控制系統教科書中type 0, 1, 2就不用死背了,用IMP來理解就可以ㄌ~ ## IMP控制器的目的 當系統已經有已知的追蹤目標或是固定頻率的外部干擾,此時用internal model就會有滿好的效果。優點是可以有效消除已知頻率的干擾而增進追蹤效能,而缺點是如果外部干擾或是目標並非符合本來設好的內部模型,那IMP的效益不大。而且IMP對於系統內部的穩定性沒有幫助。 ## IMP 範例說明 文獻中IMP有相當多的實踐方式,可以將內部模型放在不同的地方。這邊用一維的系統加上並聯的IMP來作範例。 下圖是一個經典的迴授系統,$r$ 是參考輸入 reference、$e$ 是追蹤誤差、$y$ 是系統的實際輸出、$C$ 是控制器、$P$ 則是受控體 plant。 ![image](https://hackmd.io/_uploads/HJDisd3Oxl.png =80%x) 定義 Sensitivity function為誤差和參考輸入的比值,數學式表示為: $$ S :=\frac{E(s)}{R(s)} = \frac{1}{1+PC} $$ 如果我希望這個迴授系統可以追蹤特定頻率為 $f_t$ 的訊號,那系統的sensitivity function應該長得像下圖有著notch的形狀,在頻率 $f_t$ 的位置有一個最低點,代表系統對於頻率 $f_t$ 的訊號追蹤誤差很低。 ![IMG_0200](https://hackmd.io/_uploads/rkstwUgFee.jpg =40%x) 由此可知,要達到這樣的Sensitivity形狀,位在Sensitivity數學式分母的控制器 $C$ 就必須是一個peak filter的形狀。 ![IMG_0201](https://hackmd.io/_uploads/SJ1luLgYel.jpg =40%x) 在s domain裡面,peak / notch filter的transfer function如下,$\zeta$ 影響notch的寬度; $\omega_0$影響濾波器的中心頻率; $a$ 則是決定濾波器型態和增益。 $$ N(s)=\frac{s^2+2a\zeta\omega_0s+\omega_0^2}{s^2+2\zeta\omega_0s+\omega_0^2} $$ > 當$a<1$時為notch filter;當$a>1$時則為peak filter 實務上無論是控制馬達或是機器人都是在離散域做操作,因此所有的轉移函數都要是z domain。設計方法有兩種: - 在s domain設計好 $N(s)$ 然後在MATLAB中用`c2d()`指令轉為z domain - 直接設計 $N(z)$。notch的數學式可以寫為: $$ N(z) = \frac{z^2-2z\cos{\omega_0}+1}{z^2-2bz\cos{\omega_0}+b^2} $$ 其中$\omega_0$的數值會和中心頻率$f_t$以及系統取樣時間 $T_s$有關: $$ \omega_0 = 2\pi\times f_t \times T_s $$ 然而如果直接把peak filter放在控制器的位置會有系統不穩定性的疑慮,系統的root locus可能會是下面的圖形: ![img](https://hackmd.io/_uploads/r1NRa8xtge.jpg =80%x) 因此需要額外**並聯一個PID控制器**來負責系統的穩定性,控制方塊圖如下,$N$ 為peak filter。 ![imp](https://hackmd.io/_uploads/r1fOlPxFgl.png=80%x) 其中 $\alpha$ 是一個可以調整的gain,設定的相對小一點就可以避免系統不穩定。這樣就可以利用IMP來追蹤特定頻率的訊號。 ## 參考資料 - 2022 **EE5128 Linear Systems** lecture notes - 2023 **EE5071 Precision Motion Control** lecture notes