《毕业设计(论文)-即热式电热水器控制系统设计(39页).doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-即热式电热水器控制系统设计(39页).doc(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-毕业设计(论文)-即热式电热水器控制系统设计-第 32 页太原科技大学毕业设计(论文)任务书学院(直属系):电子信息工程学院 时间:学 生 姓 名指 导 教 师设计(论文)题目即热式电热水器控制系统设计主要研究内容1、 掌握控制系统设计方法和一般步骤;2、运用单片机完成对即热式电热水器控制系统设计;2、熟练运用C语言进行编程。研究方法理论研究主要技术指标(或研究目标)通过对即热式电热水器控制系统功能需求分析,给出设计方案,完成系统硬件设计,绘制电路原理图,完成控制系统软件设计,通过模拟仿真验证所设计控制系统的性能。教研室意见教研室主任(专业负责人)签字: 年 月 日 说明:一式两份,一份装订
2、入学生毕业设计(论文)内,一份交学院(直属系)。目录摘要IABSTRACTII引言1第1章 系统功能需求分析与控制方案设计31.1 功能需求分析31.1.1 硬件功能需求分析31.1.2 软件功能需求分析41.2 控制方案设计41.3 执行器的选择61.4本章小结6第2章 系统硬件设计72.1 键盘输入电路的设计72.2 LCD1602显示电路的设计72.3 DS1302时钟电路的设计82.4 温度采集电路的设计92.4.1 DS18B20简介92.4.2 DS18B20电路的设计92.5 水流检测电路的设计102.6 加热驱动电路的设计102.6.1 大功率光耦MOC3042102.6.2
3、驱动电路的工作原理112.6.3 驱动电路的设计122.7 漏电保护技术122.8 本章小结13第3章 控制算法设计143.1 PID控制算法143.2 被控对象模型的建立143.3参数整定及MATLAB仿真153.3.1 PID参数整定153.3.2 MATLAB仿真163.4 本章小结17第4章 系统软件设计184.1 软件系统总体设计184.2 键盘输入194.3 DS18B20测温204.3.1 DS18B20初始化204.3.2 DS18B20写数据214.3.3 DS18B20读数据224.3.4 DS18B20温度读取224.4 LCD1602显示234.4.1 LCD1602时
4、序介绍234.4.2 LCD1602初始化244.5 PID算法的软件设计244.6 PWM输出254.7 本章小结26第5章 模拟仿真与结果分析275.1 显示模拟仿真275.2 加热模拟仿真285.3 结果分析28第6章 结论29致谢30参考文献31附录32附录A 系统整体电路图32附录B 部分源程序33摘要本文完成了即热式电热水器控制系统的设计。系统选用AT89C52作为主控制器,同时结合键盘模块、显示模块、时钟模块、温度采集模块、水流检测模块和驱动模块等完成硬件电路的设计。通过PID控制算法控制热水器的出水温度,利用C语言完成电热水器控制系统的软件设计;另外,采用“隔电墙”技术做漏电保
5、护,保证洗浴过程中的安全。最后对系统进行仿真,系统能正确显示时间与温度,准确控制加热电路的通断,达到了预期控制目标。关键词:AT89C52,电热水器,PIDABSTRACTThe design of electric water heater control system is introduced in this paper. AT89C52 was selected, which is regarded as the main controller, and combines with the keyboard module, display module, clock module, t
6、emperature acquisition module, water flow detection module and drive module to complete the hardware circuit design. The water temperature is controlled through the PID, and the software design of electric water heater control system is completed by using C language. In addition,the Safe Care is use
7、d to do earth leakage protection, to ensure the safety of bathing process. Finally, through the simulation of the system, it can display the time and temperature correctly, and the control of the heating circuit can be done accurately. In this way, the expected control objectives can be achieved in
8、this design.Keywords: AT89C52, Electric Water Heater, PID引言随着科技在进步与发展,热水器早已成为家用电器的一员。然而,市场上传统的热水器可靠性差,存在一定的安全隐患。老式而简单的热水器由于质量差和技术落后等原因,已经越来越不被用户所青睐,也就是说将逐步退出市场。现在人们的生活质量提高了,人们期盼有一种既安全,又方便的热水器,在浴室和厨房提供热水。而智能化的热水器正符合人们的这一需求。它能给用户提供直观、数字化的体验,而且能精确地采集和控制环境中的水温。这样的热水器,必将为家庭、小型饭店、宾馆酒店提供配套服务。可以预见,在不久的将来,智能
9、化热水器将成为人们的首选,市场前景广阔。就国内外的热水器市场来看,目前的电热水器除了行业内部竞争以及与燃气热水器的竞争以外,还面临着太阳能热水器的竞争。但是不可否认的是,电热水器仍然占行业的主导地位。并且随着科技的不断进步,电热水器也不再满足于普通的加热功能而已。越来越多的电热水器往着智能化、节能、环保的方向发展。部分高端热水器还具有智能记忆功能,记忆用户的用水习惯,在洗浴时间前自动提前加热,非洗浴时段提供中温生活用水,不仅让用户随时随地能享受到热水,也更加节能。随着电热水器的智能化,相信市场前景会越来越好。当前市面上的电热水器分储水式和即热式。其中储水式使用前需要的预热时间长,使用过程中水温
10、无法调节,而即热式电热水器即开即热,只需几秒的预热时间即可得到源源不断的热水供应。并且储水式电热水器内胆容量大,对安装空间要求高,如果使用者过多就不能供应足够多的热水,洗澡未用完的热水也会逐渐变冷,形成浪费;相比而言,即热式电热水器内胆小,安装便捷,使用时按照用户个人需求提供热水,不造成浪费,且减少耗能。而随着国家电网的转型,电费价格普遍下降,以及电力设施的改善,也表明了热水器的发展前景。由于热水器的加热过程是一个非线性系统,且存在较大的滞后性。采用PID控制能达到较好地控制效果,可以较好的控制出水温度,提供用户一个舒适的洗浴环境。针对上述问题,本次将设计一个即热式电热水器控制系统。该控制系统
11、将采用PID控制算法来完成对水温的控制,解决水温突变的状况。本文对这次设计进行详细介绍。第一章介绍了系统的功能需求分析与方案的选取,并介绍了系统整体框架的设计;第二章讲述了硬件系统的设计,硬件设计包括键盘电路、时钟电路、温度检测电路、水流检测电路、显示电路、驱动加热电路等多个部分;第三章介绍了系统控制算法的设计,以及利用MATLAB对控制算法的仿真;第四章阐述了软件系统设计,针对整体软件系统流程和各个子程序流程进行了详细介绍;第五章对系统进行了Protues仿真;第六章是本次设计的结论。 第1章 系统功能需求分析与控制方案设计本章主要内容是根据本系统所要实现的主要功能,分别预设多种方案,在保证
12、可行的前提下,结合经济性、便利性等原则,从中选出一种最佳的实施方案,进而在后续设计中得以实现。1.1 功能需求分析结合当前电热水器的现状,本次设计的电热水器需要完成如下功能:1、采集热水温度,为用户提供热水器的实际水温信息;2、用户可以手动设置温度和校正时间;3、控制热水器出水温度稳定,给用户一个舒适的洗浴环境;4、自动检测热水器的工作状态,实现通水通电,断水断电,防止干烧;5、做好漏电保护,保证用户在使用过程中的用电安全。1.1.1 硬件功能需求分析结合上述的系统功能需求分析,硬件电路中需要具备以下几个电路模块,包括:1、显示电路,用来显示时间、温度信息;2、键盘电路,用来手动设置时间、温度
13、;3、时钟电路,用来提供时钟信号;4、温度采集电路,用来采集热水器的水温信息;5、水流检测电路,用来检测热水器的工作状态;6、加热驱动电路,用来控制电热水器的加热工作。在满足实际功能需求,缩短开发周期,节约开发成本的前提下,本设计选择ATMEL单片机AT89C52为主要芯片,由时钟模块和温度检测模块为单片机提供时间和温度,输出至液晶屏显示,通过按键更改时间与预设温度,并由单片机输出控制加热驱动模块对热水进行加热。系统整体框图如图1.1所示。图1.1 系统框图1.1.2 软件功能需求分析结合当前科技环境使用情况,软件设计选择C语言来进行编程,结合硬件方案的设计,本设计需要实现温度采集、时间显示、
14、驱动控制、键盘输入等功能。软件设计采用分块编写程序的方案。键盘扫描通过返回不同的键值来完成不同的按键功能;时间显示电路中液晶与时钟芯片和CPU通信各需使用一路串口通信1;温度采集电路中单片机通过DS18B20访问协议(protocol)与DS18B20通信;驱动控制使用中断来产生PWM。软件方面最主要的是多功能的相互配合切换。1.2 控制方案设计1.显示控制方案的设计:显示模块主要通过显示包括时间、预设温度和实时温度等信息,让用户直观明了的了解电热水器当前水温以及工作状态。因此需要一款显示清晰,性能可靠稳定的显示屏。目前主流的显示器有LED数码管和LCD液晶屏。数码管应用广泛,显示亮度高且电路
15、连接简单。但是不能显示字符,不能满足本设计的显示需求。而LCD液晶显示屏具有灵活多变,重量轻,占地小,功耗低、画面丰富的优点。指令操控简单,显示内容多样,可以双行显示,可以显示字符、字段,显示英文、阿拉伯数字、汉语等。满足本模块的显示需求,且画面质量高,显示清晰稳定。综上所述,考虑本次设计需要的显示量较多且含有字符,故选择LCD1602作显示屏。2.时钟方案的设计:本设计需要为用户提供准确的实时时间,故需要单片机来提供时钟信息。方案一:由单片机提供时钟信息。单片机内部具有多个定时器,通常可由定时器中断实现时钟功能,十分方便。但由于系统晶振误差、温漂、中断响应时间的不确定性及定时器重新装载时间常
16、数所带来的误差,使得最终计时的误差偏大,决定它不能用来作为时钟的时间基准。方案二:选择时钟芯片。时钟芯片内都集成了时钟、日历功能,高性能、低功耗,且具有闰年补偿等优点,外围电路非常简单并具有掉电保护功能,给时钟系统设计带来很多方便。由于本设计中需要定时器产生PWM,无法再用来提供时钟,所以选择DS1302时钟芯片来提供时钟信息。3.温度采集方案的设计:本设计采集实时的水温信息并提供给用户,让用户知道当前水温以便调节自己所需水温。故此需要通过温度传感器检测水温并将信息传送至单片机处理。目前主流的温度传感器有热敏电阻传感器和数字温度传感器等。传统的温度检测大多以热敏电阻为传感器,采用热敏电阻,可满
17、足40至90的测量范围。但热敏电阻可靠性差,测量温度精度低,对于1精度的信号是不适用的,还得经过专门的接口电路转换成数字信号才能由单片机进行处理2。至于数字温度传感器,常用的有DS18B20,它能将采集到的温度信号直接转换成数字信号,并且方便进行多点温度采集,功耗也非常低,并且仅有一根总线传输,直接与单片机端口连接,电路非常简单,主要通过编程来计算温度3。并且有很好的温度分辨率,最大温度分辨率高达0.0625,测温范围相对较宽,可达-55到125。综合考虑,数字温度传感器测温范围广,精度高,且电路简单,故本设计选择DS18B20数字温度传感器。4.键盘方案的设计:本设计需提供用户手动校正时间与
18、设置温度的功能,所以需要设计键盘来让用户输入时间、温度信息。以下有两种方案可供选择。方案一:独立式按键。每个按键单独与单片机的I/O接口连接,每个I/O口的工作状态互不影响,采用端口直接扫描的方式,缺点是每个按键都占用单片机的一个I/O口。方案二:行列式键盘。行列式键盘工作原理是单片机内部对I/O接口进行行列扫描来确定哪一个键被按下,当按键较多时可以降低占用单片机的I/O口数目。可以提高单片机端口的利用率 。本设计只需要5个按键完成温度、时间的设置,选择独立按键即可满足设计需求。5.水流检测方案的设计由于即热式电热水器功率较高,需要一个检测装置检测加热管内的水流情况并反馈给单片机,通过单片机控
19、制加热管加热,防止干烧的情况出现。方案一:超声波水流传感器。测量精度高,测量范围大。但容易受到温度、噪声等的干扰,受到单片机频率限制,且价格较高,不适合本次设计。方案二:霍尔水流传感器。霍尔传感器体积小,功耗小,容易安装到通水管内,工作温度范围广,在工作温区精度小于1%,适用于温度变化较大的场合,。综上所述,方案一对被测环境要求较高,而方案二的适用范围广,且检测精度满足设计需求。所以本模块选择霍尔传感器。6.驱动控制方案的设计:单片机输出的信号是小功率的直流信号,无法直接控制220V电压下加热丝的工作。因此需要在单片机与加热丝之间连接一个隔离驱动电路。方案一:通过电磁继电器控制。将继电器线圈接
20、在控制回路中,常开触点接在加热电路中。通过控制通过继电器线圈的电流来控制触点的闭合与断开,达到控制加热电路的通断。该方案加热丝只有通断两种状态,且加热滞后时间较大,无法调节加热功率。方案二:通过光耦与双向可控硅控制。该方案利用光耦驱动来做到强弱电安全隔离,利用双向可控硅的导通与关断来控制加热丝的通断。并且通过控制可控硅的导通角达到调节加热丝功率的目的。综上所述,本设计对加热控制精度较高,需要对加热丝功率进行调节。因此选择方案二作为加热驱动模块。1.3 执行器的选择对于即热式电热水器控制系统来说,其执行器就是电热丝。由于即热式电热水器是一种大功率的家用电器,需选择功率较大的电热丝,对安装电路要求
21、较高。根据国家住宅设计规范,现有商品住房的电器线路导线必须采用铜芯线,每套住宅进线截面积不小于10mm2,分支引线不小于2.5mm2。2.5mm2的标准铜芯线能承受的最大电流是28A,在220V市电供电下,每根导线能接6000W的负载。本设计选择4500W的功率,已经能满足用户日常的用水需求。普通新购标准住宅的用户都能方便的安装,无需对排管线路做改变4。对于较偏远地区进线截面积只有2.5mm2的住宅,只需单独使用一根住宅进线也能安全安装该热水器。1.4本章小结本章介绍了本设计所完成的功能,完成了即热式电热水器控制系统功能需求分析。根据分析结果设计出系统整体框架,给出了系统硬件设计的选取方案。
22、第2章 系统硬件设计在前面章节介绍了系统的功能需求分析与系统的整体框架设计之后,确定了本次设计所需的硬件,本章节对硬件部分的各个模块电路进行设计。2.1 键盘输入电路的设计为了设置热水器的时间和预约温度,可以使用按键设置,共设置五个按键,分别是:时间键、温度键、增加建、减小键和开关键。键盘与单片机的连接图如图2.1所示。图2.1 键盘与单片机的连接图键盘输入模块就是5个微动开关,一端接公共地,另一端与单片机的P1.0到P1.4相接。按键未按下,P1.0到P1.4是高电平,有键按下时五个按键所对应I/O口电平会被拉低,单片机可以检测到对应I/O输入低电平,从而确定哪个按键按下。2.2 LCD16
23、02显示电路的设计本模块选用LCD1602液晶显示屏来显示时间和温度,并且可通过按键进行调节,液晶显示电路与单片机连接电路如图2.2所示。图2.2 LCD1602与单片机的连接图本液晶屏有16个管脚,1号管脚接地,2号管脚接电源,3号管脚是液晶偏压信号,4、5、6管脚接单片机的控制信号端,714管脚接单片机的数据端,其接口信号如表2.1所示。表2.1 LCD1602接口信号说明表编号符号引脚说明编号符号引脚说明1GND电源地9D2Data I/O2VDD电源正极10D3Data I/O3VEE液晶显示偏压信号11D4Data I/O4R/S数据/命令选择端12D5Data I/O5R/W读/写
24、选择端13D6Data I/O6E使能端14D7Data I/O7D0Data I/O15BLA背光源正极8D1Data I/O16BLK背光源负极 R/S是数据/命令选择端,与单片机P2.5连接,当R/S接收低电平信号时,单片机对液晶进行读写命令操作;当R/S接收高电平信号时,单片机对液晶进行读写数据操作。R/W是读/写选择端,与单片机P2.6连接,当R/W接收低电平信号时,单片机对液晶进行写操作;当R/W接收高电平信号时,单片机对液晶进行读操作。E是使能端,与单片机P2.7连接,当E置高电平时,单片机才能对液晶进行读写操作。D0D7数据I/O口,与单片机的P0.0P0.7连接,通过与单片机
25、并行通信将需要显示的数据传送至液晶。2.3 DS1302时钟电路的设计DS1302可以提供实时时钟、日历等信息并有闰年校正功能。其连接图如图2.3所示。图2.3 DS1302实时时钟电路DS1302时钟芯片只通过3根线进行数据的控制与传递:RST(Reset)、SCLK(Serial clock)、I/O(Data line)。由RST和SCLK控制命令,I/O传输数据。时钟芯片的管脚X1、X2连接32.768MHz的晶振,提供振荡频率。RST与单片机P3.5连接,RST是数据传输的控制端。只有将RST置高电平才能对时钟芯片进行数据传输操作。SCLK总是输入端,接单片机的P3.6。SCLK上升
26、沿,芯片写入数据;SCLK下降沿,单片机读取芯片数据。I/O端是数据传输端,接单片机P3.7。芯片通过该端口将时钟信息送至单片机5。2.4 温度采集电路的设计本系统选择DS18B20作为温度传感器,它在本控制系统中的作用是测量温度并转换成温度数字量。本节介绍了DS18B20的特点和它与单片机的连接。2.4.1 DS18B20简介与传统的热敏电阻相比,DS18B20有以下特点:(1)DS18B20只要一条总线即可实现单片机与DS18B20的通信;(2)电路设计时无需使用其他元件,因此与单片机连接电路简单;(3)电压范围:+3.0V+5.5V,可由单片机电源供电;(4)测温范围广,测量精度为0.0
27、625。2.4.2 DS18B20电路的设计温度传感器与单片机的连接如图2.4所示。图2.4 DS18B20电路连接图芯片的3号管脚VCC接5V直流电,1号管脚CND接地,3号管脚DQ接单片机P3.4。该传感器能直接将检测到的温度转换为数字量,不需要进行A/D转换,无需使用任何外围元件,故与单片机之间的连接相当简单。单片机经单线接口访问DS18B20的协议(protocol)如下:(1) 初始化;(2) ROM操作命令;(3) 存储器操作命令;(4) 处理数据。数据段DQ与单片机P34口连接进行双向通信,将采集的温度数据直接传送至单片机。2.5 水流检测电路的设计在通水管内无水时加热易发生事故
28、,因此需检测水流,做到通水通电,断水断电。本设计选择霍尔传感器作水流检测元件。霍尔器件安装容易稳定,耗能小,耐腐蚀,非常适合做电热水器的水流传感器。本设计选择永久磁钢产生磁场。工作时令磁体与被测物运动来检测磁场,并反馈信息。水流检测电路如图2.5所示。电路主要包括霍尔器件、放大电路与光耦。未通水时,霍尔器件离磁钢较远,无法形成霍尔效应。霍尔器件输出高电平使三极管截止。从而光耦输出高电平,经非门后输出低电平的控制信号。反之,通水时,霍尔器件输出低电平。三极管导通,光耦输出高电平,经非门后输出高电平的控制信号。输出的控制信号将控制加热电路的继电器的通断6。图2.5 水流检测电路2.6 加热驱动电路
29、的设计本设计需要对电热水器的加热功率进行控制调节,因此选择光耦与双向可控硅组成驱动电路,用来实现单片机对加热电路的控制;加热功率的控制调节由PWM脉宽调制技术来实现7。2.6.1 大功率光耦MOC3042为了实现可控硅导通角的控制,并且能够实现可控硅的过零可靠触发,就必须在单片机与主电路之间接一个光耦驱动器,该驱动器的输出端必须耐高压,这样才能使可控硅可靠触发导通。在本设计中采用的是MOC3042光电双向可控硅驱动器,该驱动器结构如图2.6所示。图2.6 MOC3042引脚排列及内部电路图管脚1和管脚2是输入端,连接一个发光二极管。管脚4和管脚6是输出端,连接一个光控双向可控硅。当输入15mA
30、以上电流时,二极管发光使光控可控硅导通,从而接通负载电路。2.6.2 驱动电路的工作原理图2.7 双向可控硅的伏安特性要控制双向可控硅的导通,首先得了解晶闸管的导通及关断条件。双向可控硅的伏安特性如图2.7所示,无论门极是正的触发电流还是负的触发电流,都能触发双向可控硅导通。当电源电压在正半周时,可控硅承受正向电压,此时晶闸管导通,工作在第一象限。同理,当电源电压在负半周时,可控硅承受反向电压,晶闸管导通,工作在第三象限8。光耦MOC3042的通断是由输入端控制的,单片机的P24端控制光耦的输入端。P24端输出频率一定脉宽可调的PWM波,PWM波的频率由双向可控硅的触发角决定,因为双向可控硅的
31、触发角可调范围为,因此PWM波的频率为工频交流电频率的2倍即频率,即PWM波的周期。2.6.3 驱动电路的设计加热驱动电路如图2.8所示。图2.8 加热驱动电路图由于负载加热丝存在少量电感,属于感性负载。因此当负载电流过零时,电感的存在负载电流不能即时发生变化。根据楞次定律,负载电感会产生同方向的电流,该电流会阻止可控硅的关断,使该关断的可控硅导通,也就是误导通。在可控硅两电极之间并联一个RC串联电路来吸收此电流9。2.7 漏电保护技术为保证使用电热水器时的用电安全,本设计选择“隔电墙”作为漏电保护。其示意图见图2.9所示。图2.9 隔电墙示意图“隔电墙”的专业名称为“水电阻衰减隔离法”。该技
32、术利用水自身电阻,对电热水器中的通水管设计,材质的选择以及电气阻尼技术等形成“隔电墙”。按照国家标准,220V电压下漏电电流小于5mA,漏电时也能洗浴。由此可得水电阻。自来水的电阻率为1300cm(国标规定自来水在15时电阻率应大于1300cm)。若绝缘管长L,内孔半径r,水介质电阻R,水电阻率,则: (2-1)因此,当绝缘管长L大于106倍内孔半径的平方,即L106r2,就可以保证自来水的水电阻作防漏电隔离。2.8 本章小结本章详细介绍了系统各个硬件模块的设计,采用分块描述,介绍了各个模块的特点以及电路连接。所有模块设计完成后,进行整理设计得到系统的总体原理图,具体原理图见附录。硬件电路设计
33、完成之后,在下一章介绍系统的控制算法。第3章 控制算法设计为控制出水温度的稳定,需加入控制算法对电热丝加热效率进行控制,这里选择的是利用PID控制算法。本章节介绍PID控制算法并建立数学模型,以及对系统的仿真。3.1 PID控制算法本系统是一个简单离散控制系统,方框图如图6.1所示。它由被控对象、检测元件、数字控制器、执行器构成。图3.1 控制系统框图系统工作时,被控过程的输出信号(水温)y(t)通过DS18B20检测变换为数字量b(t),并将温度数字量b(t)反馈给控制器的输入端;控制器根据系统被控变量(温度)的设定值r(t)与b(t)进行比较,产生偏差信号e(t),按照PID算法进行运算输
34、出控制信号u(t)(PWM占空比)执行器(加热丝)根据控制信号u(t),通过改变操作变量P(t)(加热功率)的大小,对被控对象(水)进行调节,克服扰动对系统的影响,从而使被控变量y(t)趋于设定值r(t),达到预期的控制目标。3.2 被控对象模型的建立被控的热力对象如图所示3.2所示。图3.2 热力对象示意图假设加热器不与外界产生热量交换,当输入水流量及温度(Ti)不变,加热器输入的热流量从P增加到P+pi,输出的热流量为P+po,输出水温变为TO+to,根据热平衡方程,则: (3-1) (3-2)C为比热容(KJ/Kg),R为热阻(s /KJ),对式3-1变形,并将式3-2代入式3-1中,得
35、: (3-3)对式3-3进行拉普拉斯变换得到与pi之间的传递函数为: (3-4)由于加热过程是一个大时滞的过程,需要加入延时环节,最终得到式3-5: (3-5)当出水流量为6L/min,水的比热容C=J/Kg,热阻R=2.38s /KJ,延时选取1s典型值,得到传递函数: (3-6)3.3参数整定及MATLAB仿真 建立完被控对象的数学模型后,需要对PID控制器的参数进行整定,并进行MATLAB仿真3.3.1 PID参数整定PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。其输入e(t)与输出u(t)的关系如式(4.8)所示: (3-7)因此其传递函数为: (3-8)对PID参
36、数的整定即对、和这三个参数的整定。整定方法有两种:理论计算法和工程整定法。常用的理论计算法有根轨迹分析法和频域分析法。与工程整定法相比,理论计算相对麻烦,工程整定是根据经验得出来的方法,很实用。理论整定工程上本设计利用Z-N工程整定方法对PID参数进行整定。根据Z-N工程整定方法计算公式可得: ; (3-9)所以控制器的传递函数为: (3-10)3.3.2 MATLAB仿真PID控制器和被控对象模型建立完成后,选择MATLAB软件中的simulink模块对系统经行仿真10,搭建的模型如图3.3所示。仿真曲线如图3.4所示。图3.3 simulink仿真图图3.4 仿真曲线由图3.4可知,本控制
37、器具有良好的动、静态性能。将PID控制应用于单片机,可以优化控制性能指标。分析图3.4的曲线,系统曲线能在较短时间内到预设值并且保持稳定,也没有明显超调,满足本次设计的要求。3.4 本章小结本章详细介绍了PID控制模型的建立过程,并通过计算得到被控热力对象的传递函数。最后通过MATLAB软件建立控制模型并进行仿真。完成控制算法的设计之后,下一章节将对软件系统进行设计。第4章 系统软件设计本系统软件部分设计时,就每个模块功能单独编写验证,然后进行系统的整合。下面就系统总流程及各个模块软件设计流程进行描述。4.1 软件系统总体设计软件整体设计主要分为系统初始化部分和主体循环部分2个部分。系统主程序
38、流程图如图4.1。图4.1 系统主程序流程图其中系统初始化部分包括对系统的时钟芯片DS1302初始化、DS18B20初始化、液晶显示LCD1602初始化、定时器中断进行设置等,其他模块的初始化在各模块函数中初始化。在系统初始化结束之后进入程序主体循环部分。主体循环部分首先获取时钟信息和温度信息并通过液晶屏显示;紧接着进行键盘扫描,通过得到的键值Keyvalue来判断是否进入时间设置或温度设置子程序;然后判断加热标志位Start是否等于1,若Start不等于1的话程序结束返回新一轮的循环,如果Start等于1则进入PID控制算法子程序,控制PWM的输出来达到控制加热丝效率的目的;程序到此完成一次
39、循环,结束并返回进行新一轮的循环。4.2 键盘输入本设计是通过键盘输入对时间和预约温度进行设置的,下面对按键消抖和按键扫描流程进行介绍。1按键消抖键盘与单片机连接电路如图2.1。由电路图可知,按键按下的I/O口为低电平,通过对I/O口的扫描即可确定按下的按键。但是实际上按键在闭合和断开的时候,触点会存在抖动现象,如图4.2所示。按键抖动会导致程序判断按键多次按下从而令程序运行出错,因此可以在编写程序的时候通过延时来消除抖动。图4.2 按键抖动图2按键扫描在编写键盘扫描程序前先确定每个按键的键值,时间设置键的键值为1,温度设置键的键值为2,增加键的键值为3,减小键的键值为4,开关键的键值为5。程
40、序的设计思路是通过对I/O的扫描确定按下的按键,返回对应按键的键值,实现键盘扫描功能。按键扫描的流程图如图4.3所示。图4.3 按键扫描流程图4.3 DS18B20测温DS18B20单线通信功能是分时完成的,因此对时序的要求很严格。本节介绍了DS18B20初始化时序、写数据时序、读数据时序和检测温度的流程11。4.3.1 DS18B20初始化DS18B20的初始化过程如下:(1)把数据线置高电平;(2)延时(尽可能短一些);(3)数据线拉到低电平;(4)延时750s(该时间的时间范围可以从480到960s);(5)数据线拉到高电平;(6)延时等待(延时15到60ms,返回低电平)。若CPU读到
41、了数据线上的电平为低电平“0”后,还要做一定的延时,其延时的时间要从DS18B20发出的高电平算起(上面第5步的时间算起)最少需要480微秒;将数据线再次拉到高电平。初始化时序如图4.4所示。图4.4 DS18B20的初始化4.3.2 DS18B20写数据DS18B20的写数据过程如下:(1)数据线先置低电平;(2)延时确定的时间为15微秒;(3)从最低位到高位依次发送字节;(4)延时时间为45微秒;(5)将数据线拉到高电平;(6)重复上述步骤1到6的操作过程,直到字节全部发送完毕;(7)最后将数据线拉高。写操作的时序图如图4.5所示。图4.5 DS18B20的写操作时序图4.3.3 DS18
42、B20读数据DS18B20的读数据过程如下:(1)将数据线拉高“1”;(2)延时2微秒;(3)将数据线拉低“0”;(4)延时15微秒;(5)将数据线拉高“1”;(6)一个状态位决定读数据线的状态,并开始数据的处理;(7)延时30微秒;这里只要按以上操作将状态位的各比特按顺序储存好即可。读操作时序图见图4.6所示。图4.6 DS18B20的读操作时序图4.3.4 DS18B20温度读取DS18B20经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。所以当我们只想简单的读取温度值的时候,只用读取暂存器中的第0和第1个字节就可以了。只要测到的数值乘以0.0625即可得到实际温
43、度。正温度对应的数值如表4.1所示。表4.1 正温度对应的数值表温度二进制十六进制125C0000 0111 1101 000007D0H85C0000 0101 0101 00000660H25C0000 0001 1001 00000190H10C0000 0000 1010 000000A0H0C0000 0000 0000 00000000H简单的读取温度值的步骤如下:(1)跳过ROM操作;(2)发送温度转换命令;(3)跳过ROM操作;(4)发送读取温度命令;(5)读取温度值。读取温度流程如图4.7所示。图4.7 读取温度流程图4.4 LCD1602显示4.4.1 LCD1602时序介
44、绍LCD1602接口信号说明如表3.1所示,令RS为数据/命令选择信号,RW为读/写选择信号,E为使能信号。1602液晶用来显示字符和数字时用到的基本操作有:写指令和写数据。下面我们分析一下LCD1602写指令操作和写数据操作的操作时序3:写指令的操作时序:RS=L,RW=L,D0D7=指令码,E=高脉冲。写数据的操作时序:RS=H,RW=L,D0D7=数据,E=高脉冲。LCD1602在显示温度和时间时,先写地址指令,再写数据。LCD1602有2行每行16个有效地址,第1行有效地址从00h到0Fh;第2行有效地址从40h到4Fh。在设置数据地址指针时,只要写指令80H+地址码,即可设置数据地址
45、指针。4.4.2 LCD1602初始化LCD1602指令说明表如表4.2所示。表4.2 LCD1602指令说明表指令码功能00111000设置162显示,57点阵,8为数据口00001DCBD=1 开显示;D=0 关显示C=1 显示光标;C=0 不显示光标B=1 光标闪烁;B=0 光标不闪烁000001NSN=1 当写一个字符后地址指针加一,且光标加一S=0当写一个字符,整屏显示不移动00000001显示清屏由指令表4.2可知,写指令38h表示对显示器的显示模式进行设置;写指令0Ch表示显示器开、不显示光标、光标不闪烁;写指令06h表示文字不动,光标自动右移;写指令01h表示显示清屏,初始化完成。由此可得到LCD1602的初始化过程:(1)写指令38h;(2)写指令0Ch;(3)写指令06h;(4)写指令01h。4.5 PID算法的软件设计PID控制即比例积分微分控制,在过程控制中PID控制算法是应用最为广泛的一种控制规律。它具有原理简单,易于实现,鲁棒性强和适用面广等优点。在连续控制系统中