摘要:本文介绍了一种基于AT89S52单片机的电阻炉温度控制系统。阐述了系统的工作原理、硬件电路以及软件设计。详细论述了数字PID控制器的原理及其在电阻炉温控系统中的应用。采用Ziegler--Nichols参数整定法与经验法对PID控制参数进行整定,并且在PC机上开发了一套温度监控软件,通过串口实时监控系统的温度。该系统经过实验,取得了较为满意的控制效果。
1引言
温度在工业控制中是个很重要的参数,特别在冶金、机械、食品、化工等工业中,对工件的处理温度都要求严格控制,对于温度的精确度和稳定性均有较高的要求。模糊控制虽然能够得到较好的动态响应特性,但模糊控制也存在固有的缺点,容易受模糊规则有限等级的限制而引起误差。而数字PID控制则能够较好地解决控制精度的问题,并且计算机能够用程序既简单又方便地实现数字PID控制规律,对精度调整起来也很方便。本文设计了一种基于数字PID算法的温度控制系统,用AT89S52作为控制内核,并采用了数字PID算法结合积分分离方法对电阻炉温度进行控制,具有精度高、稳定性好的特点。此系统还设计了单片机与上位机的通信,实现了远程温度控制。这种方案可大大地提高工作效率和控制精度,有助于自动化水平的提高,具有良好的经济效益和推广价值。
2炉温控制的工作原理
工作原理:当采样周期到达时,由热电偶检测炉内实际温度,经过放大电路将温度值转换为0-4V的电压信号,再由A/D转换芯片ADC0809将电压值转换成数字量,经单片机采集后与设定温度进行比较,根据偏差信号进行PID控制运算,得出相应控制输出量,将控制输出量输出到执行机构进行加热,从而控制电阻炉内温度,使电阻炉的实际温度向着给定温度变化并最终达到给定温度。系统时刻检测炉内温度值,出现异常时启动蜂鸣器报警。
3系统硬件设计
本系统的硬件设计主要包括单片机的最小系统、温度采集电路、8155扩展电路、液晶显示接口、键盘接口、蜂鸣器报警电路以及串口通信等。图1中ArI'89S52为主控制器件,AT89S52是ATMEL公司生产的低电压、高性能CMOS 8位单片机,片内含有8K字节的EPROM和256字节的RAM.本系统采用8 155A芯片来扩展键盘和液晶显示,模数转换芯片ADC0809以及MAX232实现RS一232C标准接口通信电路。以下是各部分电路功能:
(1)AT89S52单片机
AT89S52是整个系统的CPU,单片机首先根据已经测量的电压值计算出温度偏差,然后进行PID控制并计算出相应的控制输出量,将控制输出量输出去控制加热器工作,从而实现温度控制。AT89S52还负责按键处理、液晶显示以及与上位机进行通信等工作。
图1控制器系统硬件结构框图。
(2)数据采集电路
本系统采用K型热电偶作为高温测量传感器,其测温范围为0℃~1700℃,温度变化1 oC,可产生40“v左右的电压。热电偶冷端温度补偿采用电桥补偿法,利用不平衡电桥产生的电动势补偿热电偶因冷端波动引起的热电动势的变化。运算放大器采用低漂移高精度的芯片OP07.
单片机接口技术比较精确,由OP07放大器将信号放大,当温度从0℃~500.C变化时输出的电压范围为0-4V之间。由于温度信号为缓慢变化的信号,对A/D转换速度要求不高,可选用价廉的集成A/D芯片ADC0809.ADC0809是一种8路模拟输入8位数字输出的逐次逼近式A/D转换器件,转换时间为100us.ADC0809将经过OP07放大的电压值转化成与其大小成正比的数字量,通过P0口送给单片机。
(3)蜂鸣器报警电路蜂鸣器报警电路由晶体管和蜂鸣器组成。由单片机I/O口输出信号控制晶体管的导通或截止,晶体管导通,则蜂鸣器报警。通过单片机来控制蜂鸣器产生报警声音。
(4)按键处理、液晶显示键盘主要负责温度控制范围和PID控制参数的输入;液晶显示器采用LCMl28X64液晶显示模块,把温度控制结果显示在液晶屏上。
(5)驱动电路驱动电路采用继电器驱动方式。通过控制继电器在控制周期内通断的时间,实现对加热器的开关式控制。由单片机I/O口输出的控制信号,经NPN晶体管放大,驱动继电器工作。
4软件设计
本系统需要实时采集温度数据,然后经过A/D转换为数字信号,存入AT89S52的内部数据存储器,送液晶显示,并与设定值进行比较,经过PID算法得到控制量并由单片机输出去控制加热器。进行温度控制程序的设计应考虑如下问题:①温度采样,数字滤波;②PID控制程序;③按键处理,液晶显示;④越限报警和处理;⑤与上位机通信程序。
(1)PID控制程序PID是对系统进行线性控制的一种控制器。所谓PID控制,就是按设定值与测量值之问偏差的比例、偏差的积累和偏差变化的趋势进行控制。经典的数字PID增量型算式为:
(1)其中Kp为比例系数,瓠为积分时间常数,Td为微分时间常数。
本温控系统采用的数字PID算法由软件实现,增量PID算法的优点是编程简单,数据可以递推使用,占用存储空间少,运算快。但是对于温度这种响应缓慢、滞后性大的过程,不能用标准的PID算法进行控制。当扰动较大或者给定的温度值大幅度变化时,由于产生较大的偏差,加上温控本身的惯性及滞后,在积分作用下,系统往往产生较大的超调和长时间的振荡。因此,为克服这种不良的影响,采用积分分离法对增量PID算法进行改进。当偏差e(I【)较大时,暂时取消积分作用;当偏差e(k)小于某一设定值M时,才将积分作用投入。
①当le(k)l>M时,用PD控制。由于偏差大,说明系统温度远离设定值,应快速加热,采用PD控制,可以提高系统的动态响应速度,避免产生过大的超调,减小动态误差。PD控制算式为Au(k)=K,{k(t)一e(k一1)J+;}k(女)一2e(k-1)+e(k一2)J) (2)②当le(k)l<M时,用PID控制。偏差小,说明系统温度已经接近设定值,此时加入了积分作用,可以消除系统静差,保证系统的控制精度。
(2)主程序流程图如图2所示
图2主程序流程图。
(3)PID参数的整定
数字PID控制器参数的整定是一项十分复杂的工作,必须依靠经验和现场调试来确定控制器的参数Kp、Ti、Td及采样周期T.在本系统的设计过程中,首先根据Ziegler和Nichols提出的参数整定方法(表1)对各参数进行整定,得到一个初始值,然后在实际操作中进行修订,直至最终满足要求为止。
表1由Ziegler和Nichols闭环整定方法得到的调节参数。
其中Ku为临界增益,Tu为临界振荡周期,这两个值均是由纯比例器的作用下产生等幅振荡时的临界值。
5温度控制系统的调试
通过对电阻炉加热实验,对温控系统进行调试。温度设定值为300℃,由于温度为响应慢、滞后较大的被控对象,采样周期T应选得长些,取T为10秒,继电器控制周期与采样周期一样为10秒,M设定为20℃。改变PID参数,通过实验得到如下结果:
①当Kp=10,Ti=l,Td=1时,系统的上升到设定值的时间较短,但系统超调量大,温度最大值接近350℃,而且振荡时间也较长。
②实验所用的电阻炉在纯比例器的控制作用下,Ku=14,Tu=lO.用Ziegler和Nichols提出的参数整定方法对PID参数进行整定,有Kp=8.4,Ti=5,Td=1.2,用此参数重新对电阻炉进行加热控制,结果发现系统超调量变小,经过小幅振荡后趋向稳定,达到稳定状态的时间较短。
③在②的基础上根据实际情况调整控制参数,寻求最佳的PID控制参数组合。由②的结果可以预见,应适当减少Kp值,以减少超调量;增大Ti值使得偏差补偿不至于太大;增加Td值以增加对温度反应的敏感性。经过不断的实验验证,最终将控制统参数定为Kp=7.6,Ti=5.2,Td=1.5.用此参数控制实验电阻炉,系统的过渡过程具有单调上升的特性,可以达到消除系统的超调输出,获得更短的过渡过程时间。当温度稍微低于设定的3000C时,由于PID的控制作用,温度总在设定值做上下波动,误差很小,可以控制在±1℃以内,最终可使温度控制在300±1℃。温度变化曲线如图3所示。
6监控软件的运行
在本温控系统中,.以单片机AT89S52作为下位机,Pc机作为上位机,下位机与上位机通过串I:1进行通信。运行上位机的监控软件后,选择开始通信按钮便与下位机建立了通信,可以对,下位机的状态进行监控。远程监控的软件上显示温度实际值的数字与曲线。
图3监控软件的运行
图3是在温度设定值为300.C时软件运行的曲线图,屏幕上显示的为加热过程的温度变化曲线,曲线动态随着下位机的温度实际值的变化而变化,在左边显示的坐标值是当前温度的实际值。
在实际的操作过程中需要对异常的情况进行报警。图3中在温度上限、下限设定值输入了320和280,表示温度高于320℃(加热过程)或者低于280.C(降温过程)则系统通过蜂鸣器报警。
7总结
本文介绍了一种基于单片机的数字PID算法对温度进行控制,软件采用c语言编写,编程简单灵活,通过对PID算法中各控制参数的整定和采用积分分离方法,消除了系统的振荡和超调现象,实现了对温度的精确控制。此系统不但现场有温度液晶显示和按键控制,还实现了远程的温度显示与控制,单片机将测得的温度值通过串口传递给上位机,使用户能够随时对温度进行监控。经过实验验证,该温度控制器结构简单、体积较小、测温准确,具有一定的实际应用价值。
本文作者创新点:本温度控制系统以单片机AT89S52作为控制内核,并采用了数字PID算法结合积分分离方法对电阻炉温度进行控制,具有精度高、稳定性好的特点;该系统利用串口通信,实现了远程的温度显示与控制。