课程设计设计题目:基于单片机的流量控制系统设计学生姓名:专业:测控技术与仪器班级学号:指导教师设计时间:2010.6.28-2008.7.11过程控制系统《过程控制系统》课程设计任务书专业测控技术与仪器班级姓名设计题目:基于单片机的流量控制系统设计一、设计实验条件过程控制系统实验室实验系统二、设计任务1、设计电磁流量计为流量传感器,单片机为核心流量控制系统。系统主要由水泵、水泵电机、流量传感器、电动阀门、阀门电机、单片机控制系统等组成。2、写出流量控制过程,绘制控制系统组成框图3、利用单片机对流量进行控制(1)系统硬件电路设计单片机采用89S52;设计键盘及显示电路,电机控制电路(可控硅,光电耦合器)。(2)编制流量控制程序三、设计说明书的内容1、设计题目与设计任务(设计任务书)2、前言(绪论)(设计的目的、意义等)3、主体设计部分4、参考文献5、结束语四、设计时间与设计时间安排1、设计时间:2周2、设计时间安排:熟悉实验设备、实验、收集资料:4天设计计算、绘制技术图纸:4天编写课程设计说明书:5天答辩:1天一,流量控制系统设计意义工业生产中过程控制是流量测量与仪表应用的一大领域,流量与温度、压力和物位一起统称为过程控制中的四大参数,人们通过这些参数对生产过程进行监视与控制。对流体流量进行正确测量和调节是保证生产过程安全经济运行、提高产品质量、降低物质消耗、提高经济效益、实现科学管理的基础。流量的检测和控制在化工、能源电力、冶金、石油等领域应用广泛。【1】在天然气工业蓬勃发展的现在,天然气的计量引起了人们的特别关注,因为在天然气的采集、处理、储存、运输和分配过程中,需要数以百万计的流量计,其中有些流量计涉及到的结算金额数字巨大,对测量和控制准确度和可靠性要求特别高。此外,在环境保护领域,流量测量仪表也扮演着重要角色。人们为了控制大气污染,必须对污染大气的烟气以及其他温室气体排放量进行监测;废液和污水的排放,使地表水源和地下水源受到污染,人们必须对废液和污水进行处理,对排放量进行控制。于是数以百万计的烟气排放点和污水排放口都成了流量测量对象。同时在科学试验领域,需要大量的流量控制系统进行仿真与试验。流量计在现代农业、水利建设、生物工程、管道输送、航天航空、军事领域等也都有广泛的应用。二,系统方案1、方案整体思路液体流量控制通常采用电动调节阀实现,近年来,电动调节阀的结构和控制方式发生了很大的变化,随着计算机进入控制领域,以及新型的电力电子功率元器件的不断出现,使采用全控制的开关功率元件进行脉宽调制(pulsewidthmodulation,简称PWM)控制方式得到了广泛的应用。这种控制方式很容易在单片机中实现,从而为电动调节阀的控制数字化提供了基础。将偏差的比例(proportion)、积分(integral)、微分(differential)通过线性组合构成数字控制量,构成数字PID控制器,它具有非常强的灵活性,可以根据试验和经验在线调整参数,因此可以得到更好的控制性能。本系统采用C51系列的89S52单片机为核心,通过设置89S52单片机的定时器产生脉宽可调的PWM波【2】,对阀门电机的输入电压进行调制,实现阀门开度的变化,进而实现了对液体流量的控制。单片机通过电磁流量计采集实际流量信号,根据该信号对其内部采用数字PID算法对PWM变量的值进行修改,从而达到对流量的闭环精确控制。2、实现流程流量控制系统是一个过程控制系统,在设计的过程中,必须明确它的组成部分。过程控制系统的组成部分有:控制器、执行器、被控对象和测量变送单元,其框图如图1所示。图1流量过程控制组成框图直流电机PID控制器阀门设定值流量输出电磁流量计:对输出流量进行检测,并与设定值比较,差值作为控制器的输入。PID控制器:对差值进行P、I、D运算,输出对应得模拟量控制电机正反转和转速。直流电机:根据控制器输出正反转,控制阀门开度增大或减小。阀门:直接控制流量的执行机构。所以,在这个系统的设计中,主要设计以上几个部分。除此之外,根据题目要求,还要选取合适的控制算法来达到满足系统参数的要求。具体就是确定控制器的算法和如何控制阀门开度,因为这两部分是实现本系统控制目的的关键。它们选取的好坏将直接影响着整个系统实现效果的优劣。3、控制器算法与PWM波形输出流量是一个普通而又重要的物理量,在许多领域里人们需对它进行测量和控制。本系对流量控制采用PID算法,它具有结构简单、易于理解和实现,且一些高级控制都是以PID为基础改进的。在工业过程控制中90%以上的控制系统回路具有PID结构,图2PID控制原理框图PID调节器的离散化表达式为)]1()([)()()(kekeTKkTeKkeKkudip比例调节的作用是使调节过程趋于稳定,但会产生稳态误差;积分作用可消除被调量的稳态误差,但可能会使系统振荡甚至使系统不稳定;微分作用能有效的减小动态偏差。PWM波形输出:用89S52单片机的定时器0和定时器1交替工作,产生连续的与偏差大小有关的占空比可调的PWM波形。首先,定时器0定时时间到,产生中断,置位PWM输出口并开启定时器1,定时器1定时期间PWM输出高电平,且定时器1的定时时间可调,与偏差的PID运算结果有关,所以能输出占空比变化的PWM波,控制电机转动,进而控制阀门开度和流量。三、系统硬件设计1、总体设计框图及说明本系统是一个简单的单回路控制系统。为了实现流量的自动测量和控制,采用了89S52单片机作为系统的控制中心,由数据采集模块检测到的流量信号传入单片机,并根据接收到的数据进行处理和控制运算,同时将数据保存,以便与下一次采样值进行比较,根据系统程序控制,进行PID运算以及PWM输出控制电机转速,最终由CPU控制电机正反转,达到调节流量的目的。系统还具有键盘设定模块,便于用户与系统之间的对话。系统的硬件结构较简单,由若干个功能模块组成。具体结构图图3及说明如下,图3功能模块结构图键盘设定:设定控制系统要求的流量大小。数据采集:用滑动变阻器分压模拟流量大小。直流电机:接收单片机的控制信号进行正反转和转速调节,带动阀门转动。2、部分外部电路设计2.1数码管显示电路采用四联排共阴极数码管进行显示,具有四位数码管,这四个数码管的段选a、b、c、d、e、f、g分别接在一起,每一个都拥有一个共阴的位选端。P3口控制数码管的点亮情况。因为单片机的IO口输出功率有限,需要使用74LS374芯片进行锁存。此外还用一个电阻R-PACK8来保护LED。2.2、直流电机控制电路直流电机以其良好的线性特性、优异的控制性能等特点成为大多数变速运动控制和闭环位置伺服控制系统的最佳选择。特别随着计算机在控制领域,高开关频率、全控型第二代电力半导体器件(GTR、GTO、MOSFET、IGBT等)的发展,以及脉宽调制(PWM)直流调速技术的应用,直流电机得到广泛应用。89S52单片机键盘数据采集直流电机阀门数据显示为适应小型直流电机的使用需求,各半导体厂商推出了直流电机控制专用集成电路,构成基于微处理器控制的直流电机伺服系统。但是,专用集成电路构成的直流电机驱动器的输出功率有限,不适合大功率直流电机驱动需求。因此采用三极管构建H桥【3】,实现大功率直流电机驱动控制。该驱动电路能够满足各种类型直流电机需求,并具有快速、精确、高效、低功耗等特点,可直接与微处理器接口,可应用PWM技术实现直流电机调速控制。单片机的P10引脚输出高低电平控制电机的正反转,P11输出PWM波形控制电机转速。具体为:①当P10为高电平时,三极管Q3、Q2导通,所以Q4导通,而Q2导通钳制电位为0.9V,所以不论P11是高还是低,Q1、Q7都不导通,即电机电流从左向右流,电机正转。②当P10为低电平,Q3Q2不导通,所以Q4不导通。当P11为高电平时电机反转,当P11为低电平是,电机停转。四系统软件设计1、程序结构说明任何一个系统的软件设计都离不开硬件电路的连接,所以本课题硬件设计的高度模块化决定了软件设计的模块化。主要包括:主控程序模块、键盘扫描及处理子程序、采样数据处理子程序、PID算法子程序、电机驱动与控制子程序和显示等子程序几个部分。结构图如下:图4程序结构图主控程序模块在整个结构中充当管理者,管理所有子程序的调用,就相当于个人计算机的操作系统。它主要负责初始化各个I/O口,等待键盘事件的发生,并作出相应的处理。并在适当的时候调用数据采样程序,并将采样到的数据与键盘设定值比较。再通过PID计算后用以控制电机转动,从而控制阀门开度,来达到流量的准确控制。2、程序流程图及部分程序2.1主程序说明2.1.1主程序流程图图5主程序流程图主程序键盘输入数码管显示数据采集PID运算直流电机开始系统初始化SW=1????AD转换键盘设定键盘设定键盘设定DR=1?????电机正转电机反转NYYN2.1.2主程序具体程序:/********************主函数**************************/main()//主程序{TMOD=0x21;//0b00100001timer0模式1(16位),timer1自动重装载TH0=0xfc;//1ms延时常数12MTL0=0x18;//低电平时间调节TH1=0x7f;//定时器1赋初值TL1=0;EA=1;ET0=1;ET1=1;//开中断while(1){if(sw==1)//循环判断开关状态,并执行相应的程序{AD_val();//调用TCL549采集处理display(uuu);}else{KB_Scan1();display(sc);}PID();}//每个循环的最后执行一次PID运算,实时控制电机}从主程序中可以看出,在进行一系列程序调用之前对系统进行初始化,然后判断开关状态程序有所反应。然后进行一系列子程序,进行A/D转换和PID计算,将其结果用来控制直流电机。2.2键盘程序2.2.1键盘扫描及键值识别的原理【4】由于机械触点有弹性,在按下或弹起按键时会出现抖动,从最初按下到接触稳定要经过数毫秒的弹跳时间,如图所示。为了保证探险键识别的准确性,必须消除抖动。消抖处理有硬件和软件两种方法:硬件消抖是利用加支抖动电路滤避免产生抖动信号;软件消抖是利用数字滤波技术来消除抖动。我们采用软件的方法,利用主程序循环扫描,主程序每循环一次扫描到的键值相同时,则说明是某键按下。对于键值识别,我们用一条switch语句,把按键的编码和键值对应起来。2.2.2键盘具体程序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=(line1)|0x01;}if(i==5){tmp=0xFF;flag=0;}switch(tmp)//用switch语句把编码转换为对应的键值。{case0xEE:press=1;break;case0xDE:press=2;break;case0xBE:press=3;break;case0xED:press=4;break;case0xDD:press=5;break;case0xBD:press=6;break;case0xEB:press=7;break;case0xDB:press=8;break;case0xBB:press=9;break;case0xD7:press=0;break;default:break;}if(flag==1)//如果有键按下,把每次的值存放到buf[]中,方便以后调用。{buf[2]=buf[1];buf[1]=buf[0];buf[0]=press;}}2