搜索
bottom↓
回复: 74

PID温度控制参数的确定,已经实验3天了,温度控制曲线还是不理想啊。大家帮帮忙

[复制链接]

出0入0汤圆

发表于 2009-5-16 15:25:10 | 显示全部楼层 |阅读模式
我的毕业设计是对比色皿做温度控制,加热器件是TEC半导体制冷片。使用MAX1968驱动TEC
控制温度范围是20—60度,精度要到0.1
我现在也就做到最好0.5了,比设条件也比较简陋~问问大家这个精度能不能达到啊,给点提高精度建议。
现在确定PID参数很头疼~帮忙看看
开始是温度超过后TEC制冷的,后来发现掉的太多,改成自然冷却效果好了些,不过还是觉得曲线怎么到不了别人的那么好(论坛看见的)

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

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2009-5-16 15:28:37 | 显示全部楼层
网速有点卡,学校的网~
下午传图片上来

出0入0汤圆

发表于 2009-5-16 16:00:36 | 显示全部楼层
TEC不能立即反向供电吧。
做个广告http://ourdev.cn/bbs/bbs_content.jsp?bbs_sn=1429786
或者搜索 自动控制的故事

出0入0汤圆

发表于 2009-5-16 16:18:52 | 显示全部楼层
如果是保温阶段,细心调调参数吧。还有就是你的传感器是否能达到这个精度(0.1度)。升温段降低升温速率,接近设定温度时采用观察加微调(减小P)。

出0入0汤圆

发表于 2009-5-16 16:30:01 | 显示全部楼层
LZ,外界温度高于设定温度是的时候,是不是要利用制冷片制冷呢?
贴个完整的框框图看看。

出0入0汤圆

 楼主| 发表于 2009-5-16 18:37:22 | 显示全部楼层
电路就是使用单片机控制D/A使用12位
温度传感器为DS18B20
现在先只做加温的控制,保温条件太差,TEC功率只有10W+估计降不了几度
贴我的温度控制曲线给大家

(原文件名:p=0.3.JPG)


(原文件名:p=0.3 i=0.1.JPG)


(原文件名:p=0.4.JPG)


(原文件名:p=0.45.jpg)


(原文件名:p=0.5.JPG)


(原文件名:p=0.65.JPG)


(原文件名:p=0.7.JPG)

出0入0汤圆

 楼主| 发表于 2009-5-16 18:45:07 | 显示全部楼层
还有我用的PID控制程序
/**************************************************************/
//函数功能:PID控制程序
//入口函数:DoublePIDCalc
/**************************************************************/



typedef struct
{
    double ProportionalGain;
        double IntegralGain;
        double DerivativeGain;
        double InputErrorK_1;
        double IntegralPortionK_1;
        double PositivePIDLimit;
        double NegativePIDLimit;
}
PIDSING;
PIDSING pid;
float DoublePIDCalc(double GivenValue,double MeasureValue,PIDSING * pp)
{
          float dError,Error;
          Error = GivenValue - MeasureValue;
          pp ->IntegralPortionK_1 = Error + pp->IntegralPortionK_1;
          if(pp->IntegralPortionK_1 > pp->PositivePIDLimit)
          pp->IntegralPortionK_1 = pp->PositivePIDLimit;
          if(pp->IntegralPortionK_1 < pp->NegativePIDLimit)
                  pp->IntegralPortionK_1 = pp->NegativePIDLimit;
          dError = Error - pp->InputErrorK_1;
          pp ->InputErrorK_1 = Error;
          Error = pp->ProportionalGain * Error + pp->IntegralGain * pp->IntegralPortionK_1
                  + pp->DerivativeGain * dError;
          if(Error > pp->PositivePIDLimit)
                  Error = pp->PositivePIDLimit;
          if(Error < pp->NegativePIDLimit)
                  Error = pp->NegativePIDLimit;
          return Error;
}


/****************** PID 初始化 ***************************/
void reset_PID(void)                  //PID参数初始化
{
        pid.ProportionalGain = 5;               
        pid.IntegralGain     = 0;
        pid.DerivativeGain   = 0;
        pid.NegativePIDLimit = 0;
        pid.PositivePIDLimit = 1.5;//MAX1968以1.5V作为制冷和加热的基准,>1.5加热,<1.5制冷

}


这个是别处下的刚刚学习单片机,不怎么能看明白,只是先用着
还有其他参数的图片

(原文件名:p=2 无制冷.JPG)


(原文件名:p=3.JPG)


(原文件名:p=3.5.JPG)


(原文件名:p=5.JPG)


