水箱液位基于PID调节控制_第1页
水箱液位基于PID调节控制_第2页
水箱液位基于PID调节控制_第3页
水箱液位基于PID调节控制_第4页
水箱液位基于PID调节控制_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、过程控制系统与仪表课程设计报告 设计题目:基于单片机的一阶水箱液位控制 学 生 姓 名: 设计时间: 2014年5 月0摘要本文介绍了一阶水箱控制过程的设计方案,主要设计了一个基于51单片机的液体转移监控装置,通过建立控制对象的数学模型,完成系统PID参数整定,达到液位控制效果,并通过外设界面实时显示液位高度。控制对象是一单容储液箱重量控制过程,其具有自衡特性,便于传递函数建模,通过Matlab上的simulink仿真工具进行PID仿真测试,确定理论控制参数;在硬件方面,装置以升级版51芯片STC125A60S2为主控,运用了矩阵键盘作为输入设备,LCD1602为显示设备,4块电阻应变片组成的

2、全桥测量电路作为传感检测设备,以及通过PWM控制LM298电机驱动模块实现水泵输出量可调。本文从系统方案选择与论证,硬件电路设计和系统软件等方面介绍了基于单片机的液位测量监控系统的设计过程,最终实现了液位的实时测量与显示。最后,本文总结了设计过程中出现的问题及解决方法,简要叙述了所获数据的处理方法,引出了进一步设计开发的思路。关键词: 传感器测量电路 PID控制 AD转换 电机控制1 目录摘要2一、设计题目4二、设计报告正文62.1设计思路及总体方案62.1.1 设计思路62.1.2 系统控制总体方案62.2 过程控制建模系统框图62.2.1 系统的结构框图62.2.2被控对象解析72.2.3

3、传递函数参数的确立82.2.4一阶环节的阶跃响应特性及惯性环节的参数确定9实际参数本该由实际装置取样,通过上述方法得到,但本设计我们未制作实物,故只能参考其他设计取如下值92.2.5 Simulink仿真及PID参数整定92.2.6经验法测定PID参数112.3 硬件电路设计112.3.1 硬件设计总体方案122.3.2 51单片机最小系统硬件设计122.3.3按键设计142.3.4显示单元硬件设计142.3.5传感检测模块设计152.3.6 A/D转换单元硬件设计162.3.7电机驱动硬件设计162.3.8 通信模块设计172.3.9 原理图182.4 程序设计182.4.1 程序流程182

4、.4.2 PID控制器192.4.3 矩阵扫描程序202.4.4 LCD1602显示程序202.4.5 AD采集程序212.4.6 PWM电机驱动程序23三、结果分析23四、设计总结25参考文献25一、设计题目 设计并制作一个液体转移监控装置,示意图如下图所示:图 1 设计示意图放置两个盛水容器,分别为A容器和B容器,A容器盛有足量的水,B容器为空,底部中心挖一个出水圆孔。从A容器转移水到B容器,使B容器中的水的重量达到预设值,并保持该状态60秒钟。基本要求:(1)制作一个数显装置,当系统开始执行抽水任务时,能实时显示B容器中水的重量和任务执行时间,任务结束后,计时停止;(2)通过键盘任意设定

5、转移到B容器中的水的重量,设定范围为500克1000克, 调整时间范围为3分钟;(3)B容器中的水达到预设值后,保持该状态60秒钟。要求能发出短暂的声音提示信号;(4)控制误差范围为10克;(5)B容器中的水临近溢出时启动报警,并停止系统运行;(6)主站能实时显示B容器中水的重量变化曲线;注意:(1)控制泵类型及水的重量的测量方法不限,其装置安装位置及安装方式自定;(2)A容器大小不限,能够装入足够的水即可,B容器为3.3升矿泉水桶;(3)B容器底部中心制作一个直径3毫米的圆孔;(4)现场控制不能用系统机;水的重量预设值由评委当场给出。4二、设计报告正文2.1设计思路及总体方案2.1.1 设计

