PID温控实验平台搭建(五)——最终实验现象与总结

PID温控实验平台搭建

(一)PID基础知识介绍

(二)PID进阶知识介绍及源码分享

(三)从零开始搭建STM32温控实验平台

(四)PID温控系统代码讲解

(五)最终实验现象与总结



前言

最近,我突发奇想去翻阅了一些我本科期间所做的一些小项目,发现都挺有意思的!当年做这些项目的时候可走了很多弯路,所以想着可以将它们上传到网络上,并通过我的讲解文章可以帮助你们少走一些弯路!

今天,我要分享的是一个PID温控实验平台的搭建,因为我想要讲的详细一点,所以打算做成一个系列,手把手地教你学习和认识PID算法,了解这种算法在温度控制中的应用。由于我知识有限,如果出现一些错误,希望大家可以帮助我指出来,我们一起学习进步!!!


一、实验数据的获得与处理

实验数据的获取方式主要是靠STM32通过串口发送指定格式的数据给VOFA++上位机,然后上位机对数据进行拆分,绘出温度实时变化的曲线,还可以将数据保存为csv格式

aafc25049a5240e3b9642b9445396923.png

图1 VOFA++上位机


二、实验过程

1、实验前参数的选择

1)采样周期

DS18B20的数据手册里并没有给出最大采样频率,于是我参考了很多网络资料,查到了200ms作为DS18B20的最小采样周期是合适的。只有采样周期短,我们才可以获得更多的数据,这样我们的控制才更加精准!

2)调节周期

针对譬如温度控制这种大惯性系统而言,调节周期的选择尤为重要!在第二节中,我已经详细和大家介绍了调节周期如何选择,我们需要针对不同系统的不同特性来选择调节周期,既不能太大(控制会变形),也不能太小(曲线噪声会变多)。我先行通过工程经验计算法初步确定调节周期在2000ms~4000ms之间,但还需要通过试验的方式进一步确定好!在这里,我们限定Kp=90,Ki=Kd=0,通过测试(200ms~10000ms)之间多组次的采样周期,观察曲线的平滑情况。通过不断的测试,我们发现在调节周期为4s时,曲线最为平滑,噪声数据也最小。如图1所示,是在Kp=90,Ki=Kd=0下,200~5000ms下温度变化图,我还测试了5000ms~10000ms的,由于数据量太大,我就不放出来的,需要的可以稍后评论区自取。

PID温控实验平台搭建(二)——PID进阶知识介绍及源码分享https://blog.csdn.net/qq_35953617/article/details/127849549

626bf1568a8546dcb56107b9a76ae1ca.png

图1 Kp=90 Ki=Kd=0下 200~5000ms下温度变化图

 3)PWM波的输出频率

由于STM32F103的ARR寄存器为16位,最大值在1~65535之间,设置ARR寄存器的值为(10000-1),分频因子PSC的值为(72-1),在这里没有用到重复计数器。故PWM波的输出频率为  f = 72M/(71+1)*(9999+1) = 100 Hz,T = 1/f = 10 ms,远小于采样频率和调节周期,符合要求! 

663bb0a13aba4e36af9699e3b0bba7ef.png

图2 逻辑分析仪捕捉到的100Hz频率

2、PID参数整定过程

我们还是依据系列第二节讲的顺序,一步步整定PID参数,遵循一个基本原则:先比例,再积分,然后才把微分加上。前面我们确定了采样周期为200ms,调节周期为4s,PWM频率为100Hz,这里我们从小到大不断调整Kp、Ki和Kd

详细的原则,请见PID温控实验平台搭建(二)——PID进阶知识介绍及源码分享。实际上,我测试的数据远远大于下图所展现出来的,选取了几个典型值,供大家学习参考!

1)调节比例系数Kp

从图3可以看到,随着Kp的不断增大,温度曲线的峰值也会逐渐升高,最后稳态温度也会上升。而在加入Ki的作用后,温度曲线会整体上移。综合多方面考虑,我最终选定了Kp = 80。

128576f6f01b443f891540ff6ac1d328.png

图3 不同Kp下的温度变化图

2)调节积分系数Ki

