1. 程式人生 > 其它 >simulink降維觀測器設計_14. SISO反饋控制器設計 (5):積分控制 Integral Control

simulink降維觀測器設計_14. SISO反饋控制器設計 (5):積分控制 Integral Control

技術標籤:simulink降維觀測器設計

079eacbe-f425-eb11-8da9-e4434bdf6706.png

這篇簡單介紹一下LTI系統的積分控制(integral control)。我們在PID控制中已經講過積分控制的主要作用。引入積分控制的目的就是為了消除系統的穩態誤差,尤其是當擾動或者系統實際引數發生變動時,即魯棒性(或者穩健性,robustness)。當然積分控制有其弊端,在實踐中需要通過分析決定是否採用積分控制。

我繼續順著[1]的7.10節講解這部分,同時也將參考其他資料。

本篇目錄:

1. 積分控制 Integral control

2. 設計例項 Example of integral control

3. 積分飽和 Integral windup and Anti-windup Control


1. 積分控制 Integral control

現在假設有一個LTI系統的state-space representation:

其中

是外界常值擾動或者step訊號 ,可以是一個scalar,也可以是一個vector。我們之前設計的全狀態反饋控制律:

其中

是觀測器估計狀態, 是一個前置增益模組使得系統輸出穩態能夠和參考輸入的穩態一致,即讓系統的DC gain保持為1。 是一個與state-space representation中矩陣 都有關係的,所以如果出現矩陣引數的微小變動,或者外界環境對系統動態的擾動,最終反饋控制律都無法準確地以(2)來表示。所以我們目標是,即使出現上述的不確定性,依舊能夠實現一個效果滿意的參考訊號追蹤效果。這類控制,常常被稱之為 魯棒控制設計(robust control)。
積分控制是具有一定robustness的控制策略。

讓我們考慮追蹤誤差

,引入一個新的變數 ,使得其滿足:

讓我們把(1)(3)結合起來構成一個新系統:

用矩陣表示:

那麼只要設計一個反饋控制律:

使得系統穩定即可。 最終系統示意圖如下:

0a9eacbe-f425-eb11-8da9-e4434bdf6706.png

這個閉環系統的特徵值滿足下面定理,其證明見[2. Theorem 8.5]:

如果(A,B)是controllable的,並且開環系統的傳遞函式不存在 的零點,那麼(6)可以對(5)的系統矩陣進行任意的pole-placement。(complex eigenvalues仍然滿足conjugate條件)

提一點直觀的理解,如果plant的開環傳遞函式存在

的零點,即分子有 ,那麼其會與積分器 發生零極點相消,於是能控性就發生了破壞。

2. 設計例項 Example of integral control

我們來考慮[1]中的一個控制設計問題,然後看看如何設計一個控制器,並且加入積分控制來使得系統具有disturbance rejection和robustness。

問:考慮一個開環系統的傳遞函式為:

現在設計積分控制,使得整個閉環系統(二階)的兩個特徵值都在

。同時,使用full-state estimator去估計,把觀測器極點設定在-10。

解:我們確定plant開環系統的state-space representation:

s=tf('s');
G=1/(s+3); 
>>sys=ss(G)
sys =
 
  A = 
       x1
   x1  -3
 
  B = 
       u1
   x1   1
 
  C = 
       x1
   y1   1
 
  D = 
       u1
   y1   0
 
Continuous-time state-space model.

根據(5),我們得到加入積分控制後的整體開環系統的state-space representation:

現在我們用acker命令計算得到feedback增益(因為place不能place重根):

>> Abar=[-3 0;1 0];  %整體系統的矩陣
>> Bbar=[1;0]; 
>> K=acker(Abar,Bbar,[-5 -5])

K =

     7    25

設計 full-state estimator,把觀測器的極點設定在

>> L=acker(sys.A',sys.C',-10)'

L =

     7

0c9eacbe-f425-eb11-8da9-e4434bdf6706.png

我在simulink裡面搭了一下:

0e9eacbe-f425-eb11-8da9-e4434bdf6706.png

加入了step input作為擾動

或者修改開環傳遞函式的極點(比如從-3改到-3.2,-2.8等等),能夠看到輸出的結果仍然能夠跟蹤step:

0f9eacbe-f425-eb11-8da9-e4434bdf6706.png

這表明無論是step input,或者是常值擾動,積分控制都能有效地抑制其影響,使得系統具有一定程度的robustness和disturbance rejection的能力。但是對於其他型別的擾動,其效果就未必很好,我們之後再介紹其他設計方法。

