基于改进PSO优化BP神经网络的变压器故障诊断

2015-10-30 07:20丁腾飞曹云侠
制造业自动化 2015年10期
关键词:权值适应度全局

丁腾飞,曹云侠

(1.中国科学院沈阳自动化研究所,沈阳 110016;2.中国科学院大学,北京 100049)

0 引言

随着我国经济健康快速发展,对电能的需求迅速增长,电网规模日益扩大,变压器是电力系统中重要的电力转换设备之一,承担着电压变换、电能分配的任务,变压器的安全可靠运行对整个电网的安全起着至关重要的作用。但由于变压器长期运行,故障和事故不可能完全避免,因此变压器故障诊断以及预测具有重大意义。大型变压器一般是油浸式,油中溶解气体分析技术(DGA)对油浸变压器故障诊断应用非常广泛,并且往往能准确、可靠地发现逐步发展的潜伏性故障,防止由此引起重大事故。氢气、甲烷、乙烷、乙炔、乙烯、一氧化碳、二氧化碳是变压器油中溶解气体色谱分析的重要组分,故障类型通常分为热故障和电故障,热故障又可以分为高温过热、中温过热、低温过热,电故障分为局部放电、电弧放电、火花放电。通过气体的含量来判断故障的类型是一个模式识别的过程[1],神经网络具有良好的非线性映射能力,但由于神经网络的收敛速度缓慢,容易陷入局部最小点等局限性,有时甚至不能收敛,因此故障诊断准确率并不高。

粒子群算法是一种新型的群智能优化算法,具有优越的全局搜索能力,可以发挥粒子群算法的全局搜索能力优化BP神经网络的权值和阈值,充分发挥两种算法各自优点。采用H2、CH4、C2H4、C2H6、C2H2五种气体作为神经网络的输入,故障的类型归并为高温过热、中低温过热、高能放电、低能放电,用100组实际数据进行仿真调试,并调整优化各个参数,建立准确、高效的故障诊断模型[2]。

1 PSO算法及改进

1.1 PSO简介

PSO算法是对鸟群觅食行为的研究得出,每只鸟就是PSO中的粒子,也是需要求解问题的可能解,这些鸟在觅食过程中,通过个体之间的合作和群体信息共享不停改变自己在空中飞行的位置与速度来寻找食物。通过对鸟群觅食行为特征的抽象,PSO随机初始化为一群粒子,假设在D维的搜索空间中,n个粒子组成的种群表示为X=(X1,X2,…,Xn),第i个粒子在D维空间中的位置表示成向量:Xi=(X1,X2,…,Xd)T,也是求解问题的潜在解;第i个粒子的速度表示为向量Vi=(V1,V2,…,Vd)T,速度决定粒子在搜索空间内每一次迭代产生的位移。PSO算法便在解空间中初始化一群粒子,用粒子的位置、速度和适应度值来表示每个粒子的特征,适应度值由适应度函数来确定,适应度值的好坏反映了粒子的优劣。粒子在解空间中运动,粒子位置的更新根据个体极值(pbest)和群体极值(gbest)来决定,pbest是粒子本身所找到的最优解,gbest是种群中所有粒子找到的最优解。粒子每更新一次都会计算一次适应度值,比较两次适应度值的大小来确定更新pbest和gbest的位置。粒子速度和位置更新公式如下:

说明:在式(1)、式(2)中,i=1,2,…,M,

M是种群粒子总数;

Vi是粒子运动速度;

ω为非负数,惯性权重或惯性因子;

pbest和gbest是个体极值和群体极值;

rand()是(0,1)之间的随机数;

Xi是粒子当前位置;

C1和C2是学习因子也称为加速因子;

公式(1)的第一部分包含了上次速度大小和方向对下次粒子运动的影响;第二部分是从当前位置到粒子自身搜索到的最好位置向量,蕴含粒子运动过程中自身的经验;第三部分是从当前位置到种群最佳位置的向量,反映了粒子间信息交互,粒子通过自身和群体中最好的经验决定下一步运动。粒子还有一个最大限制速度Vmax( Vmax>0),保证了粒子运动速度不会超过某个设定的范围。Vmax是当前点与最好点之间的运动步长(或精度)。如果Vmax太大,粒子可能越过极小点,如果Vmax过小,则粒子不能在搜索空间进行充分搜索,甚至会陷入到局部极小值。

1.2 PSO算法改进

1.2.1 惯性权重

惯性权重ω是上一次速度对本次影响大小的描述,ω使粒子具有扩展搜索空间的能力。如果ω=0,粒子速度只取决于个体当前位置和种群中的最好位置,粒子本身没有继承以前搜索的良好经验,如果这个粒子处在全局最优位置,它将保持在这个位置不动,其他粒子向着自身搜索到的最佳位置和全局最佳位置的加权中心运动,这样反复迭代粒子最终聚集到当前全局最好位置;如果ω≠0,粒子便可以扩展搜索空间,ω可以兼顾全局和局部搜索能力的平衡。ω大全局搜索能力较强,ω小局部搜索能力凸显。

为了满足搜索过程中开始搜索时希望在全局充分搜索,防止陷入局部最小点,随着搜索过程的进行,全局搜索基本达到要求,局部搜索能力便可加强,有利于进行精确的局部搜索,这样速度减小过程平稳,保证全局搜索的全面性,后期局部搜索的精确化。因此ω的变化基本上是一个由大变小的过程。

ωmax是最大惯性权重;ωmin是最小惯性权重;t是当前的迭代次数;T是最大迭代次数;ωmax一般取0.9,ωmin一般取0.4。

1.2.2 学习因子

学习因子C1、C2表征了粒子自身经验与群体经验在其运动过程中所起的作用。如果C1较小,粒子缺乏自身经验,只有社会经验,收敛速度变快,面对复杂问题容易陷入局部最优点。如果C2较小,粒子缺少群体间的信息共享,每个粒子只是依靠自身的经验来搜索,因而得到最优解的机率非常小。因此,学习因子C1和C2大小反映将每个粒子推向pbest和gbest位置的权值,通常C1=C2=2可以取得比较好的效果,但是动态调整参数可以优化算法性能[3]。PSO算法希望前期粒子的认知能力更强一些,所有粒子充分发挥自身搜索能力,避免开始时社会的群体认知过大,使大部分粒子都向着某个方向移动,不能充分挖掘出全局最优值。这样C1由大变小,C2由小变大的相对趋势,能充分发挥粒子自身搜索能力,又能兼顾所有粒子的群体认知。

C1,C2动态调整式子为:

参数设置为Cmax=2.6,Cmin=0.6,t是当前的迭代次数;T是最大迭代次数。

1.2.3 变异思想

PSO算法收敛速度快,通用性强,但粒子在搜索过程中不断地向自身搜索的最优位置或者群体的最优位置不断移动聚集,容易陷入局部极值、早熟收敛、后期迭代效率不高等缺点。为了在一定程度上缓解这个不足之处,借鉴遗传算法中的变异思想,每次迭代都以一定的概率重新初始化某些变量,保证一定的变异率,使粒子跳出先前搜索到的最优位置区域,扩展不断缩小的搜索空间,保证种群的多样性,提高算法寻找到最优值的能力。

MATLAB代码如下:

2 BP神经网络及改进

2.1 BP神经网络算法

神经网络通常由输入层、隐含层、输出层构成,BP网络是多层前馈神经网络,能存贮大量的输入-输出之间的映射关系,可以实现从输入到输出的任意非线性映射,它采用最速下降学习规则,通过误差反向传播来不断调整网络的权值和阈值,最终使网络的误差平方和最小。因此,其主要特点就是信号的正向传播和误差的反向传播,前向传递是样本从输入层输入,经过隐含层传至输出层,若网络训练的实际输出与期望输出误差值太大,就进行误差反向传播。误差反向传播是把预测的误差通过隐含层向输入层逐层反向传播,每一层根据误差信号修正权值和阈值,从而使BP神经网络的预测输出与期望输出步步逼近。通过信号正向传播和误差反向传播,权值和阈值周而复始、不断调整,一直持续到网络的输出误差减小到设定的误差范围或学习次数为止。拓扑结构如图1所示。

图1 BP神经网络拓扑图

2.2 BP神经网络改进

神经网络的训练对学习速率大小变化非常敏感,学习速率决定着循环训练过程中网络权值的变化量,标准的BP神经网络学习速率是固定不变的,网络学习过程中容易产生震荡,在训练后期收敛缓慢,为了改善固定学习速率的不足,能在训练过程中迅速跳出局部最小点并达到全局最小点,采取学习速率由大变小的方法,开始使网络权值以较大的变化跳过局部最小点,然后以比较平稳的学习速率达到全局最优点,而且整个训练过程能够平稳的进行,后期保持网络的稳定[4]。改进的BP神经网络算法避免由于固定学习速率在开始收敛缓慢,后期相对过大的学习速率产生震荡的弊端,得到更加准确的输出值,在一定程度上也缩短网络学习时间。BP算法经过反复迭代可以使权值收敛到某个值,但并不能保证误差为全局最小值,因为采用梯度下降法可能产生局部最小值,可以采用附加动量法来解决这个问题。