从图4可以看到随着Ki的增大,温度峰值增加的比较明显,且稳态误差渐渐被消除!可以明显看到的是,Ki如果不加以限制,将会造成曲线的波动明显,最终将会延长达到稳态的时间。综合多方面考虑,我最终选定了Ki = 2.5。

57a1b514dcbb41839c69099de0557804.png

图4 Kp=80,不同Ki下的温度变化图

3)调节微分系数Kd

从图5中可以看到,随着Kd的增大,曲线的峰值明显被抑制,波动的情况也减少得很多,但Kd如果太大,将会导致曲线噪声增多和波动剧烈的现象发生。综合多方面考虑,我最终选定了Kd = 800。

978951e6d16b4ef5969c1da74ac3cc98.png

图5 Kp=80,Ki=2.5,不同Kd下的温度变化图


三、实验结果

根据上述的实验过程,将PID参数确定为:Kp = 80,Ki = 2.5,Kd = 800。最终位置式PID算法的控制精度在1°C附近,控制效果并没有达到我的预期,而期间我有尝试过其他PID参数,但最终的控制精度还是没能摆脱到1°C附近。在查阅了大量资料后,我认为可能的原因以及解决办法为以下几点:

  1. 温度传感器受热不均匀,一面受加热棒的加热,另一面是与空气发生自然冷却,最终导致了温度传感器不实数据的产生,影响了控制效果;解决办法:可以使用非接触式的红外测温,直接测量加热棒中心点的温度,直接控制该点的温度,虽然非接触式测温精度没有接触式的高,但是在不改变现有设备的情况下,这是比较便捷的,后续我也会尝试一下这种方法。
  2. 对于加热棒本身而言,加热芯到外壳的传热需要一定的时间,属于大惯性系统的范畴。使用普通的数字PID控制算法效果并不好,必须对其进行优化;解决办法:采用模拟PID算法,模拟PID算法对这种温控系统效果很好!后续我也会尝试一下这种办法。

 6d5ee7e61d3b4e96bd8fded8bf25f68b.jpegec78f3bf80b3462ea7175310325db53f.jpeg

   2bfe4913cbd74ec7996b6c6d2bf73583.gif413b416200144cd8b3732a9961cb0528.gif


总结

虽然最终没有达到预期的效果,但是对于学习PID控制思想而言,是很有帮助的。希望我的系列文章能对大家产生帮助,欢迎大家在评论区评论!后续我也会把我的解决办法实践出来,做一个补充性的文章,敬请期待!

这一节的所有的实验数据,我将整理后放在评论区,需要的自取!!!

  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
标准数字PID控制算法是一种广泛应用于工业控制领域的控制算法,其实验现象和误差分析如下: 1. 实验现象: 在实验中,我们通常会对一个物理系统进行控制,比如一个温度控制系统。我们将通过PID算法来控制温度,使其保持在设定值附近。在控制过程中,我们会观察到以下现象: - 当系统刚开始运行时,温度会出现较大的波动,这是因为PID控制器还没有对系统进行调整; - 随着时间的推移,PID控制器逐渐调整控制量,使得系统温度逐渐稳定在设定值附近; - 当系统受到外部干扰时,PID控制器会及时做出相应调整,使得温度能够尽快恢复到设定值附近。 2. 误差分析: 在实际控制过程中,由于各种因素的干扰,系统控制量与设定值之间会存在一定的误差。PID控制器的作用就是使得这个误差越来越小,直到最终收敛到设定值附近。 误差分析主要包括三个方面: - 稳态误差:当系统处于稳定状态时,控制量与设定值之间的误差称为稳态误差。稳态误差的大小取决于PID算法的参数设置和系统本身的特性。通常采用积分环节来消除稳态误差。 - 超调量:当系统受到干扰时,其响应会出现一定的超调现象,即控制量会超过设定值一段时间。超调量的大小取决于PID算法的参数设置。通常采用比例环节和积分环节来控制超调量。 - 响应时间:PID算法的参数设置还会影响系统的响应时间,即系统从受到干扰到恢复到设定值附近的时间。通常采用比例环节和微分环节来控制响应时间。 综上所述,标准数字PID控制算法在实验中的表现主要体现在控制系统的稳定性、超调量和响应时间等方面。误差分析则可以帮助我们针对实际问题进行PID算法参数的调整和优化,以达到更好的控制效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值