基于单片机的流量控制系统设计(共17页)_第1页
基于单片机的流量控制系统设计(共17页)_第2页
基于单片机的流量控制系统设计(共17页)_第3页
基于单片机的流量控制系统设计(共17页)_第4页
基于单片机的流量控制系统设计(共17页)_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上 过程控制系统课程设计 设计题目:基于单片机的流量控制系统设计学生姓名:专 业:测控技术与仪器班级学号:指导教师设计时间:2010.6.28-2008.7.11专心-专注-专业过程控制系统课程设计任务书专业 测控技术与仪器 班级 姓名 设计题目: 基于单片机的流量控制系统设计 一、设计实验条件 过程控制系统实验室实验系统二、设计任务1、设计电磁流量计为流量传感器,单片机为核心流量控制系统。系统主要由水泵、水泵电机、流量传感器、电动阀门、阀门电机、单片机控制系统等组成。2、写出流量控制过程,绘制控制系统组成框图3、利用单片机对流量进行控制 (1)系统硬件电路设计 单片机

2、采用89S52;设计键盘及显示电路,电机控制电路(可控硅,光电耦合器)。 (2)编制流量控制程序三、设计说明书的内容1、 设计题目与设计任务(设计任务书)2、 前言(绪论)(设计的目的、意义等)3、 主体设计部分4、 参考文献5、 结束语四、设计时间与设计时间安排1、设计时间: 2 周2、设计时间安排: 熟悉实验设备、实验、收集资料: 4天 设计计算、绘制技术图纸: 4天编写课程设计说明书: 5天答辩: 1天一 ,流量控制系统设计意义工业生产中过程控制是流量测量与仪表应用的一大领域,流量与温度、压力和物位一起统称为过程控制中的四大参数,人们通过这些参数对生产过程进行监视与控制。对流体流量进行正

3、确测量和调节是保证生产过程安全经济运行、提高产品质量、降低物质消耗、提高经济效益、实现科学管理的基础。流量的检测和控制在化工、能源电力、冶金、石油等领域应用广泛。【1】在天然气工业蓬勃发展的现在,天然气的计量引起了人们的特别关注,因为在天然气的采集、处理、储存、运输和分配过程中,需要数以百万计的流量计,其中有些流量计涉及到的结算金额数字巨大,对测量和控制准确度和可靠性要求特别高。此外, 在环境保护领域,流量测量仪表也扮演着重要角色。人们为了控制大气污染,必须对污染大气的烟气以及其他温室气体排放量进行监测;废液和污水的排放,使地表水源和地下水源受到污染,人们必须对废液和污水进行处理,对排放量进行

4、控制。于是数以百万计的烟气排放点和污水排放口都成了流量测量对象。同时在科学试验领域,需要大量的流量控制系统进行仿真与试验。流量计在现代农业、水利建设、生物工程、管道输送、航天航空、军事领域等也都有广泛的应用。二,系统方案1、方案整体思路液体流量控制通常采用电动调节阀实现,近年来,电动调节阀的结构和控制方式发生了很大的变化, 随着计算机进入控制领域,以及新型的电力电子功率元器件的不断出现,使采用全控制的开关功率元件进行脉宽调制(pulse width modulation ,简称PWM)控制方式得到了广泛的应用。这种控制方式很容易在单片机中实现,从而为电动调节阀的控制数字化提供了基础。将 偏差的

5、比例(proportion)、积分(integral)、微分(differential)通过线性组合构成数字控制量,构成数字PID控制器,它具有非常强的灵活性,可以根据试验和经验在线调整参数,因此可以得到更好的控制性能。本系统采用C51系列的89S52单片机为核心,通过设置89S52单片机的定时器产生脉宽可调的PWM波【2】,对阀门电机的输入电压进行调制,实现阀门开度的变化,进而实现了对液体流量的控制。单片机通过电磁流量计采集实际流量信号,根据该信号对其内部采用数字PID算法对PWM变量的值进行修改,从而达到对流量的闭环精确控制。2、实现流程流量控制系统是一个过程控制系统,在设计的过程中,必须

