资源描述
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);
[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);
>> [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.0793 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-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 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));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('校正之后的系统开环传递函数为:');
校正之后的系统开环传递函数为:
>> 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);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)');
num0=10;
>> den0=conv([1,0],conv([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(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,denc);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
--------------------------------------------------------------
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']);
展开阅读全文