基于PID的水温控制系统(毕业论文)_第1页
基于PID的水温控制系统(毕业论文)_第2页
基于PID的水温控制系统(毕业论文)_第3页
基于PID的水温控制系统(毕业论文)_第4页
基于PID的水温控制系统(毕业论文)_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单位代码 01 学号 100119026 分 类 号 TP273 密 级 毕业设计说明书基于PID的水温控制系统设计 院(系)名称信息工程学院 专业名称测控技术与仪器 学生姓名 指导教师2014年4月25日第 页黄河科技学院毕业设计说明基于PID的水温控制系统设计摘 要本次设计采用proteus仿真软件,以AT89C51单片机做为主控单元,运用PID控制算法,仿真实现了一个恒温控制系统。设计中使用温度传感器DS18B20采集实时温度,不需要复杂的信号调理电路和A/D转换电路,能直接与单片机完成数据的采集和处理,使用PID算法控制加热炉仿真模型进行温度控制,总体实现了一个恒温控制仿真系统。系统设

2、计中包含硬件设计和软件设计两部分,硬件设计包含显示模块、按键模块、温度采集模块、温度加热模块、蜂鸣器报警模块。软件设计的部分,采用分层模块化设计,主要有:键盘扫描、按键处理程序、数码管显示程序、继电器控制程序、温度信号处理程序、超温报警程序。另外以 AT89C51 单片机为控制核心,利用PID 控制算法提高了水温的控制精度,使用PID 控制算法实施自动控制系统,具有控制参数精度高、反映速度快和稳定性好的特点。关键词 :proteus仿真,PID,AT89C51,DS18B20温度控制第 页黄河科技学院毕业设计说明 The Design of Water Temperature Control

3、Based on PIDAuthor:Tutor:AbstractThis design uses proteus simulation software and takes AT89C51 as master unit, using PID control algorithm to simulation a temperature control system. The Design uses temperature sensor DS18B20 acquisition real-time temperature, and does not require complex signal co

4、nditioning circuitry and A/D converter circuit with the MCU completing the acquisition and processing of data directly.The use of PID algorithm control furnace temperature control simulation model, the overall implementation of a temperature control simulation system. The system design contains hard

5、ware design and software design two parts and the Hardware design include temperature control circuit, temperature detection and LED display circuit and so on. Part of the software design adopts modular structure. The main module is Keypad scanning. Key processing program digital pipe display proced

6、ures, relay control procedures, temperature signal processing program and super temperature alarming program. In addition to AT89C51 control core, the use of PID control algorithm to improve the accuracy of temperature control using PID control algorithm to implement automatic control system with hi

7、gh precision control parameters, reflecting the speed and stability characteristics.Keywords: proteus simulation, PID, AT89C51, DS18B20 Temperature Control第 页黄河科技学院毕业设计说明书目 录1 绪论11.1 背景意义11.2 温度控制系统国内外发展现状11.3 本课题研究的主要内容22 系统总体设计方案论证42.1 设计要求42.2 总体设计方案43 系统的硬件设计63.1 系统硬件构成概述63.2 各单元总体说明63.3 按键单元63.

8、4 LED数码管显示单元73.5 温度超、低温与异常情况报警单元83.6 温度测试单元93.7 温度控制器件单元104 恒温控制算法研究(PID)114.1 PID控制器的设计114.2 PID算法的流程实现方法与具体程序125 系统的软件设计165.1 统软件设计概述165.2 系统软件程序流程及程序流程图175.3 温度数据显示模块分析185.4 测试分析206 模拟仿真结果22第 页黄河科技学院毕业设计说明书结 论25致 谢26参考文献27附 录29第 38 页黄河科技学院毕业设计说明书1 绪论1.1 背景意义在现实情况中,由于环境中温度值的滞后现象严重,惯性很大,且存在很多不确定的因素

9、,所以很难建立精确的数学模型,因此常常导致控制系统的性能不佳,有时还会出现控制不稳定和失控现象。本次设计采用proteus仿真软件,以AT89C51单片机做为主控单元,运用PID控制算法,仿真实现了一个恒温控制系统,可以避免一些不确定的影响因素。传统的继电器温控电路虽然运用起来比较简单,但由于继电器运作频繁,可能会因触点不良而影响正常工作。现今在控制领域,一般使用PID算法进行温度控制,不过PID控制对象的数学参数也是难以建立的,并且当扰动因素不确定时,参数调整会比较麻烦,这依然是普遍存在的技术难题。本设计中的温度采集是用数字温度传感器DS18B20,在其内部集成了A/D转换器,可使电路结构更

