Ô´«µÝº¯ÊýG(S)?K0
S(0.1S?1)(0.001S?1)¸ù¾ÝÔϵͳµÄ¿ª»·¶ÔÊý·ùÆµÌØÐԵļôÇÐÆµÂÊÇó³öÔϵͳµÄÏà½ÇÔ£¶È
c=100rad/s£¬
ԼΪ0¶È£¬Õâ˵Ã÷ÔϵͳÔÚ
45¶ÈµÄÒªÇó¡£
K=1000/sʱ´¦ÓÚÁÙ½çÎȶ¨×´Ì¬£¬²»ÄÜÂú×ãΪÂú×ã
45¶ÈµÄÒªÇ󣬴®ÁªÐ£Õý×°ÖÃÌṩµÄ×î´ó³¬Ç°Ïà½Ç
c'
m±ØÐë´óÓÚµÈÓÚ45¶È¡£¿¼Âǵ½Ð£ÕýºóϵͳµÄ¼ôÇÐÆµÂÊ»áÉÔ´óÓÚУÕýǰµÄ¼ôÇÐÆµÂÊÖõÄ×î´ó³¬Ç°Ïà½Ç
c£¬Òò´Ë£¬Ð£ÕýʱӦ¸øÐ£Õý×°
¡£
È¡15¶È
mÔö¼ÓÒ»¸ö²¹³¥½Ç¶È
a?1?sin?1?sin?mm ?m=
³ÌÐòÈçÏ£º
>> k=1000;
>> d1=conv(conv([1 0],[0.1 1]),[0.001 1]); >> scop=tf(k,d1);
>> w=logspace(0,4,50); >> bode(scop,w);
>> [Gm,Pm,Wcg,Wcp]=margin(scop)
1aT½á¹ûΪ£º
Gm =1.0100 Pm = 0.0584 Wcg =100.0000 Wcp = 99.4863
5
¼ôÇÐÆµÂÊ?C0=99.5rad/sec£¬Ïà½ÇÔ£¶È?0=0.0584degºÍ·ùÖµ
Ô£¶ÈGm=0.0864dB
4.2ÀûÓÃMATLABÓïÑÔ¼ÆËã³ö³¬Ç°Ð£ÕýÆ÷µÄ´«µÝº¯Êý¡£
Òª¼ÆËã³öУÕýºóϵͳµÄ´«µÝº¯Êý£¬¾Í±àдÇó³¬Ç°Ð£ÕýÆ÷µÄ´«µÝº¯ÊýµÄMATLAB³ÌÐò£¬ÆäÖе÷ÓÃÁËÇó³¬Ç°Ð£ÕýÆ÷´«µÝº¯ÊýµÄº¯Êýleadc()£¬leadc.m±£´æÔÚmatlab7.0\\work\\Îļþ¼ÐÏ£¬ÆäÖÐkey=1ʱ£¬Îªvar=gama£¬ÊǸù¾ÝÒªÇóУÕýºóµÄÏà½ÇÎȶ¨Ô£¶È¼ÆË㳬ǰУÕýÆ÷£»µ±key=2ʱ£¬Îªvar=wc£¬ÔòÊǸù¾ÝÒªÇóУÕýºóµÄ¼ôÇÐÆµÂʼÆËãУÕýÆ÷¡£ÈôÒÑ֪ϵͳµÄ¿ª»·
6
´«µÝº¯ÊýÓëÒªÇóУÕýºóµÄÏà½ÇÎȶ¨Ô£¶È»ò¼ôÇÐÆµÂÊ£¬Çóϵͳ´®Áª³¬Ç°Ð£ÕýÆ÷´«µÝº¯Êýʱ£¬¾Í¿ÉÒÔµ÷Óô˺¯Êý¡£leadc.m±àÖÆÈçÏ£º
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([T 1],[alphat 1]); elseif key==2 wc=vars(1);
num=sope.num{1};den=sope.den{1}; 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+15;
7
num=sope.num{1};den=sope.den{1}; ngv=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
matlab³ÌÐòÈçÏ£º
>> k=1000;
>> d1=conv(conv([1 0],[0.1 1]),[0.001 1]); >> sope=tf(k,d1);
>> gama=60;[Gc]=leadc(1,sope,[gama])
Transfer function: 0.02148 s + 1 -------------- 0.001056 s + 1
ËùÒÔ´«µÝº¯ÊýÈçÓÒ±ßËùʾ 4.3
G(S)?0.02148s?10.001056s?1УÑéϵͳУÕýºóϵͳÊÇ·ñÂú×ãÌâĿҪÇó£º
³ÌÐòÈçÏ£º k0=1000; n1=1;
d1=conv(conv([1 0],[0.1 1]),[0.001 1]);s1=tf(k0,d1); s1=tf(k0*n1,d1); n2=[0.02148 1]; d2=[0.001056 1]; s2=tf(n2,d2);
sys=s1*s2;figure(1); margin(sys)
8