恒温控制系统设计.docx
《恒温控制系统设计.docx》由会员分享,可在线阅读,更多相关《恒温控制系统设计.docx(18页珍藏版)》请在冰豆网上搜索。
![恒温控制系统设计.docx](https://file1.bdocx.com/fileroot1/2023-6/24/0100fa02-88e3-466a-8b14-7311e86a7bd5/0100fa02-88e3-466a-8b14-7311e86a7bd51.gif)
恒温控制系统设计
恒温控制系统设计
摘要:
温度控制系统广泛应用于社会生活的各个领域,如家电、汽车、材料、电力电子等,常用的控制电路根据应用场合和所要求的性能指标有所不同,在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题,开发出性能较好的温度控制系统对于测控技术的发展具有很大的意义。
本系统以水温作为测量媒介,以AT89S52单片机作为核心控制器,以DS18B20数字温度传感器作为采集器,实现温度的采集、调节、控制、传输、显示的功能。
系统采用PID算法对电热丝的加热PWM波占空比进行控制,从而达到对水温的控制。
关键字:
单片机DS18B20PID算法恒温控制
1.1研究背景
随着现代工业的逐步发展,在工业生产中,温度、压力、流量和液位是四种最常见的过程变量。
其中,温度是一个非常重要的过程变量。
例如:
在冶金工业、化工工业、电力工业、机械加工和食品加工等许多领域,都需要对各种加热炉、热处理炉、反应炉和锅炉的温度进行控制。
然而,用常规的控制方法,潜力是有限的,难以满足较高的性能要求。
采用单片机来对它们进行控制不仅具有控制方便、简单和灵活性大的优点,而且可以大幅度提高被测温度的技术指标,从而能够大大提高产品的质量和数量。
因此,单片机对温度的控制问题是一个工业生产中经常会遇到的控制问题。
本系统是以对水温控制为例研究恒温控制。
1.2系统功能概述
本系统是借用单片机采用模块化设计的恒温控制并用LCD12864显示,包括温度设定按钮,温度显示,温度调节,实时温度显示和预定温度显示转换按钮,温度采集等(根据需要也可另设或者多设相关功能)。
显示系统除了显示实时的温度还能显示设定的温度,也就是人们想要保持的温度。
1.3系统技术指标
温控范围:
30℃~100℃;
控制精度:
±0.1℃;
超调量<1%;
温度调节步伐:
0.5℃
2、系统总体设计方案论证
2.1系统的主要硬件模块方框图如下图所示
2.2温度传感器选择
第一种方案——热电偶,K型热电偶的输出是毫伏级电压信号,最终要将其转换成数字信号与CPU通信,传统的温度检测电路采用“传感器-滤波器-放大器-冷端补偿-线性化处理-A/D转换”模式,转换环节多、电路复杂、精度低。
第二种方案——温度传感器AD590M,以集成温度传感器AD590M为采集主体,经过电压跟随器、差分式减法器、电压放大器、反相器等电路作为信号调理,后输入10位A/D转换器TLC1549进行模/数转换输入给单片机。
第三种方案——数字温度传感器DS18B20,数字温度传感器DS18B20,因其内部集成了A/D转换器,使得电路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。
数字温度传感器DS18B20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片机更加具有扩展性。
由于DS18B20芯片的小型化,更加可以通过单跳数据线就可以和主电路连接,故可以把数字温度传感器DS18B20做成探头,探入到狭小的地方,增加了实用性。
如上所述,选择数字温度传感器DS18B20作为温度传感器。
2.3人机交互模块的选择
一、显示模块选择
方案一:
采用LCD12864液晶显示器,可以显示中文显示并且可以作图方便确定PID算法中的一些参数,1、显示质量高。
由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不象阴极射线管显示器(CRT)那样需要不断刷新亮点。
因此,液晶显示器画质高而且绝对不会闪烁,把眼睛疲劳降到最低。
2、没有电磁辐射,液晶显示器在防止辐射方面具有优势,因为它根本就不存在辐射。
在电磁波的防范方面,液晶显示器也有自己独特的优势,它采用了严格的密封技术将来自驱动电路的少量电磁波封闭在显示器中,而普通显示器为了散发热量的需要,必须尽可能地让内部的电路与空气接触,这样内部电路产生的电磁波也就大量地向外“泄漏”了。
3、可视面积大,对于相同尺寸的显示器来说,液晶显示器的可视面积要更大一些。
液晶显示器的可视面积跟它的对角线尺寸相同。
阴极射线管显示器显像管前面板四周有一英寸左右的边框不能用于显示。
5、画面效果好,与传统显示器相比,液晶显示器一开始就使用纯平面的玻璃板,其显示效果是平面直角的,让人有一种耳目一新的感觉。
而且液晶显示器更容易在小面积屏幕上实现高分辨率,6、数字式接口,液晶显示器都是数字式的,不像阴极射线管彩显采用模拟接口。
也就是说,使用液晶显示器,显卡再也不需要像往常那样把数字信号转化成模拟信号再行输出了。
理论上,这会使色彩和定位都更加准确完美。
7、“身材”匀称小巧,传统的阴极射线管显示器,后面总是拖着一个笨重的射线管。
液晶显示器突破了这一限制,给人一种全新的感觉。
8、功率消耗小,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比传统显示器也要小得多
可以中文显示并且可以作图方便确定PID算法中的一些参数,
方案二:
选用数码管显示,具有价格便,、使用寿命长、亮度高、故障少、可视距离远等特点。
但只能显示数字,不可以中文显示,也不能作图。
综上所述,所以选择方案一 。
二、输入模块的选择
方案一:
触摸屏输入,随着信息化社会的发展,触摸屏的应用日趋普及,迄今,触摸屏产品在我国已逐渐形成了产业。
触摸屏输入是靠触摸显示器的屏幕来输入数据的一种新颖输入技术。
触摸屏输入完全摒弃了键盘的繁琐输入,使得人机交互仅需手指轻轻一触即可。
可以说,所有信息尽在指尖之中。
触摸屏输入可用于取代诸如键盘、光笔、操纵杆、滚球、鼠标器及数字转换器一类的数据输入设备,或取代分立开关与薄膜开关之类的面板操作装置。
其优点是操作简便直观、图像清晰、坚固耐用及节省空间,它可配用于一切电子显示器,并可与显示器制成一体,人机交互性佳,操作方便,使用灵活,效率高及输入速度快。
故触摸屏输入装置将会发展成为未来诸种信息产品的主流技术之一。
方案二:
按键输入,价格便宜,结构简单,易于操作。
有本系统仅需三个按键,有按键输入即可完成,所以选择方案二。
通过以上描述易知本系统开发了丰富的人机交互接口,最大程度上简化了操作的复杂度和方便度。
设有三个功能按键,分别为:
设定温度加O.5℃、设定温度减O.5℃以及主界面和温度曲线界面切换按键。
LCD12864液晶显示,包括两个界面分别为主界面(包括设定温度和实时采集温度)和温度曲线界面。
2.4加热模块的确定
由于单片机与加热电路是强-弱电接口,需用电隔离电路以光为煤介传送信号,对输入和输出电路可以进行隔离.因而能有效地抑制系统噪声,消除接地回路的干扰,有响应速度较快、寿命长、体积小耐冲击等好处。
电路图如下所示
方案一:
采用继电器对电机的开或关进行控制,通过开关的切换对小车的速度进行调节。
这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短,可靠性不高。
方案二:
采用由晶体管功率放大器PWM电路。
用PWM控制晶体管功率放大器使之工作在占空比可调的开关状态,精确调整电动机的转速,这种电路由于工作在管子的饱和截止模式下,效率非常高;此电路保证了可以简单的实现转速和方向的控制;电子开关速度很快,稳定性也极强,是一种广泛应用的PWM调速技术。
基于上述理论的分析,加热电路电路选用由晶体管功率放大器组成的PWM电路来实现。
2.5时钟频率电路设计
单片机必须在时钟的驱动下才能工作,在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定周期的时钟信号送到单片机内部的各个单元,决定单片的工作频率,时钟电路如图3-2所示。
图3-2外部振荡电路
一般选用石英晶体振荡器。
此电路大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要有石英晶体的频率确定。
电路中两个电容C1、C2的作用有两个:
一是帮助振荡器起振;二是对振荡器的频率进行微调。
C1、C2的典型值为30pF。
单片机工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期,其大小是时钟信号频率的倒数,时钟信号频率常用fosc表示。
图中时钟频率为12MHz,即fosc=12MHz,则时钟周期为1/12μs。
2.6复位电路设计
单片机的第9脚RST为硬件复位电路,只要在该端加上持续4个机器周期的高电平即可实现复位,复位后单片机的各个状态都恢复到初始化状态,其电路图如图3-3所示。
图3-3中由按键以及电容C1、电阻R1、R2构成上电复位及手动电路。
由于单片机是高电平复位,所以上电复位时,接通电源即可,当上电后,由于电容C1开始缓缓充电,则图中电路由5V电源到电容到电阻R1和地之间形成一个通路,由于在R1上产生电压降,则单片机的RST脚上为高电平,经过一段时间后电容的电充满,此时C1处可视为断路,单片机RST脚处电压逐渐降为0V,即处于稳定的低电平状态,此时单片机完成上电复位,程序从0000H开始执行。
手动复位时,按一下图中的按钮即可,当按键按下的时候,单片机的9脚RST管脚处于高电平,此时单片机处于复位状态。
值得注意的是,在设计当中使用到了硬件复位电路和软件复位两种功能,由上面所述的硬件复位之后的各状态可知,寄存器的值都恢复到了初始值,而前面的功能介绍中提到了倒计时时间的记忆功能,该功能实现的前提条件就是不能对单片机进行硬件复位,所以设定了软件复位功能。
软件复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。
图3-3硬件复位电路
3、系统硬件电路设计
3.1单片机最小系统设计
最小应用系统,是指用最少的元件组成的单片机可以工作的系统。
对51系列单片机来说,最小系统一般应该包括:
单片机、晶振电路、复位电路。
如下图所示
3.2温度采集电路
DS18b20的数据线加上拉电阻直接与单片机I/O连接,各引脚功能描述
⑴GND地信号
⑵DQ数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源。
⑶VDD可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。
由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。
DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。
该协议定义了几种信号的时序:
初始化时序、读时序、写时序。
所有时序都是将主机作为主设备,单总线器件作为从设备。
而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。
数据和命令的传输都是低位在先
常用连接电路如下图所示
3.3LCD12864连接电路
具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面
LCD12864接口数明:
(由于本系统采用并行接口,故只列取并行接口电路)
管脚号
管脚名称
电平
管脚功能描述
1
VSS
0V
电源地
2
VCC
3.0+5V
电源正
3
V0
-
对比度(亮度)调整(串一个电阻接电源)
4
RS(CS)
H/L
RS=“H”,表示DB7——DB0为显示数据
RS=“L”,表示DB7——DB0为显示指令数据
5
R/W(SID)
H/L
R/W=“H”,E=“H”,数据被读到DB7——DB0
R/W=“L”,E=“H→L”,DB7——DB0的数据被写到IR或DR
6
E(SCLK)
H/L
使能信号
7
DB0
H/L
三态数据线
8
DB1
H/L
三态数据线
9
DB2
H/L
三态数据线
10
DB3
H/L
三态数据线
11
DB4
H/L
三态数据线
12
DB5
H/L
三态数据线
13
DB6
H/L
三态数据线
14
DB7
H/L
三态数据线
15
PSB
H/L
直接接电源正极
16
NC
-
空脚
17
/RESET
H/L
复位端,低电平有效(建议悬空)
18
VOUT
-
LCD驱动电压输出端
19
A
VDD
直接接电源正极
20
K
VSS
直接接地
3.4加热电路设计
用于在闭环控制系统中对被控对象实施控制,被控对象为水里的电阻丝,采用对加在电阻丝两端的电压进行通断的方法进行控制,以实现对水加热功率的调整,从而达到对水温控制的目的。
对电炉丝通断的控制采用PWM经光耦隔离电路对电路通断控制。
它的使用非常简单,只要在控制端TTL电平,即可实现对C-MOS管的开关,使用时完全可以用NPN型三极管接成电压跟随器的形式驱动。
当单片机的输出端为高点平时,三极管驱动固态继电器工作接通加热器工作,当单片机的输出端为低电平时固态继电器关断,加热器不工作。
4系统软件设计
系统的软件由三大模块组成:
主程序模块、功能实现模块和运算控制模块。
4.1主程序模块流程图
主程序主要完成加热控制系统各部件的初始化和实现各功能子程序的调用,以及实际测量中各个功能模块的协调在无外部中断申请时,单片机通过循环对外部温度进行实时显示。
时常扫描按键,以便能对数字按键进行相应处理。
主程序流程图如下
4.2功能实现模块
⑴读温度子程序
由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。
由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。
DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。
该协议定义了几种信号的时序:
初始化时序、读时序、写时序。
所有时序都是将主机作为主设备,单总线器件作为从设备。
而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。
数据和命令的传输都是低位在先。
DS18B20时序图
读温度子程序流程图
⑵温度显示子程序
12864点阵液晶显示模块(LCM)就是由128*64个液晶显示点组成的一个128列*64行的阵列。
每个显示点对应一位二进制数,1表示亮,0表示灭。
存储这些点阵信息的RAM称为显示数据存储器。
要显示某个图形或汉字就是将相应的点阵信息写入到相应的存储单元中。
图形或汉字的点阵信息当然由自己设计,问题的关键就是显示点在液晶屏上的位置(行和列)与其在存储器中的地址之间的关系。
由于多数液晶显示模块的驱动电路是由一片行驱动器和两片列驱动器构成,所以12864液晶屏实际上是由左右两块独立的64*64液晶屏拼接而成,每半屏有一个512*8bits显示数据RAM。
左右半屏驱动电路及存储器分别由片选信号CS1和CS2选择。
(少数厂商为了简化用户设计,在模块中增加译码电路,使得128*64液晶屏就是一个整屏,只需一个片选信号。
)
显示点在64*64液晶屏上的位置由行号(line,0~63)与列号(column,0~63)确定。
512*8bitsRAM中某个存储单元的地址由页地址(Xpage,0~7)和列地址(Yaddress,0~63)确定。
每个存储单元存储8个液晶点的显示信息。
为了使液晶点位置信息与存储地址的对应关系更直观关,将64*64液晶屏从上至下8等分为8个显示块,每块包括8行*64列个点阵。
每列中的8行点阵信息构成一个8bits二进制数,存储在一个存储单元中。
(需要注意:
二进制的高低有效位顺序与行号对应关系因不同商家而不同)存放一个显示块的RAM区称为存储页。
即64*64液晶屏的点阵信息存储在8个存储页中,每页64个字节,每个字节存储一列(8行)点阵信息。
因此存储单元地址包括页地址(Xpage,0~7)和列地址(Yaddress,0~63)。
例如点亮128*64的屏中(20,30)位置上的液晶点,因列地址30小于64,该点在左半屏第29列,所以CS1有效;行地址20除以8取整得2,取余得4,该点在RAM中页地址为2,在字节中的序号为4;所以将二进制数据00010000(也可能是00001000,高低顺序取决于制造商)写入Xpage=2,Yaddress=29的存储单元中即点亮(20,30)上的液晶点。
①数字及中文显示流程图
②图形曲线显示流程图
⑶键处理子程序流程图
此程序段完成对不同键按下完成相应功能的任务
键处理子程序流程图
4.3运算控制模块流程图
PID算法运用比例、积分、微分算法,来对回路中的偏差进行修正,通过执行器调节参数,使测量值稳定在设定值附近,,达到控制某一参数的目的。
必须先明白P,I,D各自的含义及控制规律
比例P:
比例项部分其实就是对预设值和反馈值差值的发大倍数。
举个例子,假如原来电机两端的电压为U0,比例P为0.2,输入值是800,而反馈值是1000,那么输出到电机两端的电压应变为U0+0.2*(800-1000)。
从而达到了调节速度的目的。
显然比例P越大时,电机转速回归到输入值的速度将更快,及调节灵敏度就越高。
从而,加大P值,可以减少从非稳态到稳态的时间。
但是同时也可能造成电机转速在预设值附近振荡的情形,所以又引入积分I解决此问题。
积分I:
顾名思义,积分项部分其实就是对预设值和反馈值之间的差值在时间上进行累加。
当差值不是很大时,为了不引起振荡。
可以先让电机按原转速继续运行。
当时要将这个差值用积分项累加。
当这个和累加到一定值时,再一次性进行处理。
从而避免了振荡现象的发生。
可见,积分项的调节存在明显的滞后。
而且I值越大,滞后效果越明显。
微分D:
微分项部分其实就是求电机转速的变化率。
也就是前后两次差值的差而已。
也就是说,微分项是根据差值变化的速率,提前给出一个相应的调节动作。
可见微分项的调节是超前的。
并且D值越大,超前作用越明显。
可以在一定程度上缓冲振荡。
比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调
其次进行参数调整
a.确定比例增益P
确定比例增益P时,首先去掉PID的积分项和微分项,一般是令Ti=0、Td=0,PID为纯比例调节。
输入设定为系统允许的最大值的60%~70%,由0逐渐加大比例增益P,直至系统出现振荡;再反过来,从此时的比例增益P逐渐减小,直至系统振荡消失,记录此时的比例增益P,设定PID的比例增益P为当前值的60%~70%。
比例增益P调试完成。
b.确定积分时间常数Ti
比例增益P确定后,设定一个较大的积分时间常数Ti的初值,然后逐渐减小Ti,直至系统出现振荡,之后在反过来,逐渐加大Ti,直至系统振荡消失。
记录此时的Ti,设定PID的积分时间常数Ti为当前值的150%~180%。
积分时间常数Ti调试完成。
c.确定积分时间常数Td
积分时间常数Td一般不用设定,为0即可。
若要设定,与确定P和Ti的方法相同,取不振荡时的30%。
PID算法流程图