控制系統仿真簡易教程

 

  • 傳遞函數的構建請你們注意公式以及函數的格式!

    要進行控制系統的仿真那麼傳遞函數確定少不了,那麼它有幾種常見的形式以及如何利用matlab建立呢? 函數

  1. 兩個多項式相除的形式

    如何構建呢?嘿嘿,以下: 性能

     

    例如 : ui

    代碼: spa

        num=[8 24 16]; 3d

      den=[1 12 47 60 0]; rest

      G0=tf(num,den) blog

結果: 性能分析

對於離散系統一樣適用,只不過增長了採樣週期, bfc

例如: grid

採樣週期爲0.5s。

代碼:

 

   num=[1 1];

    den=[1 -3 2];

    Gz=tf(num,den,'Ts',0.5)

具體語句格式:

結果以下:

  1. 零奇點形式

    你們都知道這種形式的標準公式爲:

    離散狀況:

    咱們從他能夠看出三個東西:1,零點z;2,極點p;3,增益K;

    構造格式以下:(你們固然也能夠把他展開,用tf構建)

    例如:

    代碼:

        z=[-5 -2-2j -2+2j];

      p=[-4 -3 -2 -1];

      K=6;

      G=zpk(z,p,K)

結果以下:

離散的狀況就不用說了。

  1. 通常狀況,也就是既沒有化成多項式相除的形式,也沒有化成零極點形式,以下:

第一種方法:(具備通用性)

首先須要指明函數中的's',而後就能夠構造符號函數了。

代碼以下:

  s=tf('s');

G=5*(s^2+4)/((s+2)^3*(s^2+2*s+2)*(s^2+5))

第一句指明用s代替tf函數中的's'

結果以下:

對於離散系統一樣適用,只不過s變成了z並加上採樣時間而已。

例如對於上面離散的例子:

z=tf('z',0.5);

H=(z+1)/(z^2-3*z+2)

結果:

第二種形式:(利用conv()函數,固然也具備通用性,矩陣乘法)

因爲咱們將多項式表示爲一維矩陣的形式,故多項式的運算固然能夠用矩陣的相關運算來代替了(matlab不是稱爲矩陣實驗室嗎)。

C = conv(A, B) convolves vectors A and B.

格式以下:

對於

代碼:

結果就不貼了。

  • 離散函數的離散化以及離散函數的連續化
  1. 連續函數的離散化

所用函數爲函數c2d(sysc,Ts,'method');

sysc-所須要離散的連續傳遞函數

Ts-採樣週期

Method-離散化方法,經常使用有如下幾種:

例如:

採樣週期爲1s。

代碼:

num=[8 24 16];

den=[1 12 47 60 0];

G=tf(num,den);

Ts=1;

G1=c2d(G,Ts,'zoh')

G2=c2d(G,Ts,'tustin')

結果以下:

 

 

  1. 離散系統的連續化

調用函數爲 d2c(sysd,'method'); method與c2d()函數同樣,在這裏就不囉嗦了。

  • 系統性能分析

    如今已經知道了傳遞函數的構建與離散,還須要構造閉環傳函,函數爲feedback(Gs,Hs); 簡單吧!

  1. 時域系統

    單位階躍響應:step(sysc);

    單位衝擊響應:impulse(sysc);

    其餘。。。。。。

    任意函數:lsim();

    調用格式:

     

    例如開環傳函以下,求單位負反饋時單位階躍響應:

    代碼:

    clear;

    num=60;

    den=[1 4 0];

    Gs=tf(num,den);

    close_Gs=feedback(Gs,1);

    step(close_Gs)

    結果以下:

    關於圖像,直接在圖像上右鍵,即可以看到系統的相關性能參數,好比超調量,上升時間,調整時間等。

零極點分佈圖:pzmap(傳遞函數);根軌跡分佈圖:rlocus(傳遞函數)

例如:(只舉例零極點分佈圖)

sys=tf([3 2 5 4 6],[1 3 4 2 7 2]);
pzmap(sys)
grid on

獲得:叉符號表明極點圓圈符號是零點,咱們能夠很是清楚的看到,這個系統具備右半平面的極點,因此這個系統是不穩定的

  1. 離散系統:

    與連續系統相同。

  • 頻域分析

     

  1. bode圖的繪製

    matlab提供了函數bode(),來繪製bode圖;函數margin(),來求解幅值穩定裕度與相位穩定裕度。

    格式:

    例如:傳遞函數

    num=[10^9 0];

den=conv([1 1000],[1 10^7]);

sys=tf(num,den);

bode(sys);

grid;

結果:

  1. Nyquist圖的繪製

    格式:

    例如:

   num=[10^9 0];

den=conv([1 1000],[1 10^7]);

sys=tf(num,den);

%bode(sys);

nyquist(sys);

grid;

結果:

相關文章
相關標籤/搜索