微分先行的pid控制算法课程设计,什么是微分先行pid控制

  微分先行的pid控制算法课程设计,什么是微分先行pid控制

  之前已经实现了各种PID算法,但是在某些给定值变化频繁且幅度较大的情况下,微分项往往会引起系统的振荡。为了适应给定值频繁变化的情况,人们设计了差分优先算法。

  1.差分优先算法的思想。

  微分PID控制只对输出进行微分,不对给定指令进行微分,适用于给定指令频繁上升和下降的情况,可以避免指令变化带来的超调。预先区分的基本结构图:

  根据上面的结构图,我们可以推导出PID控制器的输出公式。比例和积分不变,但微分部分改为只对物体输出积分,标记为y .我们在微分部分引入一阶惯性滤波器:可记录微分部分的传递函数如下:

  那么微分部分可以导出下面的公式:

  我们在推导PID的公式时,规定Kd=Kp*Td/T,所以带入公式得到:

  那么我们可以先得到微分的离散化公式:

  这是位置PID的计算公式,我们也可以用前面的方法导出增量计算公式如下:

  从上式中我们发现微分部分只与测量值有关,而且与连续几个测量值有关。与设定值无关,设定值的阶跃变化不会引起高频干扰。

  2.算法实现。

  我们简要介绍了当前微分的基本结构,并推导了位置公式和增量公式。接下来,根据前面对其基本思想的描述,我们将首先实现基于微分的PID算法,它也包括位置法和增量法。

  (1)位置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浮点lastPv//前一拍的测量值

  24

  25浮动伽马;//差分第一滤波器系数

  26

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

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

  2

  3 {

  四

  5 float thisError

  六

  7浮点c1,c2,c3,temp

  八

  9 this error=vPID-setpoint-process value;

  10

  11 vPID-integral=this error;

  12

  13

  14

  15 temp=vPID-gama * vPID-derivative gain vPID-proportion gain;

  16

  17 c3=vPID-导数gain/temp;

  18

  19 C2=(vPID-derivative gain vPID-proportion gain)/temp;

  20

  21 C1=vPID-gama * C3;

  22

  23 vPID-导数=c1* vPID-导数C2 * process value C3 * vPID-lastPv;

  24

  25

  26

  27 vPID-result=vPID-proportion gain * this error vPID-integral gain * vPID-integral vPID-导数;

  28

  29 vPID-lasterror=this error;

  30

  31 vPID-lastPv=process value;

  32

  3}对于先微分的位置PID控制器,本次的微分项不仅与前一拍的微分结果有关,还与前一拍的测量值有关。

  (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浮点deltadiff/*微分增量*/

  24

  25浮点积分值;/*累计积分数*/

  26

  27浮伽马;/*微分滤波器系数*/

  28

  29浮点lastPv/*最后一拍的过程测量值*/

  30

  31 float lastDeltaPv/*最后一次心跳测量值的增量*/

  32

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

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

  2

  3 {

  四

  5 float thisError

  六

  7浮动增量;

  八

  9 float pError,iError

  10

  11浮点c1,c2,c3,temp

  12

  13浮动PV;

  14

  15

  16

  17 temp=vPID-gama * vPID-derivative gain vPID-proportion gain;

  18

  19 c3=vPID-导数gain/temp;

  20

  21 C2=(vPID-derivative gain vPID-proportion gain)/temp;

  22

  23 C1=vPID-gama * C3;

  24

  25

  26

  27 deltaPv=process value-vPID-last deltaPv

  28

  29 vPID-delta diff=C1 * vPID-delta diff C2 * delta PV C3 * vPID-lastdetapv;

  30

  31

  32

  33 thisError=vPID-设定点-过程值;//获取偏差值

  34

  35 pError=this error-vPID-lasterror;

  36

  37 iError=thisError

  38

  39 increment=vPID-proportion gain * pError vPID-integral gain * iError vPID-delta diff;//增量计算

  40

  41

  四十二个

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

  四十四

  45 vPID-lastdetapv=deltaPv;

  46

  47 vPID-lastPv=process value;

  48

  49 vPID-lasterror=this error;

  50

  51 vPID-result=增量;

  五十二个

  50}这实现了最简单的微分优先增量PID控制器。与一般的PID控制器相比,还需要知道前一拍的测量值、前一拍的测量值的增量和前一拍的微分增量,剩下的只需要根据公式完成即可。

  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,linux根据程序名查进程
  • 串级控制系统pid怎么调,串级控制pid参数怎么调节
  • 留言与评论(共有 条评论)
       
    验证码: