![自动控制原理(上)](https://wfqqreader-1252317822.image.myqcloud.com/cover/701/43806701/b_43806701.jpg)
2.6.1 数学模型的MATLAB表示及其转换
在MATLAB中常用到的传递函数形式主要有以下两种。
(1)传递函数的有理分式形式
![](https://epubservercos.yuewen.com/1CD866/23083815909813106/epubprivate/OEBPS/Images/978-7-111-66144-3-Part01-276.jpg?sign=1738837668-jtDQXsI2Gsoi9Q5SK8T3mtXiEup5OKel-0-b391655b85752db23222c81fb760d08f)
(2)传递函数的零、极点形式
![](https://epubservercos.yuewen.com/1CD866/23083815909813106/epubprivate/OEBPS/Images/978-7-111-66144-3-Part01-277.jpg?sign=1738837668-zYuzfGRwWi2IcmWJM5KnGC8QmdlG9hkZ-0-f1ef9e2ef7fa70abb6fbc14892a926f6)
可以用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 试将以下传递函数转换为零、极点表示形式
![](https://epubservercos.yuewen.com/1CD866/23083815909813106/epubprivate/OEBPS/Images/978-7-111-66144-3-Part01-281.jpg?sign=1738837668-dsWQA2FHsdiuk7TkUcWBVIk36LXyrQC5-0-7673f9a2284df700f59a58b6c66c79ef)
解:在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
则传递函数的零、极点形式为
![](https://epubservercos.yuewen.com/1CD866/23083815909813106/epubprivate/OEBPS/Images/978-7-111-66144-3-Part01-282.jpg?sign=1738837668-vyCdDgqrFpWdUEHDUQJGAybtyyWa8bc4-0-c31c6750882ffa69fcc0abd53d26c421)
例2-28 试将以下传递函数转换为有理多项式表示形式
![](https://epubservercos.yuewen.com/1CD866/23083815909813106/epubprivate/OEBPS/Images/978-7-111-66144-3-Part01-283.jpg?sign=1738837668-d2yBOVJQC3zEfIhgtrk2a7PVcOKVFvCy-0-46e2fbbcd6db591ef0491384a0ad51ce)
解:在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
则传递函数的零、极点形式为
![](https://epubservercos.yuewen.com/1CD866/23083815909813106/epubprivate/OEBPS/Images/978-7-111-66144-3-Part01-284.jpg?sign=1738837668-a0WcO8mUGaVeetkLG5waTppSZTjORHjI-0-1a20f9097b6a3c61229375e93ba5f094)