10、简单,且减少了温度测量转换时的精度损失,从而使测量温度更为精确。数字温度传感器DS18B20只用一个引脚,即可与单片机进行连接了,这样大大的减少了设计中接线麻烦的问题,使得单片机可以节约许多端口。DS18B20芯片的体积又比较小,且还是单线与主控芯片连接,于是在实际运用中,常常把数字温度传感器DS18B20做成小型的测量温度的探头,即使是一些狭小的位置也能很方便的检测到,使温控系统发挥最大的作用1。 现在国内外市场用单片机作为为核心的温度控制系统已经越来越广泛了,且设计方案都很灵活,应用起来相当的广泛,应用于工业上的加热炉、热处理炉、反应炉,在我们日常生活中的应用也是比较广的,如热水器,室温控

11、制,农业中的大棚温度控制等等。现在人们的物质生活已经转好,随之而来的就是对生活质量的需求了。在舒适的温度下休息、活动,在不同的季节里都可以吃到各种蔬菜、水果,等等这些都需要对温度的控制。可见不仅在工业生产上温度控制是重点,在人们的日常生活中温度控制领域也潜藏这巨大的前景。如饲养几条鱼儿也成为一种趋势,这也将会带动与之相关的产业也应运发展起来。鱼缸是养鱼的必备用具,型鱼缸也在市场上层出,其中水温的控制是关键。1.2 温度控制系统国内外发展现状目前,国外温度控制系统正向着高精度、高智能化发展。温度控制系统在我国各个行业的应用虽然已经很普遍了,可是从国内生产的温度控制器来看,总体发展水平还是落后与先

12、进国家,同先进国家相比,还是有着很大的差距。在高端,高精度的温度控制方面,我国的温度控制技术受到了很大的局限性。在这方面有待与我们这代人的努力,同时在这方面我国还潜藏着巨大的潜力,有许多我们伸展的空间2。 由于市场的需求,国内以信息化时代的到来,带动了温度控制产业的迅速发展。温度已成为工业对象控制中一个最重要的参数,特别是在化工工业、冶金工业、机械工业、电力工业、食品工业等等领域,都需要对各种加热炉的温度进行精确的控制。随着信息工业不断的发展,传统的控制方式已满足不来高精度、高速度的控制要求了。必须不断的开发研究创造出新型的信息花的温度控制系统。近几年,国内外对温度控制系统都进行了大量的研究。

13、在各国,温度控制系统技术都已经被列为未来控制领域研究的几大方向之一,具有广阔的应用、市场前景。1.3 本课题研究的主要内容温度是工业生产过程中最常见的变量参数之一,对温度控制的精确度,直接影响到产品的质量。及时准确地获得温度信息并对其进行精确的控制。不同产品和不同工艺要求下的温度控制,所采用的控制方式和加热方式都是不一样的。现今基于数字PID和单片机的温度控制系统在工业生产上已经被广泛的使用,此系统的任务是对温度进行实时监控。在控制过程中,系统采用的是数字PID控制算法来实现其功能的。传统PID控制电路结构相当的复杂(不适应现代工业发展的需求),对温度进行控制时需要配合可控硅控制电路才能实现,

14、此系统不仅器件烦多,生产成本高,而且电路调试还很复杂。在新型的温度控制系统中,运用单片机来进行数字PID运算,这样可以充分发挥其软件系统的灵活性,可以使得工业生产中控制方便,简单和灵活性大等等优点。而系统中的单片机是整个控制系统的核心。在温度控制系统的设计中,温度采集为很一个重要的模块。在本次设计中,采用数字传感器DS18B20来采集温度。数字温度传感DS18B20只用一个引脚,即可与51单片机进行连接了,这样大大的减少了设计中接线麻烦的问题,使得单片机可以节约许多端口。DS18B20芯片不仅体积比较小,且还是单线与主控芯片连接,于是在实际运用中,常常把数字温度传感器DS18B20做成小型的测

15、量温度的探头,即使是一些狭小的位置也能很方便的检测到,使温控系统发挥最大的作用。先通过按键设置温度,然后通过温度传感器DS18B20,从环境中采集温度,由单片机获取采集的温度值,经过处理后,可得到当前环境温度中一个比较稳定的温度值,并且通过LED数码管显示。再去根据当前设定的温度值的上下限,温度未达到预定的下限温度时,单片机向蜂鸣器发送高电平信号驱动使其发出警报生,同时输出高电平控制信号来驱动加热炉工作,为系统提供热量,来升高温度。温度上升到预定上限温度时,单片机向蜂鸣器发送高电平信号使其发出警报生,同时输出低电平控制信号来驱动使得加热炉停止加热,让温度慢慢回落。当因环境温度变化剧烈或因加热、

