控制系统常用的数学模型有三种:传递函数、
2.8.1连续系统数学模型的MATLAB表示
1. 传递函数模型
当:
则在MATLAB中,直接用分子/分母的系数表示,即
num=[b0,b1,…,bm];
den = [a0,a1,…,an];
例2-7 用MATLAB表示传递函数为 的系统。
解:在MATLAB环境下输入
ng=[1 1]; dg=[1 3 2];
printsys(ng,dg) %此处printsys命令是传递函数显示命令。
则执行后得到如下结果:
2. 零极点增益模型
当:
时 |
则在MATLAB中,用[z,p,k]矢量组表示,即
z=[z0,z1,…,zm];
p=[p0,p1,…,pn];
k=[k];
例2-8 用MATLAB表示传递函数为 的系统。
解:在MATLAB环境下输入
z=-1; p=[0 -1 -2]; k=1.5;
[num,den]=zp2tf[z,p,k];
printsys(num,den) %此处printsys命令是传递函数显示命令。
则执行后得到如下结果:
3. 状态空间模型
当:
时 |
则在MATLAB中,该控制系统可用(a,b,c,d)
4. 传递函数的部分分式展开
当:
时 |
在MATLAB中直接用分子/分母的系数表示时有
num=[b0,b1,…,bm];
den = [a0,a1,…,an];
则命令
[r,p,k] = residue(num,den)
将求出两个多项式Y(s)和X(s)之比的部分分式展开的留数、
例2-A2 考虑下列传递函数:
命令 [r,p,k] = residue(num,den)
将给出下列结果:
[r,p,k]=residue(num,den)
r=
-6.000
-4.000
3.000
p=
-3.000
-2.000
-1.000
k=
2
留数为列向量r,极点位置为列向量p,直接项是行向量k。
命令
[num,den] = residue(r,p,k)
执行后得到如下结果:
[num,den]=residue(r,p,k)
num=
2.0000 5.0000 3.0000 6.0000
den=
1.0000 6.0000 11.0000 6.0000
2.8.2离散系统数学模型的MATLAB表示
1. 传递函数模型:
2. 零极点增益模型:
3. 状态空间模型:
2.8.3模型之间的转换
同一个控制系统都可用上述三种不同的模型表示,
图2-18 三种模型之间的转换 |
说明:
ss2tf命令:将状态空间模型转换成传递函数模型。
格式为:[num,den]=ss2tf(A,B,C,D,
式中,iu为输入的序号。转换公式为
ss2zp命令:将状态空间模型转换成零极点增益模型。
格式为:[Z, P, K]=ss2zp(A, B, C, D, iu)
式中,iu为输入的序号。
tf2ss命令:将传递函数模型转换成状态空间模型。
格式为:[A, B, C, D]=tf2ss(num, den)
tf2zp命令:将传递函数模型转换成零极点增益模型。
格式为:[Z, P, K]=tf2zp(num, den)
zp2ss命令:将零极点模型转换成状态空间模型。
格式为:[A, B, C, D]=zp2ss(Z, P, K)
zp2tf命令:将零极点模型转换成传递函数模型。
格式为:[num, den]=zp2tf(Z, P, K)
2.8.4控制系统建模
对简单系统的建模可直接采用三种基本模型:传递函数、
1. 并联:将两个系统按并联方式连接,
2. 串联:将两个系统按串联方式连接,
3. 闭环:将系统通过正负反馈连接成闭环系统,
4. 单位反馈:将两个系统按反馈方式连接成闭环系统(