Errortf.m
上传用户:eighthdate
上传日期:2014-05-24
资源大小:270k
文件大小:1k
源码类别:

其他行业

开发平台:

Matlab

  1. function  sserrors(num,den)
  2. [z,p,k]=tf2zp(num,den);
  3. p=-p;
  4. z=-z;
  5. sysm=0; sysn=0;
  6. systype=0;
  7. km=1;
  8. kn=1;
  9. n=length(p);
  10. m=length(z);
  11. for i=1:m
  12.     if(z(i))==0
  13.     sysm=sysm+1;
  14.     else,end
  15.   if(z(i)) ~= 0
  16.      if(z(i)) ~=-inf
  17.      km=km*z(i);
  18.      else
  19.      end
  20.    else
  21.    end
  22. end
  23. for i=1:n
  24. if(p(i))== 0
  25.    sysn=sysn+1;
  26.    else
  27.      if(p(i)) ~=-inf
  28.      kn=kn*p(i);
  29.      end
  30.    end
  31. end
  32. Kc=k*km/kn;
  33. systype=sysn-sysm;
  34. if(systype)==0
  35.   Kp = Kc; Kv = 0; Ka = 0;
  36.   EssStep = 1/(1+Kc); EssRamp = inf; EssParab = inf;
  37.   end
  38. if(systype)== 1
  39.   Kp = inf; Kv = Kc;  Ka = 0;
  40.   EssStep = 0; EssRamp = 1/Kv; EssParab = inf;
  41.   end
  42. if(systype)== 2
  43.   Kp = inf; Kv = inf ; Ka = Kc;
  44.   EssStep = 0; EssRamp = 0; EssParab = 1/Ka;
  45.   end
  46. if(systype) > 2
  47.   Kp = inf; Kv = inf ; Ka = inf;
  48.   EssStep = 0; EssRamp = 0; EssParab = 0;
  49.   end
  50. if(systype) < 0
  51.   Kp = 0; Kv = 0 ; Ka = 0;
  52.   EssStep = inf; EssRamp = inf; EssParab = inf;
  53.   end
  54.   fprintf('System type is %2.0f nn',systype)
  55. disp('Error Constants:')
  56. disp('      Kp    Kv    Ka  ')
  57. disp([Kp,Kv,Ka])
  58. disp('Steady-state Errors:')
  59. disp('        Step    Ramp   Parabolic')
  60. disp([EssStep, EssRamp,EssParab])