6、思路 本次课程设计中,我们主要做单容水箱模型的建立、仿真和PID参数的整定以及软件的编写。就课程设计题目来看,为了方便仿真可以将系统等效为一个一阶惯性环节,为了等效为惯性环节,可以将水的重量乘上一个比例系数换算成为液位的高度,这样就可以完全按照一阶惯性环节来进行系统的设计。由于只做概念设计故我们通过查阅资料,假设得到惯性环节的两个参数T和K。接着在加上PI调节器之前仿真出惯性环节的闭环特性图方便与后面作比较。加上PI调节器校正系统的误差,并仿真出图形。其中,PI调节器的参数是通过经验法测定。至于软件方面,主要可以通过增量式的PI算法进行程序的调试,直到得到最佳的值为止。2.1.2 系统控制总体

7、方案 单片机控制系统的结构框图如图2.1所示,其主要组成部分有:以51单片机为核心的控制单元、基于电阻应变片的传感器检测单元、A/D转换单元、PWM电机控制单元。PWM控制器单片机 水箱水泵 +检测单元 - 液体重量(g)图1-1系统控制框图单片机控制具体的工作过程是:设定与稳定的水箱液体高度并转换成重量,通过检测元件获取水箱的实际液位重量,经A/D转换芯片将模拟信号转换为数字信号,送单片机与设定值进行比较,得到偏差信号e,e经过调节器做PID运算,给PWM控制器输出一个转速控制信号u,从而调节水泵的输出流量,达到调节水箱液体重量的目的。2.2 过程控制建模系统框图2.2.1 系统的结构框图

8、注明:考虑到实际情况的单容水箱主要的参数是液位的高度,所以通过液位高度与重量之间的比例关系将液位高度转化为重量,具体转化关系是: (2-1)被控制量给定量调节器被控对象测量变送器执行器图1-2 单闭环典型控制系统框图2.2.2被控对象解析 如图1-3可知,单容储液槽流量特性:储液槽的出水量与液压有关,液压又与液位的高低成正比。因此,当液位升高时,出液量也随之增大。所以,若阀开度适当,在不溢出的情况下,当储液槽的进液体量恒定不变时,液位的上升速度将逐渐变慢,最终达到平衡。 HCQ2V1Q1V2图1-3 单容储液槽结构图 水流入量Q1由调节阀开度u加以控制,流出量Q2则由用户根据需要通过负载阀来改

9、变被调量为水位h,它反映水的流入与流出之间的平衡关系。 根据动态物料平衡方程 (2-2) 将式(2-2)表示为增量形式 (2-3) 式中,、分别为偏离某一平衡状态、的增量; C储液槽底面积。在静态时,;当发生变化时,液位h随之变化,阀处的静压也随之变化,也必然发生变化。由流体力学可知,流体在紊流情况下,液位h与流量之间为非线性关系。但为简化起见,经线性化处理,则可近似认为与成正比,而与阀的阻力成反比,即 或者 (2-4)式中,为阀的阻力,称为液阻。将公式(2-4)代入(2-3)得 (2-5)在零初始条件下,对上式求拉斯变换,得: (2-6) 即 (2-7)当 ,得 (2-8)当 t=T时,有

10、(2-9)通过单容水箱建模知道单容水箱的传递函数是一阶惯性环节及表达式为 (2-10) 2.2.3传递函数参数的确立根据阶跃响应曲线,求出模型参数。对于一阶模型,此次用切线法来定。实际生产过程的阶跃响应曲线呈现如图1-3-1所示的S型曲线是最常见的。用切线法确定一阶惯性加纯滞后的特征参数方法如下。tT0.632h()h()h图1-4切线法确定一阶惯性加纯滞后的特征参数 由切线和稳态值的交点的横坐标可以得到常数T,而由可以得到参数K.进而得到单容水箱的传递函数为 (2-11)2.2.4一阶环节的阶跃响应特性及惯性环节的参数确定 实际参数本该由实际装置取样,通过上述方法得到,但本设计我们未制作实物

