计算机控制技术与系统_第1页
计算机控制技术与系统_第2页
计算机控制技术与系统_第3页
计算机控制技术与系统_第4页
计算机控制技术与系统_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计报告( - 年度 第 学期)名 称: 计算机控制技术与系统 题 目: 自来水恒压供水系统课程设计院 系: 班 级: 学 号: 学生姓名: 指导教师: 成 绩: 日期:一、课程设计(综合实验)的目的与要求 1.掌握控制系统电气原理图的设计; 2.能够根据设计的原理图完成电气接线; 3.能够根据控制要求完成该软件的设计及调试; 4.能够根据监控要求完成监控系统设计及调试; 5.能够完成控制系统综合调试。二、设计(实验)正文 (1)总体方案设计系统由变频器、控制器、传感器、主副两个水泵电机及相关电气控制设备集成而成,是一种具有变频调速和全自动闭环控制功

2、能的机电一体化智能设备。它可同时对二台三相380/50Hz,异步电动机行变频调速和闭环控制,其系统组成示意图如图1-1所示。从下图中我们可以看到,自动恒压供水控制系统的基本控制策略是:采用电动机调速装置与供水控制器构成控制系统,进行优化控制泵组的调速运行,并自动调整泵组的运行台数,完成供水压力的闭环控制,在管网流量变化时达到稳定供水压力和节约电能的目的。4位LED显示上位机通信四位独立式键盘AT89C51变频器M2(工频)A/D转换D/A输出压力传感器M1(变频)图1-1原理框图该方案采用压力传感器反馈电压信号(0-5V)至变频器中央处理器(MCU),经PID控制组成闭环控制系统。其输出频率的

3、大小由作用MCU处理器控制,使电机的转速自动增加或降低;当变频主电机由变频器拖动运行至最大频率,压力如还不能达到设定的压力值,则MCU自动启动定频副电机,以期保持供水压力恒定。这样不但减小了电动机的无功功率,而且提高了水泵的工作效率,节约了能源。采用变频控制方式;其操作方便,无须手动调节进水阀门;启动噪音低,由于启动电流很小,减小了对电网的冲击,保护了用电设备。而且其系统实现起来比较简单,并且系统价格相对来说也比较便宜。(2)单元模块设计1.各单元模块功能介绍及电路设计本系统主要分为9个单元模块,它们分别是:水管压力测量模块、时钟模块、复位模块、按键接口模块、A/D转换模块、D/A转换模块、显

4、示模块、稳压电源模块。各单元模块功能及相关电路的具体说明如下。水管压力测量模块图2-1 水管压力测量电路要测量出水管的电压就需要压力传感器。本次设计采用压阻式传感器来测量水管压力。压阻式传感器是利用晶体的压阻效应制成的传感器。当它受到压力作用时,应变元件的电阻发生变化,从而使输出电压发生变化。一般压阻式传感器是在硅膜片上做成四个等值的电阻的应变元件,构成惠斯特电桥。当受到压力作用时,一对桥臂的电阻变大,而另一对桥臂电阻变小,电桥失去平衡,输出一个与压力成正比的电压。由于硅压阻式压力传感器的灵敏系数比金属应变的灵敏系数大50100倍,故硅压阻式压力传感器的满量程输出可达几十毫伏至二百多毫伏,有时

5、不需要放大就可直接测量。另外压阻式传感器还有易于微型化,测量范围宽,频率响应好(可测几千赫兹的脉动压力)和精度高等特点。但在使用过程中,要注意硅压阻式压力传感器对温度很敏感,在具体的应用电路中要采用温度补偿。目前大多数硅压阻式传感器已将温度补充电路做在传感器中,从而使得这类传感器的温度系数小于±0.3%的量程。如图2-1所示。时钟模块设计及与器件选择图2-2时钟电路时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在惟一的时钟信号控制下严格地按时序进行工作 。该时钟电路由两个电容和一个晶体振荡器组成。X1是接外部晶体管

6、的一个引脚。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。输出端为引脚X2,在芯片的外部通过这两个引脚接晶体振荡器和微调电容,形成反馈电路,构成一个稳定的自激振荡器。单片机工作的速度是由时钟电路提供的。在单片机的XTAL1和XTAL2两个引脚间,接一只晶振及两只电容就构成了单片机的时钟电路,如图2-2所示。电路中的器件选择可以通过计算和实验确定,也可以参考一些典型电路的参数。电路中电容C1和C2对振荡频率有微调作用,通常的取值范围30±10pF;石英晶体选择6MHz或12MHz都可以。其结果只是机器周期时间不同,影响记数器的记数初值和运算速度。复位电路的设计单

