控制教程 —— 介紹篇:5.頻域方法控制器設計(粗略版)

採用頻域響應方法來設計控制器可能不如之前研究的其他方法直觀。但是,它具有某些優勢,尤其是在實際情況下,例如根據實測數據來對系統進行建模的時候。在本教程中,我們將看到如何使用系統的開環頻率響應來預測其閉環時間響應。
本教程中使用的主要MATLAB命令爲:

增益和相位裕度

介紹篇:系統分析博文中已經瞭解,系統的頻率響應是指在正弦輸入下,評估系統輸出對於正弦輸入的縮放和平移的表現。正弦輸出的縮放和平移隨頻率變化的方式提供了有關係統時間響應的有用信息,特別地,將系統的頻率響應用於確定系統的“魯棒性”。例如,系統離不穩定有多近?在這裏,我們使用增益裕度和相位裕度這兩個量來表示系統在不穩定之前具有的裕度。
考慮以下通用的反饋系統:
請添加圖片描述
其中 KK 是可變增益,而 G(s)G(s) 是被控對象。增益裕度定義爲使閉環系統不穩定所需的開環增益的變化。增益裕度更高的系統在閉環不穩定之前,可以承受較大的系統參數變化。
相位裕度定義爲使閉環系統不穩定所需的開環相移變化。相位裕度還可以測量系統對時間延遲的容忍度。如果環路中的時間延遲大於 PM/ωgcPM/\omega_{gc} (其中 ωgc\omega_{gc} 是 rad/sec爲單位,PMPM 是增益爲0時對應的相位欲度,轉換成弧度),則閉環系統將變得不穩定。時間延遲 τd\tau_d 可以看作是框圖前饋路徑中的一個額外模塊,它會給系統增加相位滯後,但對增益沒有影響,也就是說,時間延遲可以表示爲大小爲1且相位爲 ωτd-\omega\tau_d 的模塊。
現在,我們將不關心這些延遲來源於哪裏,而僅考慮伯德圖上的增益和相位裕度。
閉環系統的相位裕度是開環系統的相位在開環系統幅度爲0dB的頻率下達到 180°-180° 所需的額外相位滯後量(增益穿越頻率 ωgc\omega_{gc})。同樣,增益裕度是開環系統的相位等於 180°-180° 所需的額外增益裕量(通常以dB爲單位)(相位穿越頻率 ωpc\omega_{pc})。
在這裏插入圖片描述
關於相位裕量的一個優勢時,在更改環路增益時,無需重新繪製伯德圖就可以找到新的相位裕量。如果您還記得,增加增益只會使幅度向上(或向下)移動。這等效與更改幅度圖上的y軸。找到相位裕度僅是找到新的增益交叉頻率並讀取相位裕度的問題。例如,假設您使用以下命令來生成如下所示的伯德圖:

s = tf('s');
G = 50/(s^3 + 9*s^2 + 30*s +40);

bode(G)
grid on
title('Bode Plot with No Gain')

在這裏插入圖片描述
您可以看到相位裕度約爲100度,現在,假設您通過輸入命令bode(100*G)增加了100的增益。您可以得到以下:

bode(100*G)
grid on
title('Bode Plot with Gain = 100')

在這裏插入圖片描述
如圖所示,相位圖和之前完全一樣,並且幅度圖向上移動了40dB(增益爲100)。現在相位裕度約爲-60度。如果幅度圖的y軸向下移動40dB,則可以得到相同的結果,這樣操作的話,查看第一張伯德圖,找到曲線與-40dB相交的位置,然後讀出相位裕度,它應約爲-60度,與第二個伯德圖相同。
我們可以讓MATLAB使用margin(G)命令計算並顯示增益和相位裕度,該命令返回增益和相位裕度,增益和相位穿越頻率,以及這些量在伯德圖上的位置,參考以下示例:

margin(100*G)

在這裏插入圖片描述

帶寬頻率

