matlab自动控制仿真常见函数应用

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

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

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

资源描述

自动控制常见MATLAB函数的应用roots/conv/rlocus/zpk/tf/bode/step/impulse1、在matlab中采用roots函数求解多项式的根,采用conv函数实现多项式的积,相互连接的模块的模型求解也相当简单(1)、串联连接命令G=G1*G2(2)、并联连接命令G=G1±G2(3)、反馈连接命令G=feedback(G1,G2,Sign)(sign用来表示系统是正反馈或负反馈,sign=-1为负反馈)例如:①程序如下:p=[1304];roots(p)ans=-3.35530.1777+1.0773i0.1777-1.0773i②、用matlab实现:程序如下:p=[321];q=[14];n=conv(p,q)n=31494③、一个传递函数模型,32()34psss2()(321)(4)nssss325()345sGssss可以由下面的命令输入:num=[15];den=[1345];G=tf(num,den)Transferfunction:s+5---------------------s^3+3s^2+4s+5④、如下图所示,前向传递函数为G(S),反馈回路传递函数为H(S),利用feedback计算系统的闭环传递函数程序如下:numg=[1];deng=[50000];numh=[11];denh=[12];[num,den]=feedback(numg,deng,numb,denh,-1);[num,den]=feedback(numg,deng,numh,denh,-1);G=tf(num,den)()()()21()500RSESCSGSS1()2SHSSTransferfunction:s+2--------------------------500s^3+1000s^2+s+12、在matlab中,可以轻松的求解系统的所有极点,从而判断其稳定性例子:系统的传递函数为:用matlab判断其稳定性,程序如下:num=[1,7,24,24];den=[1:9];roots(den)ans=-1.2888+0.4477i-1.2888-0.4477i-0.7244+1.1370i-0.7244-1.1370i0.1364+1.3050i0.1364-1.3050i0.8767+0.8814i0.8767-0.8814i3287653272424()2346789SSSGSSSSSSSS可见4个极点带有正实部,所以系统不稳定3、MATLAB中给出了一个函数step()直接求取线性系统的阶跃响应,该函数的调用方式如下:y=step(G,t)(G为系统的传递函数,t为要计算的点到所在时刻的值组成的时间向量,t一般可以由t=0:dt:t_end等步长地产生,t-end为终值时间,而dt为步长;y为系统的输出量)例子:系统的传递函数为:线性系统的稳态值可以通过dcgain()来求得,impulse()函数可以求出系统的脉冲响应程序如下:num=[1,7,24,24];den=[1,10,35,50,24];G=tf(num,den);t=0:0.1:10;y=step(G,t);plot(t,y)Y=dcgain(G)Y=1holdony1=impulse(G,t);plot(t,y1)3243272424()10355024SSSGSSSSS例子:控制精度变化时,系统的闭环传递函数为:应用如下MATLAB语言,可得到=10、=40、=80时的系统响应。可见,当时,系统响应速度明显加快,但出现振荡程序如下:ka=80;nf=[5000];df=[11000];ng=[1];dg=[1200];[num,den]=series(ka*nf,df,ng,dg);[n,d]=cloop(num,den);t=[0:0.01:2];y=step(n,d,t);ak123212()()5000()1()()1020200005000aaaakGSGSKskGSGSssskakakak80akplot(t,y,'black'),gridon4、用matlab绘制根轨迹MTLAB中提供了rlocus()函数,用来绘制给定的根轨迹,该函数的调用方式为:(G为系统的模型,输入变量k为用户自己选择的增益,返回的变量R为根轨迹各点构成的复数矩阵)如果k值不给定,则该函数自动选择k,在这种情况下,调用格式为这样产生的k值可以用来确定闭环系统稳定的增益范围如果在函数调用中不返回任何参数,则将在图形窗口中自动绘制系统R=rlocus(G,K)[,]()RKrlocusGRlocus(G)根轨迹曲线Rlocufind()函数允许用户求取根轨迹上指定点处的开环增益,并将该增益下的所有的闭环极点显示出来:例子:闭环系统的闭环传递函数为:特征方程可以写为:在解题前,必须将特征方程写成下面形式:K为所关心的参数,变化范围从0到,绘制的根轨迹如下:程序如下:num=[11];den=[1560];G=tf(num,den);holdon;rlocus(G);[K,P]=rlocfind(G)Selectapointinthegraphicswindowselected_point=-2.4621+0.0248iK=0.4196P=-2.4655+0.0246i[KP]=rlocufind(G)(1)(2)()(2)(3)(1)KssssssKs110(2)(3)sKsss()10()PsKQs-2.4655-0.0246i-0.0690例子:研究系统根轨迹曲线和阶跃响应曲线之间的关心,考虑系统输出:输入为单位阶跃信号时:程序如下:t=0:0.2:15;K=16.2859;num=K*[143];den=[156+KK];G=tf(num,den);y=step(G,t);plot(t,y)(1)(2)()()()()(2)(3)(1)KssCssRsRssssKsgridon5、在MATLAB中,使用较多的频域稳定性函数有bode函数、nyquist函数、nichols函数、margin函数,pade函数,ngrid函数等。MATLAB的控制系统工具箱中提供了bode()函数来求取、绘制给给定线性系统的伯德图,函数调用方式如下:其中G为系统的对象模型,变量w为用户制定频率点构成的向量,该函数在这些频率点上对系统进行频率分析。mag、pha对应系统的幅值和相位向量,相位的单位为角度。同时经常要将幅值向量转换成分贝形式,MATLAB命令为:[mag,pha]=bode(G.,w)该函数的另一种调用格式为:这时w可以自动生成,如果在调用bode函数时不返回变量,则MATLAB自动生成系统的伯德图。一般和计算增益裕度和相角裕度的函数margin结合使用例子:考虑系统传递函数:则可以用下面的命令绘出系统的伯德图,计算出增益裕度和相角裕度,程序如下:w=logspace(-1,1,200);num=[13];den=[conv([11],[12]),0];G=tf(num,den);[xyw]=bode(G,w);margin(x,y,w)[mag,pha,w]=bode(G.)magdB=20*log10(mag)3()(1)(2)sGssss例子:考虑系统传递函数则可用下面命令绘出系统的奈氏图num=[0.5];den=[1210.5];[re,im]=nyquist(num,den);plot(re,im),gridon320.5()20.5Gssss

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

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

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

×
保存成功