基于单片机与pc机的温度控制系统的软件设计.docx
《基于单片机与pc机的温度控制系统的软件设计.docx》由会员分享,可在线阅读,更多相关《基于单片机与pc机的温度控制系统的软件设计.docx(62页珍藏版)》请在冰豆网上搜索。
![基于单片机与pc机的温度控制系统的软件设计.docx](https://file1.bdocx.com/fileroot1/2023-2/1/aacb26e4-c9d0-4981-85f3-8c9ac735f8f2/aacb26e4-c9d0-4981-85f3-8c9ac735f8f21.gif)
基于单片机与pc机的温度控制系统的软件设计
摘要
在工业生产中,人们需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。
采用单片机对温度进行控制具有控制方便、简单和灵活性大、精度高价格便宜等优点。
本文介绍了一种基于AT89S52单片机与PC机串口通信的温度控制系统,用单片机作下位机完成温度数据的采集和执行PC机发出的控制执行命令;用PC机作上位机接收单片机发送的数据,进行数据处理,向单片机发送控制命令。
PC机与单片机采用串行通信,可实现远距离温度监控制。
本设计充分利用PC机VB6.0软件强大的数据处理功能和友好的人机界面,对温度进行实时曲线显示。
本设计由硬件和软件二部分组成,本文主要进行软件部分设计。
经样机实验证明本设计性能稳定可靠,各项性能指标高,可用于实际工程。
关键词:
DS18B20;单片机;温度控制;PID算法
ABSTRACT
Inindustrialproduction,peopleneedtoallkindsofheatingfurnace,heattreatmentfurnace,reactorandboilertemperaturedetectionandcontrol.Controlledbysinglechipmicrocomputertocontrolthetemperaturewithconvenient,simpleandflexible,highprecisionandcheapprice,etc.
ThispaperintroducesakindofbasedonAT89S52singlechipmicrocomputerandPCserialportcommunicationofthetemperaturecontrolsystem,usingsinglechipmicrocomputerasthemachinefinishtemperaturedatacollectionandexecutedfromPCcontrolcommand;UsingPCasuppermachinetoreceivethemicrocontrollersendsdata,dataprocessing,sendcontrolcommandstothemicrocontroller.PCandmicrocontrollerusingserialcommunication,whichcanrealizeremotetemperaturemonitoringsystem.ThisdesignmakefulluseofthePCsoftwareVB6.0byuseofthepowerfuldataprocessingfunctionandfriendlyman-machineinterface,real-timecurveoftemperaturedisplay.
Thisdesignismadeupofhardwareandsoftwaretwoparts,thisarticlemainlycarriesonthesoftwarepartdesign.Theprototypeexperimentsprovethatthedesignisstableandreliableperformance,eachperformanceindexishigh,canbeusedinpracticalengineering.
Keywords:
DS18B20;Singlechipmicrocomputer;Temperaturecontrol;PIDalgorithm
1.前言4
1.1前言4
1.2系统分析4
2.系统硬件简介6
3.PID控制原理与程序流程7
3.1模拟PID调节器7
3.2数字PID控制器8
3.3PID算法的程序流程9
3.4微分项的改进10
3.5采样周期的选择12
3.6数字PID控制的参数选择13
4.系统软件设计15
4.1软件开发工具简介15
4.2C51单片机软件开发语言15
4.3单片机主程序的软件设计17
4.4单片机中断服务子程序的实现18
4.5测温芯片DS18B20驱动子程序21
4.6PWM控制23
4.7PC机程序设计24
5.调试33
5.1开环控制实验结果分析33
5.2PID参数的整定33
6.结论36
附录:
37
附录一、系统硬件总电路图37
附录二、系统PC机运作VB界面38
附录三、单片机程序39
附录四、PC机程序47
参考文献:
52
基于单片机与PC机的温度控制系统软件设计
1.前言
1.1前言
随着新技术的不断开发与应用,近年来单片机发展给现代工业测控领域带来了一次新的技术革命,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业,发展迅速。
而传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。
温度是工业对象中的一个重要的被控参数。
然而所采用的测温元件和测量方法不相同,产品的工艺不同,控制温度的精度也不相同。
因此对数据采集的精度和采用的控制方法也不相同。
本系统所使用的加热器件是电炉丝,功率为三百瓦,要求温度在30~100℃。
静态控制精度为0.5℃。
本设计使用单片机作为核心进行控制。
它实用性强,集成度高,功能齐全,技术先进,使人们相信这是科技进步的成果。
特别是具有体积小,价廉,功能强[1],可靠性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。
本文着重介绍了基于单片机与PC机的温度控制系统的软件设计的过程,阐述了以AT89S52单片机为主体,热敏传感器DS18B20,电炉及其控制电路为核心的系统充分发挥了单片机的性能。
其优点是硬件功能强大,软件功能完善,控制系统可靠,性价比较高,具有一定的使用和参考价值。
1.2系统分析
一、系统功能要求
基于单片机与PC机的温度控制设计系统应能达到以下功能要求:
1.可以人为方便地设定所需控制的温度值,温控仪器能自动将电炉加热至此设定值并能保持,直至重新设定为另一温度值,即能自动控制温度;
2.采用适当的控制方法,当设定温度突变(由40℃提高到60℃)时,减小系统的调节时间和超调量。
3.实现无触点式控制,消除机械噪声;
4.改进控制方法,控制精度达到±0.5C或更高;
5.具有自动加热保护功能的安全性要求。
如果实际测得的温度值超过了系统要求的温度范围,单片机就会发出断电指令,并进行报警;
6.装置可将温度数据通过串口送到上位机,上位机软件将接收到的数据存贮并显示温度变化曲线。
系统总体方案框图如图1-1所示
图1-1系统总体方案框图
二、系统特点
基于上述功能要求及智能仪表应具有的体积小、成本低、功能强、抗千扰并尽可能达到更高精度的要求。
本系统在硬件设计方面具有如下特点:
主机采用MCS-51系列的AT80S52单片机价格便宜,有开发环境。
根据电阻炉测温范围的要求,该系统适合采用DS18B20作为温度传感器,DS18B20支持“一线总线”接口,测量温度范围为-55°C——+125°C,在-10——+85°C范围内,精度为±0.5°C。
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,如:
环境控制、设备或过程控制、测温类消费电子产品等。
由于系统的执行机构是电阻炉,其功率调节可以采用相控调压法和通断调功法两种方式,但考虑到相控调压法对电网性能的破坏较大,因此按脉冲宽度调制法控制输出信号占空比的大小,从而实现系统对输出量的控制。
整个系统遵循了冗余原则及以软代硬的原则,并尽可能选用典型、常用、易于替换的芯片和电路,为系统的开放性、标准化和模块化打下良好基础。
系统扩展和配置在满足功能要求的基础上留有适当裕量,以利于扩充和修改。
2.系统硬件简介
本系统硬件由单片机AT89S52最小系统电路、温度检测电路、温度控制电路等部分组成。
在系统中,利用DS18B20温度传感器测得水温的实际温度并转换成与水温相对应的数字信号进入单片机,单片机进行数据处理后,将温度与设定温度比较,由设定的控制算法计算出控制量,根据控制量通过控制固态继电器的导通和关闭从而控制电阻丝的导通时间,以实现对温度的控制。
该系统中还利用PC机通过RS232串口通信进行实时监控。
一、单片机最小系统电路:
本系统采用晶振,复位电路组成的单片机最小系统电路使单片机正常运作以结合其他模块组成本设计所要求的系统。
二、串口及其通信:
单片机串行口输入输出的电信号为TTL/CMOS[2]电平,而PC机的串行口输入输出的电信号却为RS232[3]电平,RS232使用−3V到−15V的电压表示高电平,使用+3V+15V的电压表示低电平。
因此,单片机串行口并不能直接和PC机串行口相连,它们之间必须进行电平转换后才能相连。
本设计选用MAX232电平转换芯片来进行电平的转换。
51单片机有一个全双工的串行通讯口,所以单片机和计算机之间可以方便地进行串口通讯。
我们采用了三线制连接串口,也就是说和计算机的9针串口只连接其中的3根线:
第5脚的GND、第2脚的RXD、第3脚的TXD。
三、温度检测电路:
本设计温度检测采用温度传感器DS18B20
,信息经过单线接口送入DS1820或从DS18B20送出,因此从单片机到DS18B20仅需连接一条线。
读定和完成温度变换所需的电源可以由数据经本身提供而不需要外部电源。
四、温度控制电路:
本设计由固态继电器控制加热电源的通断,以实现对温度的控制,固态继电器(SolidStateRelays),简写成“SSR”,是一种全部由固态电子元件(如光电耦合器、晶体管、可控硅、电阻、电容等)组成的新型无触点开关器件。
与普通继电器一样,它的输入侧与输出侧之间是电绝缘的。
但是与普通电磁继电器比,SSR体积小,开关速度快,无机械触点,因而没有机械磨损,不怕有害气体腐蚀,没有机械噪声,耐振动、耐冲击,使用寿命长。
它在通、断时没有火花和电弧,有利于防爆,干扰小(特别对微弱信号回路)。
另外,SSR的驱动电压低,电流小,易于与计算机接口。
因此SSR作为自动控制的执行部件得到越来越广泛的应用。
3.PID控制原理与程序流程
对于一个控制系统,合理选择控制策略是至关重要的。
PID调节器具有算法简单、鲁棒性好、可靠性高、易于实现等优点,并且不需要建立其精确的数学模型,因此在过程控制中仍然是应用最广泛的一类控制器。
在本系统设计中,作为被控对象的电阻炉由于模型较为复杂,无法建立精确的数学模型,故采用PID算法比较方便,但PID算法也存在现场参数调整麻烦、被控对象模型参数难以确定及外界干扰会使控制漂离最佳工况等问题。
针对这些问题,在本系统设计中,采用了基于模糊推理[4]的自整定PID控制算法。
3.1模拟PID调节器
一、模拟PID控制系统[5]组成
图3-1模拟PID控制系统原理框图
二、模拟PID调节器的微分方程和传输函数
PID调节器是一种线性调节器,它将给定值r(t)与实际输出值c(t)的偏差的比例(P)、积分(I)、微分(D)通过线性组合构成控制量,对控制对象进行控制。
1.PID调节器的微分方程
(1)
式中
2.PID调节器的传输函数
(2)
三、PID调节器各校正环节的作用
1.比例环节:
即时成比例地反应控制系统的偏差信号e(t),偏差一旦产生,调节器立即产生控制作用以减小偏差。
2.积分环节:
主要用于消除静差,提高系统的无差度。
积分作用的强弱取决于积分时间常数TI,TI越大,积分作用越弱,反之则越强。
3.微分环节:
能反应偏差信号的变化趋势(变化速率),并能在偏差信号的值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。
3.2数字PID控制器
一、模拟PID控制规律的离散化
表3-1
模拟形式
离散化形式
二、数字PID控制器的差分方程
(4)
式中
称为比例项
称为积分项
称为微分项
三、常用的控制方式
1.P控制
(5)
2.PI控制
(6)
3.PD控制
(7)
4.PID控制
(8)
在实际运算时,由于水具有很大的热惯性,而且PID运算中的I(积分项)具有非常明显的延迟效应所以不能保留,我们必须把积分项去掉,相反D(微分项)则有很强的预见性,能够加快反应速度,抑制超调量,所以积分作用应该适当加强才能达到较佳的效果,系统最终选择PD控制方案。
四、PID算法的两种类型
1.位置型控制――例如图3-2调节阀控制
(9)
2.增量型控制――例如图3-3步进电机控制
(10)
图3-2数字PID增量型控制示意图
图3-3数字PID增量型控制示意图
本设计应用了上面所介绍的位置型PID控制算法,将温度传感器采样输入作为当前输入,然后与设定值进行相减得偏差e(n),然后再对之进行PID运算产生输出结果open,进而控制加热器。
3.3PID算法的程序流程
一、增量型PID算法的程序流程
1.增量型PID算法的算式
(11)
式中
,
,
2.增量型PID算法的程序流程――图3-4
图3-4
二、位置型PID算法的程序流程
1.位置型的递推形式
(12)
2.位置型PID算法的程序流程――图3-4
只需在增量型PID算法的程序流程基础上增加一次加运算Δu(n)+u(n-1)=u(n)和更新u(n-1)即可。
三、对控制量的限制
1.控制算法总是受到一定运算字长的限制
2.执行机构的实际位置不允许超过上(或下)极限
(13)
3.4微分项的改进
一、不完全微分型PID控制算法
1.不完全微分型PID算法传递函数
(14)
图3-5不完全微分型PID算法传递函数框图
2.完全微分和不完全微分作用的区别
图3-6完全微分和不完全微分作用的区别
3.不完全微分型PID算法的差分方程
(15)
(16)
二、微分先行和输入滤波
1.微分先行
微分先行是把对偏差的微分改为对被控量的微分,这样,在给定值变化时,不会产生输出的大幅度变化。
而且由于被控量一般不会突变,即使给定值已发生改变,被控量也是缓慢变化的,从而不致引起微分项的突变。
微分项的输出增量为
(17)
2.输入滤波
输入滤波就是在计算微分项时,不是直接应用当前时刻的误差e(n),而是采用滤波值e(n),即用过去和当前四个采样时刻的误差的平均值,再通过加权求和形式近似构成微分项
(18)
(19)
3.5采样周期的选择
一、选择采样周期的重要性
采样周期越小,数字模拟越精确,控制效果越接近连续控制。
对大多数算法,缩短采样周期可使控制回路性能改善,但采样周期缩短时,频繁的采样必然会占用较多的计算工作时间,同时也会增加计算机的计算负担,而对有些变化缓慢的受控对象无需很高的采样频率即可满意地进行跟踪,过多的采样反而没有多少实际意义。
二、选择采样周期的原则――采样定理
最大采样周期
(20)
式中
为信号频率组分中最高频率分量。
三、选择采样周期应综合考虑的因素
1.给定值的变化频率
加到被控对象上的给定值变化频率越高,采样频率应越高,以使给定值的改变通过采样迅速得到反映,而不致在随动控制中产生大的时延。
2.被控对象的特性
(1)考虑对象变化的缓急,若对象是慢速的热工或化工对象时,T一般取得较大。
在对象变化较快的场合,T应取得较小。
(2)考虑干扰的情况,从系统抗干扰的性能要求来看,要求采样周期短,使扰动能迅速得到校正。
3.使用的算式和执行机构的类型
(1)采样周期太小,会使积分作用、微分作用不明显。
同时,因受微机计算精度的影响,当采样周期小到一定程度时,前后两次采样的差别反映不出来,使调节作用因此而减弱。
(2)执行机构的动作惯性大,采样周期的选择要与之适应,否则执行机构来不及反应数字控制器输出值的变化。
4.控制的回路数
要求控制的回路较多时,相应的采样周期越长,以使每个回路的调节算法都有足够的时间来完成。
控制的回路数n与采样周期T有如下关系:
(21)
式中,Tj是第j个回路控制程序的执行时间。
3.6数字PID控制的参数选择
一、数字PID参数的原则要求和整定方法
1.原则要求:
被控过程是稳定的,能迅速和准确地跟踪给定值的变化,超调量小,在不同干扰下系统输出应能保持在给定值,操作变量不宜过大,在系统与环境参数发生变化时控制应保持稳定。
显然,要同时满足上述各项要求是困难的,必须根据具体过程的要求,满足主要方面,并兼顾其它方面。
2.PID参数整定方法:
理论计算法――依赖被控对象准确的数学模型(一般较难做到)
工程整定法――不依赖被控对象准确的数学模型,直接在控制系统中进行现场整定(简单易行)
二、常用的简易工程整定法
1.扩充临界比例度法[6]――适用于有自平衡特性的被控对象
整定数字调节器参数的步骤是:
(1)选择采样周期为被控对象纯滞后时间的十分之一以下。
(2)去掉积分作用和微分作用,逐渐增大比例度系数
直至系统对阶跃输入的响应达到临界振荡状态(稳定边缘),记下此时的临界比例系数
及系统的临界振荡周期
。
(3)选择控制度。
(22)
通常,当控制度为1.05时。
就可以认为DDC与模拟控制效果相当。
(4)根据选定的控制度,得T、KP、TI、TD的值。
2.扩充响应曲线法――适用于多容量自平衡系统
参数整定步骤如下:
(1)让系统处于手动操作状态,将被调量调节到给定值附近,并使之稳定下来,然后突然改变给定值,给对象一个阶跃输入信号。
(2)用记录仪表记录被调量在阶跃输入下的整个变化过程曲线,如图3-7所示。
图3-7被调量在阶跃输入下的整个变化过程曲线
(3)在曲线最大斜率处作切线,求得滞后时间τ,被控对象时间常数Tτ以及它们的比值Tτ/τ。
(4)由求得的τ、Tτ及Tτ/τ,即可求得数字调节器的有关参数KP、TI、TD及采样周期T。
3.归一参数整定法
令
,
,
。
则增量型PID控制的公式简化为
(23)
改变KP,观察控制效果,直到满意为止。
基于以上的分析在本设计中,采用扩充响应曲线法对参数进行整定。
4.系统软件设计
4.1软件开发工具简介
一、单片机开发工具
本系统开发工具采用KEIL51标准C编译器KEILC51,在保留汇编代码高效、快速性的同时为8051微控制器的软件开发提供C语言环境。
C51集成到uVision2开发环境,这个环境包括:
编译器,汇编器,实时操作系统,调试器。
SLISP支持串行、并行两种通信下载线,支持的AT89S51/52和AVR系列器件。
烧录文件格式为INTEL格式的HEX文件、EEP文件,二进制BIN文件。
通过串口和下载线相连接,支持USB转换成的串口通信。
在使用并行下载线编程时,编程速度是可以调节的,可以根据自己系统的时钟频率选择模式。
二、PC机开发工具VB
VB是微软公司出品的一个快速可视化程序开发工具软件,借助微软在操作系统和办公软件的垄断地位,VB在短短的几年内风靡全球。
VB是极有和功能强大的软件,主要表现在:
所见即所得的界面设计,基于对象的设计方法,极短的软件开发周期,较易维护的生成代码[6]。
美国微软公司在1991年推出VB1.0至今,版本已经演变到VisualBasic2005(也被称为VB8)[7],本系统采用各方面均较为成熟的VB6.0运行在win2000,winxp,windowsNT等操作系统下,是一个32位的应用程序开发工具。
它主要有以下几个特点:
1.成功地简化了界面的设计过程。
它在windows平台上提供了图形用户界面(GUI)的集成开发环境(IDE)。
2.采用简单易学的Basic语言。
它既适用于没有任何编程经验的开发者学习,也适合于开发各种复杂的底层应用程序。
3.具有强大的数据和字符串处理功能。
VisualBasic提供了许多现成的字符串处理函数。
4.易于扩充。
除了简单易学的特点以外,VisualBasic还是一种易于扩充功能的开发系统。
5.提供了IntelliSense技术。
当你在VisualBasic的代码窗口敲进对象名称的时候IntelliSense技术会自动向你显示一些相关的信息,例如对象的属性和方法等。
6.提供了多种向导。
利用这些向导,你可以快速地完成一般性的任务,例如生成其控件不绑定到数据控件上的纯代码窗体,建立查询,添加工具,制作图表,以及发布创建的应用程序等。
4.2C51单片机软件开发语言
C语言是一种通用的计算机程序设计语言。
由于汇编程序的可读性和可移植性都较差,而C语言既是一种高级语言,又兼有一些汇编语言才具有的特点,其表达能力和运算能力和运算能力都很强,并且具有很好的可移植性的硬件控制能力,编写代码效率高,软件调试直观,维护升级方便。
同时,C语言具有完善的模块程序结构和功能丰富的库函数,在软件开发中可以采用模块化程序设计方法,并可以方便地调用库函数一些常用的功能。
再说现在的单片机程序存储器容量越来越大,因此不用像过去那样对程序规模大小斤斤计较,这也有利于C语言程序在单片机上的推广应用。
此外,使用C语言进行MCS-51系列单片机系统开发,编程者可以专注于应用软件部分的设计,不必将大量的精力花在内存分配等底层工作上,从而大大地加快了软件的开发速度,C语言程序的可读性比汇编语言好得多,对于程序的改进和扩充也方便得多,因此越来越多的设计人员选用C语言来开发单片机控制程序[8]。
鉴于C语言在功能上、结构性、可读性和可维护性上比汇编有明显的优势,编程有众多优点,在本设计中,采用的是C语言编写程序。
一、C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。
1.数据类型关键字(12个):
●char:
声明字符型变量或函数
●double:
声明双精度变量或函数
●enum:
声明枚举类型
●float:
声明浮点型变量或函数
●int:
声明整型变量或函数
●long:
声明长整型变量或函数
●short:
声明短整型变量或函数
●signed:
声明有符号类型变量或函数
●struct:
声明结构体变量或函数
●union:
声明共用体(联合)数据类型
●unsigned:
声明无符号类型变量或函数
●void:
声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)
2.控制语句关键字(12个):
(1)循环语句
●for:
一种循环语句(可意会不可言传)
●do:
循环语句的循环体
●while:
循环语句的循环条件
●break:
跳出当前循环
●continue:
结束当前循环,开始下一轮循环
(2)条件语句