自控原理MATLAB应用介绍

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

MATLAB应用介绍一、控制系统模型的建立(一)系统模型系统的表示可用三种模型:传递函数、零极点增益、状态空间。1、传递函数模型在MATLAB中,直接用分子、分母的系数矩阵[num,den]表示,即num=[b1,b2,…,bm]den=[a1,a2,…,an]11211121)()()(nnnmmmasasabsbsbsdensnumsH例:将传递函数以分子、分母系数矩阵num、den的形式表示出来。num=[0.2,0.3,1]den=[1,0.9,1.2,0.5]5.02.19.013.02.0)(232ssssssH2、零极点增益模型在MATLAB中,用[z,p,k]矢量组表示,即z=[z1,z2,…,zm];p=[p1,p2,…,pn];k=[k];)())(()())(()(2121nmpspspszszszsksH例:将系统的零极点增益模型以z,p,k向量组表示。k=6z=[-3]p=[-1,-2,-5])5)(2)(1()3(6)(sssssH3、状态空间模型在MATLAB中,系统可用(a,b,c,d)矩阵组表示。ducxybuaxx(二)模型建立及转换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)执行后)5.0)(14.0(13.02.0)(22ssssssH5.02.19.013.02.0)(232ssssssH)356)(6()13()5(6)(2322ssssssssG例:已知将该传递函数输入MATLAB。num=6*[1,5];den=conv(conv(conv([1,3,1],[1,3,1]),[1,6]),[1,6,5,3]);G=tf(num,den)Transferfunction:6s+30------------------------------------------------------------------------------------------------s^8+18s^7+124s^6+417s^5+740s^4+729s^3+437s^2+141s+182、zpk()功能:建立零极点增益形式格式:sys=zpk(z,p,k)说明:可将零极点增益向量组z、p、k表示的系统模型,以直接的零极点增益形式表示出来。例:设系统的传递函数模型为求系统的零极点增益模型。解:MATLAB程序为:num=[618];den=[181710];[z,p,k]=tf2zp(num,den);G=zpK(z,p,k)执行后得)5)(2)(1()3(6)(sssssH10178186)(23sssssH3、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];[num,den]=zp2tf(z,p,k)H=tf(num,den)执行后得num=00618den=181710)5)(2)(1()3(6)(sssssH10178186)(23sssssH(三)系统建模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=[11];den1=[12];num2=[1];den2=[50000];[num,den]=series(num1,den1,num2,den2);G=tf(num,den)21)(1sssG225001)(ssG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函数可通过将系统输出反馈到系统输入构成单位闭环系统。当sign=1时采用正反馈;当sign=-1时采用负反馈;sign缺省时,默认为负反馈。求该系统的传递函数。编写的M程序如下:num1=[1];den1=[11];num2=[1];den2=[0.10];[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弧度/秒的二阶系统的传递函数,可输入[num,den]=ord2(2.4,0.4)H=tf(num,den)则得num=1den=11.92005.7600因此有76.592.11)(2sssh二、控制系统的时域分析1、step()功能:求连续系统的单位阶跃响应。格式:step(num,den)step(num,den,t)[y,x,t]=step(num,den)说明(1)step函数可计算出线性系统的单位阶跃响应。(2)当不带输出变量引用时,step函数可在当前图形窗口中绘出系统的阶跃响应曲线。(4)step(num,den,t)可利用用户指定的时间矢量t来绘制阶跃响应。(3)当带有输出变量引用函数时,可得到系统阶跃响应的输出数据,而不直接绘制出曲线。例4:求二阶系统的单位阶跃响应。解:编写M程序如下:num=1;den=[1,1.92,5.76];G=tf(num,den)step(G)76.592.11)(2sssh例5:求P.16页一阶惯性环节的单位阶跃响应。解:编写M程序如下:R1=100;R=100;C=[0.1,0.33,1,10];figure(1)forj=Cnum=R/R1;%K=R/R1den=[R*j*10^-3,1];%T=R*Choldonstep(num,den,1)endholdoff2、impulse()求取脉冲响应的函数impulse()和step()函数的调用格式完全一致。三、根轨迹1、pzmap()功能:绘制系统的零极点。格式:pzmap(num,den)pzmap(p,z)[p,z]=pzmap(num,den)说明(1)当不带输出变量引用函数时,pzmap函数可在当前图形窗口中绘出系统的零极点图。(2)当带有输出变量引用函数时,可得到系统的零极点位置。2、rlocus()功能:求系统的根轨迹。格式:rlocus(num,den)rlocus(num,den,k)[r,k]=rlocus(num,den)说明(1)当不带输出变量引用函数时,rlocus函数可在当前图形窗口中绘出系统的根轨迹图。(2)rlocus(num,den,k)可利用指定的k来绘制系统的根轨迹。(3)当带有输出变量引用函数时,可得到系统的复根轨迹的位置矩阵r及相应的增益矢量k。利用plot(r,’x’)可绘制出根轨迹。3、rlocfind()功能:计算根轨迹上给定极点相对应的根轨迹增益。格式:[k,p]=rlocfind(num,den)[k,p]=rlocfind(num,den,p)说明(1)函数运行时,在根轨迹窗口中显示十字光标,当用户选择根轨迹上某点单击鼠标时,获得相应的增益k和闭环极点p。(2)[k,p]=rlocfind(num,den,p)可根据指定的p来得到系统的增益k。4、sgrid()功能:在系统根轨迹图和零极点图中绘制出阻尼系数和自然频率网格。格式:sgridsgrid(z,wn)说明(1)绘制的网格阻尼系数范围是0~1,步长为0.1,自然频率的范围为0~10rad/s,步长为1rad/s。(2)可指定阻尼系数z和自然频率wn来绘制网格。例l1:系统的传递函数为求该系统的零极点图、根轨迹和某点对应的根轨迹增益,并绘制阻尼系数和自然频率网格。程序如下:num=[251];den=[123];figure(1)pzmap(num,den)rlocus(num,den)sgrid[k,p]=rlocfind(num,den)32152)(22sssssH例l2:开环系统的传递函数为:绘制系统的根轨迹,并分析系统的稳定性。22563)()()()(*sssKsHsGnum=[13];den=conv([165],[165]);figure(1)rlocus(num,den)[k,p]=rlocfind(num,den)figure(2)k=160;num=k*[13];den=conv([165],[165]);[num,den]=cloop(num,den,-1);step(num,den)figure(3)k=161;num=k*[13];den=conv([165],[165]);[num,den]=cloop(num,den,-1);step(num,den)例l3:开环系统的传递函数为:绘制系统的根轨迹,并确定当=0.7系统的时系统的闭环极点,并分析系统的稳定性。num=[4,3,1];den=[3,5,1,0];figure(1)rlocus(num,den)sgrid([0.7],[])[k,p]=rlocfind(num,den)[k,p]=rlocfind(num,den))()()(15313422sssssKsG四、控制系统的频域分析1、bode功能:求连续系统的Bode(波特)频率响应。格式:bode(num,den)[mag,phase,w]=bode(num,den)说明:(1)bode函数可计算出系统的幅频和相频响应曲线(即Bode图)。Bode图可用于分析系统的增益裕度、相位裕度、直接增益、带宽扰动抑制及其稳定性等特性。(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)当缺省输出变量时,margin函数可在当前图形窗口中直接绘

1 / 46
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功