leadlag函数在matlab中怎么调用不出来?

我的matlab是2013Ra版本
2025-03-14 00:31:33
推荐回答(1个)
回答1:

MATLAB 软件自身并没有leadlag这个函数,怀疑你很可能是从薛定宇教授编的书里看到的吧?提供代码如下,供参考:

function gc = leadlag(gp,f,w1,w2) 
[gn gd]=tfdata(gp,'v'); [fn fd]=tfdata(f,'v'); 
h=0.01; w=w1:h:w2; s=sqrt(-1)*w;
gn=polyval(gn,s); g1=real(gn); g2=imag(gn); 
gd=polyval(gd,s); g3=real(gd); g4=imag(gd); 
fn=polyval(fn,s); h1=real(fn); h2=imag(fn); 
fd=polyval(fd,s); h3=real(fd); h4=imag(fd); 
A=h3.*g1-h4.*g2-g1.*h1+h2.*g2; D=h1.*g4+h2.*g3;
B=-h3.*g2-h4.*g1+h1.*g2+h2.*g1; E=h1.*g3-h2.*g4; 
T=w1w2int([1,3,5],(A.^2+B.^2),w); R=w1w2int([2,4],(A.*D+B.*E),w);
S=w1w2int([1,3,5],(A.*E-B.*D),w); Q=w1w2int([3 5],(D.^2+E.^2),w);
x=[T(1) 0 -T(3) R(2) S(3); 0 T(3) 0 -S(3) R(4); 
  -T(3) 0 T(5) -R(4) -S(5); R(2) -S(3) -R(4) Q(3) 0; 
  S(3) R(4) -S(5) 0 Q(5)]; z=[S(1) R(2) -S(3) 0 Q(3)]';
y=x\z; gc=tf(y(3:-1:1)', [y(5) y(4) 1]);
function t=w1w2int(kk,coef,w) 
for k=kk; y=(w.^(k-1)).*coef; t(k)=trapz(w,y); end