16、降温设备出现故障时,或者因温度传感头出现故障,导致在一段时间内不能将环境温度调整到温度限内的时,单片机向蜂鸣器发送高电平信号使其发出警报生。2 系统总体设计方案论证2.1 设计要求一种基于数字PID和单片机的温度控制系统设计。要求如下:1、超调量10%2、温度连续可调,范围为20403、人机对话方便4、温度误差0.52.2 总体设计方案在仿真设计中,先通过按键设置温度,然后通过温度传感器DS18B20,从环境中采集温度,由单片机获取采集的温度值,经过处理后,可得到当前环境温度中一个比较稳定的温度值,并且通过LED数码管显示。再去根据当前设定的温度值的上下限,温度未达到预定的下限温度时,单片机将

17、通过P1.5口向蜂鸣器发送高电平信号使其发出警报声,同时通过P2.6口连接的RELAY输出高电平控制信号来驱动RL1,使得加热炉工作,为系统提供热量,来升高温度。温度上升到预定上限温度时,单片机将通过P1.5口向蜂鸣器发送高电平信号使其发出警报生,同时通过P2.6口连接的RELAY输出低电平控制信号来驱动RL1,使得加热炉停止加热,让温度慢慢回落3。当因环境温度变化剧烈或因加热、降温设备出现故障时,或者因温度传感头出现故障,导致在一段时间内不能将环境温度调整到温度限内的时,单片机将通过P1.5口向蜂鸣器发送高电平信号使其发出警报声。 工作原理图如图2.1所示:图2.1 工作原理图在设计中使用温

18、度传感器DS18B20采集实时温度,使用PID算法控制加热炉仿真模型进行温度控制。DS18B20是DALLAS公司生产的经典的数字温度传感器,具有低功耗、高性能、抗干扰能力、微型化、强易配处理器等等优点,它特别适合用于多点温度测控的系统,它可直接将温度转化成数字信号,交给单片机处理,并且在同一总线上可挂接多个传感器芯片,进行范围性的温度检测。在其内部集成了A/D转换器,可使电路结构更简单,且减少了温度测量转换时的精度损失。数字温度传感DS18B20只用一个引脚,即可与单片机进行连接了,这样大大的减少了设计中接线麻烦的问题,使得单片机可以节约许多端口。DS18B20芯片的体积又比较小,且还是单线

19、与主控芯片连接,于是在实际运用中,常常把数字温度传感器DS18B20做成小型的测量温度的探头,即使是一些狭小的位置也能很方便的检测到,使温控系统发挥最大的作用4。在本仿真设计中DS18B20与51单片机的P3.4口链接。DS18B20可以仿真设置环境温度,来完成设计要求,设置到20和40摄氏度时蜂鸣器就会发起警报。本次设计采用proteus仿真软件,以AT89C51单片机做为主控单元。51单片机上连接晶振和复位电路,保证单片机的正常运行。P0口与LED数码管连接,显示测量结果。P1.0,P1.4,P3.3分别与3个控制按键连接,P1.5口与报警系统蜂鸣器连接。由AT89C51的端口丰富使得整个

20、系统设计起来方便简单,线路清晰,且AT89C51是一个高性能,低功耗的CMOS 8位单片机,AT89C51设计和配置了振荡频率可为0Hz,在实际的应用中性价比很高,是温控系统的不二选择。本设计中选择AT89C51做为主控单位也是考虑到了实际的需求和做此设计的意义的5。3 系统的硬件设计3.1 系统硬件构成概述本章主要介绍本次设计中的硬件设计部分,其中包含:显示模块、按键扫描模块、温度采集模块、温度加热模块、蜂鸣器报警模块。3.2 各单元总体说明1、 显示模块:本设计中采用4位LED数码管显示温度值,其中最后一位为小数位。2、 按键模块:本设计中采用3按键设置,第一按键为复位按键,第2、3按键为

21、温度调节按键,连接上拉电阻使其未按键时能够保持高电平。3、 温度采集模块:本次设计中使用温度传感器DS18B20采集实时温度,使用PID算法控制加热炉仿真模型进行温度控制,数字温度传感器DS18B20只需一个引脚,即可与单片机进行通信,在设计中将DS18B20与51单片机的P3.4口连接,用其来完成温度的测量6。4、 温度加热模块:本设计采用加热炉来进行温度值的控制,其配有功率显示表,以便在仿真中与温度传感器DS18B20相对应,便于统计。加热炉与光电耦合器连接,光电耦合器通过RELAY与51单片机的P2.6口连接。通过51单片机发送信号来控制加热炉的运作。5、 蜂鸣器报警模块:本设计中采用蜂

