资源描述:
《第八课控制系统频率法校正.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第八课线性系统的校正方法一、实验目的1.了解串联超前校正环节对系统稳定性及过渡过程的影响。2.通过实验掌握用频率特性法分析自动控制系统的动态特性。3.掌握串联校正装置的设计方法和参数调试技术。4.研究串联滞后校正装置对系统的校正作用。5.设计给定系统的滞后校正环节,并用实验验证校正环节的正确性。二、实验内容例6-1若单位反馈系统未校正系统的开环传递函数为要求校正后系统的速度误差系数为50,相角稳定裕度为。试确定串联相位超前校正的传递函数。解:根据稳态性能指标要求,确定开环增益K因此,校正前系统的开环传递函数为编写MATLAB程序,求出未校正前系统的对数频率特性及稳定裕量:num=5
2、0;den=conv([0.2510],[0.011]);bode(num,den);grid;[gm,pm,wcg,wcp]=margin(num,den)gm=2.0800pm=8.3167wcg=20.0000wcp=13.7944此时的相位裕量pm=8.3167<45,因此需要校正。按串联校正的要求输入以下程序:dmp=45-pm+15;phi=dmp*pi/180;a=(1-sin(phi))/(1+sin(phi));mm=-10*log10(1/a);[mu,pu,w]=bode(num,den);mu_db=20*log10(mu);wc=spline(mu_db,
3、w,mm);T=1/(wc*sqrt(a));p=a*T;nk=[T,1];dk=[p,1];Gc=tf(nk,dk)运行后,得到校正装置的传递函数为Transferfunction:0.1225s+1-------------0.01478s+1再输入以下命令:h=tf(num,den);hl=tf(nk,dk);g=h*hl;bode(g);grid;[gm1,pm1,wcg1,wcp1]=margin(g)可以得到校正后系统的Bode图:gm1=6.1255pm1=48.1149wcg1=77.9143wcp1=23.5040可见,校正后的pm1=48.1149>45,基本满
4、足设计要求。s=tf('s');num=50;den=conv([0.2510],[0.011]);G0=tf(num,den);Gc=tf(nk,dk)Gclose1=feedback(G0,1,-1);Gclose2=feedback(G0*Gc,1,-1);figure(1)step(Gclose1,'r',Gclose2,'g')grid由单位阶跃响应曲线可知,校正后系统的性能明显改善。用Simulink仿真软件建立系统的模型:运行之后,分别得到加校正装置前、后系统的响应曲线如下:例6-2设某控制系统被控对象传递函数为要求校正后的系统的速度误差系数为30,相角稳定裕度大于4
5、0,试确定串联相位滞后装置的传递函数。解:根据稳态性能指标要求,确定开环增益K因此,校正前系统的开环传递函数为编写MATLAB程序,求出未校正前系统的对数频率特性及稳定裕量:num=30;den=conv([0.110],[0.21]);bode(num,den);grid;[gm,pm,wcg,wcp]=margin(num,den)Warning:Theclosed-loopsystemisunstable.>InD:MATLAB6p5p1toolboxcontrolcontrol@ltimargin.matline89InD:MATLAB6p5p1toolbo
6、xcontrolcontrolmargin.matline92gm=0.5000pm=-17.2390wcg=7.0711wcp=9.7714由此可见,系统不稳定,需要校正。按串联滞后校正的要求输入以下程序:dpm=-180+40+5;[mu,pu,w]=bode(num,den);wc=spline(pu,w,dpm);mu_db=20*log10(mu);m_wc=spline(w,mu_db,wc);beta=10^(-m_wc/20);T=1/(beta*(wc/10));nk=[beta*T1];dk=[T1];hl=tf(nk,dk)可得校正装置的传递函数为:Tr
7、ansferfunction:3.562s+1-----------31.94s+1再输入以下命令:h=tf(num,den);g=h*hl;bode(g);grid;[gm1,pm1,wcg1,wcp1]=margin(g)可得校正后的相位裕量和对数频率特性为:gm1=4.1482pm1=39.8004wcg1=6.8012wcp1=2.8182由校正的结果可见,原不稳定的系统已经稳定,而且具有相位裕量角为40。s=tf('s');num=30;den=conv([