2.6.1 数学模型的MATLAB表示及其转换
在MATLAB中常用到的传递函数形式主要有以下两种。
(1)传递函数的有理分式形式
(2)传递函数的零、极点形式
可以用conv()函数、tf()函数和zpk()函数实现以上两种传递函数形式的表示。
例2-26 试给出以下传递函数在MATLAB中的表示方法
(1)
(2)
(3)
解:(1)在MATLAB命令窗口(Command Window)输入以下命令
num=[2 1 3]
den=[1 2 4 3 1]
G1=tf(num,den)
或者只用一个命令
G1=tf([2 1 3],[1 2 4 3 1])
则可得到如下运行结果
num=
2 1 3
den=
1 2 4 3 1
Transfer function:
2s^2+s+3
-----------------------------
s^4+2 s^3+4 s^2+3 s+1
(2)在MATLAB命令窗口(Command Window)输入以下命令
z=[-1]
p=[-2 -3]
k=6
G2=zpk(z,p,k)
则可得到如下运行结果
z=
-1
p=
-2 -3
k=
6
Zero/pole/gain:
6(s+1)
--------------
(s+2)(s+3)
(3)在MATLAB命令窗口(Command Window)输入以下命令
num=[1 2 5]
den=conv([1 1],conv([1 2],[1 3]))
G3=tf(num,den)
则可得到如下运行结果
num=
1 2 5
den=
1 6 11 6
Transfer function:
s^2+2 s+5
----------------------
s^3+6 s^2+11 s+6
在MATLAB中除了可以表示不同形式的传递函数,还可以应用tf2zp()函数和zp2tf()函数实现两种传递函数表示形式间的互化。
例2-27 试将以下传递函数转换为零、极点表示形式
解:在MATLAB命令窗口(Command Window)输入以下命令
num=[6 12 6 10]
den=[1 2 3 1 1]
[z p k]=tf2zp(num,den)
可得到如下运行结果
num=
6 12 6 10
den=
1 2 3 1 1
z=
-1.9294
-0.0353+0.9287i
-0.0353-0.9287i
p=
-0.9567+1.2272i
-0.9567-1.2272i
-0.0433+0.6412i
-0.0433-0.6412i
k=
6
则传递函数的零、极点形式为
例2-28 试将以下传递函数转换为有理多项式表示形式
解:在MATLAB命令窗口(Command Window)输入以下命令
z=[-1 -4]
p=[-2 -3 -5]
k=1
[numden]=zp2tf(z',p',k)
可得到如下运行结果
z=
-1 -4
p=
-2 -3 -5
k=
1
num=
0 1 5 4
den=
1 10 31 30
则传递函数的零、极点形式为