基于LabVIEW的PID算法解读

记录一下,方便以后翻阅~

下图是基本的PID算法实现方式,以及实现PID控制器所需的假设和转换。为实现PID控制器,LabVIEW要求算法对输入信号进行采样并离散积分和微分操作。
在这里插入图片描述
一、误差计算

e(k)=SP(k)-PV(k)
上式中:e(k)表示当前(第k时刻)误差;SP表示设定值;PV表示过程变量。

二、比例操作

Up(k)=Kc × e(k)
上式中:Kc表示控制器增益。

三、积分操作(梯形积分)
离散积分操作有几种方式,如前向差分、后向差分和梯形逼近(也称突斯汀或双线性变换)。本PID算法使用梯形积分避免PV或SP的突然改变引起积分操作的剧烈变动,等式如下所示:

UI(k)=UI(k-1)-+((Kc/Ti)×(e(k)+e(k-1))×△t)/2
上式中:△T是控制器的采样时间。

四、微分操作
SP的突然变化会引起误差e的微分操作,因而会造成控制器输出振荡。这些振荡被称为微分冲击。为避免微分冲击,可仅向PV应用微分操作,不要向误差e应用微分操作。下列等式表示本PID算法实现的避免微分冲击的微分操作:

Ud(k)=-Kc×(Td/△t)×(PV(k)-PV(k-1))

五、控制器输出
控制器输出是比例、积分和微分操作的总和,公式如下:

U(k)=Up(k)+UI(k)+Ud(k)

六、输出限制和抗饱和算法
实际控制器输出限制在控制器输出指定的范围内。
如:

U(k)≥Umax
则:
U(k)=Umax
如:
U(k)≤Umin
则:
U(k)=Umin
本PID算法使用的积分和更正算法有助于抗饱和。饱和发生在控制器输出上限。误差e降低时,控制器输出也会随之降低,因而移除饱和区域。积分和更正算法可在手动/自动模式切换或修改任何其他参数时,阻止控制器输出的突然变动。积分和更正原理如下: 如:
|Up(k)+UI(k)|>限值
则:
UI(k)=限值-Up(k)

七、案例分享
在LabVIEW的Examples库里,有一个名为General PID Simulator.vi文件,前面板大致如下图所示:
在这里插入图片描述
程序框图本人进行了简单修改,前面介绍的那些PID公式,其实都封装在了下图红圈的那个VI里:
在这里插入图片描述
仿真运行时,PV值(过程变量)会不断逼近SP值(设定值),效果如下图所示:
在这里插入图片描述
这时,如果改变SP值,那么PV值会朝的新的SP值方向逼近。

八、经验分享
从上面的案例可以发现,当PV值与SP值差值大时,收敛速度很快,并随着PV值与SP值接近而放慢收敛速度。利用这种思想,可以实时追踪一些变化的目标。不过,PID的性能与时间间隔长度有关,ANC(主动降噪)恐怕是不适用了。
在这里插入图片描述

  • 9
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天亮继续睡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值