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

本文详细介绍了MATLAB在自动控制仿真中的一些常用函数,如roots、conv、rlocus、zpk、tf、bode、step和impulse。通过实例展示了如何利用这些函数进行系统建模、稳定性分析、阶跃响应和脉冲响应计算,以及绘制根轨迹和伯德图。此外,还探讨了不同控制参数对系统响应的影响,强调了函数在系统设计和分析中的重要性。
摘要由CSDN通过智能技术生成

41528d3028836879cd698677c3999917.gifmatlab自动控制仿真常见函数应用.doc

自动控制常见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()4pss2()(31)(4)nssss325()4sGsss可以由下面的命令输入:>>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()50RSESCS1()2SH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.8814i328765324()2789SSGSS可见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=1>>holdon>>y1=impulse(G,t);>>plot(t,y1)32474()105024SSG例子:控制精度变化时,系统的闭环传递函数为:应用如下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);ak1232()50()150aaakGSKssskaka80a>>plot(t,y, black ),gridon4、用matlab绘制根轨迹MTLAB中提供了rlocus()函数,用来绘制给定的根轨迹,该函数的调用方式为:(G为系统的模型,R=rlocus(G,K)输入变量k为用户自己选择的增益,返回的变量R为根轨迹各点构成的复数矩阵)如果k值不给定,则该函数自动选择k,在这种情况下,调用格式为[,]()RKrlocusG这样产生的k值可以用来确定闭环系统稳定的增益范围如果在函数调用中不返回任何参数,则将在图形窗口中自动绘制系Rlocus(G)统根轨迹曲线Rlocufind()函数允许用户求取根轨迹上指定点处的开环增益,并将该增益下的所有的闭环极点显示出来:[KP]=rlocufind(G)例子:闭环系统的闭环传递函数为:特征方程可以写为:在解题前,必须将特征方程写成下面形式: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(1)2()23(1)Ksss110(2)(3sK()0PQs-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()()()23(1KsCsRsRs>>gridon5、在MATLAB中,使用较多的频域稳定性函数有bode函数、nyquist函数、nichols函数、margin函数,pade函数,ngrid函数等。MATLAB的控制系统工具箱中提供了bode()函数来求取、绘制给给定线性系统的伯德图,函数调用方式如下:[mag,pha]=bode(G.,w)其中G为系统的对象模型,变量w为用户制定频率点构成的向量,该函数在这些频率点上对系统进行频率分析。mag、pha对应系统的幅值和相位向量,相位的单位为角度。同时经常要将幅值向量转换成分贝形式,MATLAB命令为:该函数的另一种调用格式为:[mag,pha,w]=bode(G.)这时w可以自动生成,如果在调用bode函数时不返回变量,则MATLAB自动生成系统的伯德图。一般和计算增益裕度和相角裕度的函数margin结合使用例子:考虑系统传递函数:则可以用下面的命令绘出系统的伯德图,计算出增益裕度和相角裕度,程序如下:>>w=logspace(-1,1,200);>>num=[13];>>den

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值