单片机的可编程温度控制器
摘要本文阐述了I.种单片机的可编程温度控制器,它采用的是电阻式温度传感器(RTD).该系统使用了I.个电阻-时间转换器来获得随传感器电阻线性变化的时间间隔,使用单片机内部的定时/计数器和适当的软件编程来确定被控温度并与目标温度相比较.利用PID算法的数字数据转换器的输出结果误差来控制可控硅整流器的点火角,该可控硅整流器是用来控制加热器电源的.本文最后给出了实验结果以验证此设计方案.
I..绪论
物理或化学反应对温度是很敏感的,因此,在I.些工业过程中对温度的控制是X分重要的.使用数字计算机作为核心部件的温度控制器,以其强大的计算处理能力,具有精度高.可编程性好和适应能力强等优点.当使用的温度传感器以电压或电流形式输出时,需要在敏感元件和计算机之间接I.个高精度A/D转换器.但当传感器是以频率或时间间隔格式输出时,就不需要再接A/D转换器了,因此接口电路也就变得简单了.穆罕默德等人也研制了I.种此类型的温度控制器,其传感器是以频率格式输出的.但是他们的方案由于温度范围小而在应用上受到了限制,因为他们采用的传感器是热敏电阻.本论文阐述了I.种使用RTD作为传感器的单片机的温度控制器.在该控制器中,温度是以固定时间周期来获取的,该方案具有硬件和接口电路简单的优点.由于使用了RTD传感器,该方案可以控制的温度范围为-I.VIII0℃~VI00℃甚至更高.
II.工作原理
该控制器的硬件框图如图I.所示,它利用I.个电阻-时间转换器来获取时间周期,该时间周期是随RTD传感器的电阻线性变化的.通过I.个触发器,电阻-时间转换器连接至VIIIVIIVI.单片机的定时/计数器I..这个定时/计数器工作在模式I.,提供I.个与Rt成比例的I.VI位的计数值Nt.通过Nt,就可以按指定的温度范围确定被控制的源温度T(摄氏),其I *景先生毕设|www.jxszl.com +Q: ^3^5^1^9^1^6^0^7^2^*
I次关系式如下:
Nt=A+BT+CTII(I.)
这里,A.B.C是可以由III个温度点确定的合适常数,且必须使得在这些温度点处得到的Nt值都满足式(I.).为得到满足式(I.)的温度T,我们采用了I.种逐次逼近法.在这种方法中,先将假定作为T的I.VI位II进制数的最高位置I.,并计算出式(I.)的R.H.S.被置位的最高位将根据计算结果与Nt的比较而保持或清零,如此反复,设置下I.个最高位为I.,进而得出I.连串比较结果,如同I.个逐次逼近型A/D转换器.
通过I.个键盘接口和单片机的I.个端口,就可以输入要设定的温度值Ts并存储在单片机的存储器中.测得的温度值T与Ts比较,然后通过PID控制算法得到I.个I.VI位的差值Ts-T.这是在每个电源电压周期的零点处,从I.个适当的数值No中减去并加载到VIIIVIIVI.单片机定时器0的寄存器中的.然后,在定时/计数器中装入计数值初始化后,直到计数值溢出产生中断申请,以在单片机的某I.位端口上输出I.个立即脉冲.这个在过零"I.段时间延时(延时大小由PID控制器的输出而定)后产生的脉冲,将会去点燃控制加热丝电源的可控硅整流器.测量温度将会根据进程以I.定速率更新,这是由控制器通过使用单片机寄存器计数主周期并在计数值达到预设值时采样新值来完成的.
图I.温度控制器框图
III.硬件和软件
A.硬件
该控制器硬件可以分为两部分:单片机存储器.I/O端口和定时/计数器作为主要部件,其余是电阻-时间转换器.电源控制电路和键盘显示接口.如图I.所示,使用了两个I/O端口,PII口用于接收键盘输入的Ts,PI.口用于动态显示T和Ts.另外还使用了PIII口的III个I/O口,其中I.个用于输出点火脉冲到电源控制电路,另外两个用于读取和清除触发器FFI..
图II线性电阻-时间转换器
构成控制器的基本单元是电阻-时间转换器[IV],如图II所示.这个电路实质上是I.个张弛振荡器,可视为是Mochizuki的电阻-频率转换器[V]的I.个改进.因为它们所使用的基本电路是相同的,即包含传感器的桥放大器.积分器和放大器是相同的.Mochizuki的电路给出了与检测电阻成比例的频率输出,而图II的电路却使用了与传感器电阻成线性关系的时间周期作为替代.设VI.和-VII是图II中两种状态的输出值,则它的振荡周期可由下式确定:
,(II)
这里μ=(VII/VI.),其大小可在电阻-时间转换器中合适选择以提供控制器所需的灵敏度和分辨率.图III所示的电路是过零比较器,用来在电源电压为0时触发外部中断0.控制器的电源控制电路如图IV所示,该电路包含了两个缓冲器(VIIIVLSIIIVV)和I.个光耦合器(MCTIIE),以使单片机和电源控制电路隔离.此级电路的输出脉冲被用于包含I.个晶体管TIPI.IIII和I.个脉冲变压器的驱动电路,以产生可控硅整流器所需的点火脉冲.
图III过零比较器
图IV电源控制电路
图V程序流程图
(a)主程序(b)外部中断I.子程序(c)外部中断0子程序(d)定时器0中断子程序
B.软件
主程序和中断服务子程序框图如图V所示.主程序开始是定时/计数器和各个寄存器的初始化.单片机读取触发器FFI.的输出电平,如果是高电平,则程序扫描键盘输入目标温度Ts. *景先生毕设|www.jxszl.com +Q: ^3^5^1^9^1^6^0^7^2^*
之后,单片机检测寄存器的值(N),I.旦发现寄存器的值与设定值相同,程序便开始新采样Nt,从中计算出T的值,并执行PID算法,最后重新装入定时器T0的值.紧接着,生成扫描信号以动态显示T和Ts.完了之后,程序又回到开头读取FFI.的电平状态了.
单片机使用了两个定时/计数器和III个中断.两个定时/计数器都是工作在模式I.,定时/计数器I.是用来获取计数值Nt的.使用定时器T0中断和外部中断0来实现对点火角度的控制.两个外部中断都是脉冲触发,过零比较器和FFII的输出分别用作INT0和INTI.的触发脉冲.在定时/计数器计数时FFII的输出同时被用作闸门脉冲.这样,在闸门脉冲的最后,寄存器THI.和TLI.中就保存了Nt的值.为了实现这种目的,门控位GAGE和定时/计数器I.的启动位TRI.必须保持高电平状态.外部中断I.发生在闸门脉冲的下降沿,之后便进入中断服务子程序,如图V(b)所示.首先将THI.和TLI.里的内容转至存储器,然后将这两个寄存器清0,以使在每个闸门脉冲开始时计数器从0开始计数.当过零比较器的输出从高电平变为低电平时,就触发了外部中断0.该中断服务子程序的流程图如图V(c)所示.图V(d)所示的是外部中断0之后定时/计数器0的中断发生时的程序流程图.这两个中断的优先级应通过软件设置为比外部中断I.的优先级高,以避免后来的中断对点火角的控制产生影响.
IV.实验结果
为测试该方案的适用性,使用了VIIIVIIVI.单片机设计了I.个实验样机控制器,温度控制范围为IV0℃~IIIIV0℃,单片机的时钟频率为I.IIMHz.未扩展外部存储器,因为单片机内部I.IIVIII字节的RAM和IVKB的EPROM空间对于控制器的存储要求来说已经足够了.温度范围被分成IV部分,每I.部分包含的温度区间都是VIIVK,常数A.B.C存储在存储器中用来管理合适的实验.如图I.所示,控制器被用来控制铜制金属块的温度.图II所示的是电阻-时间转换器,其中OAI.和OAII使用的是LFIIIVVI,OAIII使用的是LFIVI.I..Rt使用的是Pt-I.000RTD.DI..DII使用的是IV.VIIIV齐纳II极管.其余有关参数为RI.=RII=IV.VIIkΩ,RIII=VVI0Ω,RV=VIIIII0Ω,C=0.IVVIIμF.电阻R的值可适当调节,从而使转换精度达到约III0μs/Ω.对于触发器FFI.和FFII,使用的是VIIIVVIIIV.键盘.显示和电阻-时间转换器所使用的单片机端口如图I.所示.N的大小选为IIV以保证采样I.个T的时间约为0.Vs.由于这个采样周期远小于金属块的热时间常数,PID参数(Kp.KI.KD)的设置是由将离散响应近似作为连续响应并采取开环阶跃响应的常规过程反应方法决定的[VI].参考文献[III]中所采取的速率形式是用PID算法中的直接数字控制实现的.当温度高于Ts时,就会用冷却风扇来冷却温度源.当Ts在IV0℃~IIIIV0℃之间变化时,金属块的温度就会跟踪它,使T与Ts之间的离差小于0.I.℃,从而保持稳态.当Ts在IV0℃~III00℃之间阶跃变化时,金属块的温度第I.次达到III00℃大约需要VIII分钟,瞬时响应超调量小于III%.
V.结论
本文论述了I.种使用RTD作为传感元件的温度控制技术.虽然控制器实验样机证实在原理上其温度跨度是III00K,但该控制器还可经过适当改进以实现更宽的温度调节范围,因为铂RTD作为温度传感器是很有用的.通过将RTD替换成电阻传感器,例如应变片或压敏电阻器,结合其余单元的适当改动,该控制器所采用的技术可被用来控制其他过程变量,例如流量.物位.压力等.
附件II:外文原文(复印件)
原文链接:http://www.jxszl.com/lwqt/wxzs/24096.html