基于神经网络的恒压供水系统设计
扫描二维码
随时随地手机看文章
摘要:本设计基于中小楼房管道供水系统,采用AT80C51单片机、压力传感器、变频器、A/D转换、D/A转换电路等设备和元器件,结合工业智能控制技术,采用BP算法的神经网络PID调节器,利用自身的在线学习功能,实现自动调节连接权重,减小系统因变参数与非线性等因素的影响,从而提高系统的鲁棒性,达到恒压供水的目的。
关键词:BP神经网络;恒压;供水;AT89C51;PID
本设计是征对楼房自来水管道供水系统,主要研究的是基于AT89C51微处理器的压力参数的控制和调节,也就是以AT89C51单片机为处理器,通过A/D、D/A转换单元与电路,通过基于BP算法的神经网络PID调节器,从而控制变频器,通过变频器驱动交流电机,然后控制执行对象齿轮泵,使得供水系统管道的压力无论在用水的高峰期或者低峰期基本保持不变,达到恒压供水目的。
1 系统总体方案设计
1.1 恒压供水系统基本模型
恒压供水系统模型如图1所示。该系统是一个单闭环控制系统,控制的主要任务是让供水系统管道的压力等于某个固定的值,从而减少或者消除应用水量的大小等内部和外部因素的影响。
单闭环控制系统因其结构简单、投资小、操作简单,并能够满足一般生产过程的要求,所以被广泛应用。在控制系统中,调节器参数的选择直接影响控制系统的质量。在工业控制中通过数字改造,可以提高设计的效率,但是由于电动机参数的非线性和时变性,具体实施还是比较困难。因此考虑到以上问题的存在,对常规模拟系统进行数字化改造,引入神经网络控制,通过它具有的在线学习能力,自动调节权重系数,实现对复杂系统的控制。
1.2 恒压供水系统的作用与功能
该系统是一个基于AT89C51单片机的恒压供水系统,其系统结构如图2所示。
主要组成单元有管道压力检测单元、A/D转换单元、基于单片机的控制单元和基于神经网络PID调节器组成的管道压力的变频调速单元。具体工作过程是:给定恒压供水系统的值,通过压力传感器获取当前管道的压力值,通过A/D转换器将模拟信号变换成数字信号,然后输送到AT89C51和给定值进行比较,得到偏差信号,该偏差信号通过基于神经网络BP算法的数字PID调解后,输出一个转速控制信号,通过D/A转换,控制变频器的转算,达到自动调节供水系统的压力达到一个稳定的值。
1.3 数字式PID原理
因在连续控制系统中,PID控制具有典型的结构,参数整定方便,同时伴随计算机技术的发展,在线测量速度加快,所以PID控制器被很广泛应用。模拟控制系统中,PID的控制规律为:
K-比例系数;Ti-积分时间常数;Td-微分时间常数
输出控制量取决于输入与输出的偏差、偏差积分和偏差微分3个因素,对连续的PID控制算法进行离散处理,如采样周期T很小,则可得到离散PID表达式:
式中,u(k)为控制器在K时刻的输出,Ki=Ip/Ti,Kd=KpTd,T为采样周期,K为采样序号,K=1,2,…,e(k-1)和e(k)分别为第(K-1)和第K时刻所得的偏差信号。上式可以看出,想要计算u(k),要本次与上次偏差信号e(k和e(k-1),而且还要在积分项中把历次偏差信号e(j)进行相加,即求取累加信号,因此在具体实践中需要占用很大的存储空间,使用起来非常不方便。为了减少计算的工作量,节约存储空间,经常采用增量式控制算法,上式,用u(k)-u(k-1),并进行一些变换,可得到增量式PID控制的表达式:
△u(k)=Kp(e(kT)-e(kT-T))+Kie(kT)+Kd(e(kT)-2e(kT-T)+e(kT-2T))
Kp-比例系数;Ti-调节器的积分时间;Td-调节器的微分时间
调节器改造成数字PID调节器对于工业控制过程来说,经常系统属于非线性系统,并且有时候系统的准确模型是无法可知的,同时,在实际的生产过程当中,经常受到系统参数不稳定等多种因素的影响,系统调试比较繁琐,并且性能欠佳,因此,人们寻求能够自学习、自整定的技术,以适应复杂的控制系统,而神经网络技术的发展将这种设想变成现实。
神经网络根据系统的运行状态调节PID控制器的参数,从而达到控制系统性能的最优化,使输出层神经元的输出状态对应于PID控制器的3个可调整参数kp,ki,kd通过神经网络的自学习,权系数调整,使神经网络输出对应于某种最优控制规律下的PID控制器参数。
1.4 基于BP神经网络的PID调节器整定原理
根据数字式PID的表达式可以看出,PID调节器参数调优就是确定比例系数kp,积分时间常数ki,微分时间常数kd,使得系统满足某些性能指标,因此,PID参数优化问题就是(kp,ki,kd)三维参数的目标优化问题。
根据系统需求,采用三层BP网络,其结构如图3所示。
为反映输入PID控制器信号的特性,其输入层神经元个数选为3:x1(k)=e(k)为误差量,,反映误差的累计效果,类似连续系统中的积分效果,x3(k)=e(k)-e(k-1),反映误差变化快慢,相当于连续系统中的微分效果。x1(k),x2(k)和x3(k)作为输入,能够比较全面的反映误差量的状态,因此用它们来作为网络输入层的3个输入量。输出层输出节点分别对应3个可调参数kp,ki,kd,故输出层神经元个数为3。由于控制参数kp,ki,kd不能为负值,所以输出层神经元的激发函数取非负的Sigmoid函数。
隐层的神经元个数可由以下经验公式确定式中:n,q,m分别为输入层、隐层和输出层神经元个数,由上式计算可得,n+m取值在2~3之间,并且公式中f可取1~10,由于网络节点数过多会增加计算量,个数太少则不能很好地逼近给定函数,综合考虑,此处q取5隐层神经元的激发函数取正负对称的Sigmoid函数。
输出层输出节点分别对应3个可调参数kp,ki,kd。
按照梯度下降法修正网络的权系数,即按照E(k)对权系数的负梯度方向搜索调整,并附加一个使搜索快速收敛全局极小惯性项:
由此带来的误差影响可以通过调整学习效率来进行补偿。由此可以得到:
1.5 数据采集与处理系统
恒压供水系统设计中,数据采集与处理的主要任务是将检测单元获取的当前供水系统的管内压力转换成相应的电压值,以便单片机将该电压与给定的电压值进行比较,从而按照所得到的偏差进行PID算法控制。在本系统设计中,对于管道内压力缓慢变化的信号,通过AT89C51微处理器,并利用少量的接口电路,辅助A/D转换电路来实现。
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含有4K bytes的可反复擦写的只读程序存储器和128的随机存取数据存储器,器件采用AEMEL公司的高密度,非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和FLASH存储单元,功能强大、结构简单,同时和51系列指令兼容,可灵活应用于各种控制领域。
A/D转换电路采用通用的AD574,AD574,是一种快速的12位逐次比较式AD转换芯片,片内有时钟,无须外加时钟信号,电路采用单极性输入方式,可对0~10 V或0~20 V模拟信号进行转换,转换结果的高8位从D11~D4输出,低4位从输出,并且直接与单片机的数据总线连接。
D/A转换电路选用美国NS(National Semiconductor)公司生产的12位D/A转换器DAC1208,该芯片的控制精度可以达到0.012%,使用简单灵活。
管道水压传感器可选用PT504高精度压力变送器,该传感器量程范围0~100 MPa;输出信号4~20 mA;0~5 V;1~5 V;0~10 V;采用螺纹连接,通用M20x15,接线类型为紧线螺母型,整体安装和调试都比较方便。
1.6 其他电路设计
其他电路的设计基本上遵循单片机最小系统的设计,也是相当成熟的电路,鉴于篇幅不再详述。如要实现双机或多机通讯,可以采用RS232串行通讯来实现。
2 结束语
基于AT89C51单片机恒压供水控制系统在楼宇给水、锅炉给水等控制中应用比较广泛,在本系统设计中,硬件系统设计在力求结构简单,功能全面可靠的同时,充分考虑系统的抗干扰性能,采用基于BP算法神经网络PID控制器,大大提高了系统的抗干扰能力。