《基于matlab的自控课设.doc》由会员分享,可在线阅读,更多相关《基于matlab的自控课设.doc(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、摘要串联滞后-超前校正兼有滞后校正和超前校正的优点,即已校正系统的响应速度较快,超调量较小,抑制高频噪声的性能也较好。当校正系统不稳定,且要求校正后系统的响应速度,相角裕度和稳态精度较高时,以采用串联滞后-超前校正为宜。其基本原理是利用滞后-超前网络的超前部分来增大系统的相角裕度,同时利用滞后部分来改善系统的稳态性能。此次课程设计就是利用MATLAB对一单位反馈系统进行滞后-超前校正。通过运用MATLAB的相关功能,绘制系统校正前后的伯德图、根轨迹和阶跃响应曲线,并计算校正后系统的时域性能指标。关键字:超前-滞后校正 MATLAB 伯德图 时域性能指标目录摘要 21 设计要求及方法 5 1.1
2、 设计要求 5 1.2 设计方法 52 滞后-超前校正设计目的和原理 5 2.1 滞后-超前设计目的 5 2.2 滞后=超前设计原理 63 滞后-超前校正的设计过程 73.1 校正前参数 73.1.1 用MATLAB绘制校正前系统的伯德图 73.1.2 用MATLAB求校正前系统的幅值裕量和相位裕量 83.1.3 用MATLAB绘制校正前系统的根轨迹 93.1.4 对校正前系统进行仿真分析 10 3.2 滞后-超前校正设计参数计算 113.2.1利用MATLAB计算出滞后校正器的传递函数 113.2.2 利用MATLAB计算出超前校正器的传递函数 11 3.3 滞后-超前校正的验证 133.3
3、.1 用MATLAB求校正后系统的幅值裕量和相位裕量 133.3.2 用MATLAB求校正后系统的伯德图 143.3.3 用MATLAB求校正后系统的根轨迹 153.3.4 用MATLB对校正后的系统进行仿真分析 164 传递函数特征根的计算 17 4.1 校正前系统的传递函数的特征根 17 4.2 校后前系统的传递函数的特征根 185 系统动态分析 18 5.1 校正前系统的动态性能分析 18 5.2 校正后系统的动态性能分析 236 系统的根轨迹分析 26 6.1 校正前系统的根轨迹分析 26 6.2 校正后系统的根轨迹分析 287 系统的幅相特性 30 7.1 校正前系统的幅相特性 30
4、 7.2 校正后系统的幅相特性 318 系统的对数幅频特性及对数相频特性 32 8.1 校正前系统的对数幅频特性及对数相频特性 32 8.2 校正后系统的对数幅频特性及对数相频特性 339 心得体会 35参考文献 351设计要求及方法1.1设计要求已知单位负反馈系统的开环传递函数,试用频率法设计串联校正装置,要求校正后系统的静态速度误差系数,系统的相角裕度,校正后的剪切频率。1.2 设计方法应用频率法确定滞后超前校正参数的步骤:1、根据稳态性能指标,绘制未校正系统的伯德图;2、选择校正后的截止频率;3、确定校正参数;4、确定滞后部分的参数;5、确定超前部分的参数;6、将滞后部分和超前部分的传递
5、函数组合在一起,即得滞后-超前校正的传递函数;7、绘制校正后的伯德图,检验性能指标。2 滞后-超前校正设计目的和原理2.1 滞后-超前校正设计目的所谓校正就是在系统不可变部分的基础上,加入适当的校正元部件,使系统满足给定的性能指标。校正方案主要有串联校正、并联校正、反馈校正和前馈校正。确定校正装置的结构和参数的方法主要有两类:分析法和综合法。分析法是针对被校正系统的性能和给定的性能指标,首先选择合适的校正环节的结构,然后用校正方法确定校正环节的参数。在用分析法进行串联校正时,校正环节的结构通常采用超前校正、滞后校正和滞后-超前校正这三种类型。超前校正通常可以改善控制系统的快速性和超调量,但增加
6、了带宽,而滞后校正可以改善超调量及相对稳定度,但往往会因带宽减小而使快速性下降。滞后-超前校正兼用两者优点,并在结构设计时设法限制它们的缺点。2.2 滞后-超前校正设计原理滞后-超前校正RC网络电路图如图1所示。图1 滞后-超前校正RC网络下面推导它的传递函数:令,则其中为超前部分的参数,为滞后部分的参数。滞后-超前校正的频域设计实际是超前校正和滞后校正频域法设计的综合,基本方法是利用滞后校正将系统校正后的穿越频率调整到超前部分的最大相角处的频率。具体方法是先合理地选择截止频率,先设计滞后校正部分,再根据已经选定的设计超前部分。3 滞后-超前校正的设计过程3.1 校正前系统的参数根据初始条件,
7、调整开环传递函数:根据系统的静态速度误差系数,取K=5S。则满足初始条件的最小K值时的开环传递函数为3.1.1 用MATLAB绘制校正前系统的伯德图程序:num=5;den=0.25,1.25,1,0;bode(num,den)grid得到的伯德图如图2所示。图2 校正前系统的伯德图3.1.2 用MATLAB求校正前系统的幅值裕量和相位裕量用命令margin(G)可以绘制出G的伯德图,并标出幅值裕量、相位裕量和对应的频率。用函数kg,r,wg,wc=margin(G)可以求出G的幅值裕量、相位裕量和幅值穿越频率。程序:num=5;den=0.25,1.25,1,0;G=tf(num,den);
8、margin(G)kg,r,wg,wc=margin(G)得到的幅值裕量和相位裕量如图3所示。图3 校正前系统的幅值裕量和相位裕量运行结果: kg=1.0000 r=7.3342*10-6 wg=2.0000 wc=2.0000即幅值裕量相位裕量=(7.3342*10-6)o穿越频率=2rad/s截止频率=2rad/s3.1.3 用MATLAB绘制校正前系统的根轨迹MATLAB中专门提供了绘制根轨迹的有关函数。p,z=pzmap(num,den)的功能是绘制连续系统的零、极点图。r,k=rlocus(num,den)的功能是绘制部分的根轨迹。程序:num=5;den=0.25,1.25,1,0
9、;rlocus(num,den)得到校正前系统的根轨迹如图4所示。图4 校正前系统的根轨迹3.1.4 对校正前系统进行仿真分析Simulink是可以用于连续、离散以及混合的线性、非线性控制系统建模、仿真和分析的软件包,并为用户提供了用方框图进行建模的图形接口,很适合于控制系统的仿真。仿真后得到的结果如图5和图6所示。图5 校正前系统的仿真图图6 校正前系统仿真的阶跃响应曲线3.2 滞后-超前校正设计参数计算3.2.1 利用MATLAB计算出滞后校正器的传递函数滞后校正器的传递函数为:根据题目要求,取校正后系统的剪切频率。并编写求滞后校正器传递函数的程序MATLAB程序如下:wc=3;k0=5;
10、nl=1;dl=conv(conv(1,0,1,1),0.25,1);beta=10;T=1/(0.1*wc);betat=beta*T;Gc1=tf(T,1,betat,1)程序结果为:即对于校正后系统的滞后校正补偿器传递函数为:3.2.2 利用MATLAB语言计算出超前校正器的传递函数要计算出校正后系统的传递函数,就编写求校正器的传递函数的MATLAB程序,其中调用了求超前校正器传递函数的函数leadc(),leadc.m保存在matlab7.0work文件夹下。若已知系统的开环传递函数与要求校正后的相角稳定裕度或剪切频率,求系统串联滞后校正器传递函数时,就可以调用此函数。leadc.m编
11、制如下:function Gc=leadc(key,sope,vars)% MATLAB FUNCTION PROGRAM leadc.m%if key=1 gama=vars(1);gama1=gama+5; mag,phase,w=bode(sope); mu,pu=bode(sope,w); gam=gama1*pi/180; alpha=(1-sin(gam)/(1+sin(gam); adb=20*log10(mu); am=10*log10(alpha); wc=spline(adb,w,am); T=1/(wc*sqrt(alpha); alphat=alpha*T; Gc=tf
12、(T 1,alphat 1);elseif key=2 wc=vars(1); num=sope.num1;den=sope.den1; na=polyval(num,j*wc); da=polyval(den,j*wc); g=na/da; g1=abs(g); h=20*log10(g1); a=10(h/10); wm=wc; T=1/(wm*(a)(1/2); alphat=a*T; Gc=tf(T 1,alphat 1);elseif key=3 gama=vars(1);wc=vars(2);gama1=gama+5; num=sope.num1;den=sope.den1; ng
13、v=polyval(num,j*wc); dgv=polyval(den,j*wc); g=ngv/dgv; thetag=angle(g); thetag_d=thetag*180/pi; mg=abs(g); gama_rad=gama1*pi/180; z=(1+mg*cos(gama_rad-thetag)/(-wc*mg*sin(gama_rad-thetag); p=(cos(gama_rad-thetag)+mg)/(wc*sin(gama_rad-thetag); nc=z,1;dc=p,1; Gc=tf(nc,dc);End其中key=1时,为var=gama,是根据要求校正
14、后的相角稳定裕度计算滞后校正器;当key=2时,为var=wc,则是根据要求校正后的剪切频率计算校正器。MATLAB程序如下:wc=3;n1=conv(0,5,3.333,1);dl=conv(conv(1,0,1,1),conv(0.25,1,33.33,1);sope=tf(n1,dl);Gc=leadc(2,sope,wc)程序结果为:即对于校正后系统的超前校正补偿器传递函数为:综上,校正后系统的开环床底函数为:3.3 滞后-超前校正后的验证由于校正过程中,多处采用的是近似计算,可能会造成滞后-超前校正后得到的系统的传递函数不满足题目要求的性能指标。所以需要对滞后-超前校正后的系统进行验
15、证。下面用MATLAB求已校正系统的相角裕量和幅值裕量。3.3.1 用MATLAB求校正后系统的幅值裕量和相位裕量程序:num=129.8,55.59,5den=0.1177,8.924,42.4,34.59,1,0G=tf(num,den);margin(G)kg,r,wg,wc=margin(G)得到的校正后系统的幅值裕量和相位裕量如图7所示。图7 校正后系统的幅值裕量和相位裕量运行结果:kg= 22.2950 r=61.8620 wg=18.1141 wc=2.9766即校正后系统的幅值裕量相位裕量=61.862o穿越频率=18.1141rad/s截止频率=2.9766rad/s满足要求
16、。(注:如果验证结果不满足要求,则需要重新选择校正后的截止频率,重复上述过程,直到满足要求为止。)3.3.2 用MATLAB绘制校正后系统的伯德图程序:num=129.8,55.59,5den=0.1177,8.924,42.4,34.59,1,0bode(num,den)grid得到的伯德图如图8所示。图8 校正后系统的伯德图3.3.3 用MATLAB绘制校正后系统的根轨迹程序:num=129.8,55.59,5den=0.1177,8.924,42.4,34.59,1,0rlocus(num,den)得到的校正后系统的根轨迹如图9所示。图9 校正后系统的根轨迹3.3.4 用MATLAB对校
17、正前后的系统进行仿真分析用Simulink对校正后的系统仿真。仿真后得到的结果如图10和图11所示。图10 校正后系统的仿真图图11 校正后系统仿真的阶跃响应曲线4 传递函数特征根的计算4.1校正前系统的传递函数的特征根校正前的开环传递函数为:故该系统的闭环特征方程为:求特征根的MATLAB程序为:p=0.25,1.25,1,5;roots(p)结果为:由于校正前系统单位负反馈的特征方程有右半平面的根,故校正前的闭环系统不稳定。4.2校正后系统的传递函数的特征根校正后的开环传递函数为:故该系统的闭环特征方程为:求特征根的MATLAB程序为 p=0.1177,8.924,42.4,164.39,
18、56.59,5;roots(p)结果为:由于校正后系统单位负反馈的特征方程没有右半平面的根,故校正后的闭环系统稳定。5 系统动态性能的分析5.1校正前系统的动态性能分析校正前的开环传递函数为:单位脉冲响应MATLAB程序为:num=5;den=0.25,1.25,1,0;s=tf(num,den);closep=feedback(s,1);figure(1)impulse(closep)title(校正前单位脉冲响应)图5-1 校正前系统的单位脉冲响应单位阶跃响应MATLAB程序为:num=5;den=0.25,1.25,1,0;s=tf(num,den);closep=feedback(s,
19、1);figure(1)step(closep)title(校正前单位阶跃响应)图5-2 校正前系统的单位阶跃响应由阶跃响应求动态性能参数要计算出阶跃响应动态性能参数,就编写求解阶跃响应动态性能参数的MATLAB程序,其中调用了函数perf(),perf.m保存在matlab7.0work文件夹下,其中key=1时,表示选择5%误差带,当key=2时表示选择2%误差带。y,t是对应系统阶跃响应的函数值与其对应的时间。函数返回的是阶跃响应超调量sigma(即)、峰值时间tp、调节时间ts。 perf.m编制如下:function sigma,tp,ts=perf(key,y,t)%MATLAB
20、FUNCTION PROGRAM perf.m%Count sgma and tpmp,tf=max(y);cs=length(t);yss=y(cs);sigma= (mp-yss)/ysstp=t(tf)%Count tsi=cs+1;n=0;while n=0, i=i-1; if key=1, if i=1, n=1; elseif y(i)1.05*yss, n=1; end; elseif key=2, if i=1, n=1; elseif y(i)1.02*yss, n=1; end; endend;t1=t(i);cs=length(t);j=cs+1;n=0;while n
21、=0, j=j-1; if key=1, if j=1, n=1; elseif y(j)0.95*yss, n=1; end; elseif key=2, if j=1, n=1; elseif y(j)0.98*yss, n=1; end; end;end;t2=t(j); if t2t2; ts=t1 end elseif t2tp, if t2t1, ts=t2 else ts=t1 end endMATLAB程序为:global y ts1=tf(0,5,0.25,1.25,1,0);sys=feedback(s1,1);figure(1)step(sys)y,t=step(sys)
22、;perf(1,y,t)程序结果为: 所以%=1.9267%,tp=8.3897s,ts=8.7124s。在Simulink 窗口里菜单方式下的单位斜坡响应的动态结构图如下:图5-3 校正前系统的单位斜坡响应的动态结构仿真图校正前单位斜坡响应曲线如下所示:图5-4 校正前系统的单位斜坡响应5.2校正后系统的动态性能分析校正后的开环传递函数为:单位脉冲响应MATLAB程序为:num=129.8,55.59,5den=0.1177,8.924,42.4,34.59,1,0s=tf(num,den);closep=feedback(s,1);figure(1)impulse(closep)title
23、(校正后单位脉冲响应)图5-5 校正后系统的单位脉冲响应单位阶跃响应MATLAB程序为:num=129.8,55.59,5den=0.1177,8.924,42.4,34.59,1,0s=tf(num,den);closep=feedback(s,1);figure(1)step(closep)title(校正后单位阶跃响应)图5-6 校正后系统的单位阶跃响应由阶跃响应求动态性能参数MATLAB程序为:global y tnum=120.1,70.02,10den=0.5063,12.05,49.84,39.3,1,0s=tf(num,den);sys=feedback(s,1);figure
24、(1)step(sys)y,t=step(sys);pref(1,y,t)程序结果为: 所以%=0.0568%,tp=1.0394s,ts=1.0394s。由图可知,系统稳态误差显然,校正后的系统动态性能比校正前的系统动态性能好得多,改善了系统的平稳性、快速性和稳态精度。单位斜坡响应在Simulink 窗口里菜单方式下的单位斜坡响应的动态结构图如下:图5-7校正后系统的单位斜坡响应的动态结构仿真图校正前单位斜坡响应曲线如下所示:图5-8 校正后系统的单位斜坡响应单位脉冲、阶跃、斜坡响应曲线的相互对应关系是:单位脉冲响应的积分是单位阶跃响应曲线,单位阶跃响应的积分是单位斜坡响应。6 系统的根轨迹
25、分析6.1校正前系统的根轨迹分析校正前的开环传递函数为:MATLAB程序如下:num=5;den=0.25,1.25,1,0;rlocus(num,den)图6-1 校正前系统的根轨迹确定分离点坐标:图6-2 校正前根轨迹的分离点坐标分离点坐标d=-0.465确定与虚轴交点的坐标:图6-3 校正前根轨迹与虚轴的交点坐标与虚轴的交点坐标:、。K*=5.02校正前系统稳定时增益K*的变化范围是K*5.02,而题目中的K*=10,校正前的闭环系统不稳定。6.2校正后系统的根轨迹分析校正后的开环传递函数为:MATLAB程序如下:num=129.8,55.59,5den=0.1177,8.924,42.
26、4,34.59,1,0rlocus(num,den)图6-4 校正后系统的根轨迹确定分离点坐标:图6-5 校正后根轨迹的分离点坐标分离点坐标d=-2.4确定与虚轴交点的坐标:图6-6校正后根轨迹与虚轴的交点坐标与虚轴的交点坐标:、。增益K*=100校正前系统稳定时增益K*的变化范围是K*90.3,而题目中的K*=5,校正后的闭环系统稳定。7 系统的幅相特性7.1校正前系统的幅相特性校正前的开环传递函数为:MATLAB程序如下:num=5;den=0.25,1.25,1,0;s1=tf(num,den);nyquist(s1)图7-1 校正前系统的Nyquist曲线由于开环传递函数中含有一个积分
27、环节,所以从到顺时针补画一圈,再由上图可知,Nyquist曲线顺时针围绕点(-1,j0)两圈,所以,,而,所以校正前闭环系统不稳定。7.2校正后系统的幅相特性校正后的开环传递函数为: MATLAB程序如下:num=120.1,70.2,10;den=0.5063,12.05,49.84,39.3,1,0;s=tf(num,den);nyquist(s)图7-2 校正后系统的Nyquist曲线由于开环传递函数中含有一个积分环节,所以从到顺时针补画一圈,再由上图可知,Nyquist曲线顺时针围绕点(-1,j0)0圈,所以,,而,所以,所以校正后闭环系统稳定。8 系统的对数幅频特性及对数相频特性8.
28、1校正前系统的对数幅频特性及对数相频特性校正前的开环传递函数为:MATLAB程序如下:MATLAB程序如下:num=5;den=0.25,1.25,1,0;G=tf(num,den);margin(G)kg,r,wg,wc=margin(G)得到的幅值裕量和相位裕量如图3所示。图3 校正前系统的幅值裕量和相位裕量运行结果: kg=1.0000 r=7.3342*10-6 wg=2.0000 wc=2.0000即幅值裕量相位裕量=(7.3342*10-6)o穿越频率=2rad/s截止频率=2rad/s由于开环传递函数中含有一个积分环节,应从对数相频特性曲线上处开始,用虚线向上补画角。所以,在开环
29、对数幅频的频率范围内,对应的开环对数相频特性曲线对线有一次负穿越,即,则,所以校正前闭环系统不稳定。8.2校正后系统的对数幅频特性及对数相频特性校正后的开环传递函数为:MATLAB程序如下:MATLAB程序如下:num=129.8,55.59,5den=0.1177,8.924,42.4,34.59,1,0G=tf(num,den);margin(G)kg,r,wg,wc=margin(G)得到的校正后系统的幅值裕量和相位裕量如图7所示。图7 校正后系统的幅值裕量和相位裕量运行结果:kg= 22.2950 r=61.8620 wg=18.1141 wc=2.9766即校正后系统的幅值裕量相位裕
30、量=61.862o穿越频率=18.1141rad/s截止频率=2.9766rad/s由于开环传递函数中含有一个积分环节,应从对数相频特性曲线上处开始,用虚线向上补画角。所以,在开环对数幅频的频率范围内,对应的开环对数相频特性曲线对线无穿越,即、,则,所以校正后闭环系统稳定。并且校正后的系统的相位裕量45 o、静态速度误差系数=52、剪切频率均符合题目设计的要求,故系统校正到此全部完成。9 心得体会此次课程设计的内容对一个单位反馈系统进行滞后-超前校正。回顾此次实践的整个过程,虽然只有短短的几天,但是真的在这个自己独立学习的过程中学到了好多东西。课程设计开始阶段比较顺利,但是做到计算校正后系统的
31、时域性能指标这里时,遇到了不小麻烦,不会用MATLAB编程得校正参数。后来,在同学的帮助下,找到了计算校正参数的那段程序,于是就求出了校正后的传递函数。这次的课程设计,让我更更深一步的了解MATLAB这个十分有用的软件,与理论相结合。与此同时,通过此次课程设计,让我加深了对系统进行滞后-超前设计过程的理解,还掌握了用MATLAB编程计算系统时域性能指标和系统幅值裕量、相位裕量的方法。总而言之,这次的课程设计的确让我受益匪浅。参考文献1陈杰主. MATLAB宝典. 电子工业出版. 2007.2李国勇. 智能控制与其MATLAB实现. 电子工业出版社. 2005.3胡寿松. 自动控制原理. 科学出版社. 2007.4王万良. 自动控制原理. 高等教育出版社. 2008.5黄坚. 自动控制原理及其应用. 高等教育出版社. 2004.6程 鹏 .自动控制原理M .北京:高等教育出版社, 20097徐薇莉. 自动控制理论与设计M 上海:上海交通大学出版社,20018欧阳黎明. MATLAB控制系统设计M. 北京:国防工业出版社,20019吴天明,谢小竹等. MATLAB电力系统设计与分析.国防工业出版社,2004- 34 -