575203461毕业设计(论文)基于PC的PID温度测控系统设计.doc

上传人:仙人指路1688 文档编号:3930763 上传时间:2023-03-28 格式:DOC 页数:40 大小:661.50KB
返回 下载 相关 举报
575203461毕业设计(论文)基于PC的PID温度测控系统设计.doc_第1页
第1页 / 共40页
575203461毕业设计(论文)基于PC的PID温度测控系统设计.doc_第2页
第2页 / 共40页
575203461毕业设计(论文)基于PC的PID温度测控系统设计.doc_第3页
第3页 / 共40页
575203461毕业设计(论文)基于PC的PID温度测控系统设计.doc_第4页
第4页 / 共40页
575203461毕业设计(论文)基于PC的PID温度测控系统设计.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《575203461毕业设计(论文)基于PC的PID温度测控系统设计.doc》由会员分享,可在线阅读,更多相关《575203461毕业设计(论文)基于PC的PID温度测控系统设计.doc(40页珍藏版)》请在三一办公上搜索。

1、浙江万里学院本科毕业设计(论文)(2011届)论文题目 基于PC的PID温度测控系统设计下位机温度测控(英文)The Design of PID Temperature Control System Based on PCLower Computer Temperature Control 所在学院 电子信息学院 专业班级 电子信息工程本062 学生姓名 学号 指导教师 职称 副教授 完成日期 2010 年 4 月 20 日基于PC的PID温度测控系统设计下位机温度测控崔晓宇(浙江万里学院电信学院电子本062班)2010年4月摘 要温度控制是工业生产、科研活动中一个举足轻重的环节,它直接关系到

2、整个生产系统的控制系统,因此温度控制的研究具有重要的现实意义。本系统针对温度控制的特点,设计了一种基于PC的PID温度测控系统。本系统包括远程控制终端(RTU)和人机接口(HMI)两个部分。RTU主要作用于信号采集、测量和控制。HMI主要实现的是温度数据在上位机上的数据处理功能。RTU硬件电路以51单片机为微处理器,分为温度采集模块、液晶显示模块、串行通信模块和输出控制模块四个部分。软件部分主要对PID算法进行编程。系统利用单片机低功耗、处理能力强的特点,使PC与单片机进行串行通信,用数字温度传感器DS18B20采集温度后,对设定温度与采集温度信号的偏差进行PID控制,输出的控制信号传递给温度

3、控制电路,从而实现升温或降温。系统具有人机交互良好、控温精度高、自动化程度高等特点,有效地实现了水温温度的自动控制,具有良好的实用价值和发展前景。关键词:DS18B20;PID控制;PWM控制;串行通信AbstractTemperature control takes a vital part in the industrial production and scientific research activities, it directly related to the control system of the entire production system, so the resea

4、rch of the temperature control has its important practical significance.This issue designed a PC-based PID temperature control system featured for temperature control. The system includes two parts- Remote Terminal Unit (RTU) and Human Machine Interface (HMI). RTU majors in signal acquisition, measu

5、rement and control. HMI mainly realizes the function of temperature data in the host computers data processing.The microprocessor of the RTU hardware circuit is 51 MCU; it divides into four parts: temperature acquisition module, temperature display module, serial communication module and data proces

6、sing module. The software part is mainly program the PID algorithm. The system makes use of the future of the low power consumption and the processing capability of the SCM, which enables PC and SCM do serial communication. After acquire the temperature with digital temperature sensor DS18B20, do th

7、e PID control to the signal deviations between the setting temperature and the acquisition of the temperature, the output control signal transmits to the temperature control circuit, in order to heating or cooling the temperature. The system with good human-computer interaction, high precision tempe

8、rature control, auto level, effectively realize the auto-control of the water temperature, it has good practical value and development prospects.Key Words: DS18B20;PID control;PWM control;serial communication目 录1引言12系统方案设计33RTU硬件设计53.1 微处理器系统53.1.1 时钟电路53.1.2 复位电路63.2温度采集模块63.2.1 温度传感器选择63.2.2 温度采集电

9、路63.3 液晶显示模块73.3.1显示模块选择73.3.2 液晶显示电路73.4 串行通信模块83.5 输出控制模块93.5.1 输出控制方式选择93.5.2 输出控制电路104RTU软件设计114.1 主程序114.2 温度采集模块124.2.1 初始化124.2.2 读操作134.2.3 写操作144.2.4 温度转换154.3 液晶显示模块174.4 串行通信模块184.5 PID控制模块194.5.1 PID调节器控制原理194.5.2 PID参数对系统性能的影响204.5.3 PID计算程序205HMI设计235.1 HMI硬件235.2 HMI软件236仿真和调试256.1 调试