7、片机的RST引脚为主机提供一个外部复位信号输入端口。复位信号是高电平有效的持续时间应为2个机器周期以上。复位后,单片机内部各部件恢复到初试状态,单片机从ROM的0000H开始执行程序。单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。许多人在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。在单片机应用系统工作时,除了进入系统正常的初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键以重新启动。所以,系统的复位电路必须准确、可靠地工作。图2-3复位电路 单片机的复位都是靠外部电

8、路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟振荡脉冲以上的高电平,单片机便实现初始化状态复位。为了保证应用系统可靠地复位,在设计复位电路时,通常使RST保持高电平。只要RST保持高电平,则单片机就循环复位。本次设计采用上电自动复位电路。由于RC电路充电过程中,RST端出现正脉冲,从而使单片机复位。如图2-3所示。按键接口模块设计本系统采用独立式按键,独立式按键的各按键相互独立,每个按键都有一个输入线,各按键的状态互不影响,CPU需对按键状态分别检测,只适用于按键数量较少的场合。在此电路中,按键输入部分采用低电平有效,上拉电阻保证了按键断开时,I/0口线有确定的电平。在扫

9、描时,先读取P0口的四位,若某位为低电平,应先延时l0ms,然后再读取该位,如果读得的值仍为低电平,可确认此键已按下,然后调用该键的键处理子程序,各键的优先级别由软件安排。依据本次的设计要求我们大体分析在自动部分需要4个按键,因此我们选择独立式键盘。在电路仿真当中,为了体现效果,把最小步进临时改成了5。按下启停键后,系统将压力传感器传过来的信号进行转换后进入单片机,显示出当前的水压。按下设置键后,系统显示出设定的压力值,如果对设置的水压进行调整,通过增减键,可以进行单位为5的调整。如图2-4所示,电路由4个按键和4个电阻组成,按键分别命名为【启停键】、【设置键】、【增一键】和【减一键】,共四个

10、键,电阻可以采用9脚排阻(8×10K)。【启停键】功能:启动/停止,执行开始自动运行和停止功能;【设置键】功能:设置,与【加一键】和【减一键】键配合对压力进行调整,开始设置。【增一键】键功能:+1,与【设置键】键配合对压力进行调整,【加一键】键每按下一次则进行数据进行+1操作。【减一键】键功能:-1,与【设置键】键配合对压力进行调整,【减一键】键每按下一次则进行数据进行-1操作。图2-4按键接口电路A/D转换模块计算机、数字通讯等数字系统是处理数字信号的电路系统。然而,在实际应用中,遇到的大都是连续变化的模拟量,因此,需要一种接口电路将模拟信号转换为数字信号。A/D转换器正是基于这种

11、要求应运而生的。由于压力传感器传过来的信号为模拟信号,在接入前要加A/D转换电路将模拟信号转换为数字信号,本次设计采用常用的A/D转换芯片ADC0809. 如图2-5所示。图2-5A/D转换电路D/A转换模块图2-6 D/A转换电路D/A转换电路用我们比较熟悉的DAC0832来作,DAC0832采用了二次缓冲输入数据方式(输入寄存器及DAC寄存器)。这样可以在输出的同时,采集下一个数字量,以提高转换速度。如图2-6所示。显示模块设计单片机应用系统中,通常都需要进行人机对话。这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示运行结果等。显示器、键盘电路就是用来完成人机对话的人机通道。

12、本次设计中要求作到4组LED显示,LED显示器的控制方式为静态显示和动态显示两种,因此在选择LED驱动时,一定要先确定显示方式。若选择静态显示,则LED驱动器的选择较为简单,只要驱动器的驱动能力与显示器电流相匹配即可。而且只须要考虑段的驱动因为共阳极接+5V,而共阴接地,所以位的驱动不要考虑。动态显示则不同,由于一位数据的显示是由段选和位选信号共同配合完成的,因此,要同时考虑段和位的驱动能力,而且段的驱动能力决定位的驱动能力。如图2-7所示。图2-7 显示模块电路电机控制设计 压力传感器将压力信号经过A/D转换后输入到单片机,如果压力和设定压力有偏差,单片机将控制变频器调频使压力值稳定,当变频

