搜索
bottom↓
回复: 30

探讨一个PID水温控制的问题

[复制链接]

出0入0汤圆

发表于 2016-7-9 19:50:30 | 显示全部楼层 |阅读模式
我现在在做一个水温控制。加热器件为电热丝做成的加热板,放置在锅底,加热功率几百瓦,锅体及加热板有保温层进行保温,设定水温为50度,开始加热,
我的控制程序开始用PID算法配合pwm+固态继电器控制加热器加热,到大50度后PID输出0.pwm输出0,停止加热进入保温,由于加热器及锅体余温会加热到50.8度,然后等十来分钟,
温度开始回落,当检测到温度小,50度后,pid输出1,pwm开始以20%占空比加热。
现在问题是,由于加热器停止加热十来分钟后,余温没有了,当温度小于50重新加热后,PID算出来的值太小,PWM占空比太小,反而水温下降,一直下降到48度,就恒定住了,低于我的目标50度。
这可如何是好???

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2016-7-9 20:08:34 | 显示全部楼层
本帖最后由 coleyao 于 2016-7-9 20:40 编辑

PID控制没理顺呢,有空多研究一下PID控制,不是你描述的那样!其实pid就是负反馈,不过加入了与时间相关的部分。

出0入0汤圆

发表于 2016-7-9 21:18:34 | 显示全部楼层
是用的位置式的?
建议用增量式,KI加大点

出0入0汤圆

发表于 2016-7-10 06:55:12 来自手机 | 显示全部楼层
这个调整pid参数可以解决的

出0入0汤圆

 楼主| 发表于 2016-7-10 14:35:08 | 显示全部楼层
lcw_swust 发表于 2016-7-9 21:18
是用的位置式的?
建议用增量式,KI加大点

我每隔1s检测一次温度,做一次PId,怎么样

出0入0汤圆

 楼主| 发表于 2016-7-10 14:39:13 | 显示全部楼层
stephon1 发表于 2016-7-10 06:55
这个调整pid参数可以解决的

能不能帮我支支招,我实在是快愁死了

出0入0汤圆

 楼主| 发表于 2016-7-10 14:39:37 | 显示全部楼层
coleyao 发表于 2016-7-9 20:08
PID控制没理顺呢,有空多研究一下PID控制,不是你描述的那样!其实pid就是负反馈,不过加入了与时间相关的 ...

能不能帮我指点一下。快愁死了

出0入0汤圆

发表于 2016-7-10 14:52:36 | 显示全部楼层
温度控制,检测周期不能太短,还有可以肯定出现了静态误差,用i解决

出0入0汤圆

 楼主| 发表于 2016-7-10 14:55:10 | 显示全部楼层
siml142857 发表于 2016-7-10 14:52
温度控制,检测周期不能太短,还有可以肯定出现了静态误差,用i解决

精度是正负1度以内,之前1s一次pid,现在改成10s一次pid

出0入0汤圆

发表于 2016-7-10 18:26:01 来自手机 | 显示全部楼层
新手不建议一次上全部的PID三个参数,如果是自己实现代码就增量式,可以不加D参数,要简单些,水温10S,有些短了,我看别人做的温度液体一类的控制,一分钟调一次

出0入0汤圆

发表于 2016-7-11 06:32:47 来自手机 | 显示全部楼层
把积分项调大

出0入0汤圆

发表于 2016-7-11 08:31:02 | 显示全部楼层
一个个参数来,先P,然后PD, PID

出100入8汤圆

发表于 2016-7-11 08:41:29 | 显示全部楼层
实验测试  稳态误差 大于 设计要求。。。

没有模型就 凑参数吧 ,运气好 可以试出来  ;按照 11楼 的整。。。。

出0入0汤圆

 楼主| 发表于 2016-7-11 15:30:50 | 显示全部楼层
zzsczz 发表于 2016-7-11 08:41
实验测试  稳态误差 大于 设计要求。。。