10、工具与平台256.2 系统调试与仿真266.3 测试结果与分析286.3.1 设计所达到的性能指标286.3.2 结果分析论述297结论30致 谢31参考文献32附录1 实验原理图341引言自本世纪30年代以来,自动化技术成就惊人,在工业生产和科学发展中起着关键的作用。在工业生产过程中,为了高效地进行生产,必须对生产工艺过程中的主要参数,如温度,压力,流量,速度等进行有效的控制。其中温度的控制在生产过程中占有相当大的比例。温度控制已成为工业生产、科研活动中很重要的一个环节,能否成功地将温度控制在所需的范围内,关系到整个活动的成败。温度控制由于控制对象的多样性和复杂性,导致采用的温控手段的多样性

11、,且控制对象普遍具有时间常数大、纯滞后时间长、时变性较明显等特点。不同的温度控制对象有不同的温度控制方法。总体来看,温度的控制方法按划分标准不同可分为不同温度控制方式。按操作途径分:手动控温和自动控温;按调节原理分,主要有位式、PID、模糊控制、PID加模糊控制等;按调节手段分,可采用调节负载电压或调节负载功率来实现温度控制。准确的测量和采用合理的温度控制方式是实现高精度温度控制的有效途径。目前PID控制技术最为成熟,控制结构简单,参数容易调整,不必求出被控对象的数学模型就可以调节,所以在恒温控制系统中通常采用PID算法。其中PID调节器的三个基本参数Kp(比例系数)、Ki(积分系数)、Kd(

12、微分系数)的选择将直接影响一个控制系统的准确性。PID控制是最早发展起来的控制策略之一,问世至今已有近70年历史。由于其算法简单、鲁棒性好和可靠性高,被广泛应用于工业过程控制。PID控制器历史悠久,生命力旺盛,并有其独特的优点。当被控对象的结构和参数不能完全掌握,或无法建立精确的数学模型且控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。近年来,随着现代控制理论(诸如智能控制、自适应模糊控制和神经网络技术等)研究和应用的发展与深入,为控制复杂无规则系统开辟了新途径。PID控制器的发展历史经历了3个阶段:117世纪中叶至20世纪20

13、年代,出现了调节方式类似于BangBang继电控制,精度较低,控制器的形式是P和PI。220世纪20年代至40年代,发现了微分作用,它能直观地实现对慢系统的控制,与先期提出的比例和积分作用成为主要的调节部件。31942年以后至现在,在PID控制器的调整方面取得了很多成果,出现了诸如最优PID控制、预估PID控制、自适应PID控制等高级PID控制策略。PID控制器根据偏差的比例、积分、微分进行控制。比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。偏差一旦产生,控制器立即产生控制作用,以减少偏差。在积分控制中,控制器的输出与输入偏差信号的积分成正比关系。积分作用的强弱取决于

14、积分时间常数Ti,Ti越大,积分作用越弱,反之则越强。在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。输出与微分之间的曲线关系能反映偏差信号的变化趋势(变化速率),并能在偏差信号的值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。在温度控制原理中,单片机具有集成度高、功能强、体积小、可靠性高、价格低和开发周期短等特点。采用不同的芯片和模块来组成各种控制系统非常方便,因此单片机控制将得到越来越广泛的应用。同时随着计算机技术的进步,控制精度会随着控制理论的完善和测量精度的提高而日趋提高。因此单片机PID温度的控制问题是一个各行业生

15、产中经常会遇到的问题。本设计运用PID算法对温度进行测量与控制,其研究意义深远。本系统包括温度采集模块,液晶显示模块,串行通信模块、输出控制模块和PID控制模块五个部分。开发环境采用Keil C,编程语言为C51语言。文中对每个部分功能、实现过程作了详细介绍。本设计系统的核心是进行温度的测控与数据通信。2系统方案设计无论是工农业生产中,还是日常生活中,对温度的检测和控制都是必不可少的。对于温度控制的方法也有很多:如单片机控制、PLC控制、模拟PID调节器和数字PID调节器等等。方案一:基于单片机的温度测控系统利用单片机系统实现温度的控制,其系统总体结构图如图2-1所示。系统主要包括温度采集、实

16、时温度显示和AT89S51单片机。温度采集电路以数字形式将温度传至单片机。单片机用RS232与计算机进行串行通信,根据现场温度与从PC获取的用户设定温度,采用增量式PID算法进行控制,计算出实时控制量。以此控制量控制继电器的开通和关断,从而决定温度控制电路的工作状态,使温度不超过设定值。在温度接近或达到设定值时,单片机通过采样回的温度与设置的设定温度比较做出相应的控制,使温度上升或下降。系统运行过程中由液晶实时显示各种状态参量。温度测量单片机液晶显示控制电路串行通信PC机温度显示温度调控图像显示图2-1 方案一的系统总体结构框图方案二:利用PLC实现温度测控系统利用PLC实现对温度的控制,其控

17、制系统采用PLC控制实现自动控制方式,来达到控制温度的恒定。在温度采集方面,采用温度传感器进行数据采集。控制算法采用PID算法,可以使系统具有较好的快速性和较小的超调。将占空比可调的控制电平经输出隔离电路去控制可控硅门极的通断,实现自适应的恒温控制。若温度升的过快,PLC也将输出关断电平信号转换为可控硅电路相匹配的输入信号。该系统温度调控方便、可靠、精度高,且具有良好的运行稳定性。方案三:利用模拟PID调节的温度测控系统基于模拟PID调节的恒温控制系统由数字电路部分和模拟电路两部分组成,其控制系统的结构框图如图2-2所示。由用户自设定某一温度,通过RS232传送给单片机,单片机对设定温度值进行

18、查表计算后转换为对应的电压数字值,通过16位的数模转换器得到与之精确对应的电压信号,此电压值于实测电压值比较产生一个误差信号,经过PID电路后将获得一个控制量,此控制量经过控制反馈电路,形成一个实时闭环系统,同时将实际测量的电压值并显示在液晶屏上。单片机液晶显示D/AA/DPID电路反馈电路控制电路温度测量串行通信PC机温度显示温度调控图像显示图2-2 方案三的系统总体结构框图16比较3种方案,可以得出。方案一的成本低,可靠性高,抗干扰性强,但对于系统的动态性能与稳态性能要求较高的场合并不合适;方案二中PLC成本高,且外围系统配置复杂,不利于设计。对于方案三,模拟调节器调节能力有限,当控制规律

19、较为复杂时,就难以甚至无法实现,但数字控制器能实现复杂控制规律的控制。由于数字PID调节运算量大,只要选择合适的参数就能将温度的控制精度达到较好的效果。为了使设计的成本低、抗干扰强,系统动态性能与稳态性能好的前提下,采用方案一的设计,选择具有高速DA转换功能并且运行速度快的单片机作为主控芯片,通过单片机对偏差进行PID运算。3RTU硬件设计RTU(Remote Terminal Unit),即远程控制终端,主要作用于信号采集、测量和控制。RTU可将采集到的信号转换成数据格式显示在PC机或其他媒体上,也可将从PC机等媒体上接受到的数据装换成命令,执行相关命令,实现功能。RTU具有更大的存储容量和

20、更大的通信功能。本系统硬件主要有五大模块组成:微处理器系统、温度采集模块、液晶显示模块、串行通信模块和输出控制模块。3.1 微处理器系统系统采用AT89C51作为微处理器系统。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压、高性能CMOS 8位微处理器。该器件与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。3.1.1 时钟电路单片机内部有一个高增益反相放大器,输入端为芯片引脚XTAL1,输出端为引脚XTAL2。在芯片外部XTAL1和XTAL2之间跨接晶体

21、振荡器和微调电容,构成了一个稳定的自激振荡器。这里使用振荡频率为12MHz的石英晶体。其电路图如图3-1所示。为了使晶振能够方便快速的起振,在晶振两端加了2个30pF的起振电容C1、C2。图3-1 晶振时钟电路图3.1.2 复位电路复位是单片机的初始化操作,其作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个初始状态开始工作。如果复位电路中R、C的值选择不当,使复位时间过长,单片机将处于循环复位状态。本设计采用按键电平复位,电平复位是通过RST端经电阻与VCC接通而实现的,其电路图如图3-2所示。RST引脚是复位信号的输入端,复位信号是高电平有效。图3-2 单片机外围复位电路3.

22、2温度采集模块3.2.1 温度传感器选择传统的温度采集方式采用热电偶或热敏电阻,热电偶一般用于工业生产,但精度低,需冷端补偿,电路设计复杂;热敏电阻虽然精度较高,但需要标准稳定电阻匹配才能使用,而且重复性、可靠性都比较差。采用数字温度传感器DS18B20可以直接输出数字温度信号,与单片机接口,结构简洁且制作成本较低。因此本系统采用高精度数字温度传感器DS18B20。这种数字温度传感器是DALLAS公司生产的单总线,结构简单,不需外接电路,具有独特的单总线接口方式,仅需使用1个端口就能实现与单片机的双向通讯。3.2.2 温度采集电路DALLAS半导体公司的数字化温度传感器DS18B20是支持“一

23、线总线”接口的数字温度传感器。测量温度范围为-55+125,在-10+85范围内,精度为0.5,可由程序设定912位的分辨率。它共有三个引脚:一个VCC电源引脚,一个数据总线,一个地引脚,可采用外部电源供电,也可采用总线供电方式。DS18B20的内部结构主要由64位ROM、温度传感器及高速缓存器配置寄存器等部分组成。温度采集电路模块如图3-3所示。DSB8B20的2脚接系统中单片机的P1.7口线,用于将采集到的温度送入单片机中处理,由于DS18B20的DQ端是单线双向通讯的,其内部结构是开漏,因此在2脚和3脚之间接一个4.7K上拉电阻,即完成温度采集部分硬件电路。其中DQ为数字信号输入/输出端

24、;GND为电源地;VDD为电源输入端。本设计采用外部电源供电方式。图3-3 温度采集电路3.3 液晶显示模块3.3.1显示模块选择液晶显示模块采用的是液晶显示屏。LCD具有功耗低、轻薄短小、平面直角显示以及影象稳定不闪烁,可视面积大,画面效果好,抗干扰能力强等特点。而数码管虽然低能耗、低损耗、低压、寿命长、耐老化,程序编译容易,资源占用较少,但显示的内容较少,并不是很符合系统要求。3.3.2 液晶显示电路液晶显示采用LCM1602。LCM1602是2行16个字符的字符型LCD显示器,它由32个字符点阵块组成,可以显示ASCII码表中的所有可视的字符。内置字符产生器ROM(CGROM)、字符产生

25、器RAM(CGRAM)和显示数据RAM(DDRAM)。CGROM中内置192个常用字符的字模,CGRAM包含8个字节的RAM,可存放用户自定义的字符,DDRAM用来寄存待显示的字符代码。液晶显示电路图如3-4所示。电路中VSS端接地,VDD端接5V电源,VEE端接一个10K的滑动变阻器接地,VEE端为对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,电位器(可变电阻)用于调节对比度。7-14脚为8位双向数据线,接P0口。RS端为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器,接P2.1口。RW端为读写信号线,高电平时进行读操作,低电平时进行写操作

26、,接P2.2口。E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令,接P2.3口。图3-4 液晶显示电路3.4 串行通信模块PC内通常都装有一个RS-232异步通信适配器板,其主要器件为可编程的UART芯片,从而使PC有能力与其他具有标准RS-232串行通信接口的计算机设备进行通信。51单片机本身具有一个全双工的串行口,但它为TTL电平,需要外接一个TTL-RS-232电平转换器才能够与PC的RS-232串行口连接,组成一个简单可行的通信接口。美国MAXIM公司生产的MAX232系列RS-232收发器是目前应用较为普遍的串行口电平转换器件。MAX232是一种双组驱动器/接收器,片内含

27、有一个电容性电压发生器以便在5V电源供电时提供EIA/TIA-232-E电平。MAX232利用4个外接电容C11C14就可以在外接电源+5V电源供电的条件下,将输入的+5V电压转换为RS-232输出所需要的12V电压。电容可以取O.1uF到10uF左右的电容,有无极性均可。串行通信模块的电路如图3-5所示。MAX232的T1IN端接单片机的TXD脚,R1OUT端接单片机的RXD脚;MAX232的T1OUT端接PC的RXD脚,R1IN端接PC的TXD脚。AT89C51单片机的串行口工作在方式1,即8位异步串行通信方式,数据格式为10位(1位起始位,8位数据位,1位停止位,无奇偶校验位)。波特率由

28、定时器1的溢出率决定。图3-5 串行通信电路3.5 输出控制模块3.5.1 输出控制方式选择本系统使用电阻丝进行加热,使用风扇进行降温。当水温超过设定温度时开启风扇散热,当水温低于设定温度时加热电阻丝关闭风扇。对于输出控制电路可采用可控硅或采用继电器控制。可控硅是一种半控器件,应用于交流电的功率控制有两种形式:控制导通的交流周期数和控制导通角。由交流过零检测电路输出方波经适当延时控制双向可控硅的导通角,延时时间即移相偏移量由温度误差计算得到。可以实现对交流电单个周期有效值周期性控制,保证系统的动态性能指标。继电器作为开关可控制电阻丝和风扇的电路联通,并用单独的电路为其供电,即可实现电气隔离。继

29、电器比较容易通过较高的电压和电流,在正常条件下工作十分可靠。采用继电器控制可省去交流过零检测电路,虽然该控制精度不高,但由单片机对温差进行处理后可以提高系统动态性能。在软件上选用适当的PID控制算法,可达到较好的效果。因此本系统采用继电器控制输出控制电路。3.5.2 输出控制电路输出控制电路有光耦元件、继电器、二极管、三极管、若干电阻等构成。这部分电路的主要作用是光电隔离,即消除后级电机对前级单片机的影响。三极管是NPN型的,把其集电极接+5V电压,射极接继电器。当单片机引脚给出高电位时,使其内部的三极管导通,继而通过第4引脚上的1K电阻分得电压。当基极提供足够的电压时三极管导通,继电器的常开

30、开关闭合,电机上电工作。当风扇停止工作,继电器周围的那个回路会产生很强的感应电动势,二极管起保护三极管的作用,保护三极管不被击穿。风扇输出控制电路图如图3-6所示。热电阻输出控制电路与风扇输出控制电路相同,只是将风扇替换成了热电阻。电路中的光耦以光为媒介传输电信号,使信号单向传输,输入端与输出端完全实现了电气隔离,抗干扰能力强,传输效率高。利用线性光耦合器构成的光耦反馈电路,可通过调节控制端电流改变占空比,达到精密稳压的目的。图3-6 风扇输出控制电路4RTU软件设计PID温度测控软件系统主要包括温度采集模块,液晶显示模块,串行通信模块和PID控制模块四个部分。4.1 主程序整个系统的主程序主

31、要包括初始化模块,温度采集模块,液晶显示模块,串行通信模块和PID控制模块。初始化模块的主要功能是初始化AT89C51和DS18B20芯片;温度采集模块的功能是主要通过数字温度传感器DSl8B20实时读取数据;液晶显示模块的主要功能是显示当前温度及设定温度;串行通信模块的主要功能是通过MAX232与PC进行通信,传递数据;PID控制模块的主要功能是将设定温度与实测温度的偏差信号进行PID控制,采用脉冲宽度调制(PWM)对温度进行相应的降温或加温处理。其主程序流程图如图4-1所示。初始化读取设定的PID值温度采集模块液晶显示模块PID控制模块传送PC当前温度开始结束图4-1 主程序流程图4.2

32、温度采集模块对DS18B20软件的设计主要根据其操作时序和操作协议编写的。其时序分为初始化操作时序,读操作时序,写操作时序。其操作协议如下:初始化ROM操作命令存储器操作命令处理数据DS18B20每进行一次操作都要遵守操作协议流程。这一过程可具体描述为主机的总线低电平持续时间480至900微秒然后释放总线,等60微秒后读总线是否为低,为低电平表示器件DS18B20反馈存在信号等待主机的下一步操作。4.2.1 初始化单总线上的所有处理均从初始化开始,温度初始化流程图如图4-2所示。总线置1并延时总线置0并延时总线置1返回开始图4-2 温度初始化流程图初始化主要通过复位脉冲开始初始化序列,从属器件

33、通过发出同时的存在脉冲作出相应。初始化中先将总线复位置1,拉高数据线,稍做延时后将总线置0,将数据线拉低,延时保持480s以上,向DS18B20发出一持续480us的低电平复位脉冲,再将总线置1,释放数据线,延时后判断总线是否为0,为0则初始化成功。以下是DS18B20的初始化关键代码:DQ = 1; /DQ复位delay_18B20(8); /稍做延时DQ = 0; /单片机将DQ拉低delay_18B20(80); /精确延时大于480sDQ = 1; /拉高总线delay_18B20(14); /延时x=DQ; /若x=0则初始化成功,x=1则初始化失败其中delay_18B20()是D