帶寬頻率定義爲閉環響應的幅度相比於直流幅度(頻率接近0的幅度)下降3dB時對應的頻率。通常,我們在對頻率響應進行系統設計時,我們是希望根據開環響應來預測其閉環響應,這裏我們將使用二階系統來等效閉環。有些教科書上描述帶寬等於開環響應幅度在-6到-7.5dB之間的頻率,相位在-135°到-225°之間。
爲了說明帶寬頻率的重要性,這裏將顯示輸出如何隨不同的輸入頻率而變化。可以看到,頻率小於 ωbw\omega_{bw}(帶寬頻率)的正弦輸入會被系統良好地跟蹤。頻率大於 ωbw\omega_{bw} 的正弦輸入被衰減(幅度)達到0.707或更大(並且也發生了相移)。
假設我們有以下表示系統的閉環傳遞函數:請添加圖片描述

G = 1/(s^2 + 0.5*s + 1);
bode(G)

在這裏插入圖片描述
由於這是閉環傳遞函數,因此我們的帶寬頻率將是增益對應於-3dB的頻率,從圖中可以得到它約爲1.4rad/s,我們還可以從圖中得知,對於0.3rad的輸入頻率,輸出正弦波的幅值應約爲1,相位偏移幾度(在輸入之後)。對於3rad/s的輸入頻率,輸出幅度應約爲-20dB(或輸入的1/10),相位應接近-180(幾乎完全反相)。我們可以使用lsim命令來模擬系統對正弦輸入的響應。
首先,考慮一個頻率低於 ωbw\omega_{bw} 的正弦輸入,這裏還要好注意,我們關心的是穩態響應,因此,我們調整橫座標來讓穩態響應更加直觀(忽略瞬時相應)。

G = 1/(s^2 + 0.5*s + 1);
w = 0.3;
t = 0:0.1:100;
u = sin(w*t);
[y,t] = lsim(G,u,t);
plot(t,y,t,u)
axis([50 100 -2 2])

在這裏插入圖片描述
注意,輸出(藍色)很好地跟蹤了輸入(紅色)。它可能比輸入延遲約幾度,但是如果將輸入的頻率設置爲高於系統的帶寬頻率,則會得到非常失真的響應(相對於輸入):

G = 1/(s^2 + 0.5*s + 1);
w = 3;
t = 0:0.1:100;
u = sin(w*t);
[y,t] = lsim(G,u,t);
plot(t,y,t,u)
axis([90 100 -1 1])

在這裏插入圖片描述
同樣,正如預期的那樣,幅度大約是輸入幅度的1/10,並且幾乎和輸入相位完全相反(相差180°)。

奈奎斯特圖

奈奎斯特圖使我們能夠通過觀察開環表現來預測閉環系統的穩定性和性能。無論開環穩定性如何,都可以將Nyquist準則用於設計目的(而伯德圖設計方法假設系統在開環中是穩定的)。因此,當伯德圖顯示令人困惑的信息時,我們使用Nyquist準則來確定系統閉環穩定性。
注意:對於虛軸上具有開環極點或者零點的系統,MATLAB nyquist命令不能提供良好的顯示,因此,建議您使用nyquist1.m,該文件可以正確處理虛軸上的極點和零點。
那奎斯特圖基本上是 G(jω)G(j\omega) 的圖,其中 G(s)G(s) 是開環傳遞函數, ω\omega 是頻率,包圍整個右半平面。在繪製奈奎斯特圖時,要同時考慮正頻率(從0到無窮大)和負頻率(從負無窮大到0),我們將以紅色表示正頻率,以綠色表示負頻率。繪製奈奎斯特圖時使用的頻率通常如下所示(如果您可以想象該圖延伸到無窮遠):
在這裏插入圖片描述
但是,如果我們在虛軸上有開環極點或者零點,則不會再這些點處定義 G(s)G(s) ,並且在繪製輪廓時必須在他們周圍畫圈。輪廓示例如下所示:
在這裏插入圖片描述
請注意,輪廓圍繞虛軸上的極點畫圈,如前所述,MATLAB nyquist命令沒有考慮虛軸上的極點或零點,因此會產生錯誤的繪圖。要更正該問題,請下載並使用nyquist1.m,如果在虛軸上有一個極點,則必須使用nyquist1。如果虛軸上沒有極點或零點,或者我們有零極點對消,則可以使用nyquist命令或者nyquist1命令