注意自己在simulink裡搭建時,狀態觀測器會被離散,如果離散的sample time小於ode的sample time,那麼會引發比較大的響應振盪,也就是會產生比較大的超調。這是離散系統的設計問題,我們這裡把兩個sample time保證一樣,可以看到比較理想的無超調曲線。(因為我們不是把兩個根都放置在了-5嘛。)

3. 積分飽和 Integral windup and Anti-windup Control

積分控制最常見存在於在PID控制器中。積分控制能抑制常值擾動,但是對於隨時變化的一些擾動卻效果不佳。基於這個事實,一般的想法總是,有I控制總比沒有好。可是,誤差積分控制的引入還容易引起系統瞬態變差。導致這個現象的最常見的原因就是積分飽和(Integral windup)現象。

在上述設計過程中,我們對於理論控制訊號的幅值沒有做過多的限定,但是實際控制系統中的驅動器(actuator)的輸出往往是限幅的,也就是存在output limit,也同時有上界與下界。如果根據control law計算得到的控制訊號過大,導致actuator達到了output limit(saturation),比如達到了upper bound,那麼這時候實際的控制輸入會被限制在一個常值,而理論的控制輸入可能還在不斷增加,所以積分器的輸出還在不斷地增長。誤差在實際控制的作用小可能從大到小不斷減小。當系統輸出與參考訊號的誤差變號時,積分器的輸出開始減小,理論控制訊號也會開始減小,但是由於此時理論控制訊號可能已經遠超actuator的output limit,進入了所謂的飽和區(windup),所以理論控制訊號需要退出飽和區,回到output limit才能改變此時actuator的實際輸出。在退出飽和區之前,實際actuator的輸出不會發生改變,直到理論控制訊號回到actuator的有效作用區。那麼在這段進入飽和和退出飽和區的這段時間,反饋訊號實際上是失靈的,系統行為將不受設計所控制發生,系統輸出繼續增長,產生很大的超調。可以參考下面這篇文章的演示去理解:

蘇小蛇Arrogance:Anti Windup設計簡介​zhuanlan.zhihu.com

在process control中,積分控制也被稱為reset control。在沒有積分控制的時候,如果說set point被設定到了10,實際輸出只能達到9.9。這時候操作人員需要手動的把set point給reset到10.1,這樣才能得到10的結果。而採用了積分控制之後,系統就能自動跟蹤到set point 10,所以稱integral control為reset control。

那麼解決這個問題的辦法,通常稱之為integrator anti-windup。解決windup問題要回歸積分器本身:由於積分器

本身是個不穩定環節,如果actuator達到limit了,那麼反饋控制迴路實際就被斷開了,那麼積分器的輸出就會不斷增長。那麼為了實現anti-windup,我們需要設計控制迴路或者某個裝置使得積分控制器本身能夠被穩定下來。能夠實現這樣效果的電路或者裝置都起到了anti-windup的作用。當然 的選擇過大是導致windup的直接原因,選擇一個合適的 可以有效避免windup。

對於一個採用PI控制器的反饋控制系統,有如下結構,在

之後存在一個非線性模組:saturation,使得實際plant的輸入受到限制。

119eacbe-f425-eb11-8da9-e4434bdf6706.png

Anti-windup有很多種schemes,比較容易實現的一種就是在發生windup時,通過邏輯電路直接關閉積分器,使其失效,當實際控制回到actuator的有效區時,再啟動積分器。在[1]中給出了兩種等效的anti-windup方案,如(a)和(b)所示,兩者實際上是一回事,只是前者容易理解,後者容易實現。

129eacbe-f425-eb11-8da9-e4434bdf6706.png

169eacbe-f425-eb11-8da9-e4434bdf6706.png

在這種方案中,我們把實際控制輸入

和理論控制輸入 的差值經過一個增益放大後返回到誤差端,使得我們讓積分器的輸入在發生windup時能夠維持在一個很小的值。其中增益 可以取得足夠大使得輸入到積分器中的誤差足夠小。其他的anti-windup的方案有很多,根據系統的特點可能需要設計不同的方案。但最終目的都是要限制積分器的輸出增長過快,穩定積分器。[1,p657]中Example 9.9使用了上面這種方法來防止積分飽和造成的超調。

需要注意,實際中一般會設計一個電子飽和檢測裝置,其閾值低於物理系統的極限位置,以防止物理系統達到極限發生損壞。

參考文獻 Reference

[1] G.F. Franklin, J.D. Powell, A.Emami-Naeini, Feedback Control of Dynamic Systems, 7th Edition, 2014, Pearson

[2] Chi Tsong Chen, Linear System Theory and Design, 3th ed., Oxford University Press, 1998.