34、S18B20延迟子函数,在初始化时发初始化脉冲,延时后检测DQ是否为0,若为0则表示输出了存在脉冲,则当DQ为0时初始化成功。4.2.2 读操作DS18B20读操作流程图如图4-3所示。读操作子程序的主要功能是读取字节数据。NY设循环次数为8开始总线置0总线置1读一位数据8位读完返回图4-3 读操作流程图在读操作流程中,总线应先置0,单片机从DS18B20读数据时,将数据线从高拉低即启动读时序。读数据后再置1,为单片机检测DS18B20的输出电平作准备,在确认循环8次后结束读字节的操作。以下是DS18B20读一个字节的关键代码:for (i=8;i0;i-) DQ = 0; /给脉冲信号dat

35、=1; /右移一位DQ = 1; /给脉冲信号if(DQ)dat|=0x80;delay_18B20(4); /延时return(dat); /返回读取温度数据读温度子程序的主要功能是读出RAM中的字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。在DQ置1后,若DQ恒等于1,则将数据存入dat。8次循环读完,稍作延时后返回读出的十进制数据。4.2.3 写操作DS18B20写操作流程图如图4-4所示。写操作子程序的主要功能是写字节数据。其流程与读操作子程序流程大致相同。NY设循环次数为8开始总线置0总线置1写一位数据8位读完返回图4-4 写操作流程图在写操作流程中,总线应先置0,

36、单片机从DS18B20读数据时,将数据线从高拉低即启动写时序。写数据后再置1,释放数据线。在确认循环8次后结束写字节的操作。以下是DS18B20写一个字节的关键代码:for (i=8;i0;i-) DQ = 0; /给脉冲信号DQ = dat&0x01;delay_18B20(5); /延时DQ = 1; /给脉冲信号dat=1; /右移一位DQ = dat&0x01表示利用与运算取出要写的某位二进制数据,并将其送到数据线上等待DS18B20采样。写操作的主要功能是将温度数据赋予DQ,然后在8次循环完毕再返回。4.2.4 温度转换温度转换采用12位分辨率时的转换时间约为750ms,在本程序设计

37、中采用1s显示程序延时法等待转换的完成。温度转换流程图如图4-5所示。跳过ROM开始启动温度转换跳过ROM读取温度寄存器读取温度值低位读取温度值高位采集温度值返回图4-5 温度转换流程图温度转换流程图中跳过ROM的命令代码为CCH,启动温度转换的命令代码为44H.,读取温度寄存器的命令代码为BEH。以下是读取ds18b20当前温度的关键代码:a=ReadOneChar(); /读取温度值低位b=ReadOneChar(); /读取温度值高位temp1=b4;temp2=a&0x0f;temp=(b*256+a)4); /当前采集温度值除16得实际温度值其中ReadOneChar()是DS18B

38、20读取一个字节子程序,b、a分别是温度值的高低位。此程序将温度移入缓存寄存器后,分别将高低位赋给临时值,再进行十六进制与十进制的转换。4.3 液晶显示模块液晶显示程序流程图如图4-6所示。液晶显示模块的主要功能是通过读取DS18B20的信息,在LCD上显示实时温度、设定温度等各种状态量。开始检测忙信号传送数据选择寄存器结束进行写操作使能端由1转为0图4-6 液晶显示程序流程图液晶显示程序流程图中先选中选择数据寄存器,再进行写操作,E端为使能端,当EN端由高电平跳变成低电平时,液晶模块执行命令。以下是写数据到LCM的关键代码:lcd_wait( ); /检测忙信号DATAPORT=WDLCM;

39、 /将变量传给数据端LCM_RS=1; /选择数据寄存器LCM_RW=0; /写模式LCM_EN=1;_nop_();_nop_();_nop_(); /空操作三个机器周期LCM_EN=0; lcd_wait()是lcm用来检测信号是否忙的信号函数;WDLCM是一个字符型变量;RS定义为P2.0脚,为数据/命令端;RW定义为P2.1脚,为读/写选择端;EN定义为P2.2脚,为使能端;DATAPORT定义P0口为LCD通讯端口。RS为高电平时,选择数据寄存器;为低电平时,选择指令寄存器。RW为高电平时,进行读操作;为低电平时,进行写操作。EN从高电平转换到低电平时,执行命令。将变量传给数据端P0

