使用MATLAB的residue()命令求傳遞函數的展開式

極點不同的情況

考慮到這個傳遞函數:
2
分子和分母的係數矩陣分別爲:

>> num = [2 5 3 6];
>> den = [1 6 11 6];

使用以下命令:

>> [r,p,k] = residue(num,den)

即可對分式進行展開,展開後有多項,每一項的分子一定是數字,而分母則爲一個多項式

  • r稱爲留數
  • p稱爲極數
  • k稱爲單獨項
r =
   -6.0000
   -4.0000
    3.0000
p =
   -3.0000
   -2.0000
   -1.0000
k =
     2

命令residue還能用來根據分式展開式得到多項式,例如我們有以下傳遞函數的展開式:

1
我們使用以下命令將其寫成兩個多項式之比的形式:

>> clear
>> r = [-6 -4 3];
>> p = [-3 -2 -1];
>> k = 2;
>> [num1,num2] = residue(r,p,k)

num1 =

     2     5     3     6


num2 =

     1     6    11     6

結果還是不太明顯,因爲這只是分子和分母的係數,我們新建一個變量s來將其寫成分子分母之比的形式,這樣就更加的直觀:

>> printsys(num1,num2,'s')
 
num/den = 
 
   2 s^3 + 5 s^2 + 3 s + 6
   -----------------------
    s^3 + 6 s^2 + 11 s + 6

通過對比發現,分子和分母的係數剛好與上面的矩陣匹配。

極數相等

上面的例子都是分母極數不相等的,所以分母都是一次多項式,但如果考慮到另一種情況,分母也稱爲特徵多項式,如果這個特徵多項式有重根,那麼分母就不會再是一次多項式:
3
重複上述操作:

>> clear
>> num1 = [0 1 2 3];
>> num2 = [1 3 3 1];
>> [r,p,k] = residue(num1,num2)

r =

    1.0000
    0.0000
    2.0000


p =

   -1.0000
   -1.0000
   -1.0000


k =

     []

可以看到p的值有三個,而且都相等,說明這三個極數相等,那麼分母將不再是一次多項式,而是:
4
得到原函數:

>> [A,B] = residue(r,p,k)

A =

     1     2     3


B =

    1.0000    3.0000    3.0000    1.0000

>> printsys(A,B,'s')
 
num/den = 
 
       s^2 + 2 s + 3
   ---------------------
   s^3 + 3 s^2 + 3 s + 1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章