13、主电机由变频器拖动运行至最大频率,压力如还不能达到设定的压力值,则MCU自动启动定频副电机,以期保持供水压力恒定。这样不但减小了电动机的无功功率,而且提高了水泵的工作效率,节约了能源。图2-8 电机控制电路稳压电源模块大部分的电子电路与电子设备都需要有一个稳定的直流电源提供能量,而且对于我们通常所接触的控制器而言,一般都是利用电网提供的交流电源,经过整流、滤波、稳压后,滤去其不稳定的脉动、干扰成分,提供一个稳定的直流电压,来使电子电路与电子设备保持正常的工作。并且,我们目前绝大部分电子电路与电子设备都是使用线性电源,即通过降压、整流、滤波、稳压后提供稳定的直流电压给电子电路及芯片工作的。固定式

14、三端稳压电源(7805)是由输出脚Vo,输入脚Vi和接地脚GND组成,它的稳压值为+5V,它属于CW78xx系列的稳压器,输入端接电容可以进一步的滤波,输出端也要接电容可以改善负载的瞬间影响,此电路的稳定性也比较好。由于固定式三端稳压电源(7805)的输出电流有1.5A,而本次设计电路电流在1A到2A之间,考虑到电路的一般余量在2倍到3倍左右。故本次设计电源电路需要采用扩流电路,如图3-9所示。图2-9 稳压电源电路采用外接PNP型大功率管的方法,这是一种最基本的扩展电流电路,扩展的输出电流取决于外接功率管的电流负载量,电路中的R1是VT的偏置电阻,为VT1提压导通时的基极偏压,VT与集成稳压

15、器内电路中的NPN型调整管组成复合管,设Ir为流过电阻R1中的电流,Ic为流过外接调整管的集电极电流,Td为7805的静态工作电流,这时7805的输出电流为Ioxx,可表示式中为VT的电流放大系数,稳压扩展后的输出电流Io可表示为。因为7805的的最大输出电流为1.5A,当Io取1.5A时,则稳压器的扩展后的输出电流为3A,加一只二极管VD与R1并联,把外接整流管的VT1的发射结电阻限制在0.7V以内,当输出电流超过额定植时,保护电阻R2上的压降增大,必然会使VT1的Vbe减小,从而使VT1的输出电流减小,以至不导通,这样便达到了保护外接管的目的。电路中的VT1可选用3CD6等PNP型硅低频大

16、功率管。2.各单元模块连接完成各模块的设计后,模块按照功能的不同连接成整体的电路图。各模块的具体联接图见附1。(3)软件设计1.主程序流程图恒压供水控制器对生活供水、消防供水系统进行监控,要求软件具有高可靠性、高稳定性、高抗干扰能力,检测信号准确,有良好的动静态性能,该软件按结构化流水设计,分为若干功能部分,采用C语言编写。本设计的软件主程序用来动态显示系统的压力,压力的采样和系统的控制环节都在中断处理程序中, 主流程图如图3-1所示。图3-1 主程序流程图2.T0中断服务程序主要包括:A/D转换程序;D/A转换程序;控制程序。程序流程图如下:如图4-2示,变频器控制M1电机,M2电动机由单片

17、机控制,其标志位为M2。图3-2 T0中断服务程序流程图A/D转换子程序其主要任务是把压力传感器检测的压力转换成数字量,并送入单片机处理,程序见附录。D/A转换子程序其主要任务是把经PID处理过的数据转换成模拟量,来控制变频器输出电压的频率,来控制水泵的转速,以达到控制供水压力的目的。PID调节程序本设计就是通过单片机实现的PID调节器来实现水压的恒定,并自动调节水泵的数量。在工业控制过程中,目前采用最多的控制方式仍然是PID方式。PID有几个重要的功能:提供反馈控制;通过积分作用可以消除稳态误差:通过微分作用预测将来。由于PID控制器具有简单而固定的形式,在很宽的操作条件范围内,另一方面是因