6、明确它的组成部分。过程控制系统的组成部分有:控制器、执行器、被控对象和测量变送单元,其框图如图1所示。直流电机PID控制器 阀门设定值流量输出图1 流量过程控制组成框图电磁流量计:对输出流量进行检测,并与设定值比较,差值作为控制器的输入。PID控制器:对差值进行P 、I、D运算,输出对应得模拟量控制电机正反转和转速。直流电机:根据控制器输出正反转,控制阀门开度增大或减小。阀门:直接控制流量的执行机构。所以,在这个系统的设计中,主要设计以上几个部分。除此之外,根据题目要求,还要选取合适的控制算法来达到满足系统参数的要求。具体就是确定控制器的算法和如何控制阀门开度,因为这两部分是实现本系统控制目的

7、的关键。它们选取的好坏将直接影响着整个系统实现效果的优劣。3、控制器算法与PWM波形输出流量是一个普通而又重要的物理量,在许多领域里人们需对它进行测量和控制。本系对流量控制采用PID算法,它具有结构简单、易于理解和实现,且一些高级控制都是以PID为基础改进的。在工业过程控制中90%以上的控制系统回路具有PID结构,图2 PID控制原理框图PID调节器的离散化表达式为比例调节的作用是使调节过程趋于稳定,但会产生稳态误差;积分作用可消除被调量的稳态误差,但可能会使系统振荡甚至使系统不稳定;微分作用能有效的减小动态偏差。PWM波形输出:用89S52单片机的定时器0和定时器1交替工作,产生连续的与偏差

8、大小有关的占空比可调的PWM波形。首先,定时器0定时时间到,产生中断,置位PWM输出口并开启定时器1,定时器1定时期间PWM输出高电平,且定时器1的定时时间可调,与偏差的PID运算结果有关,所以能输出占空比变化的PWM波,控制电机转动,进而控制阀门开度和流量。三、系统硬件设计1、总体设计框图及说明本系统是一个简单的单回路控制系统。为了实现流量的自动测量和控制,采用了89S52单片机作为系统的控制中心,由数据采集模块检测到的流量信号传入单片机,并根据接收到的数据进行处理和控制运算,同时将数据保存,以便与下一次采样值进行比较,根据系统程序控制,进行PID运算以及PWM输出控制电机转速,最终由CPU

9、控制电机正反转,达到调节流量的目的。系统还具有键盘设定模块,便于用户与系统之间的对话。系统的硬件结构较简单,由若干个功能模块组成。具体结构图图3及说明如下, 89S52单片机键盘数据采集直流电机 阀门数据显示图3 功能模块结构图键盘设定:设定控制系统要求的流量大小。数据采集:用滑动变阻器分压模拟流量大小。直流电机:接收单片机的控制信号进行正反转和转速调节,带动阀门转动。2、部分外部电路设计2.1 数码管显示电路采用四联排共阴极数码管进行显示,具有四位数码管,这四个数码管的段选a、b、c、d、e、f、g分别接在一起,每一个都拥有一个共阴的位选端。P3口控制数码管的点亮情况。因为单片机的IO口输出

10、功率有限,需要使用74LS374芯片进行锁存。此外还用一个电阻R-PACK8来保护LED。2.2、直流电机控制电路直流电机以其良好的线性特性、优异的控制性能等特点成为大多数变速运动控制和闭环位置伺服控制系统的最佳选择。特别随着计算机在控制领域,高开关频率、全控型第二代电力半导体器件(GTR、GTO、MOSFET、IGBT等)的发展,以及脉宽调制(PWM)直流调速技术的应用,直流电机得到广泛应用。为适应小型直流电机的使用需求,各半导体厂商推出了直流电机控制专用集成电路,构成基于微处理器控制的直流电机伺服系统。但是,专用集成电路构成的直流电机驱动器的输出功率有限,不适合大功率直流电机驱动需求。因此

