毕业设计论文基于单片机的流量控制系统Word下载.docx
《毕业设计论文基于单片机的流量控制系统Word下载.docx》由会员分享,可在线阅读,更多相关《毕业设计论文基于单片机的流量控制系统Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
随着计算机技术尤其是单片微型机技术的发展,人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行检测和控制。
PC机具有强大的监控和管理功能,而单片机则具有快速及灵活的控制特点,通过PC机的RS-232串行接口与外部设备进行通信,是许多测控系统中常用的一种流量控制解决方案。
因此如何实现PC机与单片机之间的控制具有非常重要的现实意义。
在天然气工业蓬勃发展的现在,天然气的计量引起了人们的特别关注,因为在天然气的采集、处理、储存、运输和分配过程中,需要数以百万计的流量计,其中有些流量计涉及到的结算金额数字巨大,对测量和控制准确度和可靠性要求特别高。
此外,在环境保护领域,流量测量仪表也扮演着重要角色。
人们为了控制大气污染,必须对污染大气的烟气以及其他温室气体排放量进行监测;
废液和污水的排放,使地表水源和地下水源受到污染,人们必须对废液和污水进行处理,对排放量进行控制。
于是数以百万计的烟气排放点和污水排放口都成了流量测量对象。
同时在科学试验领域,需要大量的流量控制系统进行仿真与试验。
流量计在现代农业、水利建设、生物工程、管道输送、航天航空、军事领域等也都有广泛的应用。
在当今这个水资源比较缺乏的时代通过流量控制系统能更好节省水资源,通过不断的普及这将是未来社会的一笔宝贵的财富。
第一章系统方案
1.1方案整体思路
液体流量控制通常采用电动调节阀实现,近年来,电动调节阀的结构和控制方式发生了很大的变化,随着计算机进入控制领域,以及新型的电力电子功率元器件的不断出现,使采用全控制的开关功率元件进行脉宽调制(pulsewidthmodulation,简称PWM)控制方式得到了广泛的应用。
这种控制方式很容易在单片机中实现,从而为电动调节阀的控制数字化提供了基础。
将偏差的比例(proportion)、积分(integral)、微分(differential)通过线性组合构成数字控制量,构成数字PID控制器,它具有非常强的灵活性,可以根据试验和经验在线调整参数,因此可以得到更好的控制性能。
本系统采用C51系列的89S52单片机为核心,通过设置89S52单片机的定时器产生脉宽可调的PWM波【2】,对阀门电机的输入电压进行调制,实现阀门开度的变化,进而实现了对液体流量的控制。
单片机通过电磁流量计采集实际流量信号,根据该信号对其内部采用数字PID算法对PWM变量的值进行修改,从而达到对流量的闭环精确控制。
1.2实现流程
流量控制系统是一个过程控制系统,在设计的过程中,必须明确它的组成部分。
过程控制系统的组成部分有:
控制器、执行器、被控对象和测量变送单元,其框图如图1所示。
图1流量过程控制组成框图
电磁流量计:
对输出流量进行检测,并与设定值比较,差值作为控制器的输入。
PID控制器:
对差值进行P、I、D运算,输出对应得模拟量控制电机正反转和转速。
直流电机:
根据控制器输出正反转,控制阀门开度增大或减小。
阀门:
直接控制流量的执行机构。
所以,在这个系统的设计中,主要设计以上几个部分。
除此之外,根据题目要求,还要选取合适的控制算法来达到满足系统参数的要求。
具体就是确定控制器的算法和如何控制阀门开度,因为这两部分是实现本系统控制目的的关键。
它们选取的好坏将直接影响着整个系统实现效果的优劣。
1.3控制器算法与PWM波形输出
控制算法是指需执行控制作用的数学表示法。
PWM就是脉冲宽度调制,也就是占空比可变的脉冲波形。
PWM波的产生:
设计采用单片机atmega32产生PWM信号。
atmega32的定时/计数器的PWM模式可以分成快速PWM和频率(相位)调整PWM两大类。
本设计采用快速PWM模式,快速PWM可以的到比较高频率的PWM输出,响应比较快,因此具有很高的实时性。
此时计数器仅工作在单程正向计数方式,计数器的上限值决定PWM的频率,而比较匹配寄存器的值决定了占空比的大小。
流量是一个普通而又重要的物理量,在许多领域里人们需对它进行测量和控制。
本系对流量控制采用PID算法,它具有结构简单、易于理解和实现,且一些高级控制都是以PID为基础改进的。
在工业过程控制中90%以上的控制系统回路具有PID结构,
图2PID控制原理框图
第二章系统硬件设计
2.1总体设计框图及说明
本系统是一个简单的单回路控制系统。
为了实现流量的自动测量和控制,采用了89S52单片机作为系统的控制中心,由数据采集模块检测到的流量信号传入单片机,并根据接收到的数据进行处理和控制运算,同时将数据保存,以便与下一次采样值进行比较,根据系统程序控制,进行PID运算以及PWM输出控制电机转速,最终由CPU控制电机正反转,达到调节流量的目的。
系统还具有键盘设定模块,便于用户与系统之间的对话。
系统的硬件结构较简单,由若干个功能模块组成。
具体结构图图3及说明如下,
图3功能模块结构图
键盘设定:
设定控制系统要求的流量大小。
数据采集:
用滑动变阻器分压模拟流量大小。
接收单片机的控制信号进行正反转和转速调节,带动阀门转动。
2.2部分外部电路设计
2.2.1数码管显示电路
采用四联排共阴极数码管进行显示,具有四位数码管,这四个数码管的段选a、b、c、d、e、f、g分别接在一起,每一个都拥有一个共阴的位选端。
P3口控制数码管的点亮情况。
因为单片机的IO口输出功率有限,需要使用74LS374芯片进行锁存。
此外还用一个电阻R-PACK8来保护LED。
2.2.2直流电机控制电路
直流电机以其良好的线性特性、优异的控制性能等特点成为大多数变速运动控制和闭环位置伺服控制系统的最佳选择。
特别随着计算机在控制领域,高开关频率、全控型第二代电力半导体器件(GTR、GTO、MOSFET、IGBT等)的发展,以及脉宽调制(PWM)直流调速技术的应用,直流电机得到广泛应用。
此试验中我们选择Z2-62直流电机,对于该试验更可以简单易行的实现。
为适应小型直流电机的使用需求,各半导体厂商推出了直流电机控制专用集成电路,构成基于微处理器控制的直流电机伺服系统。
但是,专用集成电路构成的直流电机驱动器的输出功率有限,不适合大功率直流电机驱动需求。
因此采用三极管构建H桥【3】,实现大功率直流电机驱动控制。
该驱动电路能够满足各种类型直流电机需求,并具有快速、精确、高效、低功耗等特点,可直接与微处理器接口,可应用PWM技术实现直流电机调速控制。
单片机的P10引脚输出高低电平控制电机的正反转,P11输出PWM波形控制电机转速。
具体为:
①当P10为高电平时,三极管Q3、Q2导通,所以Q4导通,而Q2导通钳制电位为0.9V,所以不论P11是高还是低,Q1、Q7都不导通,即电机电流从左向右流,电机正转。
②当P10为低电平,Q3Q2不导通,所以Q4不导通。
当P11为高电平时电机反转,当P11为低电平是,电机停转。
2.3传感器的选择
常用的流量传感器:
超声波流量计、涡流流量计、差压式流量计、电磁流量计。
差压式流量计
其结构原理是在气体的流动管道上装有一个节流装置,其内装有一个孔板,中心开有一个圆孔,其孔径比管道内径小,在孔板前燃气稳定的向前流动,气体流过孔板时由于孔径变小,截面积收缩,使稳定流动状态被打乱,因而流速将发生变化,速度加快,气体的静压随之降低,于是在孔板前后产生压力降落,即差压(孔板前截面大的地方压力大,通过孔板截面小的地方压力小)。
差压的大小和气体流量有确定的数值关系,即流量大时,差压就大,流量小时,差压就小。
流量与差压的平方根成正比。
差压式流量计品种较多,目前市场上经常使用的差压式流量计有:
孔板流量计、V锥流量计、阿牛巴流量计、威力巴流量计、托巴管流量计、弯管流量计、明渠流量计等。
其中应用最多的孔板流量计结构牢固,性能稳定可靠,使用寿命长,节流装置结构易于复制,简单、牢固,性能稳定可靠,使用期限长,价格低廉。
应用范围广泛,至今尚无任何一类流量计可与之相比拟。
而且其计算公式也较为简单易计算理解。
其计算公式如下:
v=aA√2/j(p-q)
v--体积
j--液体密度
a--流量系数,与流道尺寸取压方式和流速公布有关
A--孔板开孔面积
p-q--压力差
电磁流量计
电磁流量计是基于法拉第电磁感应定律制成的测量导电性液体的仪表,即利用电磁感应原理来测量导管中导电液体的平均流速。
其特点是:
测量通道为光滑直管,不会阻塞,适用于测量含固体颗粒的液固二相流体(如纸浆、泥浆、污水等),没有压力损失,所测体积流量不受流体密度、黏度、温度、压力和电导率(>
10-5Ω/cm)的影响,测量范围大(流速为0.3~10m/s),口径范围宽(3mm至3m),测量精度比较高(基本误差值的±
0.2%~±
0.5%),输出与被测介质平均流速成正比,与流动状态无关,可测量瞬时脉动流量。
但是它不能测量电导率很低的液体(如石油制品),不能测量气体、蒸汽和含有较大气泡的液体,不能用于测量较高温度的介质(易受外界电磁干扰)。
超声波流量计
超声波流量计是通过检测流体流动对超声束(或超声脉冲)的作用以测量流量的仪表。
根据对信号检测的原理超声流量计可分为传播速度差法(直接时差法、时差法、相位差法和频差法)、波束偏移法、多普勒法、互相关法、空间滤法及噪声法等。
超声波流量计虽然可做非接触式测量,为无流动阻挠测量,无压力损失,也可测量非导电性液体,对无阻挠测量的电磁流量计是一种补充,但是它传播时间法只能用于清洁液体和气体,而多普勒法只能用于测量含有一定量悬浮颗粒和气泡的液体,而且多普勒法测量精度不高。
涡流流量计
其原理是在管道内放置有漩涡发生体,当流体通过时,在其两侧会交替产生有规则的漩涡。
漩涡发生体后方连接有超声波传感器,传感器将感应到的漩涡发生频率信号转为电信号,其涡流产生频率和流量有着线性关系,从而实现了流体的测量。
而且涡轮流量计是基于动量矩守恒原理制造的速度式流量仪表,即利用置于流体中叶轮的旋转角速度与流体流速成比例的关系,通过测量叶轮的转速来反映通过管道的体积流量,是目前流量仪表中比较成熟的高精度仪表。
其特点是:
结构简单、加工零部件少、重量轻、维修方便、流通能力大(同样口径可通过的流量大),易实现脉冲远距离传送,可适应高参数(高温、高压和低温)的测量需要,测量精确度较高,测量范围较宽,动态响应好,压力损失较小;
但是被测流体的部分物性对测量精确度有一定的影响,不能长期保持校准特性,对被测介质清洁度要求较高,流体的温度、黏度、密度对仪表指示值有较大影响,由于有转动部件会带来磨损,仪表的使用年限受影响。
适宜测量比较洁净的低黏度液体。
综上,差压式流量计是根据安装于管道中流量检测件产生的差压,已知的流体条件和检测件与管道的几何尺寸来计算流量的仪表。
而且它是一类应用最广泛的流量计,在各类流量仪表中其使用量占居首位。
所以在试验中我们选择HAKK-LG孔板流量计。
第三章系统软件设计
3.1程序结构说明
任何一个系统的软件设计都离不开硬件电路的连接,所以本课题硬件设计的高度模块化决定了软件设计的模块化。
主要包括:
主控程序模块、键盘扫描及处理子程序、采样数据处理子程序、PID算法子程序、电机驱动与控制子程序和显示等子程序几个部分。
结构图如下:
图4程序结构图
主控程序模块在整个结构中充当管理者,管理所有子程序的调用,就相当于个人计算机的操作系统。
它主要负责初始化各个I/O口,等待键盘事件的发生,并作出相应的处理。
并在适当的时候调用数据采样程序,并将采样到的数据与键盘设定值比较。
再通过PID计算后用以控制电机转动,从而控制阀门开度,来达到流量的准确控制。
3.2程序流程图及部分程序
3.2.1主程序说明
主程序流程图
图5主程序流程图
主程序具体程序:
/********************主函数**************************/
main()//主程序
{TMOD=0x21;
//0b00100001timer0模式1(16位),timer1自动重装载
TH0=0xfc;
//1ms延时常数12M
TL0=0x18;
//低电平时间调节
TH1=0x7f;
//定时器1赋初值
TL1=0;
EA=1;
ET0=1;
ET1=1;
//开中断
while
(1)
{if(sw==1)//循环判断开关状态,并执行相应的程序
{AD_val();
//调用TCL549采集处理
display(uuu);
}
elsedisplay(sc);
PID();
}//每个循环的最后执行一次PID运算,实时控制电机
}
从主程序中可以看出,在进行一系列程序调用之前对系统进行初始化,然后判断开关状态程序有所反应。
然后进行一系列子程序,进行A/D转换和PID计算,将其结果用来控制直流电机。
{KB_Scan1();
3.2.2键盘程序
由于机械触点有弹性,在按下或弹起按键时会出现抖动,从最初按下到接触稳定要经过数毫秒的弹跳时间,如图所示。
为了保证探险键识别的准确性,必须消除抖动。
消抖处理有硬件和软件两种方法:
硬件消抖是利用加支抖动电路滤避免产生抖动信号;
软件消抖是利用数字滤波技术来消除抖动。
我们采用软件的方法,利用主程序循环扫描,主程序每循环一次扫描到的键值相同时,则说明是某键按下。
对于键值识别,我们用一条switch语句,把按键的编码和键值对应起来。
键盘具体程序
voidKB_Scan1(void)
{uchartmp,line,i,flag,press;
//定义局部变量
if(lie1==0|lie2==0|lie3==0)return;
//判断是否有键按下,如有,返回。
消除重键问题
line=0xFE;
for(i=1;
i<
=4;
i++)
{P2=line;
//依次给P2口低四位送低电平,读高四位判断是否有键按下。
tmp=P2;
//读取键盘口数据寄存器
tmp&
=0x70;
if(tmp!
=0x70)
{tmp=P2;
flag=1;
break;
}
elseline=(line<
<
1)|0x01;
if(i==5){tmp=0xFF;
flag=0;
switch(tmp)//用switch语句把编码转换为对应的键值。
{case0xEE:
press=1;
break;
case0xDE:
press=2;
case0xBE:
press=3;
case0xED:
press=4;
case0xDD:
press=5;
case0xBD:
press=6;
case0xEB:
press=7;
case0xDB:
press=8;
case0xBB:
press=9;
case0xD7:
press=0;
default:
if(flag==1)//如果有键按下,把每次的值存放到buf[]中,方便以后调用。
{buf[2]=buf[1];
buf[1]=buf[0];
buf[0]=press;
数字PID及电机控制程序
由于单片机控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量【5】,所以一般使用增量型控制,它控制稳定,误动作影响小。
其算式如下:
这个计算的过程可用一个简单的程序来实现。
/***************PID服务程序*************/
voidPID()
{doublee0,e1,e2;
uchardu,out1;
ucharkp=16,kd=0,ki=0;
//ts=1;
e0=e1;
e1=e2;
e2=(sc-uuu);
///10;
//设定值-采集量
if(e2>
=0)
{direction=1;
//设定值-采集量>
0,电机正转,开大阀门。
=20)//测得偏差值与设定偏差值进行比较,若不在设定范围内则满功率正转。
{TR0=0;
PWM=1;
else
{du=10*e2;
//(e2-e1)+ki*e2+kd*(e2-2*e1+e0);
//PID算法
out1=du;
//+out0;
TR0=1;
//若到达设定范围则调用PID程序,进行有效功率转动.
}
elseif(e2<
0)
{direction=0;
//设定值-采集量<
0,电机反转,关小阀门。
if(e2<
-20)//测得偏差值与设定偏差值进行比较,若不在设定范围内则满功率反转。
out1=-du;
//若到达设定范围则调用PID程序,进行有效功率运转.
out0=out1;
第四章总结
此次课程设计是基于《过程控制系统》的综合课设,要求通过对工业过程量流量的测量方法、信号处理技术和控制系统的设计,掌握测控对象参数检测方法、变送器的功能、测控通道技术、执行器和调节阀的功能、过程控制仪表的PID控制参数整定方法。
我拿到题目和要求,明确本次的重点是一个控制“系统”的设计,要实现流量的控制,分析流量怎么测,怎么控。
就是要完成从信号采集→偏差控制→执行器→对象输出整个的设计。
所以我先分模块进行设计,粗略的构思了一个单回路控制系统:
即偏差运算用PID,输出PWM波形控制电机,电机驱动阀门开度变化。
接下来就是具体模块的具体设计实现,信号采集模块我就面临了选择,是选择并行AD转换芯片还是串行AD芯片,再后来就是数码管显示不稳定,亮度不够怎么办,每前进一步都是问题,这时就借鉴别人怎么做的,他们的效果是不是比自己的好,这样不断的比较和思考,解决了很多问题。
最大的体会就是设计过程是解决问题的过程,自己也对设计控制系统积累了一定的经验。
通过设计后面的控制器模块、电机控制模块,我使用了PID的理论、PWM控制电机转速的知识和电机的驱动电路的知识,通过大量的查阅资料,在以前纯理论的基础上有很大提高。
这次课设使我对过程控制系统有了更深的理解,同时对模块设计有了自己的思考和思路,对以后自己设计开发控制系统有很好的铺垫作用。
参考文献
【1】任彦硕等.自动控制系统[M].北京:
北京邮电大学出版社,2006,157
【2】张家生.电机原理与拖动基础[M].北京:
北京邮电大学出版社,2006,136
【3】马斌等.单片机原理及应用---C语言程序设计与实现[M].北京:
人民邮电出版社,2009,284--290
【4】王宜怀等.嵌入式系统[M].北京:
北京航空航天大学出版社,2008,132
【5】顾德英,张健,马淑华.计算机控制技术[M].北京:
北京邮电大学出版社,2006,