11、,故只能参考其他设计取如下值 (2-12)2.2.5 Simulink仿真及PID参数整定(1)系统的简化框图图1-7 简化框图(2) Simulink仿真的系统的结构框图和开环特性图图1-8 系统的结构框图由系统结构框图去掉PID部分可以用Simulink得到开环系统的阶跃响应图如下:图1-9 系统的开环特性图根据图可以明显看到函数图像与一阶惯性环节基本吻合。2.2.6经验法测定PID参数 比例调节是基本的控制作用,应首先把比例度调好,待过渡过程基本稳定后,再加积分作用以消除余差,最后加入微分作用以进一步提高控制质量。 (1)因为对象的开环传递函数是一阶惯性环节,所以它的闭环传递函数还是惯性

12、环节,由此我们对P值的整定可以根据调节时间的大小来大概确定它的值,暂时先取; (2)对于PI调节器,先设置,按比例环节调整比例度P,使过渡过程达到4:1衰减比;然后,将P放大10%-20%,将积分时间由大到小逐步增加,直至获得衰减比为4:1过渡过程。仿真图如下:图1-10 PI整定过后系统图此时,由经验法得到的参数为(2-13)经过PI整定过后得到的闭环系统的结构图,由于题目对时间的要求不是很严格,所以在保证系统的稳态误差的情况下足以满足题目要求,所以没有必要再加入微分调节。2.3 硬件电路设计*注明此处的硬件设计只用于仿真,以及对于器件选型的讨论,不做实物.2.3.1 硬件设计总体方案硬件以

13、升级版51芯片STC125A60S2为主控,运用了矩阵键盘作为输入设备,LCD1602为显示设备, LED作为报警指示,4块电阻应变片组成的全桥测量电路作为传感检测设备,由于其输出电压为毫伏级别,所以采用了24位高精度A/D模数转换芯片HX711进行重量采集,以及通过PWM控制LM298电机驱动模块实现水泵输出量可调,控制过程中的数据由LCD1602实时显示。 硬件总体设计方案如下:图1-11 硬总体设计方案2.3.2 51单片机最小系统硬件设计单片机最小系统也叫最小应用系统,是指用最少的元件组成的单片机可以工作的系统. 对51系列单片机来说,最小系统一般该包括:电源电路、单片机、晶振电路、复

14、位电路。其电路图如下:(1) 电源电路电源电路设置了10uF和0.1uF的电容起滤波作用,并带有指示灯,提供5V的工作电压。图1-12电源电路(2)时钟电路单片机工作时,从取指令到译码再进行微操作,必须在时钟信号控制下才能有序地进行,时钟电路就是为单片机工作提供基本时钟的。单片机的时钟信号通常有两种产生方式:内部时钟方式和外部时钟方式。 我们这里选用内部时钟方式,如下图。内部时钟是指在单片机XTAL1和XTAL2引脚上跨接上一个晶振和两个稳频电容,可以与单片机片内的电路构成一个稳定的自激振荡器。晶振的取值范围一般为024MHz。外接电容的作用是对振荡器进行频率微调,使振荡信号频率与晶振频率一致

15、,同时起到稳定频率的作用,一般选用2030pF的瓷片电容。 图1-13 时钟电路(3)复位电路 无论是在单片机刚开始接上电源时,还是运行过程中发生故障都需要复位。复位电路用于将单片机内部各电路的状态恢复到一个确定的初始值,并从这个状态开始工作。 单片机的复位条件:必须使其RST引脚上持续出现两个(或以上)机器周期的高电平。 单片机的复位形式:上电复位,按键复位。这里我们最小系统所使用的是按键复位,按键复位电路如下,当按键没有按下时,对电容进行充电。如在单片机运行过程中,按下RESET键,已经充好电的电容会快速通过接地电阻的回路放电,从而使得RST引脚上的电位快速变为高电平,此高电平会维持到按键

16、释放,从而满足单片机复位的条件实现按键复位。 图1-14 复位电路图2.3.3按键设计矩阵键盘是用4条I/O线作行线,4条I/O线作列线。在行线和列线的每个交叉点上,设置一个按键。键盘中的按键有16个,这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。图1-15 矩阵键盘2.3.4显示单元硬件设计1602共16跟管教,5V电压,能够同时显示16x02即32个字符(16列2行)。电路图以及控制功能列表:图1-16 显示电路表(2) LCD1602指令控制表 RSR/W操作说明00写入指令码D0D701读取输出的D0D7状态字10写入数据D0D711从D0D7读取数据2.3.5传感检测

17、模块设计本装置运用了4个电阻应变片组成的全桥测量电路作为测量电路,原理图如下:图1-17 全桥差动使用全桥差动测量电路不仅没有非线性误差,且电压灵敏度是单臂电阻应变片工作时的4倍。2.3.6 A/D转换单元硬件设计 A/D转换器是用来通过一定的电路将模拟量转变为数字量。模拟量可以是电压、电流等电信号,也可以是压力、温度、湿度、位移、声音等非电信号。但在A/D转换前,输入到A/D转换器的输入信号必须经各种传感器把各种物理量转换成电压信号。 HX711 采用了海芯科技集成电路专利技术,是一款专为高精度电子秤而设计的 24 位 A/D 转换器芯片。与同类型其它芯片相比,该芯片集成了包括稳压电源、片内

18、时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。降低了电子秤的整机成本,提高了整机的性能和可靠性。图1-18 HX7112.3.7电机驱动硬件设计(1)L298N芯片 L298N是SGS公司产品,内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含二个H桥电路,可以用来驱动直流电机和步进电机,继电器线圈等感性负载:采用标准逻辑电平信号控制,具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作:可以外接检测电阻,将变化量反馈给控制电路,其可驱动46V,2A以下的电机,并可以直

19、接连接单片机I/O提供信号可以很方便的利用PWM脉宽调制法进行控制。(2)PWM控制电压调节电机速度原理 用大功率晶闸管控制的PWM永磁式直流电机驱动装置,是高精度伺服电机控制领域应用最为广泛的驱动形式.该装置能实现宽范围内的速度和位置控制. PWM驱动原理是直流斩波原理,里用大功率晶闸管的开关特性来调制固定电压的直流电源.按一个固定频率来接通和关段,并根据需要改变一个周期内通短时间的长短,通过改变调节直流电枢上的占空比来改变平均电压的大小,从而调节转速.若周期为T,一个周期内道统时间为t则平均电压为: (1) 其中为占空比,为电源电压。直流电机的转速与电机两端的电压成正比,而电机两端的平均电

20、压与成正比,占空比越大速度越快,当占空比为一时加载电机两端的平均电压最大,电机转速也最大。(3)H桥电路 H桥式电机驱动电路包括4个三极管和一个电机,因其外形酷似H字母而得名,如下图。要使M运转,必须使对角线上的三极管导通,如当Q1管和Q4导通时,电流就从电源正极经Q1从左至右穿过电机,然后经Q4回到电源负极,电机顺时转动。当三极管Q2和Q3导通时,电流从右至左流过电机,驱动电机逆时针转动。 图1-19 H桥电路2.3.8 通信模块设计在串口通信方面采用了PL2303芯片,好处在于该器件内置USB功能控制器、USB 收发器、振荡器和带有全部调制解调器控制信号的UART, 只需外接几只电容就可实

21、现USB 信号与RS232 信号的转换,能够方便嵌入到各种设备;该器件作为USB/RS232 双向转换器,一方面从主机接收USB 数据并将其转换为RS232 信息流格式发送给外设;另一方面从RS232 外设接收数据转换为USB 数据格式传送回主机。这些工作全部由器件自动完成,开发者无需考虑固件设计。图1-20 PL2303通信模块2.3.9 原理图(1) 原理图:图1-21 原理图2.4 程序设计2.4.1 程序流程设备上电之后便会进行各模块的初始化,包括LCD1602的初始化、HX711AD模块初始化、定时器及PWM模块初始化。其次将等待预设值的输入,预设值输入之后将通过相应运算得到调节时间

22、,程序便开始进行PID控制,同时在显示模块上同步显示液体高度。程序流程图如下:各模块初始化 设定目标值获取重量PID控制显示 图1-23 程序流程图2.4.2 PID控制器在该控制系统中运用了增量式PID的控制方式,增量式PID的公式如下: = (2-11)PID程序通过获得传感器测得的实时数据与目标值做差,得到误差量,进行PID运算之后再通过改变PWM的量达到对水泵流量的控制,PID控制流程图如下:PID控制程序入口e(k)=给定值-测量值PID运算更新历史数据e(k-1)、e(k-2)返回控制量 图1-24 PID程序流程图2.4.3 矩阵扫描程序在矩阵键盘扫描程序中,首先将端口置为检测是

23、否有按键按下,在检测到按键按下之后进行消抖操作,再对返回的值做分析,得到返回键值242.4.4 LCD1602显示程序显示流程图如下: LCD初始化 确定输入坐标 输入显示数据 图1-25 PID程序流程图在LCD12864显示文字时要先进行初始化,初始化时需要将相应指令输入到LCD12864中,程序如下:void lcd_init_1602( void ) /1602初始化#ifdef LCD_1602_parallel_8lcdrw=0;lcden = 0;write_1602( 0x38, 0 ); /设至显示模式write_1602( 0x0c, 0 ); /设置显示和光标write_

24、1602( 0x06, 0 ); /设置光标移动write_1602( 0x01, 0 ); /清屏#endif #ifdef LCD_1602_parallel_4u8 date_1602;lcdrw=0;lcdrs = 0;lcden = 1;delay_ms(2); /根据系统时钟不同而不同date_1602 = (0x02 LOW_BIT);I0_lcd1602 = (I0_lcd1602 & (0x0fLOW_BIT); /delay_ms(2); /根据系统时钟不同而不同I0_lcd1602 = I0_lcd1602 | date_1602;lcden = 0; write_160

25、2( 0x28, 0 );/设至显示模式write_1602( 0x0c, 0 ); /设置显示和光标write_1602( 0x06, 0 ); /设置光标移动write_1602( 0x01, 0 ); /清屏#endif显示时用到了显示字符串函数:void write_string1_1602( u8 addr_y, u8 addr_x, u8 *string ) /写带地址的字符串 write_addr_1602( addr_y, addr_x ); /写地址write_string_1602( string ); /写字符串void write_1602( u8 date, bit

26、com ) /写1602操作lcdrs = com; /数据或命令I0_lcd1602 = date; /数据传送delay_ms(2);lcden = 1; /LCD1602使能delay_ms(2);lcden = 0; /1602失能2.4.5 AD采集程序装置运用了24位的HX711A/D转换模块获取传感器测量电压,其测量程序时序操作图如下: 图1-26 HX711时序图unsigned long HX711_Read(void)unsigned long count; unsigned char i; HX711_DOUT=1; Delay_hx711_us(); HX711_SCK

27、=0; count=0; while(HX711_DOUT); for(i=0;i24;i+) HX711_SCK=1; count=count1; HX711_SCK=0; if(HX711_DOUT)count+; HX711_SCK=1; count=count0x800000;Delay_hx711_us();HX711_SCK=0; return(count);2.4.6 PWM电机驱动程序 首先有两个寄存器CCAPnL和CL,CCAPnL用来存放一个0-255之间的一个数据,用来作比较的。假如是100,CL是一个计数器,假如CL=0,那么CL从0不断加1,一直加到99,这段时间PW

28、M引脚输出为低电平,当CL的值变为100然后一直加到255,这段时间PWM引脚输出为高电平,CL再加1的话会翻转到00重新计数,CL的计数速度可选FOSC作为PWM的输入时钟,使用固定的PWM的信号频率。这里可以看到CCAPnL存放的数值影响着输出脉冲高低电平的宽度,通过修改CCAPnL的值,也就是说输出脉冲宽度可以随时改变。由此将PWM输出给L298电机驱动芯片实现电机转速可调。相关初始化程序与控制程序如下:void PWM_ini() /PWM初始化 CMOD=0x00; /选择FOSC/12作为时钟源 CL=0x00; /清零自由递增计数的16位定时器的值 /*PWM1相关寄存器设置*/ PCA_PWM1=0x00;CCAPM1=0x42;CR=1; /CR=1,启动PCA阵列计数。 void PWM_Set(int PWM1_DATA) /PWM设置uchar n;if(

温馨提示

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

评论

0/150

提交评论