在研究反饋控制時,我們對G(s)G(s)並不那麼感興趣,而是更關注閉環傳遞函數。在這裏插入圖片描述
如果1+G(s)1+G(s)過原點,則G(s)G(s)將過點-1,因此,奈奎斯特圖在實軸上-1點附近的表現非常重要。但是,標準奈奎斯特圖上的軸可能很難看清這一點,若要更正該問題,可以使用lnyquist.m函數。
使用MATLAB查看簡單的Nyquist圖,我們將定義一下傳遞:
在這裏插入圖片描述

s = tf('s');
G = 0.5/(s - 0.5);
nyquist(G)
axis([-1 0 -1 1])

在這裏插入圖片描述
現在我們來看一下以下傳遞函數的奈奎斯特圖:
在這裏插入圖片描述
請注意,該傳遞函數在原點處有一個極點,我們將看到使用nyquistnyquist1命令之間的區別。

G = (s + 2)/(s^2);
nyquist(G)

在這裏插入圖片描述

nyquist1(G)

在這裏插入圖片描述

lnyquist(G)

在這裏插入圖片描述
注意,標準奈奎斯特圖不正確,特別地,對於半徑接近無窮大(ss接近0)的情況,它無法捕獲奈奎斯特圖的行爲。nyquist1圖是正確的,這使我們可以評估-1點的周圍並應用Nyquist準則,但是很難看到在-1點附近發生了什麼,lnyquist函數採用修改後的比例,該比例在-1點附近保持繪圖的正確性,並保持正確的形狀。

伯德圖的閉環性能

爲了從開環頻率響應預測閉環性能,我們需要做一些假設:

  • 如果我們要使用伯德圖進行設計,則系統必須在開環下穩定。
  • 對於典型的二階系統,如果相位裕度在0到60度之間,則閉環阻尼比大約等於相位裕度除以100,如果相位裕度大於60度,我們需要謹慎使用該結論。
  • 對於典型的二階系統,阻尼比,帶寬頻率和上升時間之間的關係可由附錄部分的公式
  • 您可以使用一個非常粗略的估計是帶寬大約等於自然頻率。
    讓我們使用這些概念爲以下系統設計控制器:
    在這裏插入圖片描述
    其中 C(s)C(s) 是控制器, P(s)P(s)是:
    在這裏插入圖片描述
    設計必須符合以下規範:
  • 零穩態誤差
  • 最大過沖必須小於40%
  • 上升時間必須小於2s

解決此問題的方法有兩種:一種是畫圖,另一種是計算,在MATLAB中,畫圖是比較好的,所有我們採用這個。首先讓我們看一下伯德圖。

P = 10/(1.25*s + 1);
bode(P)
margin(P)

