pid算法原理、调试经验以及代码

pid算法原理、调试经验以及代码

ID:1206984

大小:428.00 KB

页数:8页

时间:2017-11-08

pid算法原理、调试经验以及代码_第1页
pid算法原理、调试经验以及代码_第2页
pid算法原理、调试经验以及代码_第3页
pid算法原理、调试经验以及代码_第4页
pid算法原理、调试经验以及代码_第5页
资源描述:

《pid算法原理、调试经验以及代码》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、1.PID原理2.流程图3。PID代码//定义变量floatKp;                //PI调节的比例常数floatTi;                //PI调节的积分常数floatT;                //采样周期floatKi;floatek;                //偏差e[k]floatek1;              //偏差e[k-1]floatek2;              //偏差e[k-2]floatuk;                //u

2、[k]signedintuk1;            //对u[k]四舍五入取整signedintadjust;          //调节器输出调整量//变量初始化  Kp=4;  Ti=0。005;  T=0.001;//Ki=KpT/Ti=0.8,微分系数Kd=KpTd/T=0.8,Td=0.0002,根据实验调得的结果确定这些参数  ek=0;  ek1=0;  ek2=0;  uk=0;  uk1=0;  adjust=0;intpiadjust(floatek)  //PI调节算法{  if(g

3、abs(ek)<0.1)  {    adjust=0;  }  else  {        uk=Kp*(ek-ek1)+Ki*ek;  //计算控制增量    ek1=ek;        uk1=(signedint)uk;    if(uk>0)    {      if(uk-uk1>=0.5)      {        uk1=uk1+1;      }    }    if(uk<0)    {      if(uk1-uk>=0.5)      {        uk1=uk1-1;   

4、   }    }    adjust=uk1;    }            returnadjust;}下面是在AD中断程序中调用的代码。        。。。。。。。。。。。    else//退出软启动后,PID调节,20ms调节一次        {          EvaRegs.CMPR3=EvaRegs.CMPR3+piadjust(ek);//误差较小PID调节稳住          if(EvaRegs.CMPR3>=890)          {            EvaRegs

5、.CMPR3=890;//限制PWM占空比          }              }      。。。。。。。。。。。。。。。。4。PID调节经验总结PID控制器参数选择的方法很多,例如试凑法、临界比例度法、扩充临界比例度法等。但是,对于PID控制而言,参数的选择始终是一件非常烦杂的工作,需要经过不断的调整才能得到较为满意的控制效果。依据经验,一般PID参数确定的步骤如下[42]:(1)    确定比例系数Kp确定比例系数Kp时,首先去掉PID的积分项和微分项,可以令Ti=0、Td=0,使之成为纯比

6、例调节。输入设定为系统允许输出最大值的60%~70%,比例系数Kp由0开始逐渐增大,直至系统出现振荡;再反过来,从此时的比例系数Kp逐渐减小,直至系统振荡消失。记录此时的比例系数Kp,设定PID的比例系数Kp为当前值的60%~70%。(2)    确定积分时间常数Ti比例系数Kp确定之后,设定一个较大的积分时间常数Ti,然后逐渐减小Ti,直至系统出现振荡,然后再反过来,逐渐增大Ti,直至系统振荡消失。记录此时的Ti,设定PID的积分时间常数Ti为当前值的150%~180%。(3)    确定微分时间常数Td微

7、分时间常数Td一般不用设定,为0即可,此时PID调节转换为PI调节。如果需要设定,则与确定Kp的方法相同,取不振荡时其值的30%。(4)    系统空载、带载联调对PID参数进行微调,直到满足性能要求。上面的实际是PI调节的代码,现附上PID的。1.//声明变量2.3.//定义变量4.floatKp;                //PID调节的比例常数5.floatTi;                //PID调节的积分常数6.floatT;                //采样周期7.floatTd

8、;                //PID调节的微分时间常数8.floata0;9.floata1;10.floata2;11.12.floatek;                //偏差e[k]13.floatek1;              //偏差e[k-1]14.floatek2;              //偏差e[k-2]15.floatuk;                //

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。