什么是增量式PID算法?

什么是增量式PID算法?,第1张

1,PID增量算法:是PID控制算法的一种,有滤波的选择,系统的动态过程加速的功能。

(1)滤波的选择:可以对输入加一个前置滤波器,使得进入控制算法的给定值不突变,而是有一定惯性延迟的缓变量。

(2)系统的动态过程加速:如果被控量继续偏离给定值,则这两项符号相同,而当被控量向给定值方向变化时,则这两项的符号相反。由于这一性质,当被控量接近给定值的时候,反号的比例作用阻碍了积分作用,因而避免了积分超调以及随之带来的振荡,这显然是有利于控制的。但如果被控量远未接近给定值,仅刚开始向给定值变化时,由于比例和积分反向,将会减慢控制过程。

2,PID增量算法的饱和作用及其抑制:在PID增量算法中,由于执行元件本身是机械或物理的积分储存单元,如果给定值发生突变时,由算法的比例部分和微分部分计算出的控制增量可能比较大,如果该值超过了执行元件所允许的最大限度,那么实际上执行的控制增量将时受到限制时的值,多余的部分将丢失,将使系统的动态过程变长,因此,需要采取一定的措施改善这种情况。

首先,熟悉你所用的单片机或其他控制芯片的硬件资源和性能,确定好控制精度,然后将采样值PID通过算法转化为PWM的占空比输出。其实只要写个程序实现PID的计算式即可,PID难的是调参数……例如:signed int PIDCalcOnce(signed int InputValue, signed int Target)

{

signed int Value

signed int Excursion,DExcursion=Target-InputValue// 偏差I+=Excursion// 积分

if(I>Integral_MAX)I=Integral_MAX

if(I<-Integral_MAX)I=-Integral_MAX//积分上限D=InputValue-OldInputValue// 当前微分

OldInputValue=InputValueValue = Excursion*Px+I*Ix-D*Dx

if(Value>MAX_Adjust)Value=MAX_Adjust

if(Value<-MAX_Adjust)Value=-MAX_Adjust//最大调节限制

return (Value)}只是算法别照搬……增量式的PID自己下去多查查吧


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8123997.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存