(原文件名:p=7.JPG)

出0入0汤圆

 楼主| 发表于 2009-5-16 18:47:32 | 显示全部楼层
所有调节时的温度都设置为37度.
对问下2楼 TEC问什么不能马上反向供电,我直接拿来用的,看他介绍没什么阿

出0入0汤圆

 楼主| 发表于 2009-5-16 18:52:06 | 显示全部楼层
回复3楼,我的现在做加温呢,降温还没有考虑~想把加温精度调高一些再说

出0入328汤圆

发表于 2009-5-16 19:25:33 | 显示全部楼层
DS18B20精度没有0.1吧?

出0入0汤圆

发表于 2009-5-16 19:43:16 | 显示全部楼层
关注中

出0入0汤圆

发表于 2009-5-16 19:49:00 | 显示全部楼层
18b20精度不够,建议调小P,稍微增加I,还有一点,PID的控制的周期其实和所控系统的热质量有关的,如果系统温度变化较快的可以适当增加PID计算的频率,反之减少即可

出0入0汤圆

发表于 2009-5-16 21:54:49 | 显示全部楼层
18b20精度达不到0.1,不要一下子将目标温度设定为37度,由于加热系统存在比较大的惯性,过大的误差会使系统在到达目标温度时刹不住车,你的所有温度曲线都出现了超调,应该有斜率的升温,也就是要给定一个升温斜率,PID按照这条斜率曲线逼近,升温时可以采用PD控制或PID,此时I作用不大,所以系数要小,甚至可以做积分分离,D的加入可最大限度遏制温度超调,弥补系统的滞后。调整方法:先调P,使其尽量逼近升温曲线,由于只有P调节,如果升温过程比较长,你将可以看到曲线出现大周期的振荡,即出现超调,小超调量是P调节比较理想的情况。再通过超调情况调节D(同时要微调P),使曲线处于升温曲线下方,遏制超调,同时将控制曲线转为小周期振荡,但不超调。最后调节I(同时要微调P,D),I的加入将会平滑控制曲线并减小升温过程中出现的静差。
    保温过程用PID,此时I很重要,此时P已经不起什么作用了,对温度来说,干扰也不是常出现,而且加热系统出现的干扰也同样有着惯性,所以此时要较少D而提升I,是它使温度最终趋向恒定,所以,建议用两套PID来控制这两个过程,或采用变参数来处理这两个过程,不要一视同仁。

出0入0汤圆

发表于 2009-5-16 22:24:21 | 显示全部楼层
PID针对高精度温控有难度,一般需要加上前馈预测环节。

出0入0汤圆

发表于 2009-5-16 22:47:26 | 显示全部楼层
这个没玩过,想要了解一下!

出0入0汤圆

 楼主| 发表于 2009-5-17 08:28:54 | 显示全部楼层
谢谢大家的指导,今天根据大家的建议,继续实验!

出0入0汤圆

 楼主| 发表于 2009-5-18 16:33:45 | 显示全部楼层
由于使用的传感器的原因,再加上外部隔热做的不太好,现在的控制精度时37度上下偏差0.25。
呵呵,毕设通过时没有问题了,晚上整理点我的数据资料上来。

出0入0汤圆

发表于 2009-5-18 18:03:03 | 显示全部楼层
牛B,到时候不要忘了分享一下啊,大哥向你请教

出0入0汤圆

发表于 2009-5-18 20:03:15 | 显示全部楼层
先量量下加热系统升温一度所需时间
再量量无加热降温一度需要时间
最后再对比下你的PID积分周期

出0入0汤圆

发表于 2009-5-18 20:25:34 | 显示全部楼层
希望分享楼主的资料!!谢谢!!!还有要做成楼主的图形不知怎么做.谢谢!

出0入0汤圆

 楼主| 发表于 2009-5-20 20:10:23 | 显示全部楼层
加热做到精度0.25度,最高温度50度,分别设置42,47度精度为0.25。设置了55度上不去了,保持54.5上不去了,想想应该是使用另外的PID参数了,以后有机会把,=学校的事情忙忙再调。今天刚刚去买了风扇。想把制冷也做做。
这段时间也收获不少,给大家分享哈。
谢谢大家的关心~

出0入0汤圆

发表于 2009-5-20 21:17:41 | 显示全部楼层
温度是滞后系统确实比较麻烦
上楼说得对,30°和50°的控制参数是不一样的,因为散热速度是不一样的,加热效果也是不一样的

出0入0汤圆

发表于 2009-5-20 23:10:26 | 显示全部楼层
我用过成品的PID控制器,控制得很好,一般一次振荡以内就可调到0.1度。

楼主应该加保温,使系统受环境变化的影响降到最低。

出100入0汤圆

发表于 2009-5-21 08:55:59 | 显示全部楼层
我以前也做过温度控制,但要求没这么高,05度,但空间较大,采用空气做传导介质
温度控制中,I是必须的

还有lZ的传导介质是什么

出0入0汤圆

发表于 2009-5-21 09:01:10 | 显示全部楼层
PID应用,关注

出0入0汤圆

发表于 2009-5-21 10:56:49 | 显示全部楼层
PID调节时间要短

出0入0汤圆

发表于 2009-5-21 11:52:52 | 显示全部楼层
PID调节时间要短?温度是大滞后系统啊,我的个人经验由于系统有滞后,所以采样时间最好和滞后时间差不多,然后形成一级预报~然后在用预报的数值做PD条件。在滞后环节中使用I是极其不稳定的,简单的说当你系统的温度超过已有的值,由于滞后,积分仍然在积分负值,这必然造成大量超调然后震荡~~~就像你图中那样。我也是以前仿真的经验,你可以用仿真调试,因为MATLAB调试的控制效果速度比较快。不要一位的改参数。而且MATLAB有自动PID参数的计算功能,很方便~~

出0入0汤圆

 楼主| 发表于 2009-5-21 15:05:36 | 显示全部楼层
楼上说的对,实验中也证明采样时间应该和之后时间差不多,略微小一点就可以了,这样才能发挥出d的效果。
调节过程中我也觉的I是很难调的,资料都说I可以矫正稳态误差,实验中证明确实可以的。传一个45和37度温度控制曲线。精度0.25。使用同一组PID值。p=0.43 i=0.15 d=11.7

保温是一定要做好的,不过我的条件比较简陋,只用了2cm厚的海绵外加硬纸板做了个小盒子~呵呵
回23楼,我的从上向下是比色皿,TEC半导体制冷片,散热片。

(原文件名:控制45度.jpg)

(原文件名:37度.jpg)

出0入0汤圆

 楼主| 发表于 2009-5-21 15:13:40 | 显示全部楼层
i的作用大家可以看看这两个图对比就知道了,设置温度均为37度

(原文件名:wu I.jpg)

(原文件名:i.jpg)

出0入0汤圆

 楼主| 发表于 2009-5-21 15:27:33 | 显示全部楼层
分段使用不同的PID是有必要的,我的参数在30-50度是可以的,但是设置到55度时就成了下面这个样子。
但是具体如何分段,还要根据自己的系统来看了。越做月觉得PID就是靠大量数据堆积出来的
以前的PID已经不适合50度以上的温度了~~

(原文件名:55du.jpg)

出0入0汤圆

 楼主| 发表于 2009-5-21 15:44:44 | 显示全部楼层
这个再对比一下 I 调节的作用

(原文件名:I的区别.jpg)

出0入0汤圆

发表于 2009-5-21 15:59:19 | 显示全部楼层
记号

出0入0汤圆

 楼主| 发表于 2009-5-21 16:18:51 | 显示全部楼层
D的调节作用~
有稳定的作用,这里不态明显,但是对前期的温度上升也有影响,会增加系统调节时间

(原文件名:d的作用.jpg)

出0入0汤圆

 楼主| 发表于 2009-5-21 16:29:29 | 显示全部楼层
回复19楼,我的是用串口把温度发出来然后用EXCEl制图就可以了,也是学的别人的,不过是很有用,分析起来清楚多了。呵呵~

出0入0汤圆

发表于 2009-6-15 15:24:23 | 显示全部楼层
大家好!!!我也在弄PID温控。我用的是232通讯,显示的温度都是数字观察震荡不太方便也不直观,想请教一下怎么才能想上面这样用曲线表示出来?需要什么软件和硬件连接?我的qq:735092620.能帮的前辈帮帮忙

出0入0汤圆

发表于 2009-6-16 09:55:43 | 显示全部楼层
MARK

出0入0汤圆

发表于 2009-6-16 11:47:03 | 显示全部楼层
程序有没有看见“斜率”,给定必须按照规定的斜率逼迫设置的温度。

  例如:设置“斜率”=37,表示每分钟升37度,也就是1分钟给定从0度上升到37度。

出0入0汤圆

发表于 2010-8-13 20:40:54 | 显示全部楼层
能发份资料给小弟不?我很好奇很想研究下啊,谢谢啦我qq是342587582

出0入0汤圆

发表于 2010-8-17 14:27:01 | 显示全部楼层
一直以为制冷片不能反接的...原来反接之后冷热面可以颠倒的啊

出0入0汤圆

发表于 2010-8-18 10:42:09 | 显示全部楼层
完全不懂,但是很想学,一点点看吧

出0入0汤圆

发表于 2010-8-26 17:31:54 | 显示全部楼层
记号,也想做个小的恒温箱来玩

出0入0汤圆

发表于 2010-8-26 22:38:57 | 显示全部楼层
mark  有空研究一下PID

出0入0汤圆

发表于 2010-10-18 21:20:22 | 显示全部楼层
我也在学习中。。。。可以发个资料给我吗?

出0入0汤圆

发表于 2010-10-18 21:44:44 | 显示全部楼层
请问楼主是怎么控制的? PWM 吗?
PWM的话是怎么把计算出来的PID值跟PWM占空比对应起来?

出0入0汤圆

发表于 2010-10-18 23:41:01 | 显示全部楼层
围观

出0入0汤圆

发表于 2010-10-25 13:02:24 | 显示全部楼层
半导体为介质的温度控制,速度变化快,时变性强,如果想达到好的控制效果,建议加入智能控制.

出0入0汤圆

发表于 2010-10-25 13:12:05 | 显示全部楼层
用指数来收敛,速度或许快一些。

出0入0汤圆

发表于 2010-10-25 13:14:55 | 显示全部楼层
嗯,学习

出0入0汤圆

发表于 2011-1-8 16:12:17 | 显示全部楼层
楼主的分享精神很令人感动,我深受学习啊。。。。。。还有一个问题就是你的表格用EXCEL做的??如何做的那么好啊???

出0入0汤圆

发表于 2011-5-6 10:15:56 | 显示全部楼层
这个不错,线mark一下,正在研究PID温控

出0入0汤圆

发表于 2011-5-6 10:22:57 | 显示全部楼层
温度调节是大滞后控制对象,用PID很难调节的

出0入0汤圆

发表于 2011-5-6 11:59:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-15 12:03:07 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-6 15:14:33 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-7-6 15:48:03 | 显示全部楼层
mark 学习一下PID大小学的很浅哇

出0入0汤圆

发表于 2011-7-6 16:22:56 | 显示全部楼层
mark!

出0入4汤圆

发表于 2011-11-4 12:43:12 | 显示全部楼层
制冷片能立即反向供电吗???

出0入0汤圆

发表于 2011-11-8 10:29:29 | 显示全部楼层
你用的AD芯片的精度是多少啊?能到0.1吗?
还有就是去看看模糊PID,温度这方面用模糊PID的效果会更好。
我做恒温200度,从室温到200才18分钟,而且不过冲。

出0入0汤圆

发表于 2011-12-23 09:51:50 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-23 10:47:14 | 显示全部楼层
mark,bucuo

出0入0汤圆

发表于 2011-12-23 11:41:12 | 显示全部楼层
MAX1968太贵了,,,

出0入0汤圆

发表于 2011-12-23 12:37:38 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-23 16:10:19 | 显示全部楼层
这个图是很好做的。不用excel。太费事了。直接用串口输出后。拿matlab画图就行了。巨方便。

出0入0汤圆

发表于 2012-1-5 21:42:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-14 12:39:06 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-17 09:24:30 | 显示全部楼层
MARK

出0入0汤圆

发表于 2012-2-7 11:32:11 | 显示全部楼层
从开始的图上看楼主标注的参数值,怎么觉得楼主只用了P,没有用I和D,这样只用了比例,没有用积分和微分,曲线一直在震荡,没有收敛的趋势

出0入0汤圆

发表于 2012-2-7 16:20:34 | 显示全部楼层
最近我也想做关于温度控制的,但不知道模糊控制和PID相比,那种控制效果会好一点呢?

出0入0汤圆

发表于 2012-2-10 05:54:15 | 显示全部楼层
好太好了

出0入0汤圆

发表于 2012-2-12 17:40:34 | 显示全部楼层
很棒!谢谢分享。
先保存一下,做个记号!

出0入0汤圆

发表于 2012-2-22 12:46:53 | 显示全部楼层
不错,谢谢分享

出0入0汤圆

发表于 2012-3-4 13:35:56 | 显示全部楼层
MARK

出0入0汤圆

发表于 2012-3-6 19:38:57 | 显示全部楼层
学习中

出0入0汤圆

发表于 2012-4-3 13:18:36 | 显示全部楼层
PID应用,正要做呢

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-7-23 08:23

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

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