没有模型就 凑参数吧 ,运气好 可以试出来  ;按照 11楼 的整。 ...

每次做测试,都需要1个小时的时间。一天只能测那么几次

出0入0汤圆

发表于 2016-7-11 15:40:23 | 显示全部楼层
sdlqzql 发表于 2016-7-11 15:30
每次做测试,都需要1个小时的时间。一天只能测那么几次

先找个PID温控仿真软件 仿真看看,选择对应的PID方式,看看仿真波形以及各参数调整时对实际控制波形的影响,理解了PID控制之后再调参数,可能会更快一些!

出0入0汤圆

发表于 2016-7-11 17:19:17 | 显示全部楼层
这个是可以通过调节系数解决的,如果有余温调节出来的PID应该是提前减小了加热

出0入0汤圆

发表于 2016-7-11 17:31:48 | 显示全部楼层
摆放温度探头在合适位置,然后用比较器控制加热棒

出0入85汤圆

发表于 2016-7-11 20:27:06 | 显示全部楼层
想维持在设定值50度,PWM在实温50度时输出关断了还玩啥,自平衡功率都不够怎么维持?

出100入8汤圆

发表于 2016-7-11 20:36:39 来自手机 | 显示全部楼层
sdlqzql 发表于 2016-7-11 15:30
每次做测试,都需要1个小时的时间。一天只能测那么几次

系统结构固定,可以尝求试解析解。请通信或者自动化方面的专业人士陪你玩。。。

出0入0汤圆

 楼主| 发表于 2016-7-13 09:10:51 | 显示全部楼层
marshallemon 发表于 2016-7-11 20:27
想维持在设定值50度,PWM在实温50度时输出关断了还玩啥,自平衡功率都不够怎么维持? ...

我有个感觉,就是电热锅的加热功率太小了,水太多了,并且锅体加了好多石棉隔热。
你是这个意思吗?

出0入0汤圆

 楼主| 发表于 2016-7-13 09:13:58 | 显示全部楼层
coleyao 发表于 2016-7-11 15:40
先找个PID温控仿真软件 仿真看看,选择对应的PID方式,看看仿真波形以及各参数调整时对实际控制波形的影 ...

设置目标温度50-80度,我发现相同的P参数,不同的目标温度,效果相差非常大。
例如某个P参数,可以保证50度效果良好,可是把目标温度设置为80度,那么温度根本就上不来。
假如另一个P参数适合80度,那么目标设置50度,则远远超调了

出0入0汤圆

 楼主| 发表于 2016-7-13 12:40:33 | 显示全部楼层
marshallemon 发表于 2016-7-11 20:27
想维持在设定值50度,PWM在实温50度时输出关断了还玩啥,自平衡功率都不够怎么维持? ...

兄弟,谢谢你,你回复的信息说到了一个电子上,就是想维持50度,但是我检测到实际50度及以上时,已经让pwm等于0了,等散热完了,温度降到50度以下,再启动加热,已经来不及了……
请看我的PID程序如下所示:
我的这个PID程序,我在当PID函数返回负数,或者实际温度高于目标温度的时候,就关断pwm,我这是不是错误的思路?
  1. int pid(int NextPoint)
  2. {
  3.         u16 err,err1,err2;
  4.         u16 returndata;
  5.         float add=0;

  6.         //¼ÆËãÎó²î
  7.         sPID.err=sPID.SetPoint-NextPoint;

  8.         err=(u16)sPID.err;

  9.         err1=(int)sPID.err1;
  10.         err2=(int)sPID.err2;


  11.         //¼ÆËãÔöÁ¿
  12.         add=sPID.kP*(sPID.err-sPID.err1)+sPID.kI*sPID.err   +sPID.kD*(sPID.err-2*sPID.err1+sPID.err2);
  13.         //¼ÓÉÏÔöÁ¿
  14.         sPID.CtrlValue=sPID.CtrlValue+add;
  15.         if(sPID.CtrlValue>MaxPwm)
  16.                 sPID.CtrlValue=100;
  17.         if(sPID.CtrlValue<0)
  18.         {
  19.                 sPID.CtrlValue=0.0;       
  20.         }
  21.                
  22.         if(temp_now>=eeprom_temp && sPID.CtrlValue>0)
  23.         {
  24.                 sPID.CtrlValue=0.0;               
  25.         }


  26.         //±£´æÎó²î
  27.         sPID.err2=sPID.err1;
  28.         sPID.err1=sPID.err;
  29.         returndata=(u16)sPID.CtrlValue;
  30.         return returndata;
  31. }
