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

其他行业

开发平台:

Matlab

  1. function  sserrors(z,p,k)
  2. if(k)==0
  3.   [z,p,k]=tf2zp(z,p);
  4.   else
  5. end
  6. p=-p;
  7. z=-z;
  8. systype=0;
  9. km=1;
  10. kn=1;
  11. n=length(p);
  12. m=length(z);
  13. for i=1:m
  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.    systype=systype+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. if(systype)==0
  33.   Kp = Kc; Kv = 0; Ka = 0;
  34.   EssStep = 1/(1+Kc); EssRamp = inf; EssParab = inf;
  35.   end
  36. if(systype)== 1
  37.   Kp = inf; Kv = Kc;  Ka = 0;
  38.   EssStep = 0; EssRamp = 1/Kv; EssParab = inf;
  39.   end
  40. if(systype)== 2
  41.   Kp = inf; Kv = inf ; Ka = Kc;
  42.   EssStep = 0; EssRamp = 0; EssParab = 1/Ka;
  43.   end
  44.   fprintf('System type is %2.0f nn',systype)
  45. disp('Error Constants:')
  46. disp('      Kp    Kv    Ka  ')
  47. disp([Kp,Kv,Ka])
  48. disp('Steady-state Errors:')
  49. disp('        Step    Ramp   Parabolic')
  50. disp([EssStep, EssRamp,EssParab])