1、_计算机控制技术课程设计储水罐液位计算机控制系统设计学生姓名学 号学院名称专业名称指导教师2011年6月7日目 录1.储水罐液位系统设计原理41.1 本设计任务和主要内容41.1.1设计任务41.1.2主要内容42.系统模型建立52.1系统组成52.2系统工作原理52.3系统模型63.硬件选择93.1 液体压力传感器选择93.2水泵选择93.3微控制器的选择103.3.1 80C51电源103.3.2 80C51时钟103.3.3 80C51 控制线103.3.4 80C51 I/O接口113.4 A/D转换器选择114.硬件电路设计134.1 80C51单片机外围电路设计134.1.1 时钟
2、电路134.1.2 复位电路134.2水泵驱动电路设计134.2.1 继电器电路144.2.2 双向晶闸管过零调功调速原理144.2.3过零检测电路154.2.4 双向晶闸管触发电路164.3数码管电路165.系统软件设计175.1 软件设计流程图175.2 软件主函数185.3 软件水泵控制程序186.结论21参考文献22附录23附录123附录330附录432精品资料_1.储水罐液位系统设计原理1.1 本设计任务和主要内容1.1.1设计任务本设计主要研究水箱水位自动控制系统。此系统实现了水位报警,水位实时显示。在2min内达到并稳定在1m水位高度,并且偏差在10%。1.1.2主要内容被控系统
3、为一储水罐。系统如图1-1所示,储水罐内为清水,下部设有出水管,流量记为Q2。储水罐通过水泵将清水池内的清水补入罐内,流量记为Q1,清水池内的水位可视为固定值2米(即在储水罐补水过程中液位不变化)。已知储水罐的截面积A=1平方米,高度H=2米,要求控制目标液位高度为1米。当水箱水位低于1m时,启动水泵,从清水池抽水供给给储水罐;当水箱水位高于1m时水泵自动停止;当水箱水位高于1.8m时外部报警灯自动点亮,手动复位控制系统。 图1-1 储水罐系统精品资料精品资料2.系统模型建立2.1系统组成储水罐液位系统的原理图如图2-1所示。此系统由清水池,储水罐,直流水泵,微控制器,液体压力传感器,A/D转
4、换器等组成。清水池在此设计中属于理想状态,即水位高度不变;直流水泵选用TPH2T6K型号,220V离心式水泵,此水泵工作效率为50/H;微控制器选用Atmel公司生产的89C51单片机;液体压力传感器选用PT500-500液体压力传感器;A/D转换器则选用ADC0808 8位精度转换器。 图2-1 储水罐液位系统的原理图2.2系统工作原理此系统由液体压力传感器测出储水罐液位压力,以020mA电流形式输入到一个125电阻上,A/D转换器采样电阻两端电压,然后输入微控制器80C51,微控制器80C51经过处理判断水位高度进行相应的处理,并控制数码管显示现在水位高度。系统工作流程图如图2-2。 图2
5、-2 储水罐液位系统工作流程图2.3系统模型此系统是一个典型的一阶系统。储水罐相当于一个流体容器,由物质守恒可以得到: (2.1)式中表示流入储水罐的水量; 表示储水罐中保留的水量;表示流出储水罐的水量。假设A是储水罐的横截面积,h为储水罐中水位的高度则(2.1)可写成: (2.2)出水流量取决于储水罐的流量系数,储水罐的液位高度,储水罐的出水口面积,和重力常数。即: (2.3)式中Cd表示储水罐出口的流量系数;a表示储水罐的出水口面积;g表示重力常数(9.8m/s2)。结合(2.2),(2.3)我们能得到 (2.4)假设是个常数则出水流量将达到一个稳态值,水位高度也将能达到一个恒定值。 (2
6、.5)我们假设有个小的扰动值,我们能得到: (2.6)同时液位高度也将会有小的扰动: (2.7)将(2.6)、(2.7)带入(2.4)我们可以得到: (2.8)应用泰勒级数将(2.8)线性化,泰勒级数: (2.9)取泰勒级数第一级得到: (2.10)或者 (2.11)将(2.8)用(2.11)线性化后得到: (2.12)对(2.12)进行拉普拉斯变换,我们可以得到: (2.13)带入数据可得: (2.14)电机的电气方程: (2.15)电机的机械方程: (2.16)式中 表示电机电势系数; 表示电枢电阻; 表示电枢电压; 表示电枢电流; 表示电枢电感; 表示折算到轴上的转动惯量; T表示电动机
7、电磁转矩; 表示负载转矩;将(2.15)、(2.16)式进行拉式变换可以得到转速和输入电压的传递函数: (2.17)电机经验公式: 得出该电机的传递函数为:由上式我们可以得到此液位系统的框图如图2-3 图2-3 储水罐液位系统框图 3.硬件选择3.1 液体压力传感器选择本设计中储水罐的高度液位高度最高为2M,根据,可算出在此设计中最大压强为19.6Kpa。可选择压力传感器量程为020Kpa,最终选用了PT500-500液体压力传感器,PT500-500采用高精度高稳定性电阻应变计做为变送器的感压芯片,选进的贴片工艺,配套带有零点、满量程补偿,温度补偿的高精度和高稳定性放大集成电路。主要技术要求
8、如表3-1所示。表3-1 PT500-500液体压力传感器技术参数技术参数参数值被测介质 气体、液体及蒸气量程-100KPa-20Kpa60 Mpa150 Mpa间任意可选输出020mA(二线制)综合精度0.1%FS(量程60MPa以上)、0.25%FS、0.5%FS供电1236V DC绝缘电阻1000 M/100VDC负载电阻最大800介质温度 -2085、-20150、-20200、-20300(可选)环境温度-2085相对湿度095% RH过载能力150%FS响应时间10mS电气连接不锈钢防水密封端子、四芯航空接插件、赫丝曼接头等此液体压力传感器完全可以满足控制的要求,选择此传感器主要因
9、为:供电要求1236V DC,电压范围广,输出020mA标准电信号,方便A/D采集。3.2水泵选择此设计中应用了TPH2T6K离心式单相交流水泵,其技术参数如表3-2。此水泵采用单相交流电,易于控制,流量50/H=0.83/min,在两分钟内可以达到要求。表3-2 TPH2T6K离心式单相交流水泵技术参数技术参数参数值工作电压220V工作频率50HZ流量50m3/H扬程55m进出口径25cm马达转速2900RPM3.3微控制器的选择此设计采用ATMEL80C51作为控制芯片。它是在MCS-48系列的基础上发展的高性能的8位单片机。所出的系列产品有8051、8031、8751。其代表就是8051
10、。其他系列的单片机都以它为核心,所以本设计采用的核心芯片是8051单片机。CPU是它的核心设备,从功能上看,CPU包括两个部分:运算器和控制器,它执行对输入信号的分析和处理。每片80C51包括:一个8位的微型处理器CPU;128B的片内数据存储器RAM;4KB片内程序存储器ROM;四个8位并行的I/O接口P0-P3,每个接口既可以输入,也可以输出;两个定时器/记数器;五个中断源的中断控制系统;一个全双工UART的串行I/O口;片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许振荡频率是12MHZ。以上各个部分通过内部总线相连接。整个系统电控部分以ATMEL公司的8051为核心芯片
11、,控制信号采集、处理、输出三个过程。这种芯片内置4KROM,因为系统要求控制线较多,如果采用8031外置EPROM程序控制结构,则造成控制线不够,而8051却可以利用P0、P2口作控制总线,大大简化了硬件结构,并可以直接控制LED数据显示,方便现场调试和维护,使整个系统的通用性和智能化得到了很大的提高。现在介绍下在此设计中用到的引脚,引脚图如图3-1所示。单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。3.3.1 80C51电源VCC - 芯片电源,接+5V;VSS - 接地端;3.3.2 80C51时钟XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。3.3.3 8
12、0C51 控制线l ALE/PROG:地址锁存允许/片内EPROM编程脉冲 ALE功能:用来锁存P0口送出的低8位地址 PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。l PSEN:外ROM读选通信号。l RST/VPD:复位/备用电源。 RST(Reset)功能:复位信号输入端。 VPD功能:在Vcc掉电情况下,接备用电源。l EA/Vpp:内外ROM选择/片内EPROM编程电源。 EA功能:内外ROM选择端。 Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。3.3.4 80C51 I/O接口l P0口(39脚32脚):P0.0P
13、0.7统称为P0口。当不接外部存储器与不扩展I/O接口时,它可作为准双向8位输入/输出接口。当接有外部程序存储器或扩展I/O口时,P0口为地址/数据分时复用口。它分时提供8位双向数据总线。l P1口(1脚8脚):P1.0P1.7统称为P1口,可作为准双向I/O接口使用。对于MCS52子系列单片机,P1.0和P1.1还有第2功能:P1.0口用作定时器/计数器2的计数脉冲输入端T2;P1.1用作定时器/计数器2的外部控制端T2EX。对于EPROM编程和进行程序校验时,P0口接收输入的低8位地址。l P2口(21脚28脚):P2.0P2.7统称为P2口,一般可作为准双向I/O接口。当接有外部程序存储
14、器或扩展I/O接口且寻址范围超过256个字节时,P2口用于高8位地址总线送出高8位地址。对于EPROM编程和进行程序校验时,P2口接收输入的8位地址。l P3口(10脚17脚):P3.0P3.7统称为P3口。它为双功能口,可以作为一般的准双向I/O接口,也可以将每1位用于第2功能,而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。 图3-1 80C51单片机引脚图 图3-2 ADC0808引脚图 3.4 A/D转换器选择本设计采用ADC0808作为A/D转换器,ADC0808是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器
15、,可以和单片机直接接口。ADC0808转换器引脚图如图3-2所示ADC0808转换器引脚介绍:l IN0IN7:8路模拟量输入端。 l OUT1OUT8:8位数字量输出端。l AL::地址锁存允许信号,输入,高电平有效。l START: AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0808复位,下降沿启动A/D转换)。 l EOC:AD转换结束信号,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 l OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 l CLK:时钟脉冲输入端。要
16、求时钟频率不高于640KHZ。 l VREF(+)和VREF(-):参考电压输入端。l Vcc:主电源输入端5V。l GND:接地。l ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路,通道选择表如表3-3所示。l 注意事项:输出端out8为最低位out1为最高位,与单片机连接是要注意。 表3-3 通道选择ADDCADDBADDA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7 4.硬件电路设计4.1 80C51单片机外围电路设计4.1.1 时钟电路80C51用内部振荡电路,这时需要XTAL1、XTAL2来外接
17、石英晶振和微调电容,如图4-1所示。外接石英晶振为12MHZ,两个电容为30PF为起振电容。 图4-1 80C51外部时钟电路4.1.2 复位电路80C51单片机有一个复位引脚RST,高电平有效。在时钟电路工作以后,当外部电路使得RST端出现两个机器周期(24个时钟周期)以上的高电平,系统内部复位。复位方式有两种:上电复位和按钮复位。本设计选用按钮复位,因为遇到特殊情况系统出错,可以及时复位保证系统损失减到最低。复位电路如图4-2所示。 图4-2 80C51按钮复位电路 4.2水泵驱动电路设计4.2.1 继电器电路因为本设计中用到的是单相交流水泵用的220V交流电属于强电范围,不能直接与单片机
18、连接所以采用了继电器来充当开关。继电器电路如图4-3所示。继电器的触发电路应用了光耦隔离,当单片机的P2.2口输出控制低电平时,光耦输入端导通,使得光耦内部三极管导通,经过R4,R3电阻分压后使得Q1基极电压变高,使得Q1导通,从而使得继电器工作。其中D1是为了消耗继电器中线圈中掉电后的剩余电流。图4-3 继电器开关电路4.2.2 双向晶闸管过零调功调速原理本设计中应用双向晶闸管对水泵进行调速控制,根据 (4.1)式中P表示电功率KW;T表示外部阻力矩Nm;表示角速度rads-1。当外部情况不变即T保持不变时,在规定时间内电功率的变化将导致角速度的改变,因此调电功就可达到调速的目的。可控硅过零
19、控制波形见图4-5。可以看出,过零调功通过的工作电压是完整的正弦波形,过零导通且过零截止。过零调功方式就是通过在给定的时间内改变加在负载上的交流正弦波个数来调节负载功率的一种控制方法。图4-5 双向晶闸管过零控制信号波形图4.2.3过零检测电路过零检测电路的最终目标是实现当50HZ的交流电压通过零点时取出其脉冲。本设计中用两个光耦实现脉冲的检测,如图4-6所示。交流电源经R7后加到两个反并联的二极管上,在交流电源的正、负半周,U2中二极管和U8中二极管轮流导通,从而使 U1中三极管和U8中三极管也轮流导通,在导通期间光耦的5号输出引脚输出低电平,只有在交流电源过零的瞬间,两个二极管均截止,5号
20、引脚输出高电平,因此5号引脚得到周期为10ms的脉冲信号,再将此信号通过7407逻辑门进行整流,从而得到图4-5中过零脉冲。电路总R7的大小选取与索取的光耦触发电流有关,本设计中采用600电阻。图4-6 过零检测电路图4.2.4 双向晶闸管触发电路本设计中应用了光耦对双向晶闸管进行驱动,电路如图4-7所示。此电路的工作原理是:单片机响应用户的参数设置,在 I/O口输出一个高电平,经反向器反向后,送出一个低电平,使光电耦合器导通,同时触发双向可控硅,使工作电路导通工作。R5为触发限流电阻,R6为双向晶闸管门极电阻,防止误触发,提高抗干扰能力。在本设计中负载是水泵属于感性交流负载,这样会使得双向可
21、控硅承受的电压值远远超过电源电压,可能击穿并且烧坏晶闸管,所以双向晶闸管两极间并联一个RC阻容吸收电路 ,实现晶闸管的过电压保护。各个电阻和电容值均为光耦推荐电路中值未加改动。在给定的时间内水泵得到的功率为: (4.2)式中P表示负载得到的功率;n表示给定时间内双向晶闸管导通的正弦波的个数;N表示给定时间内正弦波的总个数;U表示不加双向晶闸管时负载得到的电压有效值;I表示不加双向晶闸管时负载得到的电流有效值。由(4.2)式可以看出只要N,U,I为定值,只要改变n就可以到达调速的目的。图4-7 双向晶闸管触发电路4.3数码管电路本设计中应用了7SEG-MPX2-CC8段式共阴极双数码管,段码引脚
22、接入80C51的P1口,位选两条线分别接单片机的P20,P21口。在本设计中采用了数码管的动态显示,利用了人的视觉暂留效应。5.系统软件设计5.1 软件设计流程图本系统程序主要有AD转换模块、数码管显示模块、PI调节模块、报警灯控制模块、电机控制模块组成。工作流程如图5-1所示。图5-1 主程序工作流程图5.2 软件主函数根据流程图设计出软件的主程序如下:void main() ik=0;e1=0;kp=2;ki=4;initdingshi(); /中断初始化st=0;while(1) ad();/AD初始化if(getdata=230) /判断是否水位超过1.8米如果超过 /打开报警灯否则关
23、闭报警灯 lamp=0; kg=0; else lamp=1; if(getdata127)/判断数位是否低于1米如果低于打开继电器, kg=0;/并设定双向晶闸管导通次数EX1=1;/外部中断1允许位打开y=100-(100*uk)/127; elsekg=1; 5.3 软件水泵控制程序水泵控制程序是在外部中断1、定时器0共同配合下进行的,他们实现了在1秒内控制通过双向晶闸管半波个数,从而精确控制水泵转速。外部中断1每10MS触发一次,而定时器0要定时1S后才执行任务,所以时序问题很重要。时序流程图如图5-2所示。具体程序如下: void dingshi() interrupt 1/定时器0
24、定时50MS中断程序TH0=(65536-50000)/256;TL0=(65536-50000)%256; w+;while(w=20)/当到1S时打开外部中断1EX1=1;w=0; void waibu() interrupt 2 /外部中断1,产生双向晶闸管触发脉冲,打开定时器0TR0=1;ET0=1;chufa=1;delay(8);chufa=0;delay(8); x+; if(x=y)/当过零脉冲到达调节数时关掉外部中断1并/关闭晶闸管触发脉冲 chufa=1;x=0;EX1=0; 图5-2 中断时序流程图6.结论本系统主要介绍了水体的液位检测控制,介绍了8051单片机在液位控制
25、系统中的应用,介绍了它们的引脚和在系统中的电路图,本设计还采用了液体压力传感器来对液位的信号采集,利用数码管来进行信号的输出显示,我设计的硬件系统的结构简化,系统精度高,具有良好的人机交互功能,并设有液位报警灯,有问题立即就能发现,减小损失。通过自动调节控制液位并实现水体的液位报警。液位控制在设定值上正常运行不需要人工干预,操作人员劳动强度小。采用单片机设计出的工业水位控制器,能够针对水位的不同状态和不同外界条件进行控制,水位运行稳定、控制品质良好、控制效果明显改善;同时大大提高了控制系统的抗干扰能力,保证了工业水体液位方面作业的稳定运行。控制装置具有成本低、抗干扰能力强、控制性能好等优点,且
26、系统硬、软件维护简单方便。本系统采用双向晶闸管控制水泵,电路简单,实用性强,控制精确。本设计在双向晶闸管驱动电路方面准备用MOC3041过零保护光耦合器,最终由于在PROTUES中仿真一直报错,最终没有找到解决办法,最终用了普通的NPN型光耦合器代替,增加了双向晶闸管的工作负担。参考文献1 John Wiley &Sons,LtdMicrocontroller Based Applied Digital Control MThe Atrium, Southern Gate, Chichester,West Sussex PO19 8SQ, EnglandJohn Wiley & Sons Lt
27、d.20062 谢维成,杨加国单片机原理与应用及C51程序设计 M第二版北京北京国马印刷厂2009-73 樊月珍江发潮基于AT89C51的交流电机调速控制系统设计EB/OL 北京林业大学工学院网站 2008 2011-6.4 胡寿松.自动控制原理 M.第五版.北京.科学出版社.2007 . 5 余孟尝.数字电子技术基础简明教程 M.第三版.北京.高等教育出版社.2009. 附录附录1系统程序:#include#include#include#define uchar unsigned char#define uint unsigned intsbit w1=P20; /数码管位选1sbit w
28、2=P21; /数码管位选2sbit st=P30; /ADC0808启动信号sbit eoc=P31; /ADC0808转换标志位sbit dian=P17;/数码管点的控制I/O口sbit kg=P22; /继电器控制位sbit chufa=P23; /双向晶闸管触发控制位sbit lamp=P24; /报警灯控制位uchar kp,ki,uk,pk,ik; /PID系数定义uint getdata; uint temp; uint qd=127; /1M位置float e,e1,e2,yk; /PID中间量int zkb,w=0,t=0,p=0,x=0,y=20; /变量定义uchar
29、dispbuf3=0,0,0; /数码管缓冲数组uchar code table= /段码0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void delay(uchar i) /1us定时while(i-)_nop_();void led();void pi();void ad ();void initdingshi();void main() ik=0;e1=0;kp=0.8;ki=1.5; initdingshi(); /中断初始化st=0;while(1) ad();/AD初
30、始化if(getdata=230) /判断是否水位超过1.8米如果超过/打开报警灯否则关闭报警灯 lamp=0;kg=0;elselamp=1;if(getdata100);y=100;elsekg=1; void ad () /AD初始化子程序 if(p=5)/每25MS进行采集一次 st=1;/开启AD delay(1);/满足触发时间 st=0; while(eoc=0);/等待采集完成delay(1);getdata=P0;/采集数据存到变量中temp=(getdata*4/51);/将数据进行转换dispbuf1=temp/10;dispbuf0=temp%10;p=0;/将计时变量
31、清零 pi();/PI处理 led();/数码管显示 void initdingshi()/中断初始化程序TMOD=0x11;/定时器1,定时器0选择16位定时方式IT1=1;/外部中断1为边沿触发方式 TH0=(65536-50000)/256;/定时器0定时初始化50MS TL0=(65536-50000)%256;TH1=(65536-5000)/256;/定时器1定时初始化5MSTL1=(65536-5000)%256;TR1=1;/启动定时器1EA=1;/中断打开ET1=1;/定时器1溢出中断允许位void led()/数码管显示子程序P1=tabledispbuf1;w1=0;w2
32、=1;dian=1;delay(5);w1=1;w2=1;P1=tabledispbuf0;w1=1;w2=0;dian=0;delay(5);w1=1;w2=1;void pi()/PI调节器程序e=qd-getdata;/误差pk=kp*e;ik=ki*e+e1;uk=pk+ik;e1=ik;void dingshi() interrupt 1/定时器0定时50MS中断程序TH0=(65536-50000)/256;TL0=(65536-50000)%256;w+;while(w=20)/当到1S时打开外部中断1EX1=1;w=0; void dingshi2() interrupt 3/
33、定时器1定时5MS中断程序TH1=(65536-5000)/256;TL1=(65536-5000)%256;p+;void waibu() interrupt 2/外部中断1,产生双向晶闸管触发脉冲,打开定时器0TR0=1;ET0=1;chufa=1;delay(8);chufa=0;delay(8); x+;if(x=y)/当过零脉冲到达调节数时关掉外部中断1并关闭晶闸管触发脉冲 chufa=1;x=0;EX1=0; 精品资料附录2储水罐液位计算机控制系统设计电路图附录3Protues仿真结果(用灯泡代替水泵) 图A 当水位高于1.8米报警灯亮水泵不工作 图B 水位低于1.8米报警灯熄灭水泵不工作 图C 水位低于1米水泵工作图D过零检测电路产生过零脉冲 附录4将此系统传递函数应用matlab simulink 进行仿真可确定PI调节系数图E matlab simulink仿真图F 仿真结果Welcome ToDownload !欢迎您的下载,资料仅供参考!