程 陈,陈堂贤,孙培胜,钟嘉锐
(三峡大学电气与新能源学院,湖北宜昌 443002)
光伏阵列是光伏电站的核心部件之一,也是整个光伏发电系统的发电源头。但由于光伏阵列通常安装在复杂多变的野外环境中,光伏阵列故障频发,这不仅会降低整个光伏发电系统的发电效率,还会对电网的稳定性造成严重的影响,因此,研究光伏阵列的故障诊断技术尤为重要[1]。文献[2]通过布谷鸟算法优化反向传播(BP)神经网络的阈值和权值,提高BP 神经网络对光伏阵列的故障诊断准确率。文献[3]通过粒子群优化径向基函数(RBF)神经网络,有效地诊断光伏阵列故障类型,提高了故障诊断的准确率。文献[4]通过遗传算法优化支持向量机的相关参数,对识别故障类型具有较高的准确率。文献[5]通过自适应权重粒子群算法优化BP 神经网络,对光伏阵列故障进行精准识别。
光伏阵列故障问题存在一定的复杂性,上述方法中多数采用智能算法对支持向量机和BP 神经网络进行优化,而BP神经网络自身存在学习过程收敛慢和鲁棒性差等问题,且支持向量机的参数对分类准确率有很大的影响,因此两种方法都具有一定的局限性。本文提出了一种灰狼算法优化支持向量机的方法,对支持向量机的惩罚因子c和核函数参数γ 进行寻优计算,建立准确率更高的光伏阵列故障诊断模型。
支持向量机(SVM)是一种比较新的基于统计学习理论的计算学习方法,它有丰厚的理论支持,作为解决分类问题的有力工具而被广泛使用。支持向量机通过找到一个最优超平面来分离数据点并按其划分类别,使不同类别之间的间隔达到最大,如图1 所示,H 为分类面,H1与H2则是平行于H 的分类面,设H1与H2之间的间隔为margin,当margin达到最大时,二者之间的分类面则为最优分类面[6]。
图1 SVM超平面示意图
在应用过程中,该算法通过非线性映射函数将数据从低维空间投影到高维空间,从而将非线性生成问题转化为凹规划问题,然后对数据库进行分类。支持向量机的最优分类函数[7]如式(1)所示:
式中:ai是拉格朗日乘数,0<ai<c,c是惩罚因子;b是由训练样本确定的阈值;K(xix)为核函数。
支持向量机常用的核函数有多项式核函数、sigmoid 核函数、线性核函数和高斯径向核函数。由于高斯径向核函数具有收敛速度快、非线性映射等优点,本文的光伏阵列故障诊断模型采用该函数作为分类器。高斯径向核函数的表达式如式(2)所示:
式中:γ 是支持向量机的核函数参数。下文将通过灰狼算法对惩罚因子核函数参数γ 进行寻优。
灰狼算法是由Mirjalili 等在2014 年提出的一种智能优化算法。该算法是受到了灰狼捕食猎物活动的启发而开发的一种优化搜索方法,并具备较强的收敛性能,参数少,易于实现等优点,距今为止,该优化算法被广泛地应用在各科学研究领域。
灰狼算法中,灰狼位置更新公式为:
式中:t是当前迭代次数;E和A是系数向量;Xp(t)表示猎物的位置向量;X(t)表示灰狼的位置向量。
系数向量E和A的计算公式如式(4)所示:
式中:r1和r2是[0,1]的随机向量;a是收敛因子。
在灰狼算法中,优化的过程是通过每代种群中的α 狼、β狼、δ 狼对猎物进行定位计算,不断缩短自身与猎物的距离,来达到捕捉猎物的目的,其中,α 狼的适应度最强,其次是β狼,适应度最小的是δ 狼。在狼群中,所有灰狼都必须听从α狼做出的决定,β 狼负责协助α 狼,δ 狼则听从于α 狼和β 狼,狼群的位置根据这三只狼当前更新的位置不断调整,直至找到最佳的猎物位置,猎物所在的位置则对应着最优适应度值,三只狼的运动公式如式(5)~(7)所示:
式中:Dα、Dβ、Dδ分别是α 狼、β 狼和δ 狼的方向向量;X1、X2、X3则是用来决定下一代运动方向的方向向量。
在本模型中,选择适应度函数如式(8)所示:
式中:test_right和train_right分别为测试集和训练集的正确诊断数目;test_total和train_total分别为测试集和训练集的总数目。
在现有的支持向量机分类模型中,惩罚因子c和核函数参数γ 对模型的复杂度起着至关重要的作用,两个重要参数的变化对分类模型的分类性能有着重要的影响。为了提高分类的准确率,利用灰狼算法对惩罚因子c和核函数参数γ 进行优化,直至得出最优的参数。灰狼算法优化SVM 的具体步骤如下:
(1)输入光伏阵列样本数据及其对应的标签数据,并设置训练集和测试集;
(2)设置灰狼算法的参数,即种群数量、最大迭代次数、SVM 参数c和γ 的取值范围;
(3)随机生成狼群,每一只狼的位置都由对应的(c,γ)组成;
(4)利用SVM 对训练集进行训练,根据式(8)计算出每一头狼所对应的适应度值;
(5)根据每一只狼的适应度值大小进行排序,α 狼适应度值最大,β 狼次之,δ 狼则最小;
(6)根据式(3)~(8)对α 狼、β 狼以及δ 狼的适应度值不断进行更新计算,并对狼群的等级进行重新划分;
(7)当种群迭代次数达到最大迭代次数时,输出α 狼的位置所对应的c和γ 参数的最优解,否则跳转至步骤6;
(8)利用最优参数解建立模型,并对样本进行计算,输出结果。
灰狼算法优化SVM 分类模型的流程图如图2 所示。
图2 灰狼算法优化SVM流程图
灰狼算法优化支持向量机输入变量的选择不仅决定了灰狼算法优化支持向量机模型的结构,而且对整个模型能否迅速、精准地对故障类型进行判断有着重要的影响。因此,输入变量必须能够直接体现出光伏阵列故障时的特征信息,从而方便算法进行分类。本文共设置5 种不同的光伏阵列工作状态,即正常、局部阴影、组件老化、组件开路、组件短路。局部阴影故障通过减小部分光伏阵列的光照强度来模拟;老化故障通过在某条支路上增加5 Ω 电阻来模拟;开路故障通过断开故障光伏阵列与其相邻光伏阵列的导线来模拟;短路故障通过将故障光伏阵列的正负极短接来模拟[8]。使用Matlab/Simulink 仿真软件搭建了6 行4 列的串并联光伏阵列,如图3 所示。
图3 光伏阵列故障模拟示意图
单个模块的电气参数相同,其参数数值为:最大功率点电压是35 V,最大功率点电流是7.5 A,短路电流是8 A,开路电压是44 V,故障模拟过程中光伏阵列的光照强度设置为600~1 000 W/m2,温度则设置为25~45 ℃。
通过仿真运行,得到不同工作状态下光伏阵列的I-U曲线和P-U曲线,如图4~5 所示。
图4 正常状态与不同故障状态下的I-U曲线图
图5 正常状态与不同故障状态下的P-U曲线图
由图4~5 可知,当光伏阵列出现局部阴影的情况时,光伏阵列的P-U曲线会出现多峰现象,I-U曲线则会出现多膝现象,并且光伏阵列的最大功率点电压和最大功率点电流会明显下降;当光伏阵列出现组件老化的情况时,光伏阵列的最大功率点电压明显下降;当光伏阵列发生组件开路的情况时,光伏阵列的最大功率点电压基本不变,但其短路电流会明显减小;当光伏阵列出现组件短路的情况时,光伏阵列的短路电流基本不变,而开路电压和最大功率点电压会明显下降[9]。仿真实验过程中收集到的典型样本数据如表1 所示。
表1 光伏阵列的仿真样本
综上所述,当光伏阵列出现以上4 种故障中的任意一种故障时,都会引起其开路电压、短路电流、最大功率点电压和最大功率点电流中至少一种参数的明显变化,因此本文选择以上4 个参数作为灰狼算法优化SVM 的输入变量。
经仿真得到共500 组数据,然后将数据划分为训练集和测试集。研究选定测试集数目为55 组,其中正常组(类别1)数据、局部阴影(类别2)数据、组件老化(类别3)数据、组件开路(类别4)数据以及组件短路(类别5)数据各占11 组。剩下的数据作为训练集进行训练。
使用未优化的SVM 模型对测试集进行准确率测试,未优化的SVM 模型分类结果如图6 所示,经诊断后该模型只能正确诊断样本47 条,准确率仅有85.5%。其中,有3 组正常样本被分类到了组件短路类别,1 组局部阴影样本和2 组组件短路样本被分类到了正常类别,1 组组件老化样本被分类到了局部阴影类别以及1 组组件开路样本被分类到了组件老化类别,因此未优化的SVM 模型存在着一定的不足,对数据的分类效果一般,有待优化。
图6 未优化SVM诊断结果图
在未优化SVM 模型的实验完成后,使用灰狼算法对支持向量机的惩罚因子c和核函数参数γ 进行参数寻优。灰狼算法的设定参数为:种群数量为10,最大迭代次数为100,惩罚因子c的范围为[0,500],核函数参数γ 的范围为[0,500],在经过100 次迭代计算后,适应度值结果和分类结果如图7~8 所示。由图7 可知,灰狼算法在迭代到第40 代左右时收敛,最优适应度值为0.091 9,此时惩罚因子c为149.4,核函数参数γ为282.8。由图8 可知,灰狼算法优化SVM 模型对测试集的分类准确率达到了98.2%,仅有一组数据分类错误,即一组组件老化样本被分类到了局部阴影样本中。
图7 灰狼算法适应度曲线
图8 灰狼算法优化SVM诊断结果图
就分类的准确率而言,灰狼算法优化SVM 在经过参数寻优后分类准确率得到了较大提升,较未优化SVM 的分类准确率提高了12.7%。灰狼算法的优化效果明显,在总体的分类准确率上要优于普通的SVM 分类器。
通过使用相同的训练集和测试集,引入决策树(tree)分类器和BP 神经网络分类器对测试集进行分类,并进行对比实验。SVM、灰狼算法优化SVM、决策树以及BP 神经网络的分类效果对比如表2 所示。
表2 不同算法分类效果对比
通过Matlab/Simulink 搭建光伏阵列模型模拟不同的故障,对不同故障状态的I-U曲线和P-U特性曲线进行分析,选取合理的故障特征量,进行光伏阵列故障诊断。由于传统SVM 对多分类问题处理效果不理想,引入灰狼优化算法与SVM 相结合,利用灰狼算法对惩罚因子和核函数参数进行寻优,得到最优的核函数参数和惩罚因子,建立准确率更高的光伏阵列故障诊断模型。实验证明,在采用灰狼算法优化SVM 模型后,局部阴影的故障辨识率为100%,组件老化的故障辨识率为90.9%,组件开路以及组件短路的故障辨识率均为100%。