基于PID算法的单片机水温调试系统设计
2020-08-13阚永彪
阚永彪
摘要:为实现特定环境下的水温调试功能,此研发系统使用PID算法的单片机调试功能。此系统采用STC89C52单片机作为系统的控制核心,并采用软件编程,将PID算法与电力电子技术相结合以此控制PWM波的产生,继而控制有加热功能的电子器件来进行温度的控制,并需要以对各项参数的计算调整来写出单片机各项程序,用来提升温度的增长速率等各项其他能力。
关键词:PID算法 单片机 PWM波 温度控制
一、水温调试系统设计必要性
温度控制,在很多场合下是确保生产过程及其他过程的顺利进行的基础,可以更好地提高生产效率,节约资源能源。对于温度信息的严格掌握和把控是很多生产制造环节的重要步骤之一。一个合格的温度检测系统应该具有从计算、测量以及调整等步骤再到通过控制电子器件的加热功率以实现水温控制为结束的全过程。
由于现在国内外的市场上销售的温度控制系统基本是运用模电加数字化电路组成,会有可控制性能差,电路复杂,外界环境影响较大,工作产生噪音等缺点。为了改善这些缺点,通过更加智能且便捷的方式来实现水温调试的功能,我们用AT89C51单片机作为系统核心,将PID算法加入单片机运行中而构建出温度控制的专属系统,从而实现水温调试。
二、设计要求及主要内容
(一)基本要求
人工设定在一千瓦的电热炉在加热一升水时有可控范围,在外界环境的温度变化时可以自主地进行调整为最初设定范围,保证系统初始温度趋于初值。
(二)主要性能指标
1.设定温度的范围在20~70℃。
2.若外界環境温度变化,则内部的温度变化精度要小于等于0.1℃。
3.用十进制数码管显示水的温度。
(三)拓展功能
1.运用合适的控制方法,在设定的温度发生突变时,尽量以较少的时间恢复或者调整到温度变化的初值。
2.温度控制的静态误差小于等于0.2℃。
三、系统设计原理
(一)水温控制系统总体框图。
该框图是水温控制系统的主要运转模式,其主要分为温度采样转换器、温控电路、显示电路以及STC89C52控制系统等四部分组成。
(二)总体方案设计
将单片机STC89C52作为系统的核心。单片机处理器可以在处理调整温度的同时保证温度稳定,而且STC89C52编程简单,控制稳定且灵活,能够让系统实现简单的温度的控制及显示,也可以利用软件编程达到其他控制系统的优点。在温度采样部分我们采用数字温度传感器DS18B20。DS18B20在是通过一总线结构去采集或者控制温度,有经济实用,精度较高,采集速度快等适用于本系统的优点。DS18B20测量范围为-55℃~+125℃,在-10℃~+85℃范围内。它自身内部有ROM,温度传感器和其他寄存器,可直接进行温度的采样和数字转换,可以不用外接电路。控制电路部分我们使用STC89C52单片机。此单片机内部拥有内部存储器和不同功能的各类寄存器额,且其I/O较多,便于控制电路的搭建。在加热和功率电路方面可采用可控硅控制加热器。可控硅加热的导通关断可以实现控制加热的原理,可以使用在单片机控制下的PWM波的产生来控制可控硅晶闸管的导通关断,这样做还可以提高加热效率,使温度控制更加准确。
四、硬件电路设计
(一)温度采样转换电路
我们所设计的温度采集和转换电路由DS18B20芯片为核心,DS18B20的温度采集范围在-55℃~+125℃,并且在-10℃~+85℃范围中,无需备用电源。该芯片采用单总线通信技术,通信功能稳定不移,且电路不会复杂,所以方便于实现电路搭建。
DS18B20可以在采集并读取的同时,还可以直接与单片机进行通信,高效地直接输出数字量,设计的重点放在单片机控制核心即可。
(二)温度控制电路
采用双向可控硅和光电耦合器的组合来搭建温控电路,如图MOC3041功率电路所示。并利用脉宽调制电路所输出的滤波控制电热炉和电源之间的接通断开比。在光电耦合器MOC3041的内部有发光晶闸管,检测电路和一个双向可控硅。如果单片机输出高电平脉冲,那么光电耦合器MOC3041内部的发光二极管就会导通发出光亮信号,然后同步作用于过0检测电路,在过零检测后,内部可控硅检测信号之后立即导通,这个线路导通可以触发双向可控硅晶闸管的导通,在负载中此时就会有电流存在。而如果单片机输出低电平脉冲时,据上述一系列步骤光电耦合器内部不会导通,不产生光亮信号然后截止双向可控硅的导通,此时的负载中将不会存在电流。光电耦合器作为接受单片机信号的第一接受器同时要向双向可控硅发出运作信号,是一个关键的中间过渡装置,通过过零触发的双向可控的晶闸管在此系统中是组成光电耦合的输出级,同时负责关断和导通电路的运行,从而控制加热温度的时间段。
(三)单片机控制部分
单片机控制部分采用单片机STC89C52作为系统核心,这一部分也是整个系统的核心部分。该系统由于其不需要外部电路设计的拓展所以将会大大缩减硬件电路的设计。
(四)按键及显示部分
采用LCD1602液晶显示器作为显示部分,此器件的显示部分快速简单且易于编程控制,方便操控,并且其相对其他显示模块更适用于温度显示。
五、软件设计
因为需要电路的硬件设计尽量简单化,所以该系统的编程将会作为主要的工程部分攻克。
程序流程图如图2所示。
PID算法控制PWM输出
void timer0() interrupt 1
{
uchar flag;
TH0=0xd8 ;
TL0=0xf0 ;
TR1=1 ;
24=1 ; //启动输出
CJ++;
if(stemp>Wtemperature)
{
ei=stemp-Wtemperature;
E=E+ei;
ex=ej-ei;
ej=ei;
if(ei<6)
{Ui=U0-Kp*(ei+Ti*E-Td*ex);}
else
Ui=U0-Kp*ei;
flag=Ui/100;
switch(flag)
{
case 9:{TH1=0xdc;TL1=0xd8;}break;
case 8:{TH1=0xe2;TL1=0xb4;}break;
case 7:{TH1=0xe8;TL1=0x90;}break;
case 6:{TH1=0xec;TL1=0x78;}break;
case 5:{TH1=0xf0;TL1=0x60;}break;
case 4:{TH1=0xf2;TL1=0x54;}break;
case 3:{TH1=0xf4;TL1=0x48;}break;
case 2:{TH1=0xf8;TL1=0x30;}break;
case 1:{TH1=0xfc;TL1=0x18;}break;
case 0:{TH1=0xfd;TL1=0xa8;}break;
default:{TH1=0xff;TL1=0xfa;}break;
}
}
else {TH1=0xff;TL1=0xfa;}
}
程序使用T0和T1的互相嵌套来实现对PWM波的控制,T1是用来控制PWM波的占空比,T0被設定为控制PWM波的频率。
18317.jpg
单片机软件会实现PID控制PWM波的功能。我们使用T0和T1的相互嵌套设定定时器,其中将在程序中设定T0为10ms高电平,将T1作为低电平嵌套输出PWM波,控制PWM波的输出。
六、总结
设计过程的难题及解决,由于直接接入了220V电压,导致当电路通电时单片机的温度突然升高,为了解决散热问题,在电路板上加入了散热板。
由于温度传感器DS18B20的特性是无法直接在水中采集温度,为了解决水中测温问题,将温度传感器包裹在导热性能相对来说不错且不会烧坏温度传感器的情况下,再进入水中进行测量。
参考文献
[1]黄惟公,邓成中,王燕.单片机原理与应用技术[M].西安:西安电子科技大学出版社
[2]魏雅.基于单片机的多功能火灾报警器的设计与研究[J]无线互联科技2017年6期
[3]贾利娜.基于STM32的无线温度采集系统设计[J]电脑知识与技术2016年11期