wd840611 发表于 2005-1-24 23:13:35

控制工程基础中在画根轨迹时候求分离点以及渐进线的程序:

<P>程序之二</P>
<P>控制工程基础中在画根轨迹时候求分离点以及渐进线的程序:
分离点的:
function =flds(G)
G=tf(G);
num=G.num{1};
den=G.den{1};
dt=get(G,'inputdelay');
syms ns ds
a=conv(den,polyder(num));
b=conv(num,polyder(den));
a1=(-b);
a2=dt*conv(num,den);
ss=roots(-a2);
k=[];
s=[];
for i=1:length(ss)
    ns=poly2sym(num,'s');
    ds=poly2sym(den,'s');
    Kk(i)=-subs(ns/ds,'s',ss(i));
    if Kk(i)&gt;0
      k=;
      s=
      disp (s)
      
    else
      S='此系统无分离点!';
    end
end</P>
<P>
渐进线:
function s=jjx(G)
G=tf(G);
num=G.num{1};
den=G.den{1};
dt=get(G,'inputdelay');
p=roots(den);
z=roots(num);
n=length(p);
m=length(z);
if dt==0
   if n&gt;m
         s=(sum(p)-sum(z))/(n-m);
         sd=[];
         if nargout &lt;1
             for i=1:n-m
               sd=;
             end
             Ga=zpk([],sd,1);
             hold on;
             =rlocus(Ga);
             for i=1:n-m
               plot(real(r(i,:)),imag(r(i,:)),'r:');
             end
         end
         
else
   disp('没有渐进线')
   s=[];
end
else
    a=get(gca,'xlim');
   b=pi/dt;
   line(a,,'linesty','r:');
   line(a,[-b -b],'linesty','r:');
end

</P>
页: [1]
查看完整版本: 控制工程基础中在画根轨迹时候求分离点以及渐进线的程序: