×ԿؿγÌÉè¼Æ±¨¸æ ÏÂÔØ±¾ÎÄ

Ô­´«µÝº¯Êý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