18、为PID控制器允许工程技术人员以一种简单而直接的方式来调节系统性能,其程序见附录。本设计采用增量式PID控制。3.独立按键程序设计程序设计思路按键接收子程序主要是实现对当前设定压力的调整。根据按键电路的设计可知,当【SET】键按下时可以产生中断请求,CPU响应中断请求时,则进入该中断服务程序。在程序中,将对当前设定的压力进行调整,利用【SET】、【+1】和【-1】键配合使用,每次对【+1】键的按下则进行累加;同样对【-1】键按下则进行减1操作。图3-3 键盘扫描程序流程图按键去抖动的处理图3-4 按键处理程序流程图由于机械触点的弹性作用,在闭合及断开的瞬间均伴随有一连串的抖动,抖动时间的长短由

19、按键的机械特性决定,一般为510ms。而按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。键抖动会引起一次按键被误读多次,为了确保CPU对键的一次闭合仅作一次处理,按键的抖动可以用硬件或者软件方法来消除。本次设计中采用软件方法来消除按键抖动,具体的键盘扫描程序框图如图3-3所示。而按键处理的程序框图如图3-4所示。读取P0口的值于(11000011)二进制数或运算再到键盘处理程序中处理,以屏蔽高两位和低两位对程序的影响。(4) 系统调试1.软件调试水管压力显示的仿真为了能够实现仿真,在仿真时用滑动变阻器来模拟水管水压。通过调节电阻的大小来改变水管的水压值。在调节电阻值

20、的时候,显示管上所显示的值随之变化。合上按键电路中的启停键系统工作。用户通过开闭【启停键】来控制系统的开关,当开关【启停键】未合上时,系统不工作,显示管显示FREE.如图4-1所示。当开关【启停键】合上时,系统开始工作,显示出当前水压,调节滑动变阻器显示值的大小随其变化。如图4-2所示。图4-1 显示仿真图4-2 模拟压力传感器仿真恒压值的仿真 合上设置键后,系统显示出恒定压力值,通过增减键可以调节其大小。单片机把信息输入DAC0832后将数字信号转换为模拟信号,通过变频器后调节水泵的转速,用来保持恒定的水压。如图4-3所示,为开始设定的恒压值。系统设定的开始恒压值是150。因为恒压力的需求不

21、同,就要根据不同用户的需要来调整恒压值。合上设置键后,按增一键一下,数值增加5,减一键一下,数值减少5。这样就可以调节所需要的压力。如图4-4所示,按可三下增一键后显示165。 图4-3 恒压值显示图4-4调节后的恒压值显示三、课程设计(综合实验)总结或结论通过这次课程设计,我基本上掌握了一般的设计步骤:首先明确设计任务,以及工业生产和社会生活所要求控制达到的具体的技术指标通过讨论思考及必要的简单实验和实际考查完成对总体工业生产实际系统的了解;进而要对整个设计系统经过深入的分析、计算以及联系实际的生产工况、生产条件、企业经济等一系列条件,确立自己的设计方案。然后就是对自己确立的方案进行硬件实现

22、,包括所用元器件选型,以及控制部分整个单片机系统的硬件选型与设计。我进行了软件部分的设计,首先,我经过流程图绘制,搞清楚各个部分实现的功能,进而对整个系统进行软件编程实现,到此这个系统设计的一大半已经完成。虽然完成了设计工作,但由于我的能力有限,所以目前还有很多不足之处,有待进一步的完善与提高。四、参考文献1. 于海生.计算机控制技术. 机械工业出版社,20102. 郑学坚,周斌.微型计算机原理与应用. 清华大学出版社3. 沈美明,温冬婵.IBM-PC汇编语言程序设计. 清华大学出版社4. 何立民.单片机应用系统设计.

23、60;北京航空航天大学出版社5. 郭观七.基于C语言的MCS-51系列单片机软件开发系统M.华中理工大学出版社,1996.11附录(设计流程图、程序、表格、数据等)附1 系统的原理电路图附2 系统的相关程序1)myheadfiles.h#include "AT89x51.h"#define ulong unsigned long#define uint unsigned int#define uchar unsigned char#define OFF 0x00#define ON 0xff#define Hi 0xff#define Lo 0x00#define

24、 Free 0xff /空闲#define AutoRun 0x40 /自动运行状态标志#define SetWp 0x49 /设置水管水压值状态标志#define KeyCodeUP 0xff#define KeyCodeDW 0xa0#define KeyCodeFree 0xf3#define KeyCodeRun 0x02#define KeyCodeNONE 0x02sbit KeyUP =P04; /各按键sbit KeyDW =P05;sbit KeySet =P06;sbit KeyRunStop=P07;sbit EnDACout =P33; /低有效,为低表示DAC0832

25、可以接收数据sbit EnADCin =P32; /高有效,为高表示ADC0809可以输出数据sbit StartADC=P35; /负脉冲启动sbit ADCcomp=P34; /高有效,为低表示转换没完成sbit Motor1EN=P36; /主电机使能sbit Motor2EN=P37; /副电机使能sbit WorkLED=P04;/static char LEDCodeTable=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90; /共阳极LED字型码static char LEDCodeTable=0x3f,0x06,0x5b,0x

26、4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /共阴极LED字型码static char LEDSelTable=0xf8,0xf1,0xf2,0xf4;/0x08,0x01,0x02,0x04; /LED高低位选择 0x0E,0x0C,0x0A,0x07void Init_Device(void);/void LEDisplay();void BCDtoLED(void);void IntDataToLED(uint dat);uint SampleADC (void);void OutDAC(uint dat);void delay(uint time);void K

27、eyPro(void); /按键处理void PIDpro(void);2)main.c#include "MyHeadFiles.h"uchar KeyCodeNew=KeyCodeNONE; /按键输入值uchar KeyCodeOld=KeyCodeNONE; /按键输入值/bit NewKeyIn=0; /新按键值输入标志uchar LEDValue4=6,1,2,3; /放置各个LED原值码uchar LEDCode4; /放置各个LED字型uint Time10MS=0; /用于定时uchar WorkState=Free; /系统的运行状态标志uchar te

28、mpChar; /全局临时变量uint tempINT;uchar LEDCNp=0; /记录LED点亮位置int WaterPctr=150; /控制输出int WaterPnow=60; /当前水管内的水压int WaterPset=150; /记录人为设置的水管目标压强/假定05V 对应水压0255void main (void)Init_Device(); IntDataToLED(WaterPset);/BCDtoLED();while(1)/if(Time10MS % 50300)=0)if(Time10MS % 15)=0) /调节按键扫瞄处理程序KeyPro(); /Time1

29、0MS =20;/WorkLED=WorkLED;switch(WorkState)case AutoRun:Motor1EN=ON; /确保主电机打开if(Time10MS % 10)=0) /调节采样频率WaterPnow=SampleADC();IntDataToLED(WaterPnow); BCDtoLED();PIDpro();break;case SetWp: /设置水管水压值状态标志IntDataToLED(WaterPset); BCDtoLED();/WorkState=AutoRun; /设置完就进入自动运行break;case Free: Motor1EN=OFF; /

30、关掉主电机Motor2EN=OFF; /关掉副电机LEDCode0=0x71; /FLEDCode1=0x70; /rLEDCode2=0x79; /ELEDCode3=0x79; /Ebreak;default: WorkState=Free; break; void PIDpro(void)/以下是副电机的控制策略if(WaterPnow < (WaterPset/4) Motor2EN=ON; /副电机使能else if(WaterPnow > (WaterPset/3)Motor2EN=OFF; /以下是主电机的控制策略if(WaterPnow < (WaterPse

31、t/2)WaterPctr=0xff; /全功率输出 else if(WaterPnow >(WaterPset+2) /00功率输出WaterPctr=0; else /变功率输出-变频输出-变化控制电压WaterPctr=WaterPset -WaterPnow;OutDAC(WaterPctr);void Init_Device(void)TH0=0xd8; /晶振12.0MHz ,设置为10ms中断TL0=0xf0;TR0=1;IE0 =1;P0=0; /驱动口预先置0/P1=0xff; P3=0xff; /按键口预先置1EnADCin=OFF;StartADC=Lo; IE=0x8A; /允许定时器0、1中断 ET0=1;void Time0_ISR (void) interrupt 1TF0=0;/清除中断标志 TH0=0xd8; /晶振12.0MHz ,设置为10ms中断 TL0=0xf0;/ TH0=0xb1; /晶振12.0MHz ,设置为20ms中断/ TL0=0xe0;Time10MS+; /记录中断次数if(Time10MS % 8)=0) /以下驱动LED数据管 /tempChar=P0 & 0xf0;/tempChar=P0;/ tempChar&=0xf0;/tempChar|=

温馨提示

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

评论

0/150

提交评论