22、鸣器做为报警系统,当采集到的温度经过处理后,超过规定温度上、下限时,单片机将通过P1.5口向蜂鸣器发送高电平信号使其发出警报生。3.3 按键单元一般的键盘设计采用的是硬件设计,可是其在仿真设计中连接,线路会比较麻烦。所以在本此设置中我采用的是3按键软件控制,第一个按键为复位按键,其他两个为调节按键,3按键即可完成设计中起始温度设置与复位要求,方便简洁,线路清晰设计起来也较为方便。连接上上拉电阻,使其当未有按键按下时,各各按键位都处于高电平。按键操作说明:1号按键为复位设置按键,第一次按下它时,1号按键位将处于低电平,LED数码管将会显示HT(上限温度值),此时,可通过2号键和3好键来调整预设的

23、上限温度值,每次按一下2号按键预设的温度上限值就上升一度,每次按一下3号键时预设的温度上限值就下降一度,此过程都会同过LED数码管显示。设置好上限温度后,再次按下1号按键,同样1号按键位处于了低电平,LED数码管将会显示LT(下限温度值),此时同样此时,可通过2号键和3好键来调整预设的下限温度值,每次按一下2号按键预设的温度下限值就上升一度,每次按一下3号键时预设的温度下限值就下降一度,此过程都会同过LED数码管显示。在设置好预设温度的上、下限时,我们再次按下1号键,此时LED数码管显示的将是温度传感器DS18B20传送的温度值,51单片机将会把此测量值与先前预设的温度上、下限值进行比较处理,

24、然后进行其他功能模块的操作。复位具体如下: , 按一下为设置上限,按两下为设置下限,再按一下进入显示状态。上限 按下复位进入上下限设置时,每按一下为上限升高一度。下限 按下复位进入上下限设置时,每按一下为下限降低一度。电路如图3.1所示:图3.1 按键电路3.4 LED数码管显示单元为使温度显示的更为准确,本次设计中我选择的是8段的供阳的4位LED数码管(其中一段为小数点),LED数码管的8段位分别连接51单片机的P0.0P0.7端口,数码管的4位选位分别通过P2.0P2.3端口连接。LED数码管在工作时,由于其为供阳的,每个段位只有当输入低电平时此段位被点亮,以显示数字“0”为例,共阳的g

25、f e d c b a相应的为1000000,字型码为C0H。在本设计中将所以LED数码管的8个显示笔划“a,b,c,d,e,f,g,dp”的同名端连接在一起,另外为每个数码管的公共极COM增加位元选通的控制电路,位元选通由它们自己的I/O端口链接控制。当51单片机运作时,所有的数码管都会接收到同样的字符码,我们可以通过51单片机对COM端电路进行控制,来决定那个数码管显示字符,所以只要将需要显示的数码管的选通控制打开,该单元就会显示字形,没选通的就不会点亮。这样通过分时分别控制LED数码管的COM端,可以使每个位轮流显示,每位点亮的时间间隔大概为1ms左右7。LED数码管如图3.2所示:图3

26、.2 LED数码管电路3.5 温度超、低温与异常情况报警单元采集到的温度经过处理后,超过规定温度上限时,单片机将通过P1.5口向蜂鸣器发送高电平信号使其发出警报声,同时通过P2.6口连接的RELAY输出低电平控制信号来驱动RL1,使得加热炉停止加热,让温度慢慢回落;当采集到的温度经过处理后,低于设定温度下限时,单片机将通过P1.5口向蜂鸣器发送高电平信号使其发出警报生,同时通过P2.6口连接的RELAY输出高电平控制信号来驱动RL1,使得加热炉工作,为系统提供热量,来升高温度。要是由于环境温度变化太剧烈或加热、降温设备出现故障,或温度传感头出现故障,而在一定时间内,不能将温度控制到规定的温度限

27、内,单片机也将会通过P1.5口向蜂鸣器发送高电平信号使其发出警报声8。在实验中设置的下限温度是20摄氏度,当温度达到20摄氏度时,蜂鸣器就会发出报警。实验中设置的上限温度为40摄氏度,当温度达到所示的40摄氏度时,蜂鸣器就会开始报警。仿真电路如图3.3所示:图3.3 蜂鸣器电路3.6 温度测试单元在本设计中温度测试采用温度芯片DS18B20与51单片机的P3.4口连接。此集成芯片,可以很好的减少外界的干扰。其内部集成A/D转换器,使得电路结构更简单,且减少了温度测量转换时的精度损失,从而使测量的温度值更为精确,具有实在的设计意义。且数字温度传感器DS18B20只用一个引脚,即可与单片机进行通信

