加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

阶跃响应指标的求取

(2010-07-09 18:51:11)
标签:

matlab

阶跃响应

分类: 控制系统

    在分析系统性能的时候,常常用到阶跃输入,此外,在对系统性能进行优化的时候,往往将阶跃响应的指标作为优化的依据。我们讨论一下在matlab中阶跃响应指标求取的方法。

    假设我们得到了两组数据,分别为时间t、输出y,其点的个数是一样多的。阶跃输入时系统响应的典型指标有:超调量pos、峰值时间tp、上升时间tr、调节时间ts、稳态误差ess(steady state error)。

    超调量:为过程中输出的最大数值相对于稳态输出的偏差量,(输出最大值-稳态数值)/稳态数值×100%。

    峰值时间:即过程中输出的最大数值所对应的时间。

    上升时间:一般定义为从稳态输出的10%第一次上升到稳态输出90%所用的时间。

    调节时间:输出到达稳态输出的某个误差范围内所用的时间,通常有2%和5%两种误差范围。

    稳态误差:为给定输入与稳态输出的差值。

    根据以上定义,可以很容易在matlab中求出各项指标。

    num=length(t);              %数据长度

    [mp,dtp]=max(y);            %最大值mp和对应的时间点

    tp=t(dtp);                  %最大值时间tp

    yss=y(num);                 %稳态数值yss

    pos=100*(mp-yss)/yss;       %超调量pos

    ess=mp-rin;                 %稳态误差ess,其中rin为给定输入

 

    for i=1:1:num

      if (y(i)>1.02*yss)

         ts=t(i);

      else if (y(i)<0.98*yss)

         ts=t(i);

           end

      end

    end                          %2%误差 调节时间ts

 

    for i=1:1:num

      if (y(i)<0.1*yss)

         t1=t(i);

      else if (y(i)==mp)         %避免运算时间 到最大值即可返回

         break;

           end

      end

    end

 

    for i=1:1:num

      if (y(i)<0.9*yss)

         t2=t(i);

      else if (y(i)==mp)         %避免运算时间 到最大值即可返回

         break;

           end

      end

    end

    tr=t2-t1;                     %上升时间tr

   

2010年7月9日晚上于 njust automation department 101房间

 

CopyRight:版权所有若需转载或使用请联系作者

Email:dingqian12345@126.com  

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有