1、MATLAB应用介绍,一、控制系统模型的建立,(一)系统模型系统的表示可用三种模型:传递函数、零极点增益、状态空间。 1、传递函数模型在MATLAB中,直接用分子、分母的系数矢量组num,den表示,即num=b1,b2,bmden =a1,a2, an,例:将传递函数以分子、分母系数矢量组num、den的形式表示出来。num=0.2,0.3,1 den =1,0.9,1.2,0.5,2、零极点增益模型在MATLAB中,用z,p,k矢量组表示,即z=z1,z2,zm;p=p1,p2,pn;k=k;,例:将系统的零极点增益模型以z,p,k矢量组表示。k=6z=-3p=-1,-2,-5,3、状态空
2、间模型在MATLAB中,系统可用(a,b,c,d)矩阵组表示。,(二)模型建立及转换,1、tf() 功能:建立传递函数形式 格式:sys=tf(num,den) 说明:可将分子、分母系数矢量组num、den表示的传递函数模型,以直接的传递函数形式表示出来。,例1:写出下面传递函数模型的标准形式。解:在MATLAB中,可直接利用tf函数求出num=0.2,0.3,1;p1=1,0.4,1;p2=1,0.5;den=conv(p1,p2); %p1(s)*p2(s)H=tf(num,den)执行后,例:已知将该传递函数输入MATLAB。, num = 6*1,5; den = conv(conv(
3、conv(1,3,1,1,3,1),1,6),1,6,5,3);G=tf(num,den)Transfer function: 6 s + 30 - s8 + 18 s7 + 124 s6 + 417 s5 + 740 s4 + 729 s3 + 437 s2 + 141 s + 18,2、zpk() 功能:建立零极点增益形式 格式:sys= zpk (z, p, k) 说明:可将零极点增益向量组z、p、k表示的系统模型,以直接的零极点增益形式表示出来。,例:设系统的传递函数模型为求系统的零极点增益模型。 解 :MATLAB程序为:num= 6 18;den = 1 8 17 10;z,p,k
4、=tf2zp(num,den);G=zpK(z,p,k) 执行后得,3、tf2zp() 功能:变系统传递函数形式为零极点增益形式。 格式:z,p,k=tf2zp(num,den) 说明:tf2zp函数将多项式传递函数形式的系统转换为零点、极点和增益形式。 4、zp2tf() 功能:变系统零极点增益形式为传递函数形式。 格式:num,den=zp2tf(z,p,k) 说明:zp2tf可将以z,p,k表示的零极点增益形式变换成传递函数形式。,例2:设系统的零极点增益模型为求系统的传递函数。 解 :在MATLAB中,可直接利用zp2tf函数求出,MATLAB程序为:k=6;z=-3;p=-1,-2,
5、-5;num,den=zp2tf(z,p,k)H=tf(num,den) 执行后得num= 0 0 6 18den = 1 8 17 10,(三)系统建模,1、parallel() 功能:系统的并联连接。 格式: num,den=parallel(num1,den1,num2,den2) 说明:parallel函数按并联方式连接两个系统。 2、series() 功能:系统的串联连接。 格式:num,den=series(num1,den1,num2,den2) 说明:series函数可将两个系统按串联方式进行连接。,例:已知G1(s)和G2(s),求两者串联后的传递函数。num1=1 1; d
6、en1=1 2; num2=1; den2=500 0 0; num,den=series(num1,den1,num2,den2); G=tf(num,den),3、feedback() 功能:两个系统的反馈连接。 格式:num,den=feedback(num1,den1,num2,den2)num,den=feedback(num1,den1,num2,den2,sign) 说明:feedback函数可将两个系统按反馈形式进行连接,sign缺省时,默认为负 4、cloop() 功能:系统的闭环形式。 格式:numc,denc=cloop(num,den,sign) 说明:cloop函数可
7、通过将系统输出反馈到系统输入构成单位闭环系统。当sign=1时采用正反馈;当sign=-1时采用负反馈;sign缺省时,默认为负反馈。,例LZ:求该系统的传递函数。编写的M程序如下:num1=1; den1=1 1; num2=1; den2=0.1 0; num,den=series(num1,den1,num2,den2); numb,denb=cloop(num,den); G=tf(numb,denb),5、ord2() 功能:产生二阶系统。 格式:num,den=ord2(n,) 说明:num,den=ord2(n,)可得到二阶系统的传递函数表示。 例3 :要产生=0.4,n=2.4
8、弧度/秒的二阶系统的传递函数,可输入num,den=ord2(2.4,0.4)H=tf(num,den)则得 num=1den =1 1.9200 5.7600 因此有,二、控制系统的时域分析,1、step() 功能:求连续系统的单位阶跃响应。 格式:step(num,den)step(num,den,t) y,x,t =step(num,den) 说明(1)step函数可计算出线性系统的单位阶跃响应。(2)当不带输出变量引用时,step函数可在当前图形窗口中绘出系统的阶跃响应曲线。(3)step(num,den,t)可利用用户指定的时间矢量t来绘制阶跃响应。 (4)当带有输出变量引用函数时,
9、可得到系统阶跃响应的输出数据,而不直接绘制出曲线。,例4:求二阶系统 的 单位阶跃响应。 解:编写M程序如下:num=1;den=1,1.92,5.76;G=tf(num,den)step(G),例5:求P.16页一阶惯性环节的单位阶跃响应。 解:编写M程序如下: R1=100;R=100; C=0.1,0.33,1,10; figure(1) for j=Cnum=R/R1; %K=R/R1 den=R*j*10-3,1; %T=R*Chold onstep(num,den,1)endhold off,2、impulse() 求取脉冲响应的函数impulse()和step()函数的调用格式完
10、全一致。 3、pzmap() 绘制传递函数的零极点分布图,例:系统的传递函数为求该系统的零极点分布图、阶跃响应和脉冲响应图。 程序如下: num=2 5 1; den=1 2 3; figure(1) pzmap(num,den) figure(2) step(num,den) figure(3) impulse(num,den),三、控制系统的频域分析,1、bode 功能:求连续系统的Bode(波特)频率响应。 格式:bode(num,den)mag,phase,w=bode(num,den) 说明:(1)bode函数可计算出系统的幅频和相频响应曲线(即 Bode图)。Bode图可用于分析系
11、统的增益裕度、相位裕度、直接增益、带宽扰动抑制及其稳定性等特性。(2)当缺省输出变量时,bode函数可在当前图形窗口中直接绘制出系统的Bode图。(3)当带输出量引用函数时,可得到系统Bode图相应的幅值,相位及频率点 。,例6 :有一二阶系统,其自然频率n=1,阻尼因子=0.2,要绘制出系统的幅频和相频曲线。 解:编写M程序如下: num,den=ord2(1,0.2); bode(num,den),2、margin 功能:确定系统的相角稳定裕度和 幅值稳定裕度。 格式: margin (num,den)Gm,Pm,Wcg ,Wcp= margin (num,den) 说明:(1)当缺省输出
12、变量时, margin函数可在当前图形窗口中直接绘制带有增益裕度和相位裕度的Bode图。(2)当带输出量引用函数时,可得到系统的增益裕度、相位裕度及相应的频率点 。,例7:用MATLAB完成实验五的内容(p.25页)。 解:编写M程序如下: R1=0.1;R2=0.1;R3=0.1; C1=1;C2=0.1; num1=R2/R1; den1=R2*C1,1; num2=1; den2=R3*C2,0; num=conv(num1,num2); den=conv(den1,den2); numc,denc=cloop(num,den); figure(1),bode(numc,denc),实验
13、一 典型环节特性的模拟,1. 已知传递函数如下:(1)以tf函数建立模型,并转换成zpk形式 (2) 绘制零极点分布图。 (3)求取阶跃响应和脉冲响应,并画图。,2. 已知系统结构图如下:其中: G2(s)的零点为z=-2,极点为p1=-0.5,p2=-8,增益为5求总的传递函数。,3. 典型环节特性分析,考察阶跃响应,重点分析参数取值对响应特性的影响。 比例环节,G1(s)=2,G2(s)=8; 惯性环节, ,T1=4,T2=10;积分环节, , T1=3,T2=12 微分环节(理想微分,实际微分)振荡环节,z=0.2,0.4,0.8,wn=3,实验报告要求,每项内容都要包括如下几部分: 1、实验内容要求 2、程序 3、实验曲线 4、结论、分析或问题回答,