【前言】
冷链设备,就涉及到温度的精准控制,这篇分享一下我是如何分享利用PID进行精准的温度控制的。
首先分享常用PID算法:
①PI算法:
特点:
从时域上看,只要存在偏差,积分就会不停对偏差积累,因此稳态时误差一定为零
不足:比例与积分动作都是对过去控制误差进行操作, 不对未来控制误差进行预测,限制了控制性能。
PI调节将比列调节的快速反应与积分调节消除静差的特点结合,实现好的调节效果。
PI调节适用于控制通道滞后较小、负荷变化不大、 工艺参数不允许有静差的系统。
②PD算法:
适用于舵机快速响应
对于惯性较大的对象,常常希望能加快控制速度, 此时可增加微分作用。
特点:
比例控制对于惯性较大对象,控制过程缓慢,控制品质不佳。比例微分控制可提高控制速度,对惯性较大对象,可改善控制质量,减小偏差,缩短控制时间。
理想微分作用持续时间太短, 执行器来不及响应。实际使用中,一般加以惯性延迟,称为实际微分。
PD 调节以比例调节为主,微分调节为辅,PD调节是有差调节。
PD 调节具有提高系统稳定性、抑制过渡过程最大动态偏差的作用。
PD 调节有利于提高系统响应速度。
PD 调节抗干扰能力差,一般只能应用于被调参数 变化平稳的生产过程。
微分作用太强时,容易造成系统振荡。
③PID算法:
将比例、积分、微分三种调节规律结合在一起, 只要三项作用的强度配合适当,既能快速调节,又能消除余差,可得到满意的控制效果。
特点:
PID 控制作用中,比例作用是基础控制;微分作用是 用于加快系统控制速度;积分作用是用于消除静差。
只要比例、积分、微分三种控制规律强度配合适当, 既能快速调节,又能消除余差,可得到满意控制效果。
Kp 较小时,系统对微分和积分环节的引入较为敏感,积分会引起超调,微分可能会引起振荡,而振荡剧烈的时候超调也会增加。
Kp 增大时,积分环节由于滞后产生的超调逐渐减小,此时如果想要继续减少超调可以适当引入微分环节。继续增大 Kp 系统可能会不太稳定,因此在增加 Kp 的同时引入 Kd 减小超调,可以保证在 Kp 不是很大的情况下也能取得较好的稳态特性和动态性能。
Kp 较小时,积分环节不宜过大,Kp 较大时积分环节也不宜过小(否则调节时间会非常地长),当使用分段PID ,在恰当的条件下分离积分,可以取得更好的控制效果。原因在于在稳态误差即将满足要求时,消除了系统的滞后。因此系统超调会明显减少。
以上内容摘自:https://blog.csdn.net/name_longming/article/details/115093338
【实验用到的器材】
1、半导体制冷采用清正源科技降温制冷方案服务商提供的
2、电源驱动模块,为PWM调节电子开关控制板
3、电源,495W的12V服务器电源,最大可以提供40A的电流。
4、保温箱采用一个30cm*25cm*25cm的泡沫保温箱。
组装好后的实验环境:
【实例PID的系数确定】
本次我的PWM的溢出值为10 000,通过调观察,设置三个系数为:
#define KP 7000.0 // 比例系数 #define KI 150 // 积分系数 #define KD 6 // 微分系数
控制代码如下:
void PID_Control(double Now,double Set){ /*PID算法*/ Error = Now - Set ; integral += Error; derivative = Error - LastError; PWM = KP * Error + KI * integral + KD * derivative;// printf("pwm1 value:%.1f\r", PWM); LastError = Error; /*约束占空比的值*/ if(PWM > 10000){ PWM = 10000; }else if(PWM < 0){ PWM=0; } /*更新占空比*/ printf("PWM set:%df\n",(uint32_t)PWM); __HAL_TIM_SET_COMPARE(&htim4,TIM_CHANNEL_4,PWM); }
实验效果:
【实验总结】
STM32H7S78-DK,结合PID算法,可以实现精准的温度控制。