摘 要:一种采用NTC热敏电阻作为温控设备的传感器,89C2051为CPU的温度测控系统,它线路简单并具有一定参数自学习能力。
关键词:温度控制单片机NTC 自学习 自适应
在工农业生产、国防、科研以及办公设备自动化领域中,温度是一种十分重要的数据。对于温度的采集,常用的传感器有热电偶、铂电阻、NTC热敏电阻等。针对不同的传感器,可以采用不同的测温技术。目前,我国在这方面的成熟产品主要以“点位”控制及常规的 PID 控制器为主,这些算法要求针对具体应用的参数值的整定,在一些精度要求不高、价廉的控制器设计中,无疑会增加开发周期和开发成本。本文介绍一种自学习的温控算法,以对此类问题的解决提供参考。
1 问题的提出
传感器中NTC热敏电阻因其价格低廉、精度较高、可靠性好而广泛使用。以下就以NTC热敏电阻作为温控设备的传感器,分析闭环控制中可能遇到的问题。温控设备设计框图如图1所示。
由于NTC电阻的测温迟滞性(目前国产的NTC电测温时延为几秒到十几秒)以及电阻受材料的稳定性和一致性的影响,图1中传感器部分的阻值精度有±5%的误差,这使参数的整定受限于每个具体的设备。除了传感器的迟滞特性外,还必须考虑加热器的惯性即加热器在断电之后在一定时间内仍有加热作用的特性以及被加热物体的热迟滞性和外部环境的气温影响,因此使参数整定更为困难。但是在温控器的具体应用中,大部分时间是在某一个具体的场合,环境条件的变化是相对稳定的。一个加热设备通常长期运行在某个要求的目标温度,目标温度的变化并不频繁。因此为了一次设计能够用于多个场合,就要求控制器有自学习和自适应的功能,即在每次运行的初期,自已调整相应的参数,使之有效地应用在不同的场合。
PID算法是闭环控制中常用的算法,也是通常采用的温度控制算法。但在价廉的温控器中,多采用小型的CPU,其程序存储单元非常有限,而PID 算法要占用相对大的空间和计算时间,故是设计的难点所在。
2 自学习的温度测控系统
针对上述问题,本文提出了一种自学习的控制算法。该系统硬件采用NTC电阻线性校正电路和积分采样电路作测量电路,软件设计采用一种自学习的算法,使系统有一定自适应能力,无须事先做参数调整。该算法就是不断在测量过程中,当发现超过某个不利的限定值时就对参数作出相应调整,如此不断试探,最后达到稳定。而后将调整学习后得出的参数值保存起来作为这个目标温度的相应参数值,在下次开机时如果要求同样的目标温度就可以直接调出相应参数。如果环境温度较稳定,机器可以自已设定经验值,但如果环境温度发生变化,必须再学习,以适应新的环境。
2.1 测温电路
NTC传感器测温电路,其CPU采用89C2051单片机,输出采用脉宽调制(PWM)方式输出。在对精度要求不高的系统中,多采用NTC热敏电阻作为温度传感器,电路利用AT89C2051单片机内部精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),实现低价模数转换。该电路实际上是一个具有电压门坎的积分比较器,它将输入的模拟量(电压)转换成中间量(时间间隔),然后将中间量转换为相应的数字量。其温度检测与转换电路图如图2所示。
2.2 NTC电阻的线性补偿
普通的NTC电阻的阻-温特性呈指数变化,即电阻随着温度的上升而呈指数下降。因其非线性,给系统温度控制带来不便。在本温控系统中采用了电路补偿法,将热敏电阻与一般电阻并联,以改善其在某一温度范围内的阻-温特性的线性度。在图2所示的电路中,RT和R4并联后,可以得出:
由上式可以看出,在低温时,原来的ΔR/ΔT很大,则RT也很大。并上R4后可以看出ΔR变小,因而ΔR/ΔT也减小;而在高温时,原ΔR/ΔT很小,但因高温时RT很小(远小于R4),所以RT基本不变。电路补偿前后R与T的关系如图3所示,从图中可以看出,NTC电阻的非线性明显改善。
2.3 测量工作原理
单片机AT89C2051的P1.0和P1.1是内部精确模拟比较器的正向输入(AIN0)和反向输入(AIN1)端。P1.1端连接基准电压,P1.0端连接温度传感器。热敏电阻RT的变化可引起C1的充电电流变化,故可利用比较器判断基准电压与电容C1上的电压是否相等。当2个电压相等时,比较器输出P3.6会有跳变,单片机AT89C2051则记录从C1电容充电开始到P3.6跳变的时间。因为R1、R2的值固定,所以积分到基准电压VS=VCC*R2/(R1+R2)时,比较器输出高电平。根据电容充电的瞬时方程VC=VCC*(1-exp(-T/RC))=VS,即可求出传感器的电阻RT,然后查表即可得出温度值。由于直接用计算指数函数的方法求解比较困难,且实时计算测量温度的计算量较大,计算精度较低,因此本系统采用查表的方法,即预先将时间长度T所对应的温度值计算出来,存入映射表。
2.4 自学习的温度控制算法
本温控系统中的传感器电路测得的温度经数字滤波并与系统温度设定值进行比较后,通过PWM参数的设定,去控制加热继电器的导通时间,从而可以控制加热板的平均输入功率,达到恒温的控制。
对于本控制系统来说,当温度未达到设定值时,为自由升温段,要求升温越快越好,所以要全量输出。当温度达到设定值时,停止输出,但由于加热板的热惯性,温度并不因输出停止而停止上升,温度会超过给定值;同理,温度在上升到一定高度后才开始下降,并继续下降到略小于设定值时,系统才重新输出。由于温度的滞后特性,造成了温度在设置温度的一定范围内上下振荡,使温度基本保持在恒温状态。
系统使用PWM技术实现对温度的控制,使用TPWM_A、TPWM_S参数来改变占空比,从而控制继电器导通时间,达到控制温度的目的。PWM控制即是通过对变量TPWM_A的调整来调整输出加热器通断时间的比。假设TPWM_A为8位(为1100 0000),每0.5秒输出TPWM_A.7的电平,则在4秒内有1秒输出高电平,进行加热,其余时间则关断。这样通过调整其中为1的个数就可以调整加热功率。
该算法中设TPWM_S为记录占空比变化的变量,而TPWM_A为通过循环移位输出控制脉冲的执行变量,则控制过程如下:刚开始加热时,TPWM_A参数为#0FFH,则继电器导通,全速加热。温度升至设置温度TEMP_SET时,将TPWM_A参数置为0,关断继电器,但因热惯性,温度将继续上升至一定温度后才下降,在温度上升过程中系统记录上升到的最高温度TMAX。当温度下降到设置温度TEMP_SET时,TPWM_A参数置为#08H,降低了加热速度,同时由于热惯性,温度将继续下降,在温度下降过程中系统记录下降到的最低温度TMIN。如果TMAX超过温度的上限值,则对TPWM_S参数进行补0,降低占空比,减少继电器的导通时间;如果TMIN超出温度的下限,则TPWM_S参数进行补1,提高占空比。因为加热速率的降低,振荡周期中上限TMAX与下限TMIN越来越接近设置温度TEMP_SET,从而达到恒温。温度控制曲线如图4所示。在t1阶段,继电器均关断,在t2阶段系统则根据TPWM_A参数进行脉宽调制。其中W1和W2分别为加热温度的上限和下限。
设计中,采用二部分程序实现以上功能。
(1) T0中断服务子程序,进行0.5秒中断控制输出。它判断温度是否超过设置温度,即如果超过设置温度,则关断继电器输出;如果低于设置温度,则根据TPWM_A参数左移后的高位值,若为1则加热,即驱动继电器工作;若为0则关断继电器。温度控制子程序流程如图5所示,其中恢复TPWM_A是指记录占空比的TPWM_S的值赋给执行变量TPWM_A。PWM控制的过程只在温度传感器所测温度低于设定温度时进行,而加热到设定温度时则完全切断加热器。由于NTC电阻的迟滞特性,在切断加热器时,实际温度已高于测量温度。测量值依旧会上升,所以完全切断后待其冷却的过程中会有上峰值TMAX产生,当其下跌至设定温度时才开始PWM控制过程。同样由于NTC电阻的迟滞特性,测量的温度低于实际温度,加热过程中会有一个波谷值TMIN产生。适当的脉宽比会使加热温度上升的速率得以降低,在目标温度的上下限之间振荡的频率和幅度也会变小,从而达到控制的目的。
(2) 自适应控制则是通过上次测量的TMAX及TMIN对TPWM_S占空比进行调整,以达到恒温。该过程应在温度测量后进行,其程序流程如图6所示。
调整过程需要较长时间,但在控制温度变化较少、长期恒温控制的场合,自适应过程所用时间是允许的。为了克服每次开机都需要进行的自适应时间,可以将每次学习得到的脉宽与设定温度的对应关系记录下来,只要学习一次,以后开机加热直接调出参数即可。而当环境或加热条件变化时,可能参数不再符合实际情况,这时上述程序会再次自学习,以产生新的参数。
3 总 结
本文介绍的自学习的温控系统对内存空间大小的要求较小,但只适用于温度较少调整的场合,如恒温烘干箱。但因其算法简单,有自学习和自适应的功能,所以无需对运行参数进行现场的整定,故可简化温控设备的设计。
参考文献
1 张毅刚,彭喜源,谭晓昀等.MCS-51单片机应用设计.哈尔滨:哈尔滨工业大学出版社,1997
2 Atmel Corporation.8-bit Microcontroller with 2Kbytes Flash AT89C2051.USA:ATMEL,1996
3 王幸之,王雷,翟成等.单片机应用系统抗干扰技术.北京:北京航空航天大学出版社,2000
4 李锡雄,陈婉儿,鲍鸿等.微型计算机控制技术.北京:科学出版社,1998