复制代码

出0入85汤圆

发表于 2016-7-13 13:42:50 | 显示全部楼层
sdlqzql 发表于 2016-7-13 12:40
兄弟,谢谢你,你回复的信息说到了一个电子上,就是想维持50度,但是我检测到实际50度及以上时,已经让pw ...

看你写的程序,你应该是用的增量式PID,大致看了下,貌似没错。对于你现在看到的现象,我只能说你的PID参数没调好,pid也是比较智能了,调好参数,它自己在等于设定值时也是有自平衡功率输出的

出0入0汤圆

 楼主| 发表于 2016-7-14 07:40:00 | 显示全部楼层
marshallemon 发表于 2016-7-13 13:42
看你写的程序,你应该是用的增量式PID,大致看了下,貌似没错。对于你现在看到的现象,我只能说你的PID参 ...

我现在是用的不同目标温度,选择不同的P参数来只用比例控制来做的。
没有那么多时间再去调PID,勉强用这种分段式更换P参数的方法来满足了需要

出0入0汤圆

发表于 2016-7-14 08:18:57 | 显示全部楼层
sdlqzql 发表于 2016-7-13 12:40
兄弟,谢谢你,你回复的信息说到了一个电子上,就是想维持50度,但是我检测到实际50度及以上时,已经让pw ...

去掉这一段试试,KI可以适当放大一些。
               
        if(temp_now>=eeprom_temp && sPID.CtrlValue>0)
        {
                sPID.CtrlValue=0.0;               
        }

出0入8汤圆

发表于 2016-7-14 08:49:22 来自手机 | 显示全部楼层
多大功率   加热电压多大  温度用什么传感器检测

出0入85汤圆

发表于 2016-7-14 22:24:53 | 显示全部楼层
sdlqzql 发表于 2016-7-14 07:40
我现在是用的不同目标温度,选择不同的P参数来只用比例控制来做的。
没有那么多时间再去调PID,勉强用这 ...

纯P控制肯定不行的,是有静差,按我之前调整的方法,我感觉是临近设定温度时,实际上是I输出值较大,P基本衰减的差不多了

出0入0汤圆

 楼主| 发表于 2016-7-15 09:41:13 | 显示全部楼层
justdomyself 发表于 2016-7-14 08:49
多大功率   加热电压多大  温度用什么传感器检测

那个加热锅直径大概有50公分,深度大约有20公分,我都是加水到三分之二。
加热板的功率大概400W,在锅的底部。
锅底都用石棉包裹与外界隔热。

出0入42汤圆

发表于 2016-8-3 10:33:06 | 显示全部楼层
你的容积有多大,滞后性怎么样,感觉你的1秒的PID周期太快了,另外你的PID计算不是你描述的那样 看你那样有点像开关控制

出0入42汤圆

发表于 2016-8-3 10:37:45 | 显示全部楼层
kangup2015 发表于 2016-8-3 10:33
你的容积有多大,滞后性怎么样,感觉你的1秒的PID周期太快了,另外你的PID计算不是你描述的那样 看你那样有 ...

看了程序,增量式的 出现你说的现象应该是参数 PID PID计算周期没调好 建议观看温度曲线 来调试会快一些

出0入0汤圆

发表于 2019-12-3 15:26:58 | 显示全部楼层
问下楼主问题解决了吗?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-9-28 15:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表