MATLAB学习记录-传递函数的建模1(多项式形式的传递函数模型)-自动控制篇

1.多项式形式的传递函数模型

在MATLAB中,可以通过数组的方式来表示传递函数中的系数。
软件会以降幂方式,通过向量的形式输入。

传递函数的多项式一般形式为
G ( s ) = C ( s ) R ( s ) = b m s m + b m − 1 s m − 1 + . . . + b 1 s + b 0 a n s n + a n − 1 s n − 1 + . . . + a 1 s + a 0 G(s)=\frac{C(s)}{R(s)}=\frac{b_ms^m+b_{m-1}s^{m-1}+...+b_1s+b_0}{a_ns^n+a_{n-1}s^{n-1}+...+a_1s+a_0} G(s)=R(s)C(s)=ansn+an1sn1+...+a1s+a0bmsm+bm1sm1+...+b1s+b0
用如下形式表达该式中分子和分母多项式系数:

>> n=[bm bm-1 ... b1 b0];				
%分子系数
>> d=[am am-1 ... a1 a0];				
%分母系数

在建立传递函数模型时,需要用到的MATLAB函数:

tf函数:用于建立传递函数的多项式形式数学模型

>> y1=tf(n,d)				
%其中n,d分别为传递函数的分子、分母的系数行向量

zpk函数:用于将多项式形式的传递函数转换为零-极点形式

>> y2=zpk(y1)				
%其中y1为传递函数多项式形式数学模型

tf2zp函数:用于求系统的零-极点

>> [z,p]=tf2zp(n,d)		
>其中n,d分别为传递函数的分子、分母的系数行向量

例题1:
使用MATLAB建立该系统的多项式形式模型和零-极点形式模型
G ( s ) = s 2 + 3 s + 2 s 4 + 2 s 3 + 2 s 2 + 5 s + 1 G\left(s\right)=\frac{s^2+3s+2}{s^4+{2s}^3+{2s}^2+5s+1} G(s)=s4+2s3+2s2+5s+1s2+3s+2

%%%%%%  以下为实现  %%%%%%
>> num=[1 3 2];										
%传递函数的分子多项式
>> den=[1 2 2 5 1];									
%传递函数的分子多项式
>> g1=tf(num,den)									
%执行该语句后建立了系统的多项式形式模型

g1 =
 
          s^2 + 3 s + 2
  -----------------------------
  s^4 + 2 s^3 + 2 s^2 + 5 s + 1
 
Continuous-time transfer function.

 
>> g2=zpk(g1)										
%执行该命令后得到传递函数零-极点形式模型

g2 =
 
                  (s+2) (s+1)
  -------------------------------------------
  (s+2.082) (s+0.2149) (s^2 - 0.297s + 2.235)
 
Continuous-time zero/pole/gain model.

>> [z,p]=tf2zp(num,den)								
%执行该命令后得到传递函数的零点和极点
%z为零点,p为极点
z =

    -2
    -1


p =

  -2.0820 + 0.0000i
   0.1485 + 1.4875i
   0.1485 - 1.4875i
  -0.2149 + 0.0000i

需要注意的问题:

1.系数向量中,常数为s的0次方项,不要落下
2.若传递函数分母或分母s的降幂顺序中,缺少s的某次项,则该项系数为0。在系数向量n或d中,该次项系数不可省略。

练习:
使用MATLAB建立多项式形式模型和零-极点形式模型
G ( s ) = 2 s 4 + 2 s 3 + 5 s + 1 G\left(s\right)=\frac{2}{s^4+{2s}^3+5s+1} G(s)=s4+2s3+5s+12

>> num=[2];
>> den=[1 2 0 5 1];
>> g1=tf(num,den)

g1 =
 
            2
  ---------------------
  s^4 + 2 s^3 + 5 s + 1
 
Continuous-time transfer function.

>> g2=zpk(g1)

g2 =
 
                       2
  --------------------------------------------
  (s+2.656) (s+0.1972) (s^2 - 0.8528s + 1.909)
 
Continuous-time zero/pole/gain model.

>> [z,p]=tf2zp(num,den)

z =

  空的 0×1 double 列向量


p =

  -2.6556 + 0.0000i
   0.4264 + 1.3143i
   0.4264 - 1.3143i
  -0.1972 + 0.0000i

你可能感兴趣的:(传递函数,自动控制,matlab,数学建模)