在這裏插入圖片描述
可以從該伯德圖中直接讀取幾個特性,首先,我們可以看到帶寬頻率約爲10rad/s。由於帶寬頻率與自然頻率大致相同(對於此類一階系統),因此上升時間約爲1.8/BW=1.8/10=0.181.8/BW = 1.8/10 = 0.18秒。這是一個粗略的估計,我們可以說上升時間約爲0.2s。
該系統的相位裕度約爲95度,阻尼比=PM/100=PM/100的關係僅在PM<60PM<60時成立(謹慎)。由於系統是一階的,因此不會有過沖現象。
最後一個需要注意的是穩態誤差。穩態誤差也可以直接從伯德圖上讀取。從低頻漸近線與 ω=1rad/s\omega = 1rad/s 線的交點可以找到誤差常數(KpK_pKvK_vKaK_a)。只需將低頻線擴展到 ω=1\omega = 1 即可。此時的大小是誤差常數,由於該系統的伯德圖低頻(頻率=0)處是水平線,因此我們知道該系統的單位反饋爲零型系統。因此,交點很容找到,增益爲20dB(幅度10)。這意味着誤差函數的常數爲10。穩態誤差爲1/(1+Kp)=1/(1+10)=0.0911/(1+K_p) = 1 / (1+10) = 0.091
如果我們的系統是1型而不是0型,則可以通過類似的方法找到穩態誤差常數
在這裏插入圖片描述
讓我們通過查看階躍響應圖來檢查我們的預測

sys_cl = feedback(P,1);
step(sys_cl)
title('Closed-Loop Step Response, No Controller')

在這裏插入圖片描述
如圖所示,我們的預測非常好。該系統的上升時間約爲0.2s,沒有超調,並且穩態誤差約爲9%。現在我們需要選擇一個控制器,使我們能夠滿足設計標準。我們選擇PI控制器是因爲對於階躍輸入它將獲得零穩態誤差。同樣,PI控制器有一個零點,我們可以調整它,這爲我們提供了額外的設計靈活性,回想一下,PI控制器具有如下形式:
在這裏插入圖片描述
我們需要找到的第一件事就是阻尼比,對應於40%的超調。將這個值代入與過沖和阻尼比相關的方程式中,控制教程 —— 介紹篇:2.系統分析
ζ=ln(Mp)π2+ln2(Mp) \zeta = \frac{-\ln(Mp)}{\sqrt{\pi^2+\ln^2(Mp)}}
我們發現與該過沖對應的阻尼比約爲0.28。因此,我們的相位裕度應該至少爲30度。如果我們希望上升時間小於1.75秒,則帶寬頻率必須大於或等於12。
既然我們知道了所需的相位裕度和帶寬頻率,就可以開始設計了。記住,我們在看開環伯德圖,因此,我們的帶寬頻率將對應大約-7dB增益的頻率
讓我們看看PI控制器的積分器如何影響我們的響應。
這裏僅添加一個積分項

P = 10/(1.25*s + 1);
C = (s + 1)/s;
bode(C*P, logspace(0,2))

在這裏插入圖片描述
我們的相位裕度和頻率太小,我們將增加一個零點,並將零點放置在-1處,再來看看發生了什麼:

P = 10/(1.25*s + 1);
C = 5*((s + 1)/s);
bode(C*P, logspace(0,2))

在這裏插入圖片描述
可以看到新增零點爲-1時,我們的相位裕度大於60度(甚至比預期的過沖更少),我們的帶寬頻率約爲11rad/s,這時將嘗試提高貸款頻率,而又不會產生更多的相位裕量,讓我們嘗試將增益增加5,看看會發生什麼。

P = 10/(1.25*s + 1);
C = 5*((s + 1)/s);
bode(C*P, logspace(0,2))

在這裏插入圖片描述
看起來變好了,讓我們看看階躍響應:
在這裏插入圖片描述
如圖所示,閉環響應比我們期望的要好,但是這種方法需要我們嘗試使用極點和/或零點來調整系統的增益和相位。

奈奎斯特圖的閉環穩定性

考慮負反饋系統:
在這裏插入圖片描述
請記住,根據柯西幅角定理, G(s)H(s)G(s)H(s) 的圖包圍 1+j0-1+j0 的次數(N) 等於 1+G(s)H(s)1+G(s)H(s) 的零點個數(Z),減去 1+G(s)H(s)1+G(s)H(s) 的極點個數§,(N = P - Z)。

  • 1+G(s)H(s)1+G(s)H(s)的零點是閉環傳遞函數的極點
  • 1+G(s)H(s)1+G(s)H(s)的極點是開環傳遞函數的極點

