基于单片机的PWM控制方法的精密温度控制毕业论文设计40论文41.docx
《基于单片机的PWM控制方法的精密温度控制毕业论文设计40论文41.docx》由会员分享,可在线阅读,更多相关《基于单片机的PWM控制方法的精密温度控制毕业论文设计40论文41.docx(26页珍藏版)》请在冰豆网上搜索。
基于单片机的PWM控制方法的精密温度控制毕业论文设计40论文41
(此文档为word格式,下载后您可任意编辑修改!
)
惠州学院
HUIZHOUUNIVERSITY
毕业论文(设计)
中文题目:
基于单片机的PWM控制方法的精密温度控制
系统设计
英文题目:
Designofprecisetemperaturecontrol
systembasedonPWMcontrolmethodof
microprocessor
姓名:
姚佑鹏
学号:
090701224
专业班级:
09电气工程及其自动化2班
指导教师:
李卫平
提交日期:
2013-05-15
教务处制
摘要
本文设计了一种以单片机STC89C52为核心的精密温度控制系统。
它使用一线制数字温度传感器DS18B20采集温度,并通过四位数码管显示实时温度。
通过设置按键,设定恒温运行时的温度值,并显示在数码管上。
单片机采用PID控制算法对测量值和设定值进行处理,计算输出PWM波控制继电器调节发热电路的发热功率,最终控制被控对象温度。
通过原理分析,软硬件设计及实验调试,温度能够实时检测和自动控制,系统的温度控制精度可达到±0.5℃,表明该温度系统比较稳定并且精确,能够实现对温度的精密控制。
关键词:
温度控制MCS-52DS18B20PIDPWM
Abstract
AprecisetemperaturecontrolsystemwiththecoreofmicroprocessorSTC89C52isdesignedinthispaper.Inthissystem,one-wiredigitalthermometerDS18B20isusedtotransformanalogtemperaturesignaltodigitalsignal,throughfourreal-timedigitalofadigitalthermometertemperature.by setting the button,setthethermostattemperatureatthetime of operation, and digital display of the temperature.Single-chipMicrocomputerusedPIDcontrolalgorithmtoprocessthedatameasurementanddatasettings,andcalculatethePWMsignal,isoutputtedandmagnifiedtodriveasolidstaterelaysothatthepowerofbecontrol.
Throughmanyoftheory,designandexperiments,thetemperatureofreal-timedetectionandautomaticcontroltestisreached,andtheerrorofthissystemis±0.2℃.Itshowthatthesystemispreciseandsteady,andcontrolprecisetemperature.
Keywords:
TemperaturecontrolMCS-52DS18B20PIDPWM
1前言
温度是众多行业生产中的基础参数之一,也是与人们生活息息相关的一个重要物理量。
温度的测量和控制在日常生活和工业领域中具有广泛的应用,随着社会的进步、工业的发展,温度控制技术的不断革新,人们生活水平的大幅提高,对温度测量控制的精度和范围也有着更高的要求。
因此,温度控制是生产工艺流程中极为重要的一个环节,尤其在电力、航天、交通、造纸、装备制造、食品加工等行业有广泛的应用。
利用单片机来对温度进行控制,不仅能够有效地提升控制能力与生产的自动化,而且还有可能尽早实现智能化的目标。
和传统的温度控制相比,基于单片机数字PID算法和PWM控制技术的温度控制系统不仅能保持系统稳定精确,还可以降低能源消耗。
因为传统的温度控制都是通过电阻限流的方式达到的温度控制,这类控制对象惯性大,滞后现象严重,从而导致控制系统性能不佳,甚至出现控制不稳定、失控等现象,而且其整体的功率并没有根本性的改变,造成了能源的浪费。
而PID控制方式控制稳定且精度高,能满足精密温度控制系统的稳定要求。
PWM控制技术则通过占空比的改变实现对加热电路发热功率的调节,不存在限流的损失,减少了能源的消耗。
本设计又采用DS18B20数字温度传感器,该传感器具有微型化、封装简单、低能耗、高性能抗干扰能力、测量范围广、强易配处理器等优点,可使系统测量更加精确,电路更加简单。
2设计理论基础
本设计系统以单片机STC89C52为核心,采用温度传感器DS18B20获取实时温度,结合数字PID控制算法和PWM控制技术,控制调节加热电路的发热功率,最终控制被控对象的温度。
本章将逐一介绍以上所涉及到的控制算法和控制技术。
2.1PWM控制技术
PWM是英文“PulseWidthModulation”的缩写,即脉冲宽度调制,简称脉宽调制。
它是一种模拟控制方式,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。
PWM是开关型稳压电源中的术语。
这是按稳压的控制方式分类的,除了PWM型,还有PFM型和PWM、PFM混合型。
脉宽宽度调制式(PWM)开关型稳压电路是在控制电路输出频率不变的情况下,通过电压反馈调整其占空比,从而达到稳定输出电压的目的。
其中方波高电平时间跟周期的比例叫占空比,例如1秒高电平1秒低电平的PWM波占空比是50%。
PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换,PWM相对于模拟控制的另一个优点是增强对噪声抵抗的能力。
2.2数字PID算法
PID算法是本系统软件程序中的核心部分。
我们采用PID模糊控制技术,通过Pvar、Ivar、Dvar(比例、积分、微分)三方面的结合调整形成一个模糊控制来解决惯性温度误差问题。
其原理如下:
本系统的温度控制器的电热元件是发热片。
发热片通过电流加热时,内部温度都很高。
当容器内温度升高至设定温度时,温度控制器会发出信号停止加热。
但这时发热片的温度会高于设定温度,发热片还将会对被加热的器件进行加热,即使温度控制器发出信号停止加热,被加热器件的温度还往往继续上升几度,然后才开始下降。
当下降到设定温度的下限时,温度控制器又开始发出加热的信号,开始加热,但发热片要把温度传递到被加热器件需要一定的时间,这就要视发热热与被加热器件之间的介质情况而定。
通常开始重新加热时,温度继续下降几度。
所以,传统的定点开关控制温度会有正负误差几度的现象,但这不是温度控制器本身的问题,而是整个热系统的结构性问题,使温度控制器控温产生一种惯性温度误差。
增量式PID算法的输出量为
式中,e(k)、e(k-1)、e(k-2)分别为第n次、n-1次和n-2次的偏差值,Kp、Ki、Kd分别为比例系数、积分系数和微分系数,采样周期为T。
计算机每隔固定时间T将现场温度与用户设定目标温度的差值带入增量式PID算法公式,由公式输出量决定PWM方波的占空比,后续加热电路根据此PWM方波的占空比决定加热功率。
现场温度与目标温度的偏差大则占空比大,加热电路的加热功率大,使温度的实测值与设定值的偏差迅速减少;反之,二者的偏差小则占空比减小,加热电路加热功率减少,直至目标值与实测值相等,达到自动控制的目的。
PID参数的选择是系统设计成败的关键,它决定了温度控制的准确度。
数字PID调节器参数的整定可以仿照模拟PID调节器参数整定的各种方法,根据工艺对控制性能的要求,决定调节器的参数。
各个参数对系统性能的影响如下:
1.比例系数P对系统性能的影响:
比例系数加大,使系统的动作灵敏,速度加快,稳态误差减小;P偏大,振荡次数加多,调节时间加长;P太大时,系统会趋于不稳定;P太小,又会使系统的动作缓慢。
P可以选负数,这主要是由执行机构、传感器以及控制对象的特性决定的。
如果P的符号选择不当对象测量值就会离控制目标的设定值越来越远,如果出现这样的情况P的符号就一定要取反。
2.积分控制I对系统性能的影响:
积分作用使系统的稳定性下降,I小(积分作用强)会使系统不稳定,但能消除稳态误差,提高系统的控制精度。
3.微分控制D对系统性能的影响:
微分作用可以改善动态特性,D偏大时,超调量较大,调节时间较短;D偏小时,超调量也较大,调节时间也较长;只有D合适,才能使超调量较小,减短调节时间。
3系统的方案设计
3.1系统设计内容及要求
3.1.1设计内容
1.温度信号采集与处理;
2.PID算法的设计;
3.PWM占空比的改变;
4.设计电路并进行仿真;
5.制作硬件电路并完成软件、硬件的联调及测试。
3.1.2设计要求
1.温度控制范围:
室温0℃~+100℃;
2.温度控制精度:
±0.5℃;
3.温度设置:
由按键设置控制温度;
4.显示:
四位有效值显示;
5.报警装置:
实时温度超过设置温度时蜂鸣器提示报警。
3.2方案设计的比较与论证
对本次设计进行深入的分析和思考,可将整个系统分为控制电路、温度测量电路、显示电路、按键电路、加热电路和报警装置六部分。
系统整体结构如图3-1所示。
图3-1系统整体结构框图
根据系统设计要求,选择发热片作为加热电路的加热元件,所需供电电源12V直流电。
这具体的方案有二:
1.方案一
采用AT89C51作为控制核心,使用热敏电阻作为测温元件,配合使用最为普遍的器件ADC0809作模数转换,在控制上使用对电阻丝加电使其升温。
此方案简易可行,器件的价格便宜,但其扩展的外围电路较多,增加了电路的复杂性,且ADC0809是8位的模数转换,不能满足本题目的精度要求。
2.方案二
采用比较流行的STC89C52作为电路的控制核心,使用自带模数转换的温度传感器DS18B20,结合数字PID算法,实现闭环控制,并通过PWM控制技术控制继电器的通断以实行对发热片温度的连续调节,此方案电路简单并且可以满足题目中的各项要求的精度。
综上所述,本着简单实用的原则,最后选择第二种方案,并通过四位数码管显示电路和按键电路来完善整个系统的功能。
4系统硬件电路的设计
硬件的功能由总体设计所规定,硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的电路原理图,以此同时用软件对电路原理图进行仿真,以确定电路图的正确性,以及电路板的焊接等。
硬件电路主要由三大模块构成,分别是:
单片机最小系统模块、功能实现模块、温度控制模块。
其硬件原理框图如图4-1所示:
图4-1硬件原理框图
温度传感器DS18B20将获取到的温度值以数字量形式传至单片机,并在LED数码管上实时显示出来,单片机结合现场实时温度与通过按键设定的目标温度,按照已经编程好的数字PID控制算法计算出实时控制量,并转化为输出PWM波所需的占空比值,以此控制继电器的开通和关断,决定加热电路的工作状态,使发热片的温度逐步稳定于设定的目标温度。
在发热片的温度到达设定的目标温度后,由于自然冷却而使其温度下降时,单片机通过采样的实时温度与设置的目标温度比较,做出相应的控制,开启继电器,为发热片通电加热。
当所测温度超出设定好的温度值,报警装置的蜂鸣器将会报警提示。
单片机温度控制系统设计的硬件设计仿真图如图4-2所示:
图4-2仿真原理图
4.1单片机最小系统模块
4.1.1单片机STC89C52的简介
STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位IO口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
STC89C52有40引脚双列直插(DIP)形式。
其与89C51引脚结构基本相同,其逻辑引脚图如图4-3。
图4-3STC89C52引脚图
管脚说明:
1.VCC:
供电电压。
2.GND:
接地。
3.P0口:
P0口为一个8位漏级开路双向IO口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
4.P1口:
P1口是一个内部提供上拉电阻的8位双向IO口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
5.P2口:
P2口为一个内部上拉电阻的8位双向IO口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
6.P3口:
P3口管脚是8个带内部上拉电阻的双向IO口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如表4-1。
口管脚
备选功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
INT0(外部中断0)
P3.3
INT1(外部中断1)
P3.4
T0(记时器0外部输入)
P3.5
T1(记时器1外部输入)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器读选通)
表4-1P3口特殊功能表
7.RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
8.ALEPROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的16。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
9.PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次PSEN有效。
但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
10.EAVPP:
当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
11.XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
12.XTAL2:
来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
4.1.2单片机系统模块的硬件设计
STC89C52单片机为40引脚双列直插芯片,有四个8位IO口(P0、P1、P2、P3),每一位IO端口都能独立地作为输出或输入。
其中,P0口为一个8位漏级开路双向IO口,其驱动能力强于其他三个IO口。
由于P0口内部没有上拉电阻,相当于它是没有电源的,需要外部的电路提供,绝大多数情况下P0口是必需加上拉电阻的。
一般51单片机的P0口在作为地址数据复用时不接上拉电阻。
但作为一般的IO口时用时是要接上拉电阻。
单片机的最小系统电路原理图如图4-4所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。
第9引脚为复位输入端,接上电容,电阻及开关后能够形成上电复位电路。
图4-4最小系统电路原理图
4.2功能实现模块
功能实现模块主要包括采样模块、按键和显示模块及报警和指示灯模块,一起构成了温度控制系统的功能
4.2.1采样模块
DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。
主要根据应用场合的不同而改变其外观。
封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。
耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
DS18B20内部结构主要由四部分组成:
64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20的主要特性:
1.适应电压范围更宽,电压范围:
3.0~5.5V,在寄生电源方式下可由数据线供电;
2.独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯;
3.DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温;
4.DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内;
5.温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃;
6.可编程的分辨率为9~12位,对应的可分辨温度分为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温;
7.在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快;
8.测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力;
9.负压特性:
电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
因此,本系统采样电路采用的是温度传感器DS18B20,其内部自带AD转换,无需任何外围元件,可以直接输出温度值的9~12位串行数字量,其温度转换最大时间为750ms,能够满足本系统的设计要求。
温度采样电路如图4-5所示。
其中DQ为数字信号输入输出端;GND为电源地;VCC为外接供电电源输入端。
图4-5采样电路
4.2.2按键模块
按键电路采用按键与外部中断相结合的方法,各按键功能定义如表4-2所示。
表4-2按键功能表
按键
键名
功能
KEY1
加1键
设定的温度值加1
KEY2
转位键
转到数码管的下一位
KEY3
进入退出键
此键按下,进入温度设定;
此键再按,退出温度设定。
按键KEY3与单片机的INT0(P3.2)脚相连,采用外部中断方式,且优先级定位高优先级。
按键KEY1和KEY2分别于P3.0和P3.1相连,采用软件查询方式。
按键模块电路如图4-6所示。
图4-6按键电路原理图
4.2.3显示模块
显示硬件电路采用4位共阴LED数码管显示方式,显示内容有温度值的百位、十位、个位及小数点后一位。
用P2口的P2.0~P2.3作为位控码输出,用P0口作为段控码输出,都采用74LS04做为驱动电路。
模块电路如图4-7所示。
图4-7显示接口电路原理图
4.4温度控制模块
加热控制电路采用PWM控制技术在闭环控制系统中控制继电器的通断,以实现对发热片加热功率的调整,从而达到对水温控制的目的。
继电器的使用非常简单,只要在使用时完全可以用PNP型三极管接成电压跟随器的形式驱动。
当单片机的P1.0为低电平时继电器关断,加热电路不工作;当单片机水温P1.0为高电平时,三极管驱动继电器工作,接通加热电路工作。
控制电路图如图4-8所示。
图4-8加热控制电路原理图
5系统软件设计
软件编写的语言一般情况下,有汇编语言和C语言两种,两种语言各有优劣。
用C语言编写程序的优点是:
编写简单,容易上手,网上有许多已编写好的子程序,可以通过学习再结合自己想要实现的功能,从而编写相关的程序,因此开发程序所需时间也相对短。
而用汇编语言编写则相对要求高一些,它要求对硬件有足够的了解和认识,在此基础上,严格地对照各部件的时序图,进行程序的编写,而且读起来相对繁琐。
通过两种语言的比较,C语言学起来很快,所以我选择采用C语言编写。
本系统软件设计采用模块化设计,由主程序模块、功能实现模块和运算控制模块三大模块组成。
5.1主程序模块
主程序主要完成PID算法、中断源及加热控制系统各部件的初始化和实现各功能子程序的调用,以及实际测量中各个功能模块的协调在无外部中断申请时,单片机通过循环实时显示外部温度。
把KEY3键作为最高优先级的外部中断0,以便使主程序能实时响应KEY3键按下的处理。
软件设定定时器T0为3s定时,在无按下KEY3键时,应每隔3s响应一次,调用PID算法子程序求出输出控制量,以此来控制发热电