MATLAB 創建傳遞函數模型


MATLAB 創建多項式的方式有兩種:

  • 系數多項式
  • 符號多項式


1. 系數多項式

p = [an . . . a1 a0]

p_value = polyval(p, k)  % 計算自變量值為k時,多項式的值

r = roots(p)        % 計算多項式的根


2. 符號多項式

syms t           % 創建符號變量 t

p = t^2+2*t+1        % 創建符號多項式

p_value = subs(p, k)    % 計算自變量值為k時,多項式的值


3. 兩種形式之間相互轉換

sym2poly(p)       % 符號多項式→系數多項式 (包含為零的所有系數)

coeffs(p)          % 符號多項式→系數多項式 (除去為零的所有系數)

poly2sym(p)       % 系數多項式→符號多項式


 

分式有理函數的裂項形式如下:

pi為系統的極點,ci為常數,ks為增益系數。


分式有理函數與裂項形式之間的相互轉換

[c, p, k] = residue(num, den)    % num, den 分別為有理函數的分子和分母

[num, den] = residue(c, p, k)    % 裂項形式→分式函數形式


 

傳遞函數線性定常系統,在零初始條件下,以復數為變量的有理函數。

描述的是系統輸入與輸出之間的關系,如下所示:

 


創建傳遞函數命令一

sys = tf(num, den)

創建一個時間連續傳遞函數。


創建傳遞函數命令二

sys = zpk(z, p, k)      % z, p 均為陣列,包含系統所有的零、極點,k 為增益系數。

              % 當系統傳遞函數沒有零點時,僅輸入 z = [ ]

創建一個“零-極點”形式的傳遞函數,如下所示:

能直觀地看出系統的零點、極點。

創建傳遞函數命令三

s = tf('s')        % 創建多項式形式傳遞函數的變量 s

s = zpk('s')       % 創建系數形式傳遞函數的變量 s

同樣地,上述兩種形式傳遞函數之間可以互相轉換:

s = tf('s')        % 將原本系數形式的傳遞函數的變量 s 轉換為多項式形式

s = zpk('s')       % 將原本多項式形式的傳遞函數的變量 s 轉換為系數形式

此種方法類似於創建符號多項式,先用“syms t”聲明一個符號變量 t,再創建多項式。

主要用於子系統傳遞函數,而系統總傳遞函數未知的場景中。


互相轉換方法

分式形式(多項式形式)⇌ “零點-極點-增益”形式(系數形式)

1. 分式形式“零點-極點-增益”形式

sys = tf(num, den)      % 分式形式傳遞函數

sys_zpk = zpk(sys)    % 分式形式的傳遞函數→“零點-極點-增益”形式的傳遞函數

或者

[z, p, k] = tf2zp(num, den) % tf2zp(num, den) 輸入“分子-分母”,返回傳遞函數的“z, p, k”

sys = zpk(z, p, k)      % 即上面的“創建傳遞函數命令二

2. “零點-極點-增益”形式→分式形式

sys = zpk(z, p, k)

sys_tf = tf(sys)       % “零點-極點-增益”形式的傳遞函數→分式形式的傳遞函數

或者

[num, den] = zp2tf(z, p, k)   % zp2tf(z, p, k) 輸入“z, p, k”,返回傳遞函數的“分子-分母”

sys = tf(num, den)    % 即上面的“創建傳遞函數命令一


 


練習題 1:

用tf(num, den)命令創建如下所示傳遞函數,並將其轉換為“零點-極點-增益”形式。

解答:

num = [1 1];
den = [1 3 1];
sys = tf(num, den)
sys_zpk = zpk(sys)

 

練習題 2:

用zpk(z, p, k)命令創建如下所示傳遞函數,並將其轉換為分式形式。

解答:

z = [-2];
p = [-1 -1 -3];
k = 1;
sys = zpk(z, p, k)
sys_tf = tf(sys)

 

練習題 3:

用創建傳遞函數的變量方式,創建不同形式的傳遞函數。

解答:

s = tf('s');
sys = (s+1)/(s^2+2*s+1)

s = zpk('s');
sys = (s+1)/(s^2+2*s+1)


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM