求教 匀速升温的算法

moon2163913   2009-11-17 15:21 楼主
我现在实现升温和保温的功能,比如要升100度 然后就能稳到100度一跳也不跳。用到算法是PID。但是要做匀速升温我不知道具体应该怎么改呢

回复评论 (17)

用PID,你硬件是中什么?单片机?ARM?FPGA?
点赞  2009-11-17 15:39
不会,帮顶
点赞  2009-11-17 16:07
是 pt100传感器,单片机用msp430 加热用加热丝  很稳控制没有问题 但是要匀速加温不知道算法怎么写啊
点赞  2009-11-17 16:24
恒温控制没有问题
点赞  2009-11-17 16:25
匀速加温,这个就是加一个温度探头。然后,根据升温速度的快慢,去调节功率,就可以啦。一般需要时功率越来越大。因为耗散的功率越来越大。
另外,不可能完全匀速升温的,因为,你的高限是100度啊
接近高限时候,速度降下来,才能稳定。
点赞  2009-11-17 17:00
比如,你的温度要从0℃升温到100℃,耗时:10分钟,那么平均每分钟就要升高:10℃,你就针对每分钟计算一个升温PID,依此类推,直到升温到100℃。还可以分得更细。分段控制升温
点赞  2009-11-17 22:12
需要知道起始温度,环境温度,和升温的速度!不太好控制!加热丝还要用电路去控制功率,!不过如果他的精度(误差)不是太小就好办的多!
点赞  2009-11-18 08:50
不同的负载有差异

这个要做得通用,很难哦...

比如你说的水哈

谁能保证你哪次放的水都一样多?

不同的水,导致了用的热不一样

不知道大伙有啥好办法没?
点赞  2009-11-18 09:36
匀速升温很难做到的,所有的控制方法比例/比例积分/比例积分微分/模糊都只是理论上的方法,实际情况远比理论模型要复杂,可以说不经过大量的测试就无法得到一个相对还算精准的数学模型。

就说一点,当被加热物温度在50度和90度时向外界的热传导损耗是不一样的,这一点就没有经典数学公式可以套用,只能是根据实际情况测算。

前面所提的控制方法主要是为了解决控制系统的滞后性,也就是惯性,比如你要加热到100度,当反馈的温度检测为达到100度的时候你关掉加热丝,但此时加热丝自身的温度肯定超过100度,就会靠余温产生一小段时间的余加热效应,可能让温度超过100度,当温度降下来你重新打开加热丝加热丝也需要一个加热到一定温度后才真正开始加热,这个延迟控制不好就会形成震荡,温度随加热丝的开关变化在100度上下变动。

有时候理论的东西不一定符合实际需求,你可以先用最简单的方法试一下,就是加热到100度就关,低过100度就开,看实际效果,如果这样控制的方法效果满足实际需求就没必要做复杂控制,如果不行可以改进为加热到100度开始减小加热丝的输出功率,先减小一半,经过一小段时间如果温度还继续上升再减小一半,如果温度变为下降就按当前功率加大一半,依次类推

经过测试你可以找出启动保温的温度点到底是100度还是95度
点赞  2009-11-18 10:24
匀速升温与保温的算法相同。只是改变了反馈温度的值而已。比如把检测到的温度人为地减去1度,再送到PID里面计算。
点赞  2009-11-18 11:17
匀速升温,不容易做到,只能控制在某个精度下实现。
还有,加热箱的形状大小,测温头的布置,(只有一个测温头,就别想了,从上到下,从左到右,从右到左的温差,嘿嘿),还有加热丝的分布(呵呵)。。。
点赞  2009-11-18 15:55
学习
点赞  2009-11-19 13:11

一阶系统阶跃响应


点赞  2009-11-19 16:38
提示: 作者被禁止或删除 内容自动屏蔽
点赞  2009-11-21 11:13
可以看看
http://www.cnblogs.com/cmqiu/archive/2009/09/09/1563072.html
也是匀速升温,价格很便宜,而且有RS485通讯功能,方便和PC连接
点赞  2010-2-21 13:21
搞一个温控仪,什么问题都解决了。呵呵
点赞  2010-2-21 21:44
引用: 引用楼主 linsheng_111 的回复:
我现在实现升温和保温的功能,比如要升100度 然后就能稳到100度一跳也不跳。用到算法是PID。但是要做匀速升温我不知道具体应该怎么改呢


楼主问的不明白,你的硬件条件是什么?是锅炉?是加热丝?是用什么测温?热电偶?PT100?

9楼sj_dai讲得很清楚,就按sj_dai的方法。

-----------------------------------------

看问题的字里行间,是做软件部分

你先取得数据(所谓的“数学模型”)

满负荷加热,测试每段温度的加热时间

00-10度:??秒
10-20度:??秒
20-30度:??秒
30-40度:??秒
...
90-100度:??秒

取得第一步数据后,你就知道你的硬件的加热特性了。

如果每段的时间基本相同,直接用PID

如果不同,用分段PID,或者用PID+域值(先满负荷加热,达到某个温度域值后,PID生效)
点赞  2010-2-22 09:27
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复