基于单片机及PC机的温度控制系统设计
扫描二维码
随时随地手机看文章
引言
目前,水温控制被广泛应用于食品、医药、化工、家电等很多领域,水温控制的好坏直接影响着产品的品质,因此,水温控制具有十分重要的意义。本设计的任务与要求为1L水由1kW的电炉加热,要求水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动调整,以保持设定的温度基本不变。主要性能指标:温度设定范围为25.0~100C最小区分度为0.1°C,温度控制的静态误差小于或等于0.1^,用SMC1602A液晶显示模块显示实际水温和PID控制算法中的三个主要参数県、T、、Td的赋值,用串口调试精灵将PID控制器的输出和温度采样值显示在PC机上。
1系统方案
本设计以STC89C52单片机为核心,采用了温度传感器DS18B20、RS232标准接口及PID控制算法对温度进行控制。该水温控制系统是一个典型的检测、控制型应用系统,它要求系统完成从水温检测、信号处理、输入、运算,到输出控制电炉加热功率以实现水温控制的全过程。本设计实现了水温的智能化控制以及提供完善的人机交互界面及PC机与单片机通信接口,系统由PC机与单片机通信模块、温度检测及其显示模块、PID控制算法等模块组成,其特点在于采用PC机与单片机通信,系统框图如图1所示。
图1系统框图
2硬件电路设计
本电路总体设计包括四部分:主机控制部分(STC89C52)、温度采样与显示电路、温度控制电路、PC机与单片机通信电路。
2.1主机控制部分
主机控制部分是电路的核心,系统的控制采用单片机89C52。单片机89C52内部有8KB单元的程序存储器以及512B的数据存储器,因此,系统不必扩展外部程序存储器和数据存储器,这样就可以大大减少系统硬件部分的复杂度。
2.2温度采样与显示电路
系统的信号采集与显示电路主要由温度传感器DS18B20和SMC1602A液晶显示模块两部分组成。
DS18B20采用独特的单线接口方式,在与微处理器连接时,仅需要一条口线即可实现微处理器与DS18B20的双向通信。测温范围为-55~+125G固有测温分辨率为0.5C工作电源为3~5V/DC,在使用中不需要任何外围元件,测量结果以9~12b数字量方式串行传送,适用于DN15~25、DN40~DN250各种介质工业管道和狭小空间设备的测温。
SMC1602液晶显示器以其微功耗、小体积、使用灵活等诸多优点在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。液晶显示器通常可分为两大类,一类是点阵型,另一类是字符型。点阵型液晶通常面积较大,可以显示图形;而一般的字符型液晶只有两行,面积小,只能显示字符和一些很简单的图形,简单、易控制且成本低。目前,市面上的字符型液晶绝大多数是基于HD44780液晶芯片的,所以控制原理是完全相同的,为HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。字符型LCD通常有14条引脚线(市面上也有很多16条引脚线的LCD,多出来的2条线是电源线VCC(15脚)和地线GND。
2.3温度控制电路
此部分电路主要由光电耦合器、三极管和继电器组成。光电耦合器的耐压值为400V,它的输出级经三极管将功率放大后控制继电器常开触点的通断,从而最终达到控制电炉子的目的,100Q电阻与0.01nF电容组成双向可控硅保护电路。2.4PC机与单片机通信电路
为了使系统具有更好的人机交换界面,在系统设计中我们通过VisualBasic语言设计了微机控制界面。系统与微机的通信大大提高了系统的各方面性能。
由于单片机89C52串行口为TTL电平,而PC机为RS232电平,因此,系统采用了MAX232电平转换芯片来进行电平转换。
因为系统设计了通信功能,即主系统(89C52)和PC机的通信,所以在观察PID控制器的输出时更加明显,很大程度上降低了参数整定的难度。另外,通过可视化窗口能够看到系统的采样值。
3软件设计
本系统的软件设计主要包括三大部分:PC机与单片机通信模块的软件设计、温度采样与显示电路模块的软件设计、温度控制模块的软件设计。
3.1主程序流程图
主程序流程如图2所示,程序主要完成以下的几部分任务:
初始化:设定各参数的初始值,设定串行口、定时器以及液晶显示模块。
PC机与单片机通信:此部分程序主要完成数据在
PC机和单片机间的相互发送,其主要通过89C52单片机的半双工串行口完成,从而完成与微机控制接口RS232的连接及通信的控制。
温度采集及其显示:主要完成温度信号的采集及其对转换后的数字量进行处理,进而用字符型液晶显示模块将实时温度进行显示。
图2主程序流程
3.2PID控制算法
PID算法是此温控系统性能好坏的决定性因素。其一般算式及模拟控制规律表达式如下:
u(t)=Kc(t)+1#'e(t)dt+T«(1)
[dt
式中,u(t)为控制器的输出;e(t)为偏差,即设定值与反馈值之差;Kc为控制器的放大系数,即比例增益;为控制器的积分常数;Td为控制器的微分时间常数。PID算法的原理即调节K、7\、Td三个参数,使系统达到稳定。
由于PID的一般算式不易与单片机处理,因此,在设计中采用了增量型PID算法。将式(1)转换成
Tu(k)=u(k)—u(k—1)=KcTe(k)+Ke(k)+KA2e(k)
由式(2)可得出
u(k)=Du(k)+u(k—1)
式(3)中的u(k)即输出PWM波的导通时间。其控制算法如图3所示。
4测试方法与测试结果
4.1测试方法
在电炉子中放入1L清水,电炉子和控制系统相连,给系统上电,系统进入准备工作状态。分别设定温度为35.3笆、40.2°C、45°C、60°C、74.0°C、81°C,观察设定温度和实际温度,并记录数据。填写表1,同时观察水温变化的动态情况,并记录温度稳定的时间,填写表2。
4.2测试结果
设定温度与实测温度的数据对比如表1所列。表2所列是温度稳定和时间的关系,表2中的设定温度为50C,每隔30s记录实测温度。
5结论
从表1中的数据可知,系统的误差基本稳定在±0.3C,因而能很好地满足系统的设计要求。从表2所得的数据可知,系统运行5mm时,基本达到了稳定,说明系统能很好地控制温度达到理想值,为需要精确控制温度的任务提供了参考。同时,系统实现了PC机与单片机的通信,把控制参数和控制结果显示PC机上,方便监控,实现了温度的控制和智能监控。