PID算法Demo

本文介绍了作者在实现PID算法过程中的思考与经验,包括锅炉调温的场景需求、增量式PID算法的原理与公式解析,以及PID参数调整的口诀。文章提供了核心代码示例,并分享了在实际应用中可能出现的问题及解决思路,如dt大小对结果的影响。
摘要由CSDN通过智能技术生成

pre

最近在准备做一些事的时候可能需要用到PID算法,所以今天下午基于网上的一些教程和博客写了一遍,在写的过程中遇到了一些疑惑和坑,这里分享一个整个过程和最后的成果,留作日后参考。

需求

场景: 锅炉调温
现在有一加热热水锅炉,我们需要他稳定提供70度的热水,当前室温25度,用来加热的水是温度为50度的温水。
锅炉的加热功率能够瞬时加热水到40度,同时功率可以调整,支持从0W到最高瓦数的瞬时切换(这里都是测试数据,不要带入现实)

水会自然散热,散热曲线符合二次曲线,假设曲线为 0.2 *( temperature - environment)^2

增量式PID算法

(这里只使用了增量式的PID,所以不讨论其他类型的PID)
PID算法设计三个变量,分别是偏差的比例(P)、积分(I)和微分(D)。增量式PID套用的公式为
u(k)=Kp * [e(k)-e(k-1)]+Ki * e(k)+Kd * [e(k)-2e(k-1)+e(k-2)]
下面是对上式中变量的解释
u(k): PID的阶段输出,预期dt下的增量,几何意义上是,拟合曲线在当前时间tk下的切线斜率
Kp : 从公式中看出是用来动态调节步伐的,(进小远大)
Ki : 当前偏差的缩放洗漱
Kd : 对前两项值得2次修正调整,使最后的曲线尽可能平滑。 也就是减少扰动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值