11、采用三极管构建H桥【3】,实现大功率直流电机驱动控制。该驱动电路能够满足各种类型直流电机需求,并具有快速、精确、高效、低功耗等特点,可直接与微处理器接口,可应用PWM技术实现直流电机调速控制。单片机的P10引脚输出高低电平控制电机的正反转,P11输出PWM波形控制电机转速。 具体为: 当P10为高电平时,三极管Q3、Q2导通,所以Q4导通,而Q2导通钳制电位为0.9V,所以不论P11是高还是低,Q1、Q7都不导通,即电机电流从左向右流,电机正转。 当P10为低电平,Q3 Q2不导通,所以Q4不导通。当P11为高电平时电机反转,当P11为低电平是,电机停转。 四系统软件设计1、程序结构说明任何一

12、个系统的软件设计都离不开硬件电路的连接,所以本课题硬件设计的高度模块化决定了软件设计的模块化。主要包括:主控程序模块、键盘扫描及处理子程序、采样数据处理子程序、PID算法子程序、电机驱动与控制子程序和显示等子程序几个部分。结构图如下:主程序键盘输入数码管显示数据采集PID运算直流电机图4 程序结构图主控程序模块在整个结构中充当管理者,管理所有子程序的调用,就相当于个人计算机的操作系统。它主要负责初始化各个I/O口,等待键盘事件的发生,并作出相应的处理。并在适当的时候调用数据采样程序,并将采样到的数据与键盘设定值比较。再通过PID计算后用以控制电机转动,从而控制阀门开度,来达到流量的准确控制。2

13、、程序流程图及部分程序2.1 主程序说明2.1.1 主程序流程图开始系统初始化SW=1??AD转换键盘设定键盘设定键盘设定DR=1?电机正转电机反转NYYN图5 主程序流程图2.1.2主程序具体程序:/*主函数*/main() /主程序 TMOD=0x21 ; /0b0010 0001 timer0模式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) /循环判断开关状态,并执行相应的

14、程序 AD_val(); /调用TCL549采集处理 display(uuu); else KB_Scan1();display(sc); PID(); /每个循环的最后执行一次PID运算,实时控制电机 从主程序中可以看出,在进行一系列程序调用之前对系统进行初始化,然后判断开关状态程序有所反应。然后进行一系列子程序,进行A/D转换和PID计算,将其结果用来控制直流电机。2.2 键盘程序2.2.1 键盘扫描及键值识别的原理【4】由于机械触点有弹性,在按下或弹起按键时会出现抖动,从最初按下到接触稳定要经过数毫秒的弹跳时间,如图所示。为了保证探险键识别的准确性,必须消除抖动。消抖处理有硬件和软件两种

15、方法:硬件消抖是利用加支抖动电路滤避免产生抖动信号;软件消抖是利用数字滤波技术来消除抖动。我们采用软件的方法,利用主程序循环扫描,主程序每循环一次扫描到的键值相同时,则说明是某键按下。对于键值识别,我们用一条switch语句,把按键的编码和键值对应起来。2.2.2 键盘具体程序void KB_Scan1(void) uchar tmp,line,i,flag,press; /定义局部变量if(lie1=0|lie2=0|lie3=0)return; /判断是否有键按下,如有,返回。消除重键问题line=0xFE; for(i=1;i=4;i+)P2=line; /依次给P2口低四位送低电平,读

