pid1_dfl.m

来自「vTools is a toolbox for Matlab 5.3 devel」· M 代码 · 共 44 行

M
44
字号
function pid1_dfl;
%Massimo Davini 08/11/99

global stack;

   
for canale=1:stack.temp.canali
%inizio for   
   Num=stack.temp.Num(canale,:);
   Den=stack.temp.Den;
   [a,b,c,d]=tf2ss(Num,Den);
   tol=sqrt(eps)*10;p=[];
   while isempty(p)
     tol=tol/10;
     [amin,bmin,cmin,dmin]=minreal(a,b,c,d,tol);
     [z,p,k]=ss2zp(amin,bmin,cmin,dmin);
   end;
   
   sys=ss(amin,bmin,cmin,dmin);
   if ~isempty(find(real(p)>0))|...
      ~isempty(find(real(p)==0 & imag(p)==0))
   %canale instabile
   stabile=0;
   else stabile=1;
   end;

   stack.temp.stabili(canale)=stabile;
   
   if stabile
      dc=dcgain(sys);
      parametritipo=0;

      %canale stabile di ordine 1,senza zeri,con abs(dc)>10e-3
      if length(p)==1 & isempty(z) & isfinite(dc) & abs(dc)>1e-4
         parametritipo=1;
         T=-1/p; t0=T/100;
      %canale stabile con abs(dc)>10e-3 di ordine qualunque
      elseif length(p)>1 & isfinite(dc) & abs(dc)>1e-4
          %-------------------
          %stima del Rise Time
          %-------------------
          [y,t]=step(sys);
          %trova y / 10%dc <= y <= 90%dc , tra questi considera quelli
          %relativi alla prima salita ( se c'

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?