自动控制原理(上)
上QQ阅读APP看书,第一时间看更新

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

则传递函数的零、极点形式为