2.零-极点形式的传递函数模型
传递函数的零-极点形式一般为
G
(
s
)
=
K
(
s
−
z
1
)
∙
(
s
−
z
2
)
∙
.
.
.
∙
(
s
−
z
m
)
(
s
−
p
1
)
∙
(
s
−
p
2
)
∙
.
.
.
∙
(
s
−
p
n
)
G(s)=K\frac{(s-z_1)\bullet(s-z_2)\bullet\ \ ...\ \ \bullet(s-z_m)}{(s-p_1)\bullet(s-p_2)\bullet\ \ ...\ \ \bullet(s-p_n)}
G(s)=K(s−p1)∙(s−p2)∙ ... ∙(s−pn)(s−z1)∙(s−z2)∙ ... ∙(s−zm)
在MATLAB中,以以下形式表示:
>>Gain=K;
%将零极点形式传递函数的增益值K赋给变量Gain
>>Z=[z1;z2;...;zm];
%将所有零点以列向量形式赋给Z
>>P=[p1;p2;...;pn];
%将所有极点以列向量形式赋给P
在建立零-极点传递函数模型时,需要用到的MATLAB函数:
zpk函数:用于建立零-极点形式的数学模型
>>y1=zpk[Z,P,Gain];
%其中Z为系统的零点列向量,P为极点列向量,Gain为零极点形式传递函数的增益
tf函数:用于把零-极点形式的传递函数转换为多项式形式
>>y2=tf(y1);
%其中y1为零极点形式的传递函数
zp2tf函数:用于求传递函数多项式形式模型的分子、分母系数
>>[n,d]=zp2tf(Z,P,Gain);
%其中Z为系统的零点列向量,P为极点列向量,Gain为零极点形式传递函数的增益
例题1:
用MATLAB建立系统传递函数的零-极点形式和多项式形式模型
G
(
s
)
=
(
s
−
2
)
∙
(
s
−
3
)
(
s
−
1
)
∙
(
s
−
4
)
∙
(
s
−
7
)
G(s)=\frac{(s-2)\bullet(s-3)}{(s-1)\bullet(s-4)\bullet\ (s-7)}
G(s)=(s−1)∙(s−4)∙ (s−7)(s−2)∙(s−3)
%%%%%%以下为<MATLAB>实现%%%%%%
>> Gain=1;
>> Z=[2;3];
>> P=[1;4;7];
>> g=zpk(Z,P,Gain)
%执行该语句后建立了系统的零-极点形式模型
g =
(s-2) (s-3)
-----------------
(s-1) (s-4) (s-7)
Continuous-time zero/pole/gain model.
>> g=tf(g)
%执行该命令后得到了多项式形式传递函数模型
g =
s^2 - 5 s + 6
------------------------
s^3 - 12 s^2 + 39 s - 28
Continuous-time transfer function.
>> [num,den]=zp2tf(Z,P,Gain)
%执行该命令后得到了多项式传递函数的分子、分母系数
num =
%分母系数
0 1 -5 6
den =
%分子系数
1 -12 39 -28
练习:
用MATLAB传递函数的零-极点形式和多项式形式模型
G
(
s
)
=
4
∙
(
s
+
1
)
∙
(
s
−
4
)
(
s
−
2
)
∙
(
s
−
3
)
∙
(
s
−
6
)
G(s)=\frac{4\bullet(s+1)\bullet(s-4)}{(s-2)\bullet(s-3)\bullet\ (s-6)}
G(s)=(s−2)∙(s−3)∙ (s−6)4∙(s+1)∙(s−4)
>> Gain=4;
>> Z=[-1;4];
>> P=[2;3;6];
>> g=zpk(Z,P,Gain)
g =
4 (s+1) (s-4)
-----------------
(s-2) (s-3) (s-6)
Continuous-time zero/pole/gain model.
>> g=tf(g)
g =
4 s^2 - 12 s - 16
------------------------
s^3 - 11 s^2 + 36 s - 36
Continuous-time transfer function.
>> [num,den]=zp2tf(Z,P,Gain)
num =
0 4 -12 -16
den =
1 -11 36 -36
注意:
1.传递函数中零极点的符号
2.Z,P均为列向量,故输入命令时,应以“;”作为分隔符