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

其他行业

开发平台:

Matlab

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