16、高四位判断是否有键按下。tmp=P2; /读取键盘口数据寄存器 tmp&=0x70;if(tmp!=0x70) tmp=P2;flag=1;break;else line=(line=0) direction=1; /设定值-采集量0, 电机正转,开大阀门。if(e2=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程序,进行有效功率转动. else if(e20

17、) direction=0; /设定值-采集量0, 电机反转,关小阀门。if(e2-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程序,进行有效功率运转. out0=out1; 五、结束语此次课程设计是基于过程控制系统的综合课设,要求通过对工业过程量流量的测量方法、信号处理技术和控制系统的设计,掌握测控对象参数检测方法、变送器的功能、测控通道技术、执行器和调节

18、阀的功能、过程控制仪表的PID控制参数整定方法。我拿到题目和要求,明确本次的重点是一个控制“系统”的设计,要实现流量的控制,分析流量怎么测,怎么控。就是要完成从信号采集偏差控制执行器对象输出整个的设计。所以我先分模块进行设计,粗略的构思了一个单回路控制系统:即偏差运算用PID,输出PWM波形控制电机,电机驱动阀门开度变化。接下来就是具体模块的具体设计实现,信号采集模块我就面临了选择,是选择并行AD转换芯片还是串行AD芯片,再后来就是数码管显示不稳定,亮度不够怎么办,每前进一步都是问题,这时就借鉴别人怎么做的,他们的效果是不是比自己的好,这样不断的比较和思考,解决了很多问题。最大的体会就是设计过

19、程是解决问题的过程,自己也对设计控制系统积累了一定的经验。通过设计后面的控制器模块、电机控制模块,我使用了PID的理论、PWM控制电机转速的知识和电机的驱动电路的知识,通过大量的查阅资料,在以前纯理论的基础上有很大提高。这次课设使我对过程控制系统有了更深的理解,同时对模块设计有了自己的思考和思路,对以后自己设计开发控制系统有很好的铺垫作用。参考文献【1】 任彦硕等自动控制系统M北京:北京邮电大学出版社,2006,157【2】张家生. 电机原理与拖动基础M. 北京:北京邮电大学出版社,2006, 136【3】 马斌等单片机原理及应用-C语言程序设计与实现M北京:人民邮电出版社,2009,284-

20、290【4】王宜怀等.嵌入式系统M. 北京:北京航空航天大学出版社,2008, 132【5】顾德英,张健,马淑华.计算机控制技术M. 北京:北京邮电大学出版社,2006,106附页1:流量控制系统总程序#include #define uchar unsigned char #define uint unsigned int uchar out0=0x7f ; /赋初值uchar buf3=0,0,0;/全局数组uchar pr=0x57,0x6E,0x5E,0x3E,0x6D,0x5D,0x3D,0x6B,0x5B,0x3B;uchar discode=0x3f,0x06,0x5b,0x4f

21、,0x66,0x6d,0x7d,0x07,0x7f,0x6f;int AD; /转换结果,十六进制int uuu,sc=0; int Int_result, /标度变换后的结果sbit Dataout=P10; /数据线sbit cs=P11; /片选sbit sclk=P12; /io口时钟sbit dx=P13; /断码显示控制锁存sbit wx=P14; /位控控制锁存sbit sw=P17;sbit PWM=P15;sbit direction=P16;void delay1ms(uchar T) /单位时间1ms延时 uchar time; while(T-) for(time=0;

22、time0) wx=0; P0=0xfb; wx=1; dx=0; P0=discodeshi;/|0x80; /显示十位 dx=1;delay1ms(1); wx=0; P0=0xfd; wx=1; dx=0; P0=discodebai; /显示百位 dx=1;delay1ms(1); /*AD转换程序*/AD_val() /TLC549处理 uchar i,temp=0; cs=1;/初始化,启动 sclk=0; cs=0; _nop_(); for(i=0;i8;i+)/读取采集数据,读取的是上一次采集数据 sclk=1; temp=temp1; if(Dataout) temp |=

23、0x01; sclk=0; cs=1; AD=temp; for(i=0;i5;i+) /延时17us以上,进行复位 _nop_(); Int_result=AD*100/256; /处理整数 uuu=Int_result; /*键盘扫描程序*/void KB_Scan1()uchar tmp,line,i,j,flag,press;line=0x7E;for(i=1;i=4;i+)P3=line; tmp=P3; tmp&=0x70;if(tmp!=0x70) tmp=P3;flag=1;break;else line=(line1)|0x01;if(i=5) tmp=0xFF;flag=0;for(j=0;j=0) direction=1; /设定值-采集量0,电机正转if(e2=20) /测得偏差值与设定偏差值进行比较,若不在设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论