28、了,大大的减少了接线麻烦的问题,使得单片机更加具扩展性。由于DS18B20芯片的小型化,通过单条数据线,就可以和主电路连接,在实际应用中,可把数字温度传感器DS18B20做成测温探头,可方便的探入到狭小的地方,从而增加了实用性9。DS18B20的开始运作时,首先要做的是复位工作,即在开始工作前,51单片机将会给DS18B20当总先发送一个不小于480us的低电平信号,对其进行复位。DS18B20在接收到这个信号后的1560us内会回发一个芯片的存在脉冲。为了接收存在脉冲,数据当总线将会被控制器拉高,存在脉冲是一个60240us的低电平信号。接下去将进行51单片机与DS18B20间的通信。51单

29、片机发送控制的指令共有5指令,而每一个工作周期只可以发送一条指令。5条指令分别为:读取数据、指定匹配的芯片、跳跃ROM、芯片搜索、报警芯片搜索。接着51单片机发送存储器操作指令(在指令发送给DS18B20后,马上就发送存储器操作指令了)。存储器指令的功能就是控制DS18B20怎么样进行工作。DS18B20同51单片机的接线如图3.4所示:图3.4 DS18B20电路见图可知DS18B20只需与单片机的一个端口连接即可,不过当总线为开漏需要外接一个上拉电阻,为4.7K。3.7 温度控制器件单元在本次设计中,是采用加热炉通过PID算法来对温度进行控制的,其配有功率显示表,以便在仿真中与温度传感器D

30、S18B20相对应,便于统计。加热炉与光电耦合器连接,光电耦合器通过RELAY与51单片机的P2.6口连接。当测量到的温度值未达到先前设定的预期温度值下限时,51单片机通过RELAY口向光电耦合器发送高电平时,无电流流过,光电耦合器将不导通,继电器也不能导通,继电器的线圈无电流通过,RL1打向电源处,加热炉通电开始工作加热,可以根据功率表的数据显示看出加热炉提升的温度。当测量到的温度值超出先前设定的预期温度值上限时,51单片机通同过RELAY口向光电耦合器发送低电平时,光电耦合器将导通,有电流流过,使得继电器也导通,继电器的线圈有电流通过,RL1打向继电器线圈,加热炉断开连接,停止工作,使温度

31、慢慢的回落。温控系统连接方法如图3.5所示:图3.5 温控系统电路4 恒温控制算法研究(PID)4.1 PID控制器的设计PID控制是目前在温度控制中应用最广泛的一种控制算法,其核心思想是按设定值与测量值之间的偏差比例、偏差的积累和偏差变化的趋势来控制输出量,即根据偏差值来计算控制量。数字PID控制律的实现,需采用数值逼近法,当采样的周期相当短时,可以用用差商代替微分,求和代替积分,可以有如下近似变换10。 (4.1)式中,k为采样的序号,k=l,2,;T为采样的周期。在离散化的过程中,采样时间T须足够的短,不然难以确保精度。在运算时,把表示成等,省去了T。则可推算出离散的PID表达式写成:

32、(4.2) 式中,k为采样的序号,k=1,2,;是第k次采样时,计算机输出的值;是第k次采样时输入的偏差值;是第次采样时输入的偏差值;是积分系数,;是积分系数,。在实际的应用中,通常采用增量式PID控制算法,即数字控制器输出只是控制量的增量,该算法编程简单,数据可以递推使用,占用存储空间少,运算快。根据递推原理可得: (4.3)公式(4.2)与公式(4.3)相减,即得到增量式PID控制算法(4.4): (4.4)本次设计中,控制器的设计采用增量数字PID控制算法的功能,可以比较灵活的调节控制信号的导通时间来控制温度值控制的工作。能够基本满足温度控制的要求。4.2 PID算法的流程实现方法与具体

33、程序本系统设计的温度控制系统是与光电耦合器连接的加热炉。传统的方法是:当测量的环境温度达到设定值时,加热炉不在加热状态,可是此时加热炉的温度仍然会高与设定的温度值,加热炉还是会起到加热的作用,使得系统的温度经常继续要升高一会后才能开始下降。当下降到设定的下限温度值时,温控系统会促使加热炉开始工作,对系统进行加热,此过程需要一定的时间,所以往往又会下降一定温度,才能开始上升温度。所以传统的方法往往会出现一定的误差,此误差就是温度的惯性引起的11。PID算法是PID模糊控制技术的核心部分,通过比例、积分、微分三方面的结合与调整构成一个反馈控制,可解由于温度的惯性而产生的误差。经过PID控制器处理后