根據以上定義:

  • P = G(s)H(s)G(s)H(s) 的開環極點。
  • N = 奈奎斯特圖繞 -1 的次數。
  • -1的順時針包圍圈算作正包圍圈。
  • -1的逆時針包圍圈算作負包圍圈。
  • Z = 閉環系統的右半平面(正,實)極點。

與這三個量相關的奈奎斯特未定性判據爲:

在這裏插入圖片描述
注意:這只是奈奎斯特准則的一種約束。另一個約束指出,正數N表示逆時針或逆時針包圍圈 -1 ,這種情況下方程式變成Z = P -N。在這個教程中,我們將順時針包圍使用正。
知道開環的右半平面(不穩定)極點數§,以及由奈奎斯特圖(N)得出的 -1 的包圍圈數,我們可以確定系統的閉環穩定性。如果 Z = P + N爲非0正數,則閉環系統不穩定。
我們也可以使用Nyquist圖來找到使閉環單位反饋系統穩定的增益範圍,我們將測試如下系統:
在這裏插入圖片描述
在這裏插入圖片描述
該系統具有增益 KK,可以改變該增益來修改閉環系統的響應。但是,由於必須確保閉環穩定,我們將看到只能在特定範圍內修改該增益。這就是我們要尋找的增益範圍。
我們需要做的第一件事是在開環傳遞函數中找到正實極點數。

roots([1 -8 15])

在這裏插入圖片描述
開環傳遞函數的兩個極點均爲正。因此,我們需要Nyquist圖的兩個逆時針(N = -2) 包圍,以便具有穩定的閉環系統。如果包圍數量少於兩個或包圍數量不是逆時針,我們的系統將不穩定。
讓我們看一下奈奎斯特圖,增益爲1:
在這裏插入圖片描述
有兩個逆時針 -1 。因此,系統在增益爲 1 時使穩定的。現在,我們看到將增益增加到20時系統的表現:

nyquist(20*G)

在這裏插入圖片描述
從圖中可以看出,圓圈是增大的,說明無論增加多少增益,閉環系統都是穩定的。但是,如果我們減小增益,該圖將縮小,系統可能變得不穩定。

nyquist(0.5*G)

在這裏插入圖片描述
系統現在不穩定,通過反覆試驗,我們發現該系統在增益小於0.80時將變得不穩定,我們可以通過放大奈奎斯特圖以及查看閉環階躍響應(增益爲0.79,0.80,0.81)來驗證結果。
增益裕度
我們已經將增益裕度定義爲分貝(dB),表示開環增益的變化,在-180度相移下要求開環增益等於0dB。現在,我們將找出來源。首先,假設如果沒有 -1 的奈奎斯特包圍,我們的系統將是穩定的,例如:
在這裏插入圖片描述
可以發現右半平面沒有開環極點,因此,如果沒有 -1 的奈奎斯特環繞,則右半平面中沒有閉環極點,現在,在閉環系統變得不穩定之前,我們可以改變增益多少,讓我們看下面的圖:
在這裏插入圖片描述
如果增益增加到一定範圍內,則該圖表示的開環系統將在閉環中變得不穩定。負實軸區域介於 -1/a (定義爲開環具有-180度相位的點,即該圖與實軸交叉的點)與 -1 之間的負值,代表在閉環不穩定之前可以容忍的增益量。
可以意識到如果增加增益a,該圖將達到 -1:
G(jω)=1a G(j\omega) = \frac{-1}{a}
或者:
aG(jω)=1 aG(j\omega) = -1 因此,我們說增益裕度是一個單位,但是,我們之前提到,增益裕度通常以分貝爲單位,因此,增益裕度爲:
GM=20log10(a) dB GM = 20\log_{10}(a)\ \mathrm{dB} 現在,我們將找到之前看過的穩定開環函數的增益裕度:
G(s)=50s3+9s2+30s+40 G(s) = \frac{50}{s^3 + 9s^2 + 30s + 40} 並且可以通過輸入一下命令來看奈奎斯特圖

