《储水罐液位计算机控制系统设计(共23页).doc》由会员分享,可在线阅读,更多相关《储水罐液位计算机控制系统设计(共23页).doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上计算机控制技术课程设计储水罐液位计算机控制系统设计学生姓名学 号学院名称信电工程学院专业名称电气工程及其自动化指导教师2010年6月8日 专心-专注-专业目 录112.2工作原理223.2 D/A转换器数学型33.3 系统传递函数结构框图4 3.3系统总体方案44传感器与执行机构选型设计4 4.1液位传感器选型4 4.1.1液位传感器简介4 4.1.2液位传感器工作原理4 4.1.3液位传感器选型5 4.2水泵选型55控制器与硬件电路的设计6 5.1控制器总体方案设计6 5.2硬件电路的设计7 5.2.1振荡电路7 5.2.2复位电路7 5.2.3数码管显示电路8 5
2、.2.4A/D转换电路8 5.2.5电机驱动电路96软件设计11 6.1软件设计模块11 6.1.2软件设计模块11 6.1.2PI算法11 6.2软件设计流程图12结论13参考文献14附录15附录115附录2151 课程设计说明1.1 题目说明被控系统为一储水罐。系统如图1-1所示,储水罐内为清水,下部设有出水管,流量记为Q2。储水罐通过水泵将清水池内的清水补入罐内,流量记为Q1,清水池内的水位可视为固定值2米(即在储水罐补水过程中液位不变化)。已知储水罐的截面积A=1平方米,高度H=2米,要求控制目标液位高度为1米。 图1-11.2设计要求1要求控制系统调节时间ts2分钟,超调量10%。2
3、 设计人机接口实时显示。 2 控制系统结构框图与工作原理2.1系统结构框图 图2-1中的控制器为PID控制器,其功能由计算计算机实现。计算机有强大的运算,逻辑判断和记忆功能。当给初始量和反馈量后,依照偏差值进行PID控制算法的运算,计算结果经DA转换器转换为模拟信号传送给执行机构完成对系统的控制。2.2 工作原理如图1-1所示打开电源水泵工作,将水抽入储水罐中,进水流量为, 水槽液位高度上升,水槽底部有出水槽,水以流量 的速度流出。水槽中有一个液位控制器测量液位懂的高度,液位传感器将液位高度经AD转换器传至计算机与给定液位高度比较得到偏差,经控制算法计算出相应的控制值,控制信号经DA转换器转换
4、为模拟信号控制水泵抽水,从而达到给定的高度。3控制系统数学模型与总体控制方案3.1储水槽数学模型储水罐流入量与流出量之差可用式3-1表示。 式(3-1)式中 表示输入水流量的增量; 表示输出水流量的增量; 表示储水罐液体贮存量; 表示储水罐横截面面积; 表示储水罐液位高度的增量;输出水量增量可由式3-2表示 式(3-2) 式中 表示流量系数; 表示出水管的开度变化;流出量与液位高度的关系式为 这是一个非线性关系式,可在平衡点 进行线性化,得到液阻表达式 式(3-3) 将式(3-2)和式(3-3)带入式3-2可得 式(3-4) 式中 对式3-4两端进行拉式变换得到储水罐的传递函数为 式(3-5)
5、 由条件已知 ;假设: ; ;则 式(3-6)3.2 D/A转换器的数学模型D/A转换器把离散数字信号转换为连续模拟信号,D/A转换过程可以用零阶保持器取代,查阅相关资料得到零阶保持器的传递函数为: 式(3-7)将该传递函数近似实现: 式(3-8) 式(3-9)3.3系统传递函数结构框图 图3-1注:式中的符号T,K1,K2,K3将在硬件选择这一部分中确定。3.4系统总体方案方案一:基于PLC的液位控制系统PLC控制系统实践环节主要是以可编程序逻辑控制器PLC为核心,以STEP7-Micro/WIN软件为开发平台,以实验台上的各种设备为对象使用梯形图语言进行PLC控制程序的开发来控制各种设备。
6、MCGS组态软件用于生成和运行水塔监控的组态工程文件。完成构建的PLC控制系统的监控功能。方案二:基于单片机的液位控制系统在液位控制系统的设计中采用以AT89C51单片机为核心,数据采集用8位ADC0809,输出控制数据采用8位D/A转换芯片DAC0832用来把计算机结果转换为相应模拟信号再通过放大器把电流转换为电压信号控制水泵,达到对液位的控制。以上两种方案均能实现对液位高度的控制,结合本学期所学课程(单片机与计算机控制技术),采用方案二比较现实。4传感器与执行机构的选型设计4.1液位传感器的选型4.1.1液位传感器简介液位传感器是一种测量液位的压力传感器静压投入式液位变送器(液位计)是基于
7、所测液体静压与该液体的高度成比例的原理,采用国外先进的隔离型扩散硅敏感原件或陶瓷电容压力敏感传感器,将静压转换为电信号,再经过温度补偿和线性修正,转化成标准电信号(一般为420mA)。静压投入式液位变送器精巧的结构,简单的调校和灵活的安装方式为用户轻松地使用提供了方便。420mA、 05v、 010mA等标准信号输出方式由用户根据需要任选。4.1.2液位传感器工作原理用静压测量原理:当液位投入到被测液体中某一深度时,传感器迎液面受到的压力公式为: = .g.H +Po式(4-1)式中: P :变送器迎液面所受压力; :被测液体密度 ; g :当地重力加速度 ; Po :液面上大气压 ; H :
8、变送器投入液体的深度;通过导气不锈钢将液体的压力引入到传感器的正压腔,再将液面上的大气压 Po 与传感器的负压腔连,以抵消传感器背面的 Po 使传感器测得压力为: .g.H ,显然 , 通过测取压力 P ,可以得到液位深度。4.1.3液位传感器选型根据设计要求液位目标高度为1m,故传感器量程不能选择太大,精度要高。 查阅相关资料选择URS-100投入式液位变送器结构原理:URS-100系列静压式液位计变送器是通过测量液体高度而产生的静压力来测定液体液位的。当把液位变送器的传感器部分投入到液体介质中时,传感器把液体的静压转换为电压信号,该电压信号经放大后转化成420mADC标准电流信号输出。主要
9、技术参数测量范围:01m;0100m输出信号:420mADC二线制精确度:0.2级,可提供0.1级介质温度:-40100环境温度:-3080环境温度影响:在温度外偿范围内,零位变化量0.3%/10 量程变化量: 0.2%/10电源电压:24VDC,按负载特性,电源电压可达1240VDC电源电压影响:在规定的电压范围内,输出变换量0.01%/1V射频干扰影响:当变送器正常安装及罩壳盖紧时,对射频频率为271000MHz之间和场强30V/m的干扰,输出变化量0.1%长期稳定性:0.3%(6个月)防爆标志:本安型:Ex ib CT4T6隔爆型:Ex d BT4外壳防爆等级:IP65连接形式:URS-
10、100型-法兰安装:DN50 PN1.0凸面法兰标准:HG20598-97支架安装,卫生快装卡箍:DN50URS-100S型-螺纹安装:G3/44.2水泵选型根据设计要求控制系统调节时间ts2分钟,水泵的选型要考虑调节时间的限制。由于储水槽到达液位高度时水槽中水的容量为1000L. 查阅相关资料选择WKA1300型水泵,参数如下: 表4-1电压电流流量最大抽水高度处于最大抽水高度时泵的抽水速率(L/min)12V50024V500 图4-1水泵实物图5控制器与硬件电路的设计5.1控制器总体方案设计本液位控制系统采用以MCS51单片机为主控芯片的控制器,外扩A/D传感器采集液位传感器数据,通过数
11、码管显示电路显示液位高度,采用一定的控制算法与标准液位高度进行比较,利用PWM波对水泵电机进行转速控制从而调节液位高度。控制器结构结构图如图5-1所示: 振荡电路数码管显示电路P0 单片机P2.0-P2.2P1 复位电路液位传感器A/D传感器电机驱动电路 图5-1注:1单片机的P0口控制数码管显示液位高度; 2单片机得P1口用于采集A/D信号;3单片机的P2.0-P2.2口用于控制电机驱动电路;5.2硬件电路的设计5.2.1振荡电路单片机时钟信号有两种方式得到:内部振荡方式和外部振荡方式。引脚XTAL1 和XTAL2引脚上外接晶振构成了内部振荡方式单片机内部有一个高增益反相放大器,当外接晶振后
12、就构成了自激振荡器并产生振荡时钟脉冲,本控制器采用12MHZ的晶振其电路图如图5-2:图5-25.2.2复位电路单片机复位电路有上电复位和开关复位两种方式,本控制器采用开关复位,其电路图如图5-3所示:图5-3如图按下复位开关K后由于电容C1的充电和反相门的作用,使REST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使REST为一段时间的高电平,从而实现上电或开关复位的操作。5.2.3数码管显示电路数码管显示电路用来显示液位高度,本控制器的设计方法是用两片74HC573锁存芯片接单片机的P0口控制数码管的位选和断选,这样做可以节省单片机的I/O口,其电路图如图5-4所
13、示:图5-45.2.4A/D转换电路A/D转换电路主要是用来采集传感器的信号,将传感器采集的液位高度模拟信号转换为数字信号传送给单片机做相关处理。本控制器采用ADC0804芯片,其连接电路如图5-5:图5-5根据ADC0804的数据手册连接电路,引脚VIN+,VIN-作为模拟信号的输入端,DB0-DB7将转换后的数字信号输入单片机的P1口对数据做相关处理。5.2.5电机驱动电路本课程设计所选水泵为WKA1300型微型水泵,此水泵为直流控制,相当于一个直流电机;用单片机控制直流电路通常是通过I/O口输出PWM波来控制直流电机的转速,正转,反转。目前流行的直流电机驱动电路是H型全桥式电路,这种驱动
14、电路可以 很方便实现直流电机的四象限运行,分 别对应正转、正转制动、反转、反转制动。 它的基本原理图如图5-6所示。 全桥式驱动电路的4只开关管都工 作在斩波状态,S1、S2为一组,S3、S4 为另一组,两组的状态互补,一组导通则 另一组必须关断。当S1、S2导通时,S3、 S4关断,电机两端加正向电压,可以实 现电机的正转或反转制动;当S3、S4导 通时,S1、S2关断,电机两端为反向电 压,电机反转或正转制动。图5-6由于H桥搭建比较繁琐,有集成了H桥的驱动芯片用来控制电机。本课程设计采用的是L293D芯片采用16引脚DIP封装,其内部集成了双极型H-桥电路,所有的开量都做成n型。这种双极
15、型脉冲调宽方式具有很多优点,如电流连续;电机可四角限运行;电机停止时有微振电流,起到“动力润滑”作用,消除正反向时的静摩擦死区:低速平稳性好等。L293D通过内部逻辑生成使能信号。H-桥电路的输入量可以用来设置马达转动方向,使能信号可以用于脉宽调整(PWM)。另外,L293D将2个H-桥电路集成到1片芯片上,这就意味着用1片芯片可以同时控制2个电机。每1个电机需要3个控制信号EN12、IN1、IN2,其中EN12是使能信号,IN1、IN2为电机转动方向控制信号,IN1、IN2分别为1,0时,电机正转,反之,电机反转。选用一路PWM连接EN12引脚,通过调整PWM的占空比可以调整电机的转速。选择
16、一路I/O口,经反向器74HC14分别接IN1和IN2引脚,控制电机的正反转。驱动电路如图5-7:图5-76软件设计6.1软件设计概要6.1.1软件设计模块:本课程设计软件设计包括以下几部分:1:A/D数据采集模块;2:数码管液位高度显示模块:3:PI算法模块6.1.2 PI算法PID算法是目前比较流行的对误差控制的算法其公式入式6-1EK=Kp*e + Ki*edt + Kd*(de/dt)式(6-1)Kp:比例系数;Ki:积分系数;Kd:微分系数;评价一个控制系统是否优越,有三个指标:快、稳、准。所谓快,就是要使压力能快速地达到“命令值”(不知道你的系统要求多少时间)所谓稳,就是要压力稳定
17、不波动或波动量小(不知道你的系统允许多大波动)所谓准,就是要求“命令值”与“输出值”之间的误差e小(不知道你的系统允许多大误差)对于你的系统来说,要求“快”的话,可以增大Kp、Ki值 要求“准”的话,可以增大Ki值 要求“稳”的话,可以增大Kd值,可以减少压力波动 仔细分析可以得知:这三个指标是相互矛盾的。 如果太“快”,可能导致不“稳”; 如果太“稳”,可能导致不“快”;因此合理的控制 Kp Ki Kd的值,能较好的改善控制系统。本课程设计采用比例-积分控制,即PI控制,通过一定的算法,来改变PWM波形,控制电机的转速,以达到对储水罐液位高度的控制。6.2软件设计流程图开始 初始化A/D数据
18、采集显当前液位高度设定液位高度计算输入A/D采集数据与设定液位高度的偏差液位有偏差?NOPI调节YES输出控制改变PWM波占空比 结论本储水槽液位控制系统设计基于MCS51单片机系统而设计的,利用单片机强大的功能和方便通信接口,实现水位检测、电机速度控制,采用PI调节误差,进一步对液位控制系统优化。考察了对自动控制原理,计算机控制技术,单片机原理及应用这几门课程的应用。同时硬件电路与软件程序的设计是对液位控制系统的应用支撑。参考文献1 胡寿松.自动控制原理M.北京科学出版社,2007:382 谢维成 等单片机原理与应用及C51程序设计M 清华大学出版社, 2006 3 D.Ibrahim. M
19、icrocontroller Based Applied Digital Control M John Wiley & Sons. 2006附录附录1:控制系统电路图附录2:程序#include#define unit unsigned int#define unchar unsigned charunit shu,num,i,j,a,EN,zkb,k,t;unchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;sbit dula=P26;sbit wel
20、a=P27;sbit adwr=P36; /*A/D的WR端口*/sbit adrd=P37; /*A/D的RD端口*/sbit cs=P32; /*A/D的片选信号端口*/sbit EN=P22;void pi() ;void delay(unit z) /*延时*/unit x,y;for(x=z;x0;x-) for(y=110;y0;y-); void display(unit shu) /*数码管显示*/i=shu%10;j=shu/10;wela=1;P0=0xfd;wela=0;dula=1;P0=tablei;delay(1); wela=1;P0=0xfc;wela=0;du
21、la=tablej;void main()EA=1;TMOD=0x01;ET0=1;TR0=1;TH0=(65536-100)/256; /*每10u产生中断*/TL0=(65536-100)%256;zkb=f(YK); /*占空比与PI调节输出参数关系 */cs=1;delay(50000); /*每隔一定时间读一次AD*/cs=0;float EK,EK1,EK2,YK; /*EK:设定值与实测值之差 EK1:上次EK的值 EK2:EK-EK1的差 YK输出的数据*/ while(1)adwr=1;_nop_(); /*延时一个机器周期*/adwr=0;_nop_();adwr=1; f
22、or(a=10;a0;a-) display(shu); P1=0xff; /*读取P1口之前先全写1*/adrd=1; /*选通AD*/_nop_();adrd=0; /*AD时能*/_nop_();shu=P1; /*AD数据读取赋给P1口*/adrd=1; pi(); void timer0() interrupt 1 /*用定时器中断设置PWM波*/ TH0=(65536-100)/256; TL0=(65536-100)%256;if(+t=zkb*1000) /*设置低电平周期*/EN=0;t=0;else EN=1void pi() /*PI模块*/ EK1=EK; EK=shu-h; /*h为目标液位高度*/ EK2=EK-EK1; YK=KP*EK+KI*EK2; /*PI调节公式,KP比例系数,KI积分系数*/