34、可输出电压的控制信号,从而反馈调节温度。数字PID的控制示意图如图4.1所示:图4.1 数字PID的控制实验中最主要的就是PID参数的选择,它决定着整个温度控制的精确度。我们可以根据具体情况的要求,来调节合适的参数。P为比例系数,当在一定范围内若是调节增加P时,系统的反映将会变的灵敏,稳态的误差值将会变小,可要是P值过大时的话,同样会时系统变得不稳定。P值过于小了,系统的反映又会变的很慢。可见的,P值要是选取不恰当,测量值就会和设定值的偏差越来越大,要是出现了这样的问题时,可将P值的符号取反12。I为积分系数,I的值越小积分的作用就会越强,积分作用强了就会导致系统的稳定性下降,不过T值小了,稳

35、态所产生的误差将会减小。D为微分控制,微分控制可以改善动态的特性,当D偏大时,超调量随之变大,调节时间会减短;D偏小时,超调量同样变大,不过调节时间就会比较长,只有D合适时,才能使超调量较小,调节时间也较短。调试时,只能参考参数对系统控制过程的变化趋势,来对参数调整来先比例,后积分,再微分的步骤慢慢调试,一直凑到满意的结果为止。数字PID的差分方程: (4.5)在上式中,称为比例项;称为积分项;称为微分项。得到增量式公式为: (4.6)在此式中,。PID的具体算法程序如下13:EnumY,U,R,;/Y采集量、U控制量、R设定量、采样时间、微分、比例 int para6,ptr,out;/ou

