1、2019/10/1,MATLAB Control System Toolbox,MATLAB控制系统工具箱 第五章 控制系统的仿真基础,霍凤财 DaQing Petroleum Institute,2019/10/1,MATLAB Control System Toolbox,2,本章的主要内容,第五章 控制系统的仿真基础 1.控制系统数学模型的MATLAB描述 2.系统模型的转换及连接,2019/10/1,MATLAB Control System Toolbox,3,2019/10/1,MATLAB Control System Toolbox,4,对线性定常系统,式中s的系数均为常数,且
2、a1不等于零,这时系统在MATLAB中可以方便地由分子和分母系数构成的两个向量唯一地确定出来,这两个向量分别用num和den表示。num=b1,b2,bm,bm+1den=a1,a2,an,an+1注意:它们都是按s的降幂进行排列的。,5.3 控制系统数学模型的Matlab的描述,一、连续系统的传递函数模型 连续系统的传递函数如下:,2019/10/1,MATLAB Control System Toolbox,5,零极点模型,在MATLAB中零极点增益模型用z,p,K矢量组表示。z=z1,z2,zm p=p1,p2,.,pn K=k 函数tf2zp()可以用来求传递函数的零极点和增益。 格式
3、为: z,p,k=tf2zp(num,den),二、零极点增益模型,K为系统增益,zi为零点,pj为极点,2019/10/1,MATLAB Control System Toolbox,6,函数r,p,k=residue(b,a)对两个多项式的比进行部分展开,以及把传函分解为微分单元的形式。 向量b和a是按s的降幂排列的多项式系数。部分分式展开后,余数返回到向量r,极点返回到列向量p,常数项返回到k。 b,a=residue(r,p,k)可以将部分分式转化为多项式比b(s)/a(s)。,三、部分分式展开,2019/10/1,MATLAB Control System Toolbox,7,举例:
4、传递函数描述 1)num=12,24,0,20;den=2 4 6 2 2; 2)借助多项式乘法函数conv来处理: num=4*conv(1,2,conv(1,6,6,1,6,6); den=conv(1,0,conv(1,1,conv(1,1,conv(1,1, 1,3,2,5);,2019/10/1,MATLAB Control System Toolbox,8,3)如果是MIMO系统,则用传递矩阵描述:,例如:,可表示为: num= 1 , 1 ; 1 den= 1 2 2 ; 1 1 ,2019/10/1,MATLAB Control System Toolbox,9,零极点增益模型
5、: num=1,11,30,0; den=1,9,45,87,50; z,p,k=tf2zp(num,den),结果表达式:,2019/10/1,MATLAB Control System Toolbox,10,部分分式展开: num=2,0,9,1; den=1,1,4,4; r,p,k=residue(num,den) ,结果表达式:,2019/10/1,MATLAB Control System Toolbox,11,状态方程与输出方程的组合称为状态空间表达式,又称为动态方程,经典控制理论用传递函数将输入输出关系表达出来,而现代控制理论则用状态方程和输出方程来表达输入输出关系,揭示了系统
6、内部状态对系统性能的影响。,四、状态空间描述,在MATLAB中,系统状态空间用(A,B,C,D)矩阵组表示。,2019/10/1,MATLAB Control System Toolbox,12,例:系统为一个两输入两输出系统 A=1 6 9 10; 3 12 6 8; 4 7 9 11; 5 12 13 14; B=4 6; 2 4; 2 2; 1 0; C=0 0 2 1; 8 0 2 2; D=zeros(2,2);,2019/10/1,MATLAB Control System Toolbox,13,五、控制系统工具箱中的LTI对象,1、建立LTI对象 tf( )函数:生成传递函数模型
7、,或将零极点模型及状态空间模型转换成传递函数模型。 格式为:sys=tf(num,den):生成连续时间系统传递函数模型sys=tf(num,den,Ts):生成离散时间系统传递函数模型(Ts为采样时间)tfsys=tf(sys):将任意的LTI对象转换成传递函数模型,2019/10/1,MATLAB Control System Toolbox,14,ss( )函数:生成状态空间模型,或将零极点模型及传递函数模型转换成传递函数模型。 格式为:sys=ss(a,b,c,d):生成连续时间系统状态空间模型sys_ss=ss(sys):将任意的LTI对象转换成状态空间模型,2019/10/1,MA
8、TLAB Control System Toolbox,15,zpk( )函数:生成零极点模型,或将其他模型转换成传递函数模型。 格式为:sys=zpk(z,p,k):生成连续系统零极点增益模型sys=zpk(z,p,k,Ts):生成离散时间系统零极点增益模型zsys=zpk(sys):将任意的LTI对象转换成零极点增益模型,2019/10/1,MATLAB Control System Toolbox,16,模型转换的函数包括: residue:传递函数模型转换为部分分式模型 ss2tf: 状态空间模型转换为传递函数模型 ss2zp: 状态空间模型转换为零极点增益模型 tf2ss: 传递函数
9、模型转换为状态空间模型 tf2zp: 传递函数模型转换为零极点增益模型 zp2ss: 零极点增益模型转换为状态空间模型 zp2tf: 零极点增益模型转换为传递函数模型,5.4 模型的转换与连接,一、模型的转换,2019/10/1,MATLAB Control System Toolbox,17,例: 1)已知系统状态空间模型为: A=0 1; -1 -2; B=0;1; C=1,3; D=1; num,den=ss2tf(A,B,C,D,iu) iu用来指定第n个输入,当只有一个输入时可忽略。 num=1 5 2; den=1 2 1; z,p,k=ss2zp(A,B,C,D,iu) z= -
10、0.4384 p= -1 k=1-4.5616 -1,2019/10/1,MATLAB Control System Toolbox,18,2)已知一个单输入三输出系统的传递函数模型为如下,将其转换为ss模型:num=0 0 -2;0 -1 -5;1 2 0;den=1 6 11 6; A,B,C,D=tf2ss(num,den) 运行结果: A= -6 -11 -6 B= 1 C= 0 0 -2 D= 01 0 0 0 0 -1 -5 00 1 0 0 1 2 0 0,2019/10/1,MATLAB Control System Toolbox,19,3)系统的零极点增益模型如右式, 将其
11、转化为tf与ss模型:z=-3;p=-1,-2,-5;k=6; num,den=zp2tf(z,p,k) 运行结果: num= 0 0 6 18 den= 1 8 17 10a,b,c,d=zp2ss(z,p,k) 运行结果: a= -1.0000 0 0 b=1 2.0000 -7.0000 -3.1623 10 3.1623 0 0c= 0 0 1.8974 d=0 注意:零极点的输入可以写出行向量,也可以写出列向量。,2019/10/1,MATLAB Control System Toolbox,20,4)已知部分分式如右式, 将其转化为tf模型:r=-0.25i,0.25i,-2; p
12、=2i,-2i,-1;k=2; num,den=residue(r,p,k) num=2 0 9 1 den=1 1 4 4注意:余式一定要与极点相对应。,2019/10/1,MATLAB Control System Toolbox,21,1、并联:parallel 格式: num,den=parallel(num1,den1,num2,den2) 将并联连接的传递函数进行相加。 已知: 求并联系统的传递函数,二、模型的连接,2019/10/1,MATLAB Control System Toolbox,22,2、串联:series 格式: num,den=series(num1,den1,
13、num2,den2) 将串联连接的传递函数进行相乘。 已知: 求串联系统的传递函数,2019/10/1,MATLAB Control System Toolbox,23,3、反馈:feedback 格式: num,den =feedback(num1,den1,num2,den2,sign) 将两个系统按反馈方式连接,一般而言,系统1为对象,系统2为反馈控制器。sign用来指示系统2输出到系统1输入的连接符号,sign缺省时,默认为负,即 sign= -1。,2019/10/1,MATLAB Control System Toolbox,24,4、闭环:cloop(单位反馈) 格式: numc,denc=cloop(num,den,sign) 表示由传递函数表示的开环系统构成闭环系统,当sign=1时采用正反馈;当sign= -1时采用负反馈;sign缺省时,默认为负反馈。,2019/10/1,MATLAB Control System Toolbox,25,本章小结 系统的描述有不同的方法:微分方程;传递函数;零极点增益模式;部分分式展开;状态空间模型等。 系统的模型之间可以相互转换,要求熟练掌握各种模型之间转换的命令。 模型之间可以进行连接,要求掌握常用的模型连接命令:串联、并联、反馈及闭环。,