基于单片机的双容水箱液位控制器设计.docx
《基于单片机的双容水箱液位控制器设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的双容水箱液位控制器设计.docx(60页珍藏版)》请在冰豆网上搜索。
基于单片机的双容水箱液位控制器设计
摘要
液位作为工业生产过程中的主要的被控参数之一,被广泛应用于冶金、建材、化工、食品、石油等工业中,工艺过程中液位的控制效果直接影响着所生产出的产品质量。
现代工业中的液位控制系统规模日趋复杂化、大型化,液位控制已逐渐成为目前过控领域的一个研究热点。
基于单片机的液位控制器具有性能稳定、可靠,控制精度高,造价低,设置方便,操作方便等优点。
本设计利用单片机实现对双容水箱液位的控制,该系统是以上下两个串联的水箱为研究对象,把下水箱的液位作为被控参数,通过压力变送器测量水箱的液位,并把测量结果送到以单片机为核心的控制器作为反馈信号,控制器再根据预先设置的增量型PID控制算法进行运算,发出控制命令控制执行机构之一的调节阀开度大小,从而改变进入上水箱中水的流量大小,实现水箱液位的自动控制,整个控制过程中,水泵电机保持匀速供水。
关键词:
单片机STC89C52,液位控制,增量式PID控制算法,LED显示
Abstract
Thelevelischargedwithoneoftheparametersoftheindustrialproductionprocess,themostimportant,widelyusedinmetallurgy,buildingmaterials,chemicals,food,petroleumandotherindustries,thelevelofcontrolintheprocessdirectlyinfluencestheproductionofproductsquality.LevelControlSystemscaleofmodernindustryarebecomingincreasinglycomplex,large-scale,levelcontrolhasgraduallybecometheProcessControlfieldofahotresearchtopic.Basedonsinglechipwaterlevelcontrollerhasmanyadvantages,suchasstableperformance,reliable,highcontrolprecision,lowcost,easysetup,easyoperation.
Thedesignusesinglechipachievedual-tankwaterlevelcontrolsystemisbasedonthetwoupperandlowerwatertanksinseriesforthestudy,thefollowingtankleveliscontrolledparameters,thepressuretransmittertomeasurethelevelofthewatertank,andthemeasurementsgavemicrocontrollerasthecorecontrollerasthefeedbacksignal,thecontrollerbasedonincrementalPIDcontrolalgorithmispre-setcomputing,issuecontrolcommandstocontroltheactuatorvalveopeningsize,thuschangingintotheflowofwateronthetanksize.tankliquidlevelautomaticcontrol.
Keywords:
singlechipSTC89C52,liquidlevelcontrol,incrementalPIDcontrolalgorithm,LEDdisplay
第一章引言
一.1研究背景
液位是工业生产过程中的主要被控参数之一,广泛应用于冶金、化工、建材、食品、石油等工业中,工艺过程中液位的控制效果直接影响着所生产出的产品质量。
现代工业中的液位控制系统规模日趋复杂化、大型化,液位控制已逐渐成为目前过控领域的一个研究热点。
一.2国内液位控制的发展现状
德州学院机电工程系的金秀慧做了基于MCGS的液位监控系统设计,它是一种基于AT89C51单片机的远程液位数据采集监控系统,采用单片机作为控制核心,上位机采用MCGS编写的监控软件,整个监控系统可以完成液位信号的采集与转换、数据传送和显示、控制等功能[2]。
北方工业大学理学院的安艳伟做了基于单片机的分布式液位控制系统设计,设计了一种基于51单片机为核心的多机分布式液位控制系统,由数据采集模块,处理模块和多机通信平台组成,既满足了测量精度的要求,同时具有较高的可靠性,成本低,控制灵活。
随着传感技术的不断提高,分布式监控系统应用日趋广泛,一个高质量、合理化的多机串行通信平台就显得尤为重要[19]。
南京邮电大学的牛标和张代远所做的可监控智能液位控制器系统设计中列举了液位控制系统可以采取的硬件方案以及他们各自的优缺点,采用FPGA作为控制器可以实现各种复杂的逻辑功能,规模大,密度高,它将所有器件集成在一块芯片上,减小了体积,提高了稳定性,并且可应用EDA软件仿真、调试,易于进行功能扩展[5]。
FPGA采用并行输入输出方式,提高了系统的处理速度,适合作为大规模实时系统的控制核心。
但是由于其集成度高,使其成本偏高,同时由于芯片的引脚较多,实物硬件电路板布线复杂,加重了电路设计和实际焊接的工作[5]。
根据哈尔滨工业大学的李小平所做的《液位控制系统建模及其控制算法的研究》对几种控制算法进行了研究,其中包括PID控制算法、大林算法、Smith预估控制算法、模糊控制算法等,并通过编程说明了其可行性和优越性:
PID控制器是迄今为止应用最广泛的反馈形式,它具有结构简单、容易实现、控制效果好等特点,且原理简明,参数物理意义明确,理论分析体系完整;大林控制算法的最大的特点是,将期望的闭环响应设计成一阶惯性环节加纯延迟,然后反过来得到能满足这种闭环响应的控制器[12]。
它是克服纯滞后的有效方法,一阶系统很快达到稳定,波动较少;Smith预估控制算法是一种简单而有效的控制方法,但只适用于单输入单输出系统,它的最大优点是将时滞环节移到了闭环之外,是控制品质大大提高,它的最大缺点是太过依赖精确的数学模型,对于外部扰动非常敏感,鲁棒性较差;模糊控制是一种新型控制方法,在冶金、化工、电力和家电等工业部门都有成功应用,它避开了复杂的数学模型,控制系统的鲁棒性强,通常能得到比较好的性能指标,适用于水位这样的滞后非线性系统[12]。
一.3PID调节器简介
传统的调节器多为模拟调节器,这种调节器多用气动或电动单元组合仪表来完成。
随着单片机在控制领域中的广泛应用,利用计算机软件设计控制算法,具有更大的可靠性、灵活性以及更好的控制效果。
因此,以单片机为中心、采用数字算法的数字调节器正不断代替着模拟调节器。
在控制过程中,应用最广泛的调节器控制规律为比例(P)、积分(I)、微分(D)控制,简称PID控制,又称PID调节。
在单回路反馈控制系统中,由被控对象、变送器、控制器、和控制阀四个基本环节构成。
控制器的参数对控制系统的控制效果产生很大影响:
控制系统的动态误差、静态误差、稳定性都是通过对控制器的参数调节进行控制的。
自从PID控制器问世到现在已有近70年的历史,它以稳定性好、结构简单、调整方便、工作可靠为优点成为工业控制领域的主要技术之一。
当被控对象的参数和结构不能完全掌握,或者得不到准确的数学模型时,系统控制器的参数和结构必须依靠现场调试和经验来确定,这时采用PID控制最为方便。
即当我们不能完全了解系统的被控对象或不能通过有效的测量手段来获得系统参数时,最适合采用PID控制技术。
一.4设计思路
本设计利用单片机实现对双容水箱液位的控制,该系统是以上下两个串联的水箱为研究对象,把下水箱的液位作为被控参数,通过压力变送器测量水箱的液位,并把测量结果送到以单片机为核心的控制器作为反馈信号,控制器再根据预先设置的增量型PID控制算法进行运算,发出控制命令控制执行机构之一的调节阀开度大小,从而改变进入上水箱中水的流量大小,实现水箱液位的自动控制,整个控制过程中,水泵电机保持匀速供水。
系统工艺如图1.1所示:
图1.1系统工艺图
一.5设计意义
本设计之所以选择用单片机进行控制是由于其具有体积小、功能强、可靠性能高、造价比低和开发周期短等优点。
而单片机控制系统以其性能稳定、可靠,控制精度高,造价低,设置方便,操作方便等优点,被应用到液位控制系统中来,增强了系统的可视性,使得人机交互的能力进一步提高。
双容水箱本身存在惯性大、扰动多等问题,本设计利用积分分离和带死区的增量型PID控制可以成功的克服这些问题。
这些问题的有效克服使得液位控制系统在工业上具有很大的研究价值。
第二章硬件组成
二.1系统硬件组成概述
本设计的硬件结构如图2.1所示。
图2.1系统硬件结构框图
二.2数据采集电路
数据采集电路的功能主要是采集容器中的实时液位高度,并且把这个采集到的模拟信号转换成单片机可识别的数字信号送入单片机。
二.2.1压力变送器
压力变送器测量的是压力信号,根据液位参数与压力参数的关系即式(2.1)得到液位信号,从而将液位测量的数据转换为压力测量的数据。
(2.1)
本设计所选用的压力变送器是JYB-KO-HAG,技术参数如表2.1所示:
表2.1JYB-KO-HAG压力变送器技术参数
环境温度
-10℃~+60℃
介质温度
-20℃~+70℃
电压输出型
输出阻抗≤250Ω(DC24V供电时):
0~5VDC
供电电压
DC24V(12V~32V)
负载能力
电流输出型≤500Ω:
4~20mADC
JYB-KO-HAG压力变送器用途:
航空航天领域,工业现场过程压力控制,仪器医疗食品等行业,石油化工行业,航海及造船行业,水电、水利、发电厂等行业。
JYB-KO-HAG压力变送器具有以下的特点:
抗过载、抗冲击、抗干扰等能力强;温度补偿激光调阻,使用温域宽;防浪涌电压,反向极性保护;抗腐蚀性能好,可以测量多种介质;过流过压保护电路;进口陶瓷芯片或扩散硅,适用于不同场合的压力测量;稳定性高,实用性广;安装简便,小巧精致等。
JYB-KO-HAG型扩散硅压力传感器的测量精度:
A级(±0.25%F.S),B级(±0.5%F.S)。
量程是:
0-60MPa内任量程,最小量程为5kPa。
JYB-KO-HAG型陶瓷压力传感器的测量精度:
A级(±0.5%F.S),B级(±1%F.S)。
量程是:
0-10MPa内任量程,最小量程为30kPa。
二.2.2I/V转换电路
测量所得的液位模拟信号经过压力变送器输出4-20mA直流信号后,再经250Ω电阻转换成直流1-5V标准电压信号,送入A/D转换器。
二.2.3A/D转换器
在工业控制过程中,被测参数(如流量、温度、液位、压力、速度等)都是连续变化的量,称为模拟量。
而单片机只能处理数字量,所以在数据进入单片机之前,必须把模拟量转换成为单片机可识别的数字量,能够达到这一目的的器件,称之为模数转换器,即A/D转换器。
A/D转换器有很多种,依据位数来区分,有16位、12位、10位、8位等。
其位数越高,分辨率也就越高。
通常使用的A/D转换器是将一个输入模拟信号转换为一个输出的数字信号,本设计所用的A/D转换器是ADC0832,它可实现0-5V模拟电压信号的8位数字量转换。
本设计采用ADC0832模数转换器与I/V转换电路相连接,对输入的1-5V电压信号进行采样。
现场传来的4-20mA电流信号经过适当的输入转换电路转换为单片机可接受的1-5V电压信号后直接接至单片机读写引脚上。
同时对转换后的数字量进行数字滤波、标度变换等数据处理,增加数据的可信度、提高其抗干扰能力和稳定性。
ADC0832是美国国家半导体公司生产的一种双通道、8位分辨率的A/D转换芯片。
由于它的兼容性、性价比高,体积小而深受企业及单片机爱好者欢迎,因此到目前为止它已经有很高的普及率了。
ADC0832具有以下特点:
双通道A/D转换;8位分辨率;5V电源供电时输入电压在0-5V之间;输入输出电平与TTL/CMOS相兼容;一般功耗仅为15mW;8P、14P-DIP(双列直插)、PICC多种封装;商用级芯片温宽为0℃到+70℃,而工业级芯片温宽则为−40℃到+85℃;工作频率为250KHz,转换时间为32μS。
芯片引脚如图2.2所示。
芯片接口说明:
CS:
低电平芯片使能,片选使能。
CH1:
模拟输入通道1(或作为IN+或IN-使用)。
CH0:
模拟输入通道0(作为IN+或IN-使用)。
GND:
地(芯片参与0电位)。
DO:
转换数据输出,数据信号输出。
DI:
选择通道控制,数据信号输入。
VCC/REF:
电源输入端及参考电压输入端(复用)。
CLK:
芯片时钟输入端。
图2.2ADC0832引脚
ADC0832为8位分辨率的A/D转换芯片,其最高可达256级分辨率,可以适应一般的模数转换要求。
其内部电源输入与参考电压的复用(VCC/REF),使得芯片的模拟电压输入在0-5V之间。
芯片据有双数据输出,其可作为数据校验,以减少数据误差,芯片转换时间仅为32μS,转换速度快且稳定性能强。
独立的芯片使能输入,使处理器控制和多器件挂接变的更加方便。
通过DI数据输入端,可以轻易实现通道功能的选择。
正常情况下,单片机与ADC0832的接口应为4条数据线(CS、CLK、DO、DI)。
其中,由于DI端与DO端在通信时与单片机的接口是双向的并且未同时有效,所以电路设计时可以将DI和DO并联在一根数据线上使用。
当ADC0832没有开始工作时,它的CS使能端应为高电平,此时芯片禁用,DO/DI和CLK的电平可任意。
当要进行A/D转换时,需先将CS使能端置低电平并保持低电平直到转换完全结束。
此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。
在第一个时钟脉冲下沉之前DI端必须置高电平,表示起始信号。
在第二、三个脉冲下沉前DI端应输入2位数据用于选择通道功能,其功能见表2.2。
如表2.2所示,当2位数据为“1、1”时,只对CH1进行单通道转换。
当2位数据为“1、0”时,只对CH0进行单通道转换。
如表2.3所示,当2位数据为“0、0”时,CH1作为负输入端IN-进行输入,将CH0作为正输入端IN+。
当2位数据为“0、1”时,CH0作为负输入端IN-进行输入,将CH1作为正输入端IN+。
作为单通道模拟信号输入时,8位分辨率时的电压精度为19.53mV,ADC0832的输入电压是0-5V。
如果作为由IN-与IN+输入时,可以将电压值设定在一个较大的范围之内,从而提高转换宽度。
值得注意的是,在进行IN-与IN+的输入时,如果IN+的电压小于IN-的电压则转换后的数据结果始终为00H。
表2.2多路寻址:
ADC0832单端多路方式
多路寻址
通道
SGL/DIF
ODD/SIGN
0
1
1
0
+
1
1
+
表2.3多路寻址:
ADC0832差分多路方式
多路寻址
通道
SGL/DIF
ODD/SIGN
0
1
0
0
+
—
0
1
—
+
图2.3ADC0832时序图
ADC0832时序如图2.3所示,当CS由高变低时,ADC0832选通。
在时钟信号是上升沿时,DI端的数据移入ADC0832内部的多路地址移位寄存器。
在第一个时钟脉冲期间,DI为高电平,表示启动位,紧接着输入两位配置位。
当输入启动位和配置位后,选通输入模拟控制通道,转换开始。
转换开始后,经过一个时钟周期延接着在第一个时钟周期的延迟,以达到使选定通道稳定的目的。
到第3个时钟脉冲的下降沿之后DI端的输入电平就失去了输入作用,此后DO/DI端则开始依靠数据输出端DO进行转换数据的读取。
从第4个时钟脉冲下降开始由DO端输出转换数据最高位data7,随着每一个时钟脉冲下沉,DO端输出下一位数据,直到第11个脉冲时输出最低位数据data0,一个字节的数据输出结束。
反过来从此位开始输出下一个相反字节的数据,即从第11个字节的下降沿输出data0,随后依次输出8位数据,到第19个脉冲时数据输出结束。
这也标志着一次A/D转换结束了。
最后将CS置高电平使芯片禁用,然后直接将转换过的数据进行处理就可以了。
若要再进行一次AD转换,片选信号CS必须再次从高向低跳变,然后后面再输入启动位和配置位。
二.3STC89C52RC单片机
STC系列单片机芯片是由STMicroelectronics公司生产,并有宏晶公司做为大陆代理商。
STMicroelectronics(意法半导体公司)是1987年6月位于意大利的SGS微电子公司和位于法国的汤姆逊微电子公司合并后产生的。
1998年5月,公司由原来的SGS汤姆逊(SGSTHOMSON)微电子公司改名为意法半导体公司(STMicroelectronics),简称ST公司。
STC89C52是一种带8K字节闪烁可擦除可编程只读存储器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的高性能、低电压的微处理器,俗称单片机。
单片机引脚电路如图2.4所示,实物如下图2.5所示:
图2.4单片机引脚电路
图2.5单片机STC89C52实物图
STC89C52RC可以代替AT89C51,速度更快,功能更强,价格更低,寿命更长。
STC89C52RC的内核与AT51系列单片机一样,即引脚排列与外形相同。
管脚说明如下:
GND:
地线。
VCC:
电源输入端,接+5V电源。
P0口:
8位漏级开路双向I/O口,名称为P0.0—P0.7。
每个引脚可吸收8个TTL门电流。
P0能够当做外部程序数据存储器使用,它可以被定义为数据/地址的第八位。
在FIASH编程过程中,P0口被当作原码输入口,在FIASH进行校验时,P0口输出原码,此时的P0外部必须被拉高。
P1口:
带内部上拉电阻的8位双向I/O口,名称为P1.0—P1.7。
P1口缓冲器能接收输出4个TTL门电流。
P1口管脚写入“1”时,其管脚被内部上拉电阻拉至高电平时,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉电阻的原因。
在FLASH校验和编程时,P1口被用作第八位地址接收端。
P2口:
带内部上拉电阻的8位双向I/O口,名称为P2.0—P2.7。
P2口缓冲器可接收输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉至高电平时,可用为输入。
P2口的管脚被外部拉至低电平时,将输出电流。
这是由于内部上拉电阻的原因。
P2口当做16位地址外部数据存储器或作外部程序存储器进行存取时,P2口输出地址的高八位在写入地址“1”时,利用内部上拉电阻优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH校验和编程时接收高八位控制信号和地址信号。
P3口:
带内部上拉电阻的双向I/O口,名称为P3.0—P3.7。
可接收输出4个TTL门电流。
当P3口被写入“1”后,它们被内部上拉电阻拉至高电平,并用作输入。
作为输入,由于外部电阻下拉至低电平,P3口将输出电流,这是由于上拉电阻的原因。
在校验和编程时,P3口可接收某些控制信号。
具体的P3口功能,如表2.4所示。
ALE/PROG:
地址锁存允许信号。
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址。
在flash编程时,其用于输入编程脉冲。
一般情况下,ALE端以振荡器频率的1/6为频率周期输出正脉冲信号。
因此它可用于定时目的或用作对外部输出的脉冲。
值得注意的是,每当用作外部数据存储器时,将跳过一个ALE脉冲。
若想禁止ALE的输出,可在SFR8EH地址上置0,此时,ALE只有在执行MOVC,MOVX指令时ALE才起作用。
反之,该引脚被稍微拉高。
如果微处理器在外部执行状态ALE禁止,则置位无效。
表2.4P3口的特殊功能
引脚
替代功能
说明
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
外部RAM写选通端
P3.7
RD
外部RAM读选通端
EA/VPP:
程序存储器的内外部选通引脚。
接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
当EA接低电平时,则在此期间为外部程序存储器(0000H-FFFFH)读指令,注意当加密方式“1”时,EA将内部锁定为RESET;当EA端接高电平时,此期间为内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
RST:
复位输入端。
引脚上出现2个机器周期的高电平时,将使单片机复位。
PSEN:
外部程序存储器的读选通信号。
在由外部程序存储器取址期间,每个机器周期PSEN两次有效。
但在访问外部数据存储器时,这两次有效的PSEN信号将消失。
XTAL1:
内部时钟工作电路的输入及反向振荡器的输入。
XTAL2:
反向振荡器的输出。
二.4D/A转换器
本设计采用的D/A转换器是DAC0832。
它是采用CMOS工艺制成的直流输出型8位数/模转换器。
它由模拟开关、倒T型R-2R电阻网络、参考电压VREF和运算放大器四大部分组成。
输入的数字量与输出的模拟量成正比,这就实现了从数字量转换成模拟量的目的。
一个8位D/A转换器有一个模拟输出端和8个输入端(其中每个输入端是8位二进制数的一位)。
输入端有256个不同的二进制组态,输出则为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个可能值。
二.4.1DAC0832引脚功能
DAC0832的引脚如图2.6所示。
图2.6DAC0832引脚
引脚说明:
DI0—DI7:
转换数据输入。
CS:
片选信号(输入),低电平有效。
ILE:
数据锁存允许信号端(输入),高电平有效。
WR1:
第1写信号(输入),低电平有效。
WR1和ILE两个信号控制输入寄存器的控制方式:
当ILE=1和WR1=1时,为输入寄存器锁存方式;当ILE=1和WR1=0时,为输入寄存器直通方式。
WR2:
第2写信号(输入),低电平有效。
XFER:
数据传送控制信号(输入),低电平有效。
XFER和WR2两个信号控制DAC寄存器工作方式:
当WR2=1和XFER=0时,为DAC寄存器锁存方式;当WR2=0和XFER=0时,为DAC寄存器直通方式。
IOUT1:
DAC电流输出级1。
IOUT2:
DAC电流输出级2。
(IOUT1+IOUT2为常数)
Rfb:
反馈电阻端。
DAC0832是电流输出型,为了取得电压输出,需在电压输出端接运算放大器,Rfb即为集成在片内的外接运放的反馈电阻。
Vref:
基准电压(-10到+10V)。
Vcc:
是源电压(+5到+15V)。
DGND:
数字地,可与AGND接在一起使用。
AGND:
模拟地。