36、t是从PID( )得到的控制量 int r,Ts,e2,e1,e0,u;/*/Void initPID( ) / 初始化PID函数paraR=20; para=2; para=2; para=1Void PID( ) paraY=(int)(ad_data); r=paraR; e0=e1;e1=e2;e2=r-paraY/10; =para;Kd=para;ts=para; u=r+*e2+*(e2-e1);,if(u200)u=200; parau=u/10; out=parau; Void Tem_timer0( ) interrupt 1 / 采样时间 THO=tim08;TL0=ti

37、m0;If(tm+out)TEM=1;else TEM=0; if(m200)tm=0; if(out8;TLI=tim 1;If(dealCS=0) wdCtrl=paraR; if(wdCtrl-(int)(ad_data)/10)10)out=200; else if (int)(ad_data)/10-wdCtrl)2)out=0; else out=CtrltabwdCtrl+2-(int)(ad_data)/10; Else if (tx+=ts) PID( ); t=0; 5 系统的软件设计5.1 统软件设计概述在恒温PID控制系统中软件是整个系统的核心,在软件设计中采用分层模块

38、化设计,其中主要的模块包含:人机交互模块、数据显示模块、PID控制器模块、信号采集模块、超、低温报警模块几部分14。1、人机交互模块,是通过3位按键来实现的。第一个按键为复位按键,其他两个为调节按键,当有键按下时该键位将会处于低电平状态,按键连接上了电阻,使其当未有按键按下时,各各按键位都处于高电平15。本设计中的按键具体原理与操作方法,在第三章的按键单元中已经做了详细的说明。2、数据显示模块,是通过8段的供阳的4位LED数码管(其中一段为小数点)实现的。采用的是通过动态显示法,分时分别控制LED数码管的COM端,使每个位轮流显示,每位点亮的时间间隔大概为1ms左右。3、PID控制器模块,本设

39、计是运用PID控制算法,仿真实现一个恒温控制系统。在上一章中我们已经描述了,电压的控制信号,从而反馈调节温度。设计中最主要的就是PID参数的选择,它决定着整个温度控制的精确度。我们可以根据具体情况的要求,来调节合适的参数。对PID函数进行初始化时,需设置函数参数,这些参数都是根据实验测定获得的,具体参数在上一章PID算法研究中有详细说明。4、信号采集模块,本设计中是运用DS18B20进行温度采集的,在DS18B20开始运作时,首先要做的是复位工作,DS18B20在接收到这个信号后的1560us内会回发一个芯片的存在脉冲。为了接收存在脉冲,数据当总线将会被控制器拉高,存在脉冲是一个60240us

40、的低电平信号。接下去将进行51单片机与DS18B20间的通信。接着51单片机发送存储器操作指令(在指令发送给DS18B20后,马上就发送存储器操作指令了)。控制DS18B20怎么样进行工作16。5、超、低温报警模块,本设计中采用蜂鸣器,对异常情况进行报警。当出现异常情况,温度过高或是过低时,控制芯片将会向蜂鸣器发送高电平,蜂鸣器在接收高电平时就会发出鸣叫声报警。5.2 系统软件程序流程及程序流程图系统软件流程如图5.2所示:图5.2 系统软件流程图程序流程为:在程序开始的时,先设置初始化,通过按键设置预定温度值,然后通过数码管来显示当前的温度,再比较设定的预期温度与测量温度值的大小,将比较的信

41、息通过继电器,去根据当前设定的温度值的上下限,当测量到的温度值未达到先前设定的预期温度值下限时,使单片机向蜂鸣器发送高电平信号使其发出警报生,再通过RELAY口向光电耦合器发送高电平时,无电流流过,光电耦合器将不导通,继电器也不能导通,继电器的线圈无电流通过,RL1打向电源处,加热炉通电开始工作加热,可以根据功率表的数据显示看出加热炉提升的温度。当测量到的温度值超出先前设定的预期温度值上限时,使单片机将向蜂鸣器发送高电平信号使其发出警报生,再通过过RELAY口向光电耦合器发送低电平时,光电耦合器将导通,有电流流过,使得继电器也导通,继电器的线圈有电流通过,RL1打向继电器线圈,加热炉断开连接,

42、停止工作,使温度慢慢的回落。5.3 温度数据显示模块分析在本次软件设计中,核心的部分就是PID算法的控制与DS18B20温度采集的实现,PID算法在上文中已经做了详细的介绍,在此再具体的分析下DS18B20。在本次设计我选择了DS18B20来继续温度检测,因为数字温度传感器DS18B20只需一个引脚,即可与单片机进行通信了,大大的减少了接线麻烦的问题,使得单片机更加具扩展性。由于DS18B20芯片的小型化,通过单条数据线,就可以和主电路连接,可把数字温度传感器DS18B20做成测温探头,可方便的探入到狭小的地方,从而增加了实用性。且本次设计采用proteus仿真软件,在proteus仿真软件里

43、DS18B20可以随意设定温度,模仿实际环境温度值,便于实验17。DS18B20数字温度传感器的内部包含了高速暂存RAM与用来存储TH、TL的E2ARM。接受到的数据先是存入RAM,经检验后传送至E2ARM。RAM中的第5个字节用与控制温度的数字转换分辨率,此分辨率决定DS18B20工作时温度转换的先对应的数值。其中要注意的是设定的分辨率越高,就需要消耗越多的转换时间。所以在设置分辨率时我们需要有所考虑18。DS18B20在接收到温度转换的命令后,将温度值数据转换成以二进制补码的形式存储在RAM中,然后51单片机再通过单总线接收此数据,以地位在前高位在后的方式来读取数据。接收数据后通过温度计算

44、,将得出的温度值与设定的TH、TL进行比较,51单片机再根据比较的结果做出相应的运行工作。为此我们在程序设计中设计了下面主要几个子程序。首先对DS18B20进行初始化处理void Init_DS18B20(void) unsigned char x=0; DQ = 0; /单片机将DQ拉低 delay_18B20(80); /精确延时大于480us DQ = 1; /拉高总线 delay_18B20(14); x=DQ; /稍做延时后,如果x=0则初始化成功x=1则初始化失败 delay_18B20(20);在初始化后,先让DS18B20读一个字节unsigned char ReadOneCh

45、ar(void)unsigned char i=0;unsigned char dat = 0;for (i=8;i0;i-) DQ = 0; / 给脉冲信号 dat=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; delay_18B20(4); return(dat);再让其写一个字节,运行子程序如下:void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; delay_18B20(5); DQ = 1; dat=1; 接下来设计D

46、S18B20的工作状态,设置其上、下限报警温度分别为TH和TL,且设置显示的分辨率为RS,执行的子程序如下18:void setds18b20(unsigned char TH,unsigned char TL,unsigned char RS)Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x4E); / /写入“写暂存器”命令,修改TH和TL和分辩率配置寄存器/先写TH,再写TL,最后写配置寄存器WriteOneChar(TH);/写入想设定的温度报警上限WriteOneChar(TL);/写入想设定的温度报警下限W

47、riteOneChar(RS);/写配置寄存器,格式为0 R1 R0 1,1 1 1 1/R1R0=00分辨率娄9位,R1R0=11分辨率为12位最后就是读取DS18B20的温度值了,执行子程序如下:unsigned char *ReadTemperature(void)unsigned char tt2;Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换delay_18B20(70); / 温度转化要一段时间Init_DS18B20();WriteOneChar(0xCC); /跳过读序号列号

48、的操作WriteOneChar(0xBE); /读取温度寄存器等(共可读9个寄存器)前两个就是温度/delay_18B20(70);tt0=ReadOneChar(); /读取温度值低位tt1=ReadOneChar(); /读取温度值高位return(tt);5.4 测试分析1、测试环境仿真环境温度2040摄氏度。2、测试方法用调节DS18B20,来模拟环境温度,通过按键来设置温度的上、下限与复位,根据LED数码管显示来观察结果。3、测试结果(1)设定温度由20摄氏度到40摄氏度。(2)标定温差1摄氏度调节时间15s(具体情况随实际情况)。(3)静态误差0.5摄氏度最大超调量1摄氏度。4、通

49、过仿真测试分析,对于实际的室内的温度控制,可以再得出以下2点方法:(1)我们可以通过增加传感器的个数,然后算出平均值,这样可以获得较为精确的温度值。(2)在对环境温度的控制环节中,我们可采用功率较大的加热电阻,实现对环境温度的提升,用风扇来对环境温度进行降温处理。6 模拟仿真结果在模拟仿真中,当将DS18B20的温度设置为17摄氏度时,如图6.1所示:图6.1 17的温度显示51单片机通过RELAY口向光电耦合器发送高电平时,无电流流过,光电耦合器将不导通,继电器也不能导通,继电器的线圈无电流通过,RL1打向电源处,如图6.2所示:图6.2 17时系统电流流向图此时加热炉通电开始工作加热,可以

50、根据功率表的数据显示得出加热炉提升的温度,如图6.3所示:图6.3 17时加热炉显示当将DS18B20的温度设置为41摄氏度时,如图6.4所示:图6.4 41的温度显示51单片机通同过RELAY口向光电耦合器发送低电平时,光电耦合器将导通,有电流流过,使得继电器也导通,继电器的线圈有电流通过,RL1打向继电器线圈,如图6.5所示:图6.5 41时的系统电流流向图此时加热炉断开连接,停止工作,但是加热炉还是会有一定的延迟性,只能让温度慢慢的回落,如图6.6所示:图6.6 41时加热炉显示结 论本次设计采用proteus仿真软件,以AT89C51单片机做为主控单元,运用PID控制算法,仿真实现了一

51、个恒温控制系统。设计中使用温度传感器DS18B20采集实时温度,使用PID算法控制加热炉仿真模型进行温度控制,总体实现了一个恒温控制仿真系统。仿真中先通过按键设置温度,然后通过温度传感器DS18B20,从环境中采集温度,由单片机获取采集的温度值,经过处理后,可得到当前环境温度中一个比较稳定的温度值,并且通过LED数码管显示。再去根据当前设定的温度值的上下限,温度未达到预定的下限温度时,单片机将通过P1.5口向蜂鸣器发送高电平信号使其发出警报生,同时通过P2.6口连接的RELAY输出高电平控制信号来驱动RL1,使得加热炉工作,为系统提供热量,来升高温度。温度上升到预定上限温度时,单片机将通过P1

52、.5口向蜂鸣器发送高电平信号使其发出警报生,同时通过P2.6口连接的 RELAY输出低电平控制信号来驱动RL1,使得加热炉停止加热,让温度慢慢回落。致 谢首先,我要感谢黄河科技学院,感谢信院电子系对我四年的培养,让我学到了许许多多的知识,感谢电子系各位老师在这四年里对我的关怀与照顾,在此致以我深深的谢意。本论文从选题到最后定稿成文,本校付瑞玲老师一直给予了悉心指导,付老师那种严谨求实的作风,广博深邃的洞察力,孜孜不倦的开拓精神和敬业精神令我深受启迪和教益,谨向我的指导老师付瑞玲老师致以深深的谢意。最后,我还要向所有帮助过我的同学和朋友们致敬,你们的鼓励和帮助永远是我前进的动力。参考文献1刘昭斌

53、.单片机控制的温度控制系统J.兰州石化职业技术学院学报, 1999,12(02A):43-46.2於丹.春风化雨芽将萌谈我国单片机的发展J.微电脑世界, 1998,06(17A):22-23.3黄天戍,罗璠,徐长宝,任清珍.一种可灵活使用的温度控制系统设计方法研究J.中国仪器仪表,2003,22(07):55-58.4张毅刚.单片机原理及应用M.北京:高等教育出版社,2001:10-15,31.5李健云,张振辉,訾壮辉.一种新型恒温控制系统J.黑龙江大学自然科学学报,1998,37(01A):78-79. 6郑丰隆.新型二线AT24C系列串行E2PROM及其在单片机系统中的应用J.微电脑世界,1995,29(01A):89-91. 7元红妍,张鑫.电子综合设计实验教程M.山东:山东大学,1999:19-21.8杨凤山,李颖宏,李正熙.混PID的设计及仿真研究

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论