3 改进PSO优化BP神经网络

标准BP神经网络初始权值和阈值都是随机产生的,PSO算法是通过不断地更新粒子的位置和速度,使得粒子的适应度值越来越小(或大),收敛速度快、全局搜索能力强,用来优化BP神经网络可以弥补BP神经网络的不足。将BP网络的权值和阈值用PSO中粒子的位置来代替,BP网络输出的误差均方值用粒子的适应度值来表示,可以得出比随机方法产生权值和阈值更好的初始值,实现BP网络的优化。

根据国际电工委员会(IEC)的推荐,选用H2、CH4、C2H6、C2H4、C2H2作为输入,高能放电、低能放电、高温过热、中低温过热作为输出,因此BP神经网络输入层节点个数L=5,输出层神经元个数N=4。隐含层神经元个数为M,隐含层神经元个数的确定没有确定的理论计算,只有经验公式(L为输入层神经元个数, N输出层神经元个数,a是[0,10]之间的常数)估计神经元的大体范围,经过经验公式计算隐含层个数大体在4-14之间,如果隐含层节点数过少,神经网络难以建立合适的映射关系,网络不能做出较好的预测;如果隐含层节点数太多,网络学习时间变长,甚至出现“过学习”现象[5]。具体个数的确定通过实验的方法来确定,程序中可以从4~14个神经元做循环训练测试,经过多次比较平均误差大小,确定隐含层神经元个数。

训练样本中蕴含着网络要提取的规律,因此样本要有代表性,不仅使每个类别的样本数大体相等,同一类样本也要保持多样性,使网络训练时“见多识广”,增强泛化能力。样本的输入要将不同类别的样本交叉输入,或是从样本中随机输入,同类的样本大量集中输入会使网络只建立与其匹配的映射关系,当输入另一类样本时,权值又根据新样本进行大幅调整而否定前面的训练结果,容易引起网络震荡,延长训练时间[6]。输入的数据如果差别比较大,或是单位不一致等要进行归一化处理,由于不同故障气体含量在数值上差别比较大,因此对输入数据进行归一化处理。

PSO优化BP神经网络,要建立二者之间的关系,建立粒子维度和网络权值和阈值的对应关系,粒子的维数等于神经网络权值和阈值数。对于结构为L-M-N的3层网络,网络权值个数为L×M+M×N个,阈值个数为M+N个,因此粒子维数L×M+M×N+M+N。粒子群的适应度函数fitness是神经网络的误差均方值。通过粒子群的全局搜索,使全局误差达到最小值。评价粒子的好坏主要看粒子的适应度值,在粒子群优化神经网络中,粒子的适应度值就是网络输出的误差均方值,因此粒子的适应度值越小越好。

PSO-BP适应度函数为:

将优化后的全局最优位置向量赋值给BP神经网络权值和阈值,对于结构为L-M-N的三层网络,一般将前L×M个值映射到输入层到隐含层之间的权值,将第L×M+1到L×M+M个值作为隐含层的阈值,第L×M+M+1到L×M+M+M×N个值映射到隐含层到输出层之间的权值,剩下的作为输出层的阈值。

4 网络训练和故障诊断

4.1 参数设置与调试

故障种类编码,如[1 0 0 0]代表高温过热,其他故障类型依次编码;神经网络的传递函数个数有限,可以分别组合不同的传递函数,通过实验比较得出误差最小的组合;学习算法采traingdx,实现学习速率可变;构建5-M-4的神经网络结构,通过循环测试求出从4~14个隐含层神经元个数时的均方误差,比较得出误差最小时的隐含层数目,经实验分析当隐含层神经元为10时误差最小,所以M=10。

粒子群大小N表示每一代粒子群中所含粒子的数目,最佳粒子群规模要根据具体问题确定。N较小,PSO的运算速度较快,种群的多样性变差,容易引起过早收敛;N取值过大,运行时间过长寻优效率降低,粒子群对种群规模N不是很敏感,N设为60;