G = 50/(s^3 + 9*s^2 + 30*s + 20);
nyquist(G)

在這裏插入圖片描述
如前所述,找到增益裕度所需要的就是找到a,爲此,我們需要找到恰好有-180度相移的點。着意味着此時的傳遞函數爲實數(沒有虛部)。分子已經是實數,所以我們只需要看分母,當 s=jωs=j\omega時,分母中唯一具有虛部的項是s的奇次冪。因此,要想 G(jw)G(jw) 都是實數,則必須有:
jω3+30jω=0 -j\omega^3 + 30j\omega = 0 着意味着 ω=0\omega = 0 (這是Nyquist圖中最右邊額點) 或 ω=30\omega = \sqrt{30},然後,我們可以使用polyval找到 G(jω)G(j\omega)的值:

w = sqrt(30);
polyval(50,j*w)/polyval([1 9 30 40],j*w)

在這裏插入圖片描述
結果是 -0.2174 + 0i,虛部爲0,可以看出答案是正確的。我們還可以通過再次查看奈奎斯特圖來驗證這一點。
我們發現 -180度相移發生在 -0.2174 + 0i。該點以前定義爲 - 1/a 。 可以得出:
1a=0.2174 \frac{-1}{a} = -0.2174 a=4.6 \Rightarrow a = 4.6 GM=20log10(4.6)=13.26 dB \Rightarrow GM = 20\log_{10}(4.6) = 13.26\ \mathrm{dB}
現在,我們有了增益裕度。讓我們看一下使用a=4.6的增益並放大奈奎斯特圖來看準確性如何。

a = 4.6;
nyquist(a*G)

在這裏插入圖片描述
相位裕度
我們已經討論了相位裕度的重要性。因此,我們只會談論這個概念的來源,我們將相位裕度定義爲單位增益所需的開環相移變化,以使閉環系統不穩定,讓我們看一下此概念用圖表示,
在這裏插入圖片描述
讓我回顧之前的分析,如果奈奎斯特圖圍繞 -1,則該系統在閉環中將不穩定。但是,我們還必須意識到,如果將圖移動 θ\theta ,它將在負實軸上碰到 -1。因此,使該系統在閉環中臨界穩定所需要的角度稱爲相位裕度(以度爲單位)。爲了找到測量該角度的點,我們繪製了一個半徑爲 1 的圓,在奈奎斯特圖中找到幅度爲1(增益爲0dB)的點,並測量該點到-180度的相移的角度。

附錄

下面是函數wbw.m,給定響應的阻尼比和上升時間或穩定時間,此函數將返回系統的近似帶寬頻率。要在MATLAB中使用wbw.m函數,請在命令行中輸入wbw。首先將提示您輸入阻尼比,然後如果您使用穩定時間,則輸入”0“,如果您使用穩定時間,則輸入”1“。最後,將要求您提供所需的建立時間和峯值時間,然後將返回帶寬頻率。

   function[] = wbw()
         DR = input('Damping Ratio?    ');
         n = 0;
         n = input('Settling Time(0) or Peak Time(1)?   ');
         if n == 0
         ts = input('Settling Time?   ');
         temp1 = sqrt((4*DR^4) - (4*DR^2) +2);
         temp2 =  1- (2*DR^2);
         temp3 = 4/(ts*DR);
         Wbw = temp3*sqrt(temp1 + temp2)
         end
         if n ==1
         ts = input('Peak Time?   ');
         temp1 = sqrt((4*DR^4) - (4*DR^2) +2);
         temp2 =  1- (2*DR^2);
         temp3 = ts*sqrt( 1- DR^2);
         temp4 = pi/temp3;
         Wbw = temp4*sqrt(temp1 + temp2)
         end
         
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章