计算机控制技术部课程设计储水罐液位控制系统设计.docx
《计算机控制技术部课程设计储水罐液位控制系统设计.docx》由会员分享,可在线阅读,更多相关《计算机控制技术部课程设计储水罐液位控制系统设计.docx(22页珍藏版)》请在冰点文库上搜索。
计算机控制技术部课程设计储水罐液位控制系统设计
计算机控制技术课程设计
储水罐液位计算机控制系统设计
学生姓名
学号
学院名称
专业名称
指导教师
2010年
6月
8日
目录
1课程设计说明1
1.1题目说明1
1.2设计要求1
2控制系统结构框图与工作原理1
2.1控制系统结构框图1
2.2工作原理2
3控制系统数学模型与总体控制方案2
3.1储水槽数学模型2
3.2D/A转换器数学型3
3.3系统传递函数结构框图4
3.3系统总体方案·······························································································4
4传感器与执行机构选型设计····································································4
4.1液位传感器选型·····························································································4
4.1.1液位传感器简介·························································································4
4.1.2液位传感器工作原理···················································································4
4.1.3液位传感器选型···························································································5
4.2水泵选型·······································································································5
5控制器与硬件电路的设计·····················································································6
5.1控制器总体方案设计······················································································6
5.2硬件电路的设计····························································································7
5.2.1振荡电路·································································································7
5.2.2复位电路·································································································7
5.2.3数码管显示电路························································································8
5.2.4A/D转换电路····························································································8
5.2.5电机驱动电路···························································································9
6软件设计···········································································································11
6.1软件设计模块·······························································································11
6.1.2软件设计模块···························································································11
6.1.2PI算法····································································································11
6.2软件设计流程图····························································································12
结论··················································································································13
参考文献············································································································14
附录··················································································································15
附录1·············································································································15
附录2············································································································15
1课程设计说明
1.1题目说明
被控系统为一储水罐。
系统如图1-1所示,储水罐内为清水,下部设有出水管,流量记为Q2。
储水罐通过水泵将清水池内的清水补入罐内,流量记为Q1,清水池内的水位可视为固定值2米(即在储水罐补水过程中液位不变化)。
已知储水罐的截面积A=1平方米,高度H=2米,要求控制目标液位高度为1米。
图1-1
1.2设计要求
1要求控制系统调节时间ts≤2分钟,超调量≤10%。
2设计人机接口实时显示。
2控制系统结构框图与工作原理
2.1系统结构框图
图2-1中的控制器为PID控制器,其功能由计算计算机实现。
计算机有强大的运算,逻辑判断和记忆功能。
当给初始量和反馈量后,依照偏差值进行PID控制算法的运算,计算结果经DA转换器转换为模拟信号传送给执行机构完成对系统的控制。
2.2工作原理
如图1-1所示打开电源水泵工作,将水抽入储水罐中,进水流量为
水槽液位高度上升,水槽底部有出水槽,水以流量
的速度流出。
水槽中有一个液位控制器测量液位懂的高度,液位传感器将液位高度经AD转换器传至计算机与给定液位高度比较得到偏差,经控制算法计算出相应的控制值,控制信号经DA转换器转换为模拟信号控制水泵抽水,从而达到给定的高度。
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)
由条件已知
;
假设:
;
;
则
式(3-6)
3.2D/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控制程序的开发来控制各种设备。
MCGS组态软件用于生成和运行水塔监控的组态工程文件。
完成构建的PLC控制系统的监控功能。
方案二:
基于单片机的液位控制系统
在液位控制系统的设计中采用以AT89C51单片机为核心,数据采集用8位ADC0809,输出控制数据采用8位D/A转换芯片DAC0832用来把计算机结果转换为相应模拟信号再通过放大器把电流转换为电压信号控制水泵,达到对液位的控制。
以上两种方案均能实现对液位高度的控制,结合本学期所学课程(单片机与计算机控制技术),采用方案二比较现实。
4传感器与执行机构的选型设计
4.1液位传感器的选型
4.1.1液位传感器简介
液位传感器是一种测量液位的压力传感器.静压投入式液位变送器(液位计)是基于所测液体静压与该液体的高度成比例的原理,采用国外先进的隔离型扩散硅敏感原件或陶瓷电容压力敏感传感器,将静压转换为电信号,再经过温度补偿和线性修正,转化成标准电信号(一般为4~20mA/1~5VDC)。
静压投入式液位变送器精巧的结构,简单的调校和灵活的安装方式为用户轻松地使用提供了方便。
4~20mA、0~5v、0~10mA等标准信号输出方式由用户根据需要任选。
4.1.2液位传感器工作原理
用静压测量原理:
当液位变送器投入到被测液体中某一深度时,传感器迎液面受到的压力公式为:
Ρ=ρ.g.H+Po
式(4-1)
式中:
P:
变送器迎液面所受压力;
ρ:
被测液体密度;
g:
当地重力加速度;
Po:
液面上大气压;
H:
变送器投入液体的深度;
通过导气不锈钢将液体的压力引入到传感器的正压腔,再将液面上的大气压Po与传感器的负压腔连,以抵消传感器背面的Po使传感器测得压力为:
ρ.g.H,显然,通过测取压力P,可以得到液位深度。
4.1.3液位传感器选型
根据设计要求液位目标高度为1m,故传感器量程不能选择太大,精度要高。
查阅相关资料选择URS-100投入式液位变送器
结构原理:
URS-100系列静压式液位计变送器是通过测量液体高度而产生的静压力来测定液体液位的。
当把液位变送器的传感器部分投入到液体介质中时,传感器把液体的静压转换为电压信号,该电压信号经放大后转化成4~20mADC标准电流信号输出。
主要技术参数
测量范围:
0~1m;0~100m
输出信号:
4~20mADC二线制
精确度:
0.2级,可提供0.1级
介质温度:
-40~100℃
环境温度:
-30~80℃
环境温度影响:
在温度外偿范围内,零位变化量≤±0.3%/10℃
量程变化量:
≤±0.2%/10℃
电源电压:
24VDC,按负载特性,电源电压可达12~40VDC
电源电压影响:
在规定的电压范围内,输出变换量<0.01%/1V
射频干扰影响:
当变送器正常安装及罩壳盖紧时,对射频频率为27~1000MHz之间和场强30V/m的干扰,输出变化量<0.1%
长期稳定性:
≤±0.3%(6个月)
防爆标志:
本安型:
ExibⅡCT4~T6
隔爆型:
ExdⅡBT4
外壳防爆等级:
IP65
连接形式:
URS-100型-法兰安装:
DN50PN1.0凸面
法兰标准:
HG20598-97
支架安装,卫生快装卡箍:
DN50
URS-100S型-螺纹安装:
G3/4〞
4.2水泵选型
根据设计要求控制系统调节时间ts≤2分钟,水泵的选型要考虑调节时间的限制。
由于储水槽到达液位高度时水槽中水的容量为1000L.
查阅相关资料选择WKA1300型水泵,参数如下:
表4-1
电压
电流
流量
最大抽水高度
处于最大抽水高度时泵的抽水速率(L/min)
12V
<400mA
1.3L/min
3m
>500
24V
<240mA
1.3L/min
3m
>500
图4-1水泵实物图
5控制器与硬件电路的设计
5.1控制器总体方案设计
本液位控制系统采用以MCS51单片机为主控芯片的控制器,外扩A/D传感器采集液位传感器数据,通过数码管显示电路显示液位高度,采用一定的控制算法与标准液位高度进行比较,利用PWM波对水泵电机进行转速控制从而调节液位高度。
控制器结构结构图如图5-1所示:
图5-1
注:
1单片机的P0口控制数码管显示液位高度;
2单片机得P1口用于采集A/D信号;
3单片机的P2.0-P2.2口用于控制电机驱动电路;
5.2硬件电路的设计
5.2.1振荡电路
单片机时钟信号有两种方式得到:
内部振荡方式和外部振荡方式。
引脚XTAL1和XTAL2引脚上外接晶振构成了内部振荡方式单片机内部有一个高增益反相放大器,当外接晶振后就构成了自激振荡器并产生振荡时钟脉冲,本控制器采用12MHZ的晶振其电路图如图5-2:
图5-2
5.2.2复位电路
单片机复位电路有上电复位和开关复位两种方式,本控制器采用开关复位,其电路图如图5-3所示:
图5-3
如图按下复位开关K后由于电容C1的充电和反相门的作用,使REST持续一段时间的高电平。
当单片机已在运行当中时,按下复位键K后松开,也能使REST为一段时间的高电平,从而实现上电或开关复位的操作。
5.2.3数码管显示电路
数码管显示电路用来显示液位高度,本控制器的设计方法是用两片74HC573锁存芯片接单片机的P0口控制数码管的位选和断选,这样做可以节省单片机的I/O口,其电路图如图5-4所示:
图5-4
5.2.4A/D转换电路
A/D转换电路主要是用来采集传感器的信号,将传感器采集的液位高度模拟信号转换为数字信号传送给单片机做相关处理。
本控制器采用ADC0804芯片,其连接电路如图5-5:
图5-5
根据ADC0804的数据手册连接电路,引脚VIN+,VIN-作为模拟信号的输入端,DB0-DB7将转换后的数字信号输入单片机的P1口对数据做相关处理。
5.2.5电机驱动电路
本课程设计所选水泵为WKA1300型微型水泵,此水泵为直流控制,相当于一个直流电机;用单片机控制直流电路通常是通过I/O口输出PWM波来控制直流电机的转速,正转,反转。
目前流行的直流电机驱动电路是H型全桥式电路,这种驱动电路可以很方便实现直流电机的四象限运行,分别对应正转、正转制动、反转、反转制动。
它的基本原理图如图5-6所示。
全桥式驱动电路的4只开关管都工作在斩波状态,S1、S2为一组,S3、S4为另一组,两组的状态互补,一组导通则另一组必须关断。
当S1、S2导通时,S3、S4关断,电机两端加正向电压,可以实现电机的正转或反转制动;当S3、S4导通时,S1、S2关断,电机两端为反向电压,电机反转或正转制动。
图5-6
由于H桥搭建比较繁琐,有集成了H桥的驱动芯片用来控制电机。
本课程设计采用的是L293D芯片采用16引脚DIP封装,其内部集成了双极型H-桥电路,所有的开量都做成n型。
这种双极型脉冲调宽方式具有很多优点,如电流连续;电机可四角限运行;电机停止时有微振电流,起到“动力润滑”作用,消除正反向时的静摩擦死区:
低速平稳性好等。
L293D通过内部逻辑生成使能信号。
H-桥电路的输入量可以用来设置马达转动方向,使能信号可以用于脉宽调整(PWM)。
另外,L293D将2个H-桥电路集成到1片芯片上,这就意味着用1片芯片可以同时控制2个电机。
每1个电机需要3个控制信号EN12、IN1、IN2,其中EN12是使能信号,IN1、IN2为电机转动方向控制信号,IN1、IN2分别为1,0时,电机正转,反之,电机反转。
选用一路PWM连接EN12引脚,通过调整PWM的占空比可以调整电机的转速。
选择一路I/O口,经反向器74HC14分别接IN1和IN2引脚,控制电机的正反转。
驱动电路如图5-7:
图5-7
6软件设计
6.1软件设计概要
6.1.1软件设计模块:
本课程设计软件设计包括以下几部分:
1:
A/D数据采集模块;
2:
数码管液位高度显示模块:
3:
PI算法模块
6.1.2PI算法
PID算法是目前比较流行的对误差控制的算法其公式入式6-1
EK=Kp*e+Ki*∫edt+Kd*(de/dt)
式(6-1)
Kp:
比例系数;
Ki:
积分系数;
Kd:
微分系数;
评价一个控制系统是否优越,有三个指标:
快、稳、准。
所谓快,就是要使压力能快速地达到“命令值”(不知道你的系统要求多少时间)所谓稳,就是要压力稳定不波动或波动量小(不知道你的系统允许多大波动)所谓准,就是要求“命令值”与“输出值”之间的误差e小(不知道你的系统允许多大误差)对于你的系统来说,要求“快”的话,可以增大Kp、Ki值要求“准”的话,可以增大Ki值要求“稳”的话,可以增大Kd值,可以减少压力波动仔细分析可以得知:
这三个指标是相互矛盾的。
如果太“快”,可能导致不“稳”;如果太“稳”,可能导致不“快”;因此合理的控制KpKiKd的值,能较好的改善控制系统。
本课程设计采用比例-积分控制,即PI控制,通过一定的算法,来改变PWM波形,控制电机的转速,以达到对储水罐液位高度的控制。
6.2软件设计流程图
NO
YES
结论
本储水槽液位控制系统设计基于MCS51单片机系统而设计的,利用单片机强大的功能和方便通信接口,实现水位检测、电机速度控制,采用PI调节误差,进一步对液位控制系统优化。
考察了对《自动控制原理》,《计算机控制技术》,《单片机原理及应用》这几门课程的应用。
同时硬件电路与软件程序的设计是对液位控制系统的应用支撑。
参考文献
[1]胡寿松.自动控制原理[M].北京科学出版社,2007:
38
[2]谢维成等.单片机原理与应用及C51程序设计[M].清华大学出版社,2006.
[3]D.Ibrahim.MicrocontrollerBasedAppliedDigitalControl[M].JohnWiley&Sons.2006.
附录
附录1:
控制系统电路图
附录2:
程序
#include
#defineunitunsignedint
#defineuncharunsignedchar
unitshu,num,i,j,a,EN,zkb,k,t;
uncharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
sbitdula=P2^6;
sbitwela=P2^7;
sbitadwr=P3^6;/**A/D的WR端口**/
sbitadrd=P3^7;/**A/D的RD端口**/
sbitcs=P3^2;/**A/D的片选信号端口**/
sbitEN=P2^2;
voidpi();
voiddelay(unitz)/**延时**/
{
unitx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voiddisplay(unitshu)/**数码管显示**/
{
i=shu%10;
j=shu/10;
wela=1;
P0=0xfd;
wela=0;
dula=1;
P0=table[i];
delay
(1);
wela=1;
P0=0xfc;
wela=0;
dula=table[j];
}
voidmain()
{
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;
floatEK,EK1,EK2,YK;/**EK:
设定值与实测值之差
EK1:
上次EK的值
EK2:
EK-EK1的差
YK输出的数据**/
while
(1)
{
adwr=1;
_nop_();/**延时一个机器周期**/
adwr=0;
_nop_();
adwr=1;
for(a=10;a>0;a--)
{
display(shu);
}
P1=0xff;/**读取P1口之前先全写1**/
adrd=1;/**选通AD**/
_nop_();
adrd=0;/**AD时能**/
_nop_();
shu=P1;/**AD数据读取赋给P1口**/
adrd=1;
}
pi();
}
voidtimer0()interrupt1/**用