完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
前言
在介绍数字PID之前首先简单介绍PID控制器调节原理,图1为常规PID控制器结构框图,该控制器通过求出控制量与输出反馈量的偏差e(t),对偏差进行比例(P)、积分(I)和微分(D)运算,得到的调节量相加得到最终控制量u(t),实现对受控对象的实时调节[1]。 PID控制控制算法可以写成: 其中r(t)为目标输入,y(t)为系统输出,输入值与系统输出的偏差e(t) = r(t) - y(t),KP是比例系数,KI和KD分别是积分和微分时间常数, 控制器控制效果的优劣与这三个参数的整定结果有关。 使用工业微处理器实现数字PID算法是电机控制最常用的控制手段,通过将编码器实时采集的数据与当前的输入量的偏差值来计算下一次的控制量,数字式PID调节算法的具体工作原理如下。 数字式PID比例调节(P) 以带编码器的电机为例,当电机开始运行,微处理器就会采样一系列编码器产生的数据,将所采集的数据序列记为y1,y2, ...,yk-1,yk,将目标设定值记为Rv,当前采样数据记为Yk,则当前误差为Ek=Rv-Yk。根据Ek的值有三种情况:当Ek>0时,表示当前控制未达标;当Ek=0时,表示当前控制正好达标;当Ek<0时表示当前控制超标。故PID控制器中的比例调节器可以根据Ek的值对输出信号做出调整,将当前误差Ek乘以一个系数KP,该系数值可以理解成一个衰减器或放大器来调节当前误差值作为系统的控制信号。为防止Ek=0时控制失控,引入常数out0,因此比例控制可表示为Pout=KP*Ek+out0,从公式可以看出比例控制必须在系统存在误差的条件下才能工作,如果Ek=0,则通过out0对系统进行一个微弱的控制,以保证误差的随时存在,比例控制只考虑当前误差,因此控制效果最明显。 数字式PID积分调节(I) 通过编码器采集的数据序列y1,y2, ...,yk-1,yk,我们可以根据误差公式Ek=Rv-Yk得到一组误差序列E1,E2,...,Ek1,Ek,将该序列称为历史偏差序列。由于误差值Ek存在三种状态,将1~k时刻的误差序列求代数和记Sk=E1+E2+...+Ek-1+Ek,其Sk不会无穷大且也会存在三种情况:当Sk>0时,表示1~k时刻的误差值以正数居多,根据Ek=Rv-Yk可知1~k时刻控制输出总体上较设定值偏低;当Sk=0时,表示当前控制正好达标,但这种情况几率较小;当Sk<0时表示1~k时刻控制输出总体上较设定值偏高。故在调节方式上应做如下调整,当Sk>0在过去一段时间总体上控制信号未达标时,将Sk乘一个系数KI放大控制信号。当Sk=0时,只能表示在1~k时刻系统偏差满足设定条件,但不能代表当前时刻输出达标,为防止在Sk=0时积分项停止工作,同样引入常数项out0,故积分控制器可表示为Iout=KP*Sk+out0,积分控制根据历史偏差输出控制信号,显然具有滞后性。 数字式PID微分调节(D) 根据控制系统1~k时刻误差序列E1,E2,...,Ek1,Ek,将最近两次的偏差值相减记为Dk=Ek-Ek-1,Dk的值表示偏差的变化率,同样存在三种情况,值的大小则说明了偏差的变化趋势。当Dk>0时表示当前时刻偏差较上一时刻偏差大,说明当前输出已经越来越偏离目标值,反之亦然。微分调节器的工作原理主要是利用最近时刻偏差的变化率预测接下来的控制量。为提高微分算法的控制灵敏度,在Dk前面乘一个系数Kp来提高系统的控制灵敏度,同样为保持微分控制器的稳定性,也要加上一个系数out0保持微分控制器的正常工作,故有Dout=KP*Dk+out0,微分控制不可独立使用,因为微分控制不考虑偏差是否存在,而是根据偏差的变化率进行控制。 具有积分分离的增量式数字式PID 根据上述比例、积分、微分的单独分析,可以得到典型数字PID控制器表达式如下: 下面对公式(3-38)中的变量做进一步解释,对于积分项Sk可以表示为: 其中T为微处理器的计算周期,Ti为积分时间常数,它是比例和积分共同作用的控制时间,当Ti越大,对于积分控制来说输出效果越小,较大的时间常数相当于较长历史偏差的一组数据和的时间平均。而积分时间常数越小则表示就近偏差和的时间平均,不考虑历史偏差和的时间平均,这样会导致控制器失去对系统输出变化趋势的判断。 在PI控制器中,对于控制系统初始阶段到满足目标值这一时刻,系统的每一个历史偏差值都是正数,这会累积一组较大的正数误差和,导致当前系统输出已经满足目标设定值,比例项停止输出,但积分项由于从初始阶段到当前时刻累积较大的正数误差,因为积分控制器的特点即使当前时刻误差值为零,依旧持续输出控制信号会造成系统过冲。因此应当在初始阶段将积分时间常数选择无穷大,削弱积分项的控制,在当前值占目标值80%左右在将积分项加入,通过这种积分分离的方式避免了积分项过早的投入到系统控制中。 对于微分项Dk可以表示为: Td为微分时间常数,也可以理解为当比例控制和微分控制共同需要对控制系统做出调整的这段时间,Td越大微分控制对于系统的控制越明显。微分控制的控制效果也与计算周期T的选取有关,如果计算周期T取值过大会导致同等偏差下斜率越低,降低了微分控制器的控制性能。 总结上述分析可以得出应用于微处理器上的位置式PID控制器表达式如下: 但位置式PID的积分环节会累积大量历史数据,对于电机编码器这一类具有记忆功能的传感器,选择增量式PID控制算法效果最佳,该算法计算的是控制量的增加/减少值,其具体表达式如下: 其中Ek、Ek-1、Ek-2分别为第k次、第k-1次和第k-2次偏差。 |
|
|
|
只有小组成员才能发言,加入小组>>
3309 浏览 9 评论
2988 浏览 16 评论
3490 浏览 1 评论
9049 浏览 16 评论
4083 浏览 18 评论
1167浏览 3评论
601浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
592浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2329浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1892浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 20:38 , Processed in 1.214266 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号