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

PID温控实验平台搭建

(一)PID基础知识介绍

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

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

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

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


文章目录

前言

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

二、实验过程

1、实验前参数的选择

1)采样周期

2)调节周期

 3)PWM波的输出频率

2、PID参数整定过程

1)调节比例系数Kp

2)调节积分系数Ki

3)调节微分系数Kd

三、实验结果

总结


前言

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

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


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

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

PID温控实验平台搭建(五)——最终实验现象与总结_第1张图片

图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

PID温控实验平台搭建(五)——最终实验现象与总结_第2张图片

图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,远小于采样频率和调节周期,符合要求! 

PID温控实验平台搭建(五)——最终实验现象与总结_第3张图片

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

2、PID参数整定过程

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

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

1)调节比例系数Kp

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

PID温控实验平台搭建(五)——最终实验现象与总结_第4张图片

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

2)调节积分系数Ki

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

PID温控实验平台搭建(五)——最终实验现象与总结_第5张图片

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

3)调节微分系数Kd

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

PID温控实验平台搭建(五)——最终实验现象与总结_第6张图片

图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算法对这种温控系统效果很好!后续我也会尝试一下这种办法。

 PID温控实验平台搭建(五)——最终实验现象与总结_第7张图片PID温控实验平台搭建(五)——最终实验现象与总结_第8张图片

   


总结

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

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

你可能感兴趣的:(PID控制,温控系统,STM32F103VE,单片机,stm32,嵌入式硬件,c语言)