粒子维数由上述方法得D=104;迭代次数的确定要综合考虑种群个体的长度、寻找最优解的速度和运行时间等因素,根据实验(如图3所示)确定最大迭代次数为120时适应度值基本不再减小;最大速度设置为Vmax=0.8,如果Vmax较小,则搜索速度较慢,粒子较容易陷入局部最优值,若Vmax较大,则粒子每次移动的距离就较大,容易跳过全局最优解;惯性权重ω和学习因子C按上述公式(3)、式(4)、式(5)分别调整[7]。

4.2 部分主要MATLAB代码

4.3 结果分析

用100组实际数据对网络进行训练,另外20组数据作为测试样本,根据确定好的神经网络结构,分别用单一BP神经网络、未改进的PSO-BP和改进的PSO-BP在MATLAB上进行仿真实验,对预测结果进行比较。三种方法的网络训练误差如图2所示,PSO-BP和改进PSOBP适应度值和迭代次数关系如图3所示。

标准BP神经网络(如图2(a)所示)开始误差下降很快,训练到接近20次已基本达到稳定,但是训练终止始终要到最大训练次数才停止,在后期的训练当中误差基本不再减小,梯度下降的方法不能很好的达到要求,故障识别准确率也并不高。优化之后的两种方法(如图2(b)、(c)所示)分别在93和59次收敛,并且误差比单一BP神经网络小很多,后两种方法随着训练次数增加误差一直趋于减小的过程中,表明经过优化的BP神经网络改变了标准BP神经网络只能在开始阶段随梯度下降的缺点。PSO-BP和改进PSO-BP相比,改进后的方法误差更小,误差下降曲线较平滑,没有剧烈震荡产生,迭代次数也变少,训练时间更短,网络性能有所提高。

由图3可以看出两种方法的适应度曲线下降情况,虽然PSO-BP的适应度值迅速减小,但是在后期基本趋于平缓状态,减小甚微;改进的PSO-BP基本一直处于减小状态,说明粒子一直在搜索,且适应度值比未改进的PSO-BP的更小,即误差更小,表明经过几个参数的动态变化有效的提高了PSO-BP方法的整体性能。

3种方法的诊断结果如表1所示,可以看出PSO-BP算法比单一的BP神经网络误差更小、正确率更高,相比之下改进后的PSO-BP又比PSO-BP正确率有所提高,性能更佳。

图2 三种方法的误差曲线

图3 适应度曲线

表1 不同算法的训练结果

综合图表中的数据,改进PSO-BP算法在迭代次数、平均误差、诊断准确率等方面表现更优异,在变压器故障诊断中有重要应用价值。

5 结束语

PSO-BP神经网络通过对惯性权重、学习因子、学习速率等参数的优化,避免了传统的PSO和BP算法的不足之处,结合两种算法的优点,更快更准确的找到最优值,实现可靠的分类功能,用于变压器的故障诊断,相比单一的BP神经网络算法在性能和准确率上都有了很大提高,但是运用智能算法进行实际的故障划分对一些处于临界值具有模糊性情况下的数据并不能起到很好的划分作用,但是能起到故障预警的作用,故此方法在实际工程中仍有很大的研究意义和应用价值。

[1] 操敦奎.变压器 油中气体分析诊断与故障检查[M].北京:中国电力出版社,2005.

[2] 回敬,律方成.将具有可信度的BP神经网络应用于变压器故障诊断[J].电力科学与工程,2010,26(2):9-13.

[3] 梁昔明,董淑华,等.动态惯性权重和维变异的粒子群优化算法[J].计算机工程与应用,2011,47(5):29-31.

[4] 史峰,王小川,郁磊,等.MATLAB神经网络30个案例分析[M].北京:北京航空航天大学出版社2010.

[5] 项文强,张华,等.基于L-M算法的BP网络在变压器故障诊断中的应用[J].电力系统保护与控制,2011,39(8):100-103

[6] Du wenxia, Ju xiyuan, Lu feng. Transformer fault diagnosis based on fuzzy clustering algorithm[J].Transformer,2009,46,8:65-69.(in Chinese).

[7] 张丽平,俞欢军,陈德钊,胡上序.粒子群优化算法的分析与改进[J].信息与控制,2004,05:513-517.

猜你喜欢
权值适应度全局
改进的自适应复制、交叉和突变遗传算法
一种融合时间权值和用户行为序列的电影推荐模型
落子山东,意在全局
强规划的最小期望权值求解算法∗
一种基于改进适应度的多机器人协作策略
程序属性的检测与程序属性的分类
记忆型非经典扩散方程在中的全局吸引子
基于权值动量的RBM加速学习算法研究
新思路:牵一发动全局
自适应遗传算法的改进与应用*