《第4章-利用MATLAB绘制系统根轨迹(共7页).doc》由会员分享,可在线阅读,更多相关《第4章-利用MATLAB绘制系统根轨迹(共7页).doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上第4章 利用MATLAB绘制系统根轨迹一、 利用MATLAB绘制系统根轨迹相关知识假设闭环系统中的开环传递函数可以表示为: 则闭环特征方程为:特征方程的根随参数K的变化而变化,即为闭环根轨迹。控制系统工具箱中提供了rlocus()函数,可以用来绘制给定系统的根轨迹,它的调用格式有以下几种: rlocus(num,den) rlocus(num,den,K) 或者 rlocus(G) rlocus(G,K) 以上给定命令可以在屏幕上画出根轨迹图,其中G为开环系统G0(s)的对象模型,K为用户自己选择的增益向量。如果用户不给出K向量,则该命令函数会自动选择K向量。如果在函
2、数调用中需要返回参数,则调用格式将引入左端变量。如R,K=rlocus(G) 此时屏幕上不显示图形,而生成变量R和K。R为根轨迹各分支线上的点构成的复数矩阵,K向量的每一个元素对应于R矩阵中的一行。若需要画出根轨迹,则需要采用以下命令:plot(R,) plot()函数里引号内的部分用于选择所绘制曲线的类型,详细内容见表1。控制系统工具箱中还有一个rlocfind()函数,该函数允许用户求取根轨迹上指定点处的开环增益值,并将该增益下所有的闭环极点显示出来。这个函数的调用格式为:K,P=rlocfind(G) 这个函数运行后,图形窗口中会出现要求用户使用鼠标定位的提示,用户可以用鼠标左键点击所关
3、心的根轨迹上的点。这样将返回一个K变量,该变量为所选择点对应的开环增益,同时返回的P变量则为该增益下所有的闭环极点位置。此外,该函数还将自动地将该增益下所有的闭环极点直接在根轨迹曲线上显示出来。例4.1已知系统的开环传递函数模型为:利用下面的MATLAB命令可容易地验证出系统的根轨迹如图4-1所示。 G=tf(1,conv(1,1,1,2),0); rlocus(G); grid title(Root_Locus Plot of G(s)=K/s(s+1)(s+2) xlabel(Real Axis)% 给图形中的横坐标命名。 ylabel(Imag Axis) % 给图形中的纵坐标命名。 K
4、,P=rlocfind(G)用鼠标点击根轨迹上与虚轴相交的点,在命令窗口中可发现如下结果select_point=0.0000+1.3921i K=5.8142 p=-2.29830-0.0085+1.3961i-0.0085-1.3961i所以,要想使此闭环系统稳定,其增益范围应为0K hold off;% 擦掉图形窗口中原有的曲线。图4-1 系统的根轨迹 t=0:0.2:15; Y= ; for K=0.1:0.1:1,2:5GK=feedback(K*G,1);y=step(GK,t);Y=Y,y; endplot(t,Y)对于for循环语句,循环次数由K给出。系统画出的图形如图4-2所
5、示。可以看出,当K的值增加时,一对主导极点起作用,且响应速度变快。一旦K接近临界K值,振荡加剧,性能变坏。图4-2不同K值下的阶跃响应曲线4.MATLAB绘图的基本知识通过以上实例的应用,我们已初步尝试了MATLAB的绘图功能。MATLAB具有丰富的获取图形输出的程序集。我们已用命令plot()产生线性x-y图形(用命令loglog、semilogx、semilogy或polar取代命令plot,可以产生对数坐标图和极坐标图)。所有这些命令的应用方式都是相似的,它们只是在如何给坐标轴进行分度和如何显示数据上有所差别。()二维图形绘制如果用户将X和Y轴的两组数据分别在向量x和y中存储,且它们的长
6、度相同,则命令plot(x,y) 将画出y值相对于x值的关系图。例4.2如果想绘制出一个周期内的正弦曲线,则首先应该用t=0:0.01:2*pi(pi是系统自定义的常数,可用help命令显示其定义)命令来产生自变量t;然后由命令y=sin(t)对t向量求出正弦向量y,这样就可以调用plot(t,y)来绘制出所需的正弦曲线,如图4-3所示。图4-3一个周期内的正弦曲线()一幅图上画多条曲线。利用具有多个输入变量的plot()命令,可以在一个绘图窗口上同时绘制多条曲线,命令格式为:plot(x1,Y1,x2,Y2,xn,Yn) x1、Y1、x2、Y2等一系列变量是一些向量对,每一个x-y对都可以用
7、图解表示出来,因而可以在一幅图上画出多条曲线。多重变量的优点是它允许不同长度的向量在同一幅图上显示出来。每一对向量采用不同的线型以示区别。另外,在一幅图上叠画一条以上的曲线时,也可以利用hold命令。hold命令可以保持当前的图形,并且防止删除和修改比例尺。因此,后来画出的那条曲线将会重叠在原曲线图上。当再次输入命令hold,会使当前的图形复原。也可以用带参数的hold命令hold on 和hold off来启动或关闭图形保持。()图形的线型和颜色为了区分多幅图形的重叠表示,MATLAB提供了一些绘图选项,可以用不同的线型或颜色来区分多条曲线,常用选项见下表4-表4-MATLAB绘图命令的多种
8、选项选项意义选项意义-实线-短划线: 虚线-.点划线r红色*用星号绘制各个数据点b蓝色o用圆圈绘制各个数据点g绿色.用圆点绘制各个数据点y黄色用叉号绘制各个数据点表4-中绘出的各个选项有一些可以并列使用,能够对一条曲线的线型和颜色同时作出规定。例如-g表示绿色的短划线。带有选项的曲线绘制命令的调用格式为:plot(X1,Y1,S1,X2,Y2,S2,) (4)加进网络线、图形标题、x轴和y轴标记一旦在屏幕上显示出图形,就可以依次输入以下相应的命令将网络格线、图形标题、x、y轴标记叠加在图形上。命令格式如下:grid(网络线) title(图形标题) xlabel(x轴标记) ylabel(y轴
9、标记) 函数引号内的字符串将被写到图形的坐标轴上或标题位置。()在图形屏幕上书写文本。如果想在图形窗口中书写文字,可以单击按钮,选择屏幕上一点,点击鼠标,在光标处输入文字。另一种输入文字的方法是用text()命令。它可以在屏幕上以(x,y)为坐标的某处书写文字,命令格式如下:text(x,y,text) 例如,利用语句text(3,0.45,sint)将从点(,0.45)开始,水平的写出“sint”。()自动绘图算法及手工坐标轴定标在MATLAB图形窗口中,图形的横、纵坐标是自动标定的,在另一幅图形画出之前,这幅图形作为现行图将保持不变,但是在另一幅图形画出后,原图形将被删除,坐标轴自动地重新
10、标定。关于瞬态响应曲线、根轨迹、伯德图、奈魁斯特图等的自动绘图算法已经设计出来,它们对于各类系统具有广泛的适用性,但是并非总是理想的。因此,在某些情况下,可能需要放弃绘图命令中的坐标轴自动标定特性,由用户自己设定坐标范围,可以在程序中加入下列语句:v=x-min x-max y-min y-max axis(v) 式中v是一个四元向量。axis(v)把坐标轴定标建立在规定的范围内。对于对数坐标图,v的元素应为最小值和最大值的常用对数。执行axis(v)会把当前的坐标轴标定范围保持到后面的图中,再次键入axis可恢复系统的自动标定特性。Axis(sguare)能够把图形的范围设定在方形范围内。对
11、于方形长宽比,其斜率为的直线恰位于45o 上,它不会因屏幕的不规则形状而变形。Axis(normal)将使长宽比恢复到正常状态。二、附录 利用MATLAB绘制系统根轨迹的一些其它实例例4.3 已知知一单位反馈系统开环传函为 试在根轨迹上选择一点,求出该点的增益k及其闭环极点的位置,并判断在该点系统的稳定性。程序:num=1,3;den=conv(conv(conv(1 0,1 5),1 6),1 2 2);rlocus(num,den);k,poles=rlocfind(sys);range=33:1:37;cpole=rlocus(num,den,range);range,cpole结果:s
12、elected_point = -5.3780 - 0.0476ians = Columns 1 through 5 33.0000 -5.5745 + 0.6697i -5.5745 - 0.6697i -1.7990 -0.0260 + 1.3210i 34.0000 -5.5768 + 0.6850i -5.5768 - 0.6850i -1.8154 -0.0155 + 1.3340i 35.0000 -5.5791 + 0.7001i -5.5791 - 0.7001i -1.8313 -0.0052 + 1.3467i 36.0000 -5.5815 + 0.7147i -5.58
13、15 - 0.7147i -1.8466 0.0048 + 1.3591i 37.0000 -5.5838 + 0.7291i -5.5838 - 0.7291i -1.8615 0.0146 + 1.3712i Column 6 -0.0260 - 1.3210i -0.0155 - 1.3340i -0.0052 - 1.3467i 0.0048 - 1.3591i 0.0146 - 1.3712i 例4.4 已知带有延迟因子的系统开环传递函数为:1) 试绘制根轨迹图;2) 求系统临界稳定时根轨迹增益;3) 求系统k=0.5时单位阶跃响应曲线。程序:n1=1;d1=conv(conv(1 0,1 1),0.5 1);%s1=tf(n1,d1);np,dp=pade(1,3);G=tf(n1,d1)*tf(np,dp);figure(1);rlocus(G);hold onk,p=rlocfind(G);%sys=feedback(G,1);figure(2)%step(sys);selected_point = -2.7605 - 0.1612i专心-专注-专业
限制150内