40、口后,选择数据寄存器,再进行写操作,将芯片进行使能操作,当E端由高电平跳变成低电平时,液晶模块开始执行命令,数据就写入LCM了。4.4 串行通信模块串行通信的主要功能是接收从PC传送的数据,并将数据发送给PC。流程图如图4-7所示。YYNN等待控制命令开始数据编码CRC校验打开串口接收数据有数据返回正确信息图4-7 串行通信程序流程图利用电平转换器件MAX232实现电平匹配。PC先发送设定好的温度及PID参数,单片机接收后回发给PC机实时温度值。单片机将收到的数据转转换到LCD显示,其他数据直接显示为字符的ASCII码。以下是串行口初始化的关键代码,用于下位机通讯:SCON =0x50; /选

41、择方式1PCON =0x00; /串口波特率为SCON中串口方式定义值TI=1; /发送中断RI=1; /接收中断ES=1; /使能端置1SCON为串行口控制寄存器,前两位为01,表示选择方式1,8位UART,可变波特率;PCON为电源控制寄存器,第一位为0,表示串口波特率为SCON中串口方式定义值;SUBF为串行(UART)数据缓冲寄存器,当数据被送到SBUF时,它进入发送缓存器等待串行发送。向SBUF写入一个字节即启动发送过程,当从SBUF读出数据时,数据来自接收缓冲器;TI为发送中断标志,当UART发送完一个字节数据时,该位被硬件置1。置1表示该位将导致CPU转到UART中断服务程序,该

42、位必须用软件手动清0;RI为接收中断标志,当UART接收到一个字节数据时,该位被硬件置1。该模块主要将接收到的数据存入SBUF,再由SBUF载入累加器,然后再发送数据给PC,从而使PC具有达到监控的目的。4.5 PID控制模块PID控制模块采用PID控制进行温度控制,它是一种闭环控制系统,根据控制量的实际值与设定值的偏差来计算下一步的控制量。软件的基本流程是:采样当前温度PID运算PWM(占空比式)输出4.5.1 PID调节器控制原理在控制系统中,控制器最常用的控制规律是PID控制。PID控制系统原理框图如图4-8所示。系统由PID控制器和被控对象组成。图4-8 PID控制系统原理框图P:比例

43、控制是最简单的控制结构,但也能使系统满足某一方面的特性要求,如GM、PM、稳态误差等;它也称为增益,在控制回路中必须有一个值大于零。I:加入积分控制,则增加了系统的稳态误差精度。在控制回路,积分控制,也称为重置,随着时间的推移将误差进行积分,传递给输出。D:加入微分控制,增加阻尼作用;它也称为比率,作用于误差的变化值,再传给输出。54.5.2 PID参数对系统性能的影响各种调节系统中PID参数经验数据以下可参照:温度T:P=2060%,T=180600s,D=3-180s;压力P:P=3070%,T=24180s;液位L:P=2080%,T=60300s;流量L:P=40100%,T=660s

44、。12Kp、Ti、Td对系统的性能影响如表4-1所示。表4-1 Kp、Ti和Td对系统的影响影响KpTiTd稳态性能可以减少静差,但不能消除消除静差,但不能太大配合比例控制,可以减少静差动态性能加快系统速度,但会引起振荡太小会不稳定,太大会影响性能太大和太小都会引起超调量大,过渡时间长4.5.3 PID计算程序 PID调节规律的基本输入输出关系可用微分方程表示为: (4-1)式中为调节器的输入误差信号,且 (4-2)其中:为给定值,为被控变量;为调节器的输出控制信号;为比例系数;为积分时间常数;微分时间常数。为了在计算机上实现PID算法,可将式(4-1)变换为差分方程 (4-3)其中;式中T为采样周期,k为采样序号。PID控制程序流程图如图4-9所示。NY离线计算PID增量型控制算法系数;置e(k-1)=e(k-2)=0温度测量值A/D转换值转换后赋给c(k)开始求e(k)=x(k)-c(k),根据PID增量型控制算法计算u(k)将u(k)输出给PWM电压转换模块e(k-2)=e(k-1)e(k-1)=e(k)采样时间到图4-9 PID控制子程序流程图本模块根据设定温度与实测温度之间的偏差进行增量式PID控制,然后用PWM控制输出,根据采样周期循环进行PID控制。以下是PID控制计算部分关键代码:Error = pp-SetPoint - NextPoint; /偏差 pp-Su

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号