《武汉工程大学学报》  2009年07期 91-94   出版日期:2009-07-28   ISSN:1674-2869   CN:42-1779/TQ
BP-PID在锅炉蒸汽压力控制中的应用


0引言船用锅炉主蒸汽压力调节对象含有大惯性、大滞后环节.在工业过程控制中,常规PID控制方法不具备自适应能力,很难满足实际的控制要求.智能控制理论的发展为PID参数的整定提供了新的方法和途径,为锅炉蒸汽压力的自动控制提供了新的方法.虽然专家控制、模糊控制等智能控制不需要被控对象的数学模型,但由于模糊控制中模糊规则的确定和专家智能控制中专家经验知识库的建立比较困难,使得其实际应用效果与人们对它的期望距离较远.神经网络具有自学习、自组织、自适应的能力[1],基于BP神经网络的PID控制器,把人工神经网络与传统PID控制相结合.该方法不仅结构简单,易于在ADAM模块上实现,而且能适应环境变化,有较强的鲁棒性.1BP神经网络PID控制器结构1.1BP神经网络PID控制器结构模型基于BP神经网络的PID控制系统结构如图1所示,控制系统由两部分组成:一是经典的PID控制器:该控制器直接对被控制对象进行闭环控制,并且在线调整[2]三个参数kp、ki、kd.二是神经网络根据系统的运行状态调节PID控制器的参数,从而达到控制系统性能的最优化,使输出层神经元的输出状态对应于PID控制器的三个可调整参数kp、ki、kd.通过神经网络的自学习,权系数调整,使神经网络的输出对应于某种最优控制规律下的PID控制器参数.图1基于BP神经网络的PID控制器结构
Fig.1The architecture of PID controler based on BP neural network1.2BP网络结构BP网络是一种单向传播的多层向前网络.网络除输入输出节点外,还有一层或多层的隐节点,同层节点中没有任何耦合.输入节点对应系统的运行状态量,输入变量的个数取决于被控系统的复杂程度,输出节点对应的是PID的三个可调参数.由于输出不能为负,所以输出层活化函数取非负的Sigmoid函数,隐层取正负对称的Sigmoid函数.本系统取BP网络的结构为453型,如图2所示.图2基于BP算法的神经元网络的结构
Fig.2The architecture of neutonal network based on BP algorithm2BP算法BP算法的主要思想是把学习过程分为正向和反向传播两个阶段.在正向传播过程中,每一层神经元的状态只影响下一层神经元网络.如果输出层不能得到期望输出,就是实际输出值与期望值之间有误差,那么转入反向传播过程,将误差信号沿原来的连通路返回,通过修改各层神经元的权值,逐次地向输入层传播去进行计算,在经过正向传播过程,这两个过程的反复运用,使得误差信号最小[3].实际上,误差达到人们所希望的要求时,网络的学习过程就结束[4].2.1前向传播算法网络输入层的输入为o(1)j=x(j)j=1,2,…,M(1)
式(1)中输入变量的个数m取决于被控系统的复杂程度.网络隐含层的输入、输出为
net(2)i(k)=∑Mj=0w(2)ijo(1)j
o(2)i(k)=f(net(2)i(k)),(i=1,2,…,Q)(2)
式(2)中w(2)ij为隐含层的加权系数,上角标(1)、(2)、(3)分别代表输入层、隐含层和输出层.隐含层神经元的活化函数取正负对称的Sigmoid函数.f(x)=tanh(x)=ex-e-xex+e-x(3)网络输出层的输入输出为
net(3)i(k)=∑Qi=0w(3)lio(2)i(k)
o(3)l(k)=g(net(3)l(k))(l=1,2,3)(4)
o(3)1(k)=kp
o(3)2(k)=ki
o(3)3(k)=kd
输出层节点分别对应三个可调参数kp、ki、kd,由于kp、ki、kd不能为负,所以输出层神经元的活化函数取非负的Sigmoid函数为g(x)=12(1+tanh(x))=exex+e-x(5)第7期刘姝廷,等:BPPID在锅炉蒸汽压力控制中的应用
武汉工程大学学报第31卷
2.2反向传播算法取性能指标函数为E(k)=12(r(k)-y(k))2(6)按照梯度下降法修正网络的权系数,即按E(k)对加权系数的负梯度方向搜索调整,并附加一个使快速收敛全局极小的惯性项:Δw(3)li(k)=-ηE(k)w(3)li(k)+αΔw(3)li(k-1)(7)
式(7)中,η为学习速率;α为惯性系数.
E(k)w(3)li(k)=
E(k)y(k)·y(k)Δu(k)·Δu(k)o(3)l(k)·o(3)l(k)net(3)l(k)·net(3)l(k)w(3)li(k)(8)
又net(3)l(k)w(3)li(k)=o(2)i(k)
E(k)y(k)=-e(k)(9)采用增量式数字PID控制算法,则有
Δu(k)o(3)1(k)=e(k)-e(k-1)
Δu(k)o(3)2(k)=e(k)
Δu(k)o(3)3(k)=e(k)-2e(k-1)+e(k-2)(10)由于y(k)/Δu(k)未知,可用一个神经网络来代替被控对象,即先用BP神经网络建立一个被控对象辨识模型,在用此模型去训练BP网络控制器,以解决权值修正时的导数项y(k)/Δu(k)的计算.这里近似用符号函数sgn[y(k)/Δu(k)]取代,这样做可以简化计算,因为y(k)/Δu(k)是权值变化中的一个公共因子,最重要的是它的符号的正负,符号的正负决定着权值的变化方向,数值的大小只影响权值变化的速度,由此带来的计算不精确的影响可以通过调整学习速率η来补偿.上述分析网络输出层权值的学习算法为Δw(3)li(k)=αΔw(3)li(k-1)+ηδ(3)lo2i(k)(11)
式(11)中,δ(3)l为权值调整系数.δ(3)l(k)=e(k)·sgny(k)Δu(k)·Δu(k)o(3)l(k)·g′(net(3)l(k))(l=1,2,3)(12)
同理可得隐含层加权系数的学习算法Δw(2)ij(k)=αΔw(2)ij(k-1)+ηδ(2)io(1)j(k)(13)δ(2)i=f′(net(2)i(k))∑3l=1δ(3)lw(3)li(k)(14)
式(14)中,g′(·)=g(x)(1-g(x)),f′(·)=(1-f2(x))/2.基于BP网络的PID控制器结构如图1所示,该控制器算法归纳如下:(1) 确定BP网络的结构,即确定输入层节点数M和隐含层节点数Q,并给出各层加权系数的初值w1ij(0)和w2li(0),选定学习速率η和惯性系数α,此时k=1.(2) 采样得到r(k),y(k),计算该时刻误差e(k)=r(k)-y(k).(3) 计算神经网络的各层神经元的输入,输出,输出层的输出即为PID控制器的三个可调参数kp,ki,kd.(4) 根据经典增量式数字PID的控制算法:
w(k)=u(k-1)+kp(e(k)-e(k-1))+
kie(k)+kd(e(k)-2e(k-1)+e(k-2))(15)计算PID控制器的输出u(k).(5) 进行神经网络学习,在线调节加权系数w1ij(k)和w2li(k),实现PID控制参数自整定.(6) 置k=k+1,返回到(1).3仿真研究以蒸发量为2 t/h,稳定蒸汽压力为0.4 MPa的船用小型燃油蒸汽锅炉为控制对象.经多次测试得到其近似数学模型为:G(s)=160s+1e-40s对于这个蒸汽压力数学模型,选择神经网络的结构为453.学习速率η=0.25,惯性系数α.加权系数取区间[-0.5,0.5]上的随机数.输入指令信号为幅值为1的阶跃信号,采样时间ts取10 s,由此进行仿真.图3是采用两种不同控制算法的仿真曲线比较图,图3(a)是采用传统PID控制算法的响应曲线,图3(b)是采用BP神经网络控制算法的响应曲线.(a)(b)
图3仿真结果比较
Fig.3Comparison of the simulation results从图3可以看出,采用传统PID控制算法的响应曲线,振荡较大,过渡时间长,超调量较大;采用BP神经网络控制算法的响应曲线,无振荡,过渡时间短,无超调,且最先得到稳定输出,其控制效果明显优于传统的PID控制算法.4控制系统设计4.1硬件系统设计系统为分布式计算机监控系统,由工业控制计算机、现场ADAM模块、传感器、执行器等部件构成,分散监测控制与集中监视控制相结合.硬件系统结构如图4所示.图4硬件系统结构图
Fig.4The architecture of hardware system控制系统为MS/TP主从式网络.上层为控制管理层,由上位机和打印机等辅助设备构成;下层为现场层,由ADAM模块和现场设备构成,上下层之间通过RS485网络相连.上位机采用ADAM4520模块实现RS232协议的数据与RS485协议的数据的相互转换[5],以实现与RS485控制网络之间的信息交换.ADAM模块置于现场,挂接于双绞线上,构成RS485现场控制网络,用于采集现场传感器的信号和控制现场设备.被控锅炉使用一个ADAM4017模块,采集锅炉主蒸汽压力,1路模拟量输入.传感器采用压电式压力传感器,该传感器提供1~5 V电压输出.用一个ADAM4024模块调节蒸汽压力调节阀,有1路模拟量输出.4.2软件系统设计用工业控制计算机,完成系统的控制算法、数据存储、系统优化及管理等功能.应用软件使用Visual Basic 6.0编程语言,它提供专门管理串行通信的MSComm控件,并提供了多种数据库的访问和管理技术.控制算法采用基于BP神经网络的PID控制.系统使用SQL Server2000数据库,实现数据的存储和管理.在Visual Basic 6.0中使用Data控件访问SQL数据库[6],可以实现添加记录、编辑和更新现有记录,以及处理某些类型的错误.Data控件能与其他数据库访问控件结合使用,可以用表格、图像等方式显示数据库中的数据内容,以便管理人员对系统的数据进行访问和管理.主要由系统管理模块、数据实时监控模块、数据查询模块、数据管理模块和报警事件模块构成,用以完成系统被测量的实时监控[7],被测量的上、下限报警,数据的管理和存储,打印和报表统计等功能.各模块功能如图5所示.图5模块功能
Fig.5The function of the modules 锅炉蒸汽压力实时控制曲线监控界面如图6所示.图6锅炉蒸汽压力实时控制曲线监控界面
Fig.6The monitoring interface of the bioler steam pressure5结语利用BP神经网络对PID的三个参数快速整定,建立参数kp、ki、kd自学习的PID控制器,不需要根据模型或工程实验方法选取控制器参数,克服了传统PID控制器操作的困难,提高了系统的智能化程度[8].这种智能算法在ADAM模块上实现方法简单、控制效果良好、系统自动化程度和可靠性高.以上介绍的思想和技术,希望能对从事过程控制系统软件及硬件的设计人员提供一些有益的帮助.