关键词:小波分析;神经网络;小波神经网络;火电单元机组;负荷模型
1 引言火电单元机组是由锅炉、汽轮机、发电机、电网和负载等设备组成的负荷系统,它具有强非线性和不确定性,是一种复杂的多变量被控对象,难以建立精确的数学模型。现有机组模型大多数采用线性模型,以这些线性模型为基础设计的控制系统常常难以适应工况大范围的变化,同时建立对象的非线性模型又是实现一大类基于模型的非线性控制算法,提高控制系统的品质的前提。近年来,许多学者利用常规的前馈神经网络对非线性对象的建模问题进行了研究,但它存在收敛慢、易陷入局部极小等缺点。
小波分析理论被认为是傅立叶分析的突破性进展。小波变换通过尺度的伸缩和平移对信号进行多尺度分析,能有效提取信号的局部信息。神经网络具有自学习、自适应和容错性等特点,是一类通用的函数逼近器[1]。小波神经网络继承了两者的优点,能够通过训练自适应地调整小波基的形状实现小波变换,同时具有良好的函数逼近能力和模式分类能力[2]。自1992年Zhang Qinghua和Benveniste[3]明确提出了小波网络的概念和算法后,出现了各种小波神经网络模型,如Pati和Krishnaprasad的离散仿射小波神经网络[4],Baskshi和Stephanopoulou的正交多分辨小波神经网络[5],ZhangJun等提出的基于类紧支特性的尺度函数的正交小波基神经网络[6]等。在众多的小波网络模型中,Szu等人提出的两种基于连续小波变换的自适应小波神经网络模型应用最为广泛[7],其中信号表示为多输入单输出模型,隐层采用小波函数基,输出层为线性函数。已经证明, 小波神经网络在逼近单变量函数时是渐近最优的逼近器[8]。
本文尝试利用小波神经网络来构造单元机组的负荷数学模型,在Szu和Zhang的工作基础上,参考文[1],把基于信号表示的小波神经网络推广到多输入多输出形式,仿照一般的BP网络构造小波神经网络。仿真结果表明,网络输出值与实际模型输出值之间的误差在允许范围内,小波神经网络能有效逼近单元机组模型。
2 基于BP算法的小波神经网络的学习算法
小波分析方法是一种窗口大小固定但其形状可改变,时间窗和频率窗都可改变的时频局部化分析方法。这使得在低频时小波变换的时间分辨率较低,而频率分辨率较高;在高频时小波变换的时间分辨率较高,而频率分辨率较低[9,10]。具体方法是先由基本小波函数y(t)在经过伸缩平移后产生一组小波基函数
小波神经网络则是一种以小波基函数为神经元激励函数的前馈网络模型,它既可看作是以小波函数为基底的函数连接型网络,也可以认为是径向基函数网络的推广。本文中的网络采用BP算法以批处理方式对其进行训练,自适应地调整小波系数和网络权重。
设xk为输入层的第k个输入样本,yi为输出层的第i个输出值,wij为连接输出层结点i和隐层结点j的权重,vjk为连接隐层结点j和输入层结点k的权重。若约定vi0是第i个输出层结点阈值,wj0是第j个隐层结点阈值(相应的输入x0= -1),aj和bj分别为第j个隐层结点的伸缩平移系数;P(P=1,2,…,P)为输入样本的模式个数,m(k=1,2,…,m)为输入层结点个数,n(j=1,2,…,n)为隐层结点个数,N(i=1,2,…,N)为输出层结点个数,h为学习率,则小波网络模型可表示为
计算对误差函数的偏导数得
按梯度法修正权值,并引入学习率η和动量系数μ,则
3
小波神经网络的训练
本文中的小波神经网络结构是net 6-14-2, 网络的初始权值设为[-1,1]之间的随机数,网络的输入为由Gauss函数产生的均匀分布的伪随机数。训练样本共有110组,采用批训练的方法,网络的最大训练次数设定为1000次,网络误差指标设定为0.001。仿真编程采用MATLAB语言。
在网络训练的全过程中,网络收敛的速度呈现出非线性。训练初期小波神经网络的收敛速度比较快, 基本上是线性的。但到训练后期, 网络的误差减小比较缓慢,而且会出现误差的振荡,易陷入局部极小点。究其原因,这是由 BP算法基于梯度下降的本质决定的。因此探索针对 WNN模型的高效学习算法很有必要。
经试验证明如果采用自适应的学习速率η和动量系数μ可以比较有效地改善上述问题。具体实现过程如下:网络开始训练时,设定η=0.0039,μ = 0.32;而后随着误差的衰减速度在程序中自动和手动相结合的调整η和μ。自动调整是指网络在经过一批次训练后如果误差E与前批次相比下降较慢,则将学习速率h变为βη (β>1),以加快收敛速度,否则h保持不变。本文中β =1.005,批次大小设为10。但过大的h容易使训练陷入局部最小,所以当发现E出现振荡时,一面要减小h,一面要加大动量系数m,使m变为β η(β >1),以跳出局部极小点。手动调整是指如果发现训练按照自动调整始终无法跳出局部极小,则暂时终止程序,手动给出新的合适的h和m,然后继续进行训练。试验结果表明,训练开始时非常顺利,只是在后期终止过一次,手动给出新的η=0.0041,μ=0.38,最后误差在网络训练到550次后收敛到设定值。此外,还可以考虑对小波基函数做 Gram-Schmit正交化 ,用非线性回归分析的方法来确定小波的系数a和b,或者在训练中自适应地调整隐层的节点数。
实验中还发现小波网络对小波系数初值的选取特别是尺度因子a比较敏感。小波参数初始化目前还缺少严格的理论指导,一般经验是先在高尺度上训练,精度不够时,再转向低尺度训练,如何选择合适的初始化参数是 WNN的一个关键问题。目前,我们只是通过从多次实验比较从中选择性能比较好的一组数据。
4
模型仿真结果
4.1 仿真模型的传递函数
本文以某电厂125MW中间再热燃煤机组做为被控对象,其动态特性为
式中
Ne为机组实发功率与额定功率之比;Pt为实际主蒸汽压力与额定主蒸汽压力之比;mT为主蒸汽阀门开度; mB为锅炉燃烧率;WPT、WPB分别为Pt对调节阀开度mT和燃料量B的传递函数;WNT(s)、WNB分别为Ne对调节阀开度mT和燃料量B的传递函数,其计算式为
4.2 火电单元机组负荷小波神经网络的构造
本文中的小波神经网络共分3层。输入层有6个输入节点,分别为μT(k)、μT(k-1)、Ne(k-1),μB(k)、μB(k-1)、Pt(k-1) 。隐层经反复试验确定为14个神经元节点,激励函数采用框架小波函数,本文选用墨西哥草帽函数;输出层有2个输出节点,分别为Ne和Pt,激励函数为线性函数。网络模型如图1所示。
4.3 训练样本数据的获取
网络的训练样本来自于上述的火电厂模型,用MATLAB对其做仿真,mT、mB用由Gauss函数产生的均匀分布的伪随机数作为输入,得到Ne和Pt的输出,仿真时间为250s,共得到110组样本数据,仿真框图如图2所示。如果将本文的方法运用到实际工作中,可以在现场对单元机组在不同负荷工况下进行阶跃试验,从而得到网络的训练样本。
4.4 样本数据的拟合结果小波神经网络在用样本数据进行训练后,自动调整了网络权值,训练后的网络输出与实际模型的输出的对比如图3、图4所示。
(1)机组功率Ne的样本数据拟合曲线(见图3)
(2)蒸汽压力Pt的样本数据拟合曲线(见图4)
从图3、图4可以看出,实际模型与小波网络在具有相同输入时,两者输出之间的差距很小,小波网络的预测误差不超过± 0.08,小波网络对单元机组模型进行了精确逼近。4.5 测试数据的拟合结果
为了检验训练后的小波网络的总体性能,对网络进行了两轮测试。方波信号与正弦波信号是经典的信号模式,把它们分别作为网络和模型——此文章转载于互联网,文中观点与本网站无关,如有侵权请联系删除