1、1.某单位负反馈控制系统的开环传递函数为,试设计一超前校正装置,使校正后系统的静态速度误差系数,相位裕量,增益裕量。 2.某单位负反馈控制系统的开环传递函数为,试设计一个合适的滞后校正网络,使系统阶跃响应的稳态误差约为0.04,相角裕量约为。 3.某单位负反馈控制系统的开环传递函数为,试设计一滞后-超前校正装置,使校正后系统的静态速度误差系数,相位裕量,增益裕量。 num0=20; den0=[2 1 0]; w=0.1:1000; [gm1,pm1,wcg1,wcp1]=margin(num0,den0); [mag1,phase1]=bode(num0,den0,w);
2、 [gm1,pm1,wcg1,wcp1]; margin(num0,den0); grid >> e=5; >> r=50; >> r0=pm1; >> phic=(r-r0+e)*pi/180; >> alpha=(1+sin(phic))/(1-sin(phic)); >> [il,ii]=min(abs(mag1-1/sqrt(alpha))); >> wc=w( ii); T=1/(wc*sqrt(alpha)); numc=[alpha*T,1]; denc=[T,1]; >> [num,den]=series(num0,den0,numc,denc); >
3、> [gm,pm,wcg,wcp]=margin(num,den); >> printsys(numc,denc) num/den = 0.48482 s + 1 -------------- 0.079302 s + 1 >> disp('校正之后的系统开环传递函数为:'); 校正之后的系统开环传递函数为: >> printsys(num,den) num/den = 9.6963 s + 20 ---------------------------- 0.1586 s^3 + 2.07
4、93 s^2 + s >> [mag2,phase2]=bode(numc,denc,w); >> [mag,phase]=bode(num,den,w); >> subplot(2,1,1);semilogx(w,20*log10(mag),w,20*log10(mag1),'--',w,20*log10(mag2),'-.'); >> grid; >> ylabel('幅值(db)'); title('--Go,-Gc,GoGc'); >> subplot(2,1,2); semilogx(w,phase,w,phase1,'--',w,phase2,'-',w,(w-
5、180-w),':'); >> grid; ylabel('相位(0)'); xlabel('频率(rad/sec)'); >> title(['校正前:幅值裕量=',num2str(20*log10(gm1)),'db','相位裕量=',num2str(pm1),'0'; >> num0=25; >> den0=conv([1,1],conv([1,1],[1,1])); >> w=logspace(-1,1.2); >> [gm1,pm1,wcg1,wcp1]=margin(num0,den0); Warning: The closed-loop system
6、 is unstable. > In lti.margin at 89 In margin at 92 >> [mag1,phase1]=bode(num0,den0,w); >> [gm1,pm1,wcg1,wcp1]; >> margin(num0,den0) >> grid; >> [gm1,pm1,wcg1,wcp1] ans = 0.3200 -30.0045 1.7322 2.7477 >> e=10; >> r=45; >> phi=(-180+r+e); >> [il,ii]=min(abs(phase1-phi)
7、);wc=w( ii); beit=mag1(ii); T=10/wc; >> numc=[ T,1]; denc=[ beit*T,1]; >> [num,den]=series(num0,den0,numc,denc); >> [gm,pm,wcg,wcp]=margin(num,den); >> printsys(numc,denc) num/den = 11.4062 s + 1 -------------- 121.2354 s + 1 >> disp('校正之后的系统开环传递函数为:'); 校正之后的系统开环传递函数为: >
8、> printsys(num,den) num/den = 285.1562 s + 25 ----------------------------------------------------------- 121.2354 s^4 + 364.7061 s^3 + 366.7061 s^2 + 124.2354 s + 1 >> [mag2,phase2]=bode(numc,denc,w); >> [mag,phase]=bode(num,den,w); >> subplot(2,1,1);sem
9、ilogx(w,20*log10(mag),w,20*log10(mag1),'--',w,20*log10(mag2),'-.'); >> grid; ylabel('幅值(db)'); title('--Go,-Gc,GoGc'); >> subplot(2,1,2); semilogx(w,phase,w,phase1,'--',w,phase2,'-',w,(w-180-w),':'); >> grid; ylabel('相位(0)'); xlabel('频率(rad/sec)'); num0=10; >> den0=conv([1,0],c
10、onv([1,1],[1,2])); >> w=logspace(-1,1.2); >> [gm1,pm1,wcg1,wcp1]=margin(num0,den0); Warning: The closed-loop system is unstable. > In lti.margin at 89 In margin at 92 >> [mag1,phase1]=bode(num0,den0,w); >> [gm1,pm1,wcg1,wcp1] ans = 0.6000 -12.9919 1.4142 1.8020 >> margin
11、num0,den0) >> grid; >> wc=1.41; >> beit=10; >> T2=10/wc; >> lw=20*log10(w/1.41)-4.44; >> [il,ii]=min(abs(lw+20)); w1=w(ii); >> numc1=[1/w1,1];denc1=[1/ (beit*w1),1]; >> numc2=[ T2,1];denc2=[ beit*T2,1]; >> [numc,denc]=series(numc1,denc1,numc2,denc2); >> [num,den]=series(num0,den0,numc,d
12、enc);printsys(numc,denc) num/den = 31.0168 s^2 + 11.4656 s + 1 --------------------------- 31.0168 s^2 + 71.3593 s + 1 >> disp('校正之后的系统开环传递函数为:');printsys(num,den) 校正之后的系统开环传递函数为: num/den = 310.1682 s^2 + 114.6557 s + 10 -------------------------
13、 31.0168 s^5 + 164.4098 s^4 + 277.1116 s^3 + 145.7186 s^2 + 2 s >> [mag2,phase2]=bode(numc,denc,w); >> [mag,phase]=bode(num,den,w); >> [gm,pm,wcg,wcp]=margin(num,den); >> subplot(2,1,1);semilogx(w,20*log10(mag),w,20*log10(mag1),'--',w,20*log10(mag2),'-.'); >> grid; ylabel('幅值(db)'); title('--Go,-Gc,GoGc'); >> subplot(2,1,2); semilogx(w,phase,w,phase1,'--',w,phase2,'-',w,(w-180-w),':'); >> grid; ylabel('相位(0)'); xlabel('频率(rad/sec)'); >> title(['校正后:幅值裕量=',num2str(20*log10(gm)),'db','相位裕量=',num2str(pm),'0']);






