数字pid控制器积分项的改进有哪些,pid积分控制原理

  数字pid控制器积分项的改进有哪些,pid积分控制原理

  从微积分的基本原理来说,积分的实现就是无限细分情况下的矩形加法计算。但在离散状态下,时间间隔足够长,矩形积分的精度在某些情况下显得较低,因此提出梯形积分来提高积分的精度。

  1.梯形积分的基本思想

  在PID控制中,积分项的作用是消除残余误差。为了使残差最小,应提高积分项的运算精度。在积分项中,默认是以矩形方式计算积分。将矩形积分改为梯形积分可以提高运算精度。计算公式为:

  因此,如果将梯形积分引入位置PID算法,计算公式可以修改如下:

  同样,要将梯形积分引入增量PID算法,可以修改计算公式如下:

  2.算法实现。

  从微积分的角度来说,当微分被分成无穷多个时,矩形积分和梯形积分没有区别。但实际上我们的采样时间不可能无限小,也不可能是连续的。那么采样周期越长,矩形与实际曲线的偏差越大,而梯形积分可以更接近实际曲线。因此,用梯形积分代替矩形积分可以得到更高的精度。

  (1)位置PID算法的实现

  之前已经完成了位置PID的实现,不同的是之前用的是矩形积分。在本节中,我们将把积分部分改为梯形积分,并且也首先定义PID对象的结构:

  1 /*定义结构和公共机构*/

  2

  3 typedef结构

  四

  5 {

  六

  7浮动设定值;//设置值

  八

  9浮动比例增益;//比例系数

  10

  11浮点积分增益;//积分系数

  12

  13浮点导数增益;//微分系数

  14

  15浮点lasterror//前一节拍偏差

  16

  17浮点结果;//输出值

  18

  19浮点积分;//整数值

  20

  21 } PID接下来,实施PID控制器:

  1 void PIDRegulation(PID *vPID,浮点处理值)

  2

  3 {

  四

  5 float thisError

  六

  七

  八

  9 this error=vPID-setpoint-process value;

  10

  11 vPID-integral=(this error vPID-lasterror)/2;

  12

  13 vPID-result=vPID-proportion gain * this error vPID-integral gain * vPID-integral vPID-derivative gain *(this error-vPID-lasterror);

  14

  15 vPID-lasterror=this error;

  16

  17}从上面的实现中,不难看出,变化只是在做积分累加vPID- integral时,将累计量以梯形方式累加。

  (2)增量式PID算法的实现

  实现了同增量PID的梯形积分,即积分部分的矩形积分部分可以用梯形积分代替。首先,定义PID对象的结构:

  1 /*定义结构和公共机构*/

  2

  3 typedef结构

  四

  5 {

  六

  7浮动设定值;//设置值

  八

  9浮动比例增益;//比例系数

  10

  11浮点积分增益;//积分系数

  12

  13浮点导数增益;//微分系数

  14

  15浮点lasterror//前一节拍偏差

  16

  17浮动预误差;//前两拍的偏差

  18

  19浮动死区;//死区

  20

  21浮点结果;//输出值

  22

  23 } PID接下来,实施PID控制器:

  1 void PIDRegulation(PID *vPID,浮点处理值)

  2

  3 {

  四

  5 float thisError

  六

  7浮动增量;

  八

  9 float pError,dError,iError

  10

  11

  12

  13 this error=vPID-setpoint-process value;//获取偏差值

  14

  15 pError=this error-vPID-lasterror;

  16

  17 I error=(thisError vPID-lasterror)/2;

  18

  19 dError=this error-2 *(vPID-lasterror)vPID-preerror;

  20

  21 increment=vPID-proportion gain * pError vPID-integral gain * iError vPID-derivative gain * der error;//增量计算

  22

  23

  24

  25 vPID-preerror=vPID-lasterror;//为下一次操作存储偏差。

  26

  27 vPID-lasterror=this error;

  28

  29 vPID-result=增量;

  30

  31 }3.摘要

  引入积分项的目的是消除系统的残差,因此积分项的计算精度越高,越有利于消除系统的残差。与矩形积分相比,梯形积分的精度更高,因此消除残差更有效。

  欢迎关注:

  想更方便及时的阅读相关文章,请关注我的微信微信官方账号【木南创智】

  转载请联系作者取得转载授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • waitpid函数作用,c wait函数
  • waitpid函数作用,c wait函数,详解C语言中的wait()函数和waitpid()函数
  • ,,javascript SpiderMonkey中的函数序列化如何进行
  • spiderfoot安装,spiderfoot会被对手反扫描
  • PySpider,pyspider官方文档
  • C语言PID,pid控制算法的c语言实现
  • pid控制死区范围,带死区的pid控制方法有何优点
  • pid控制器中微分的作用,pid控制微分方程
  • 微分先行的pid控制算法课程设计,什么是微分先行pid控制
  • 设计pid控制器并设定参数,pid控制器参数设置
  • PID控制器百科,PID控制实现
  • PID控制算法原理,pid 控制算法
  • pid控制中积分控制指什么,数字pid控制器积分项的改进有哪些
  • pid控制器的调节原则,试说明pid控制器的优点
  • 通过进程名查找进程的pid,linux根据程序名查进程
  • 留言与评论(共有 条评论)
       
    验证码: