张 治,马 辉,王 林
(1.国家电投集团光伏产业创新中心,青海西宁 810000;2.西安理工大学电子工程系,陕西西安 710048)
由于环境的不断恶化,传统能源不断减少,清洁环保的光伏发电技术越来越引起人们注意[1]。而光伏电站选址一般都在环境较差的地方[2],人工维护费时费力,电站各种故障极易发生。因此,对光伏电站进行远距离、高精度故障诊断是非常有必要的。现有的光伏电站的故障诊断方法有红外图像法[3]、输出特性法[4-5]、数学建模法[6]和智能算法[7-10]。文献[3]利用故障组件温度比正常组件温度高的原理,对红外摄像机获取的光伏组件红外图像进行分析研究进行故障诊断。文献[4]提出了一种基于时域反射法的故障检测方法,此方法通过在系统的端口输入脉冲,根据反馈电压的大小和波形的偏移诊断故障。文献[5]采集天气辐照度和阵列输出电压、电流等数据,通过分析这些数据是否超过设定好的阈值,来判断光伏组件故障情况。
由于光伏电站的故障原因和表现复杂多样,增加了故障诊断的难度。现有的诊断方法存在实时性较差,建模难度大、成本高、精度低等问题[11]。因此,针对随机森林在故障诊断应用中精确度不高的问题,提出了AFCM-SMOTE-RF 光伏电站故障诊断方法。利用AFCM 算法(改进的模糊C 均值聚类)对故障样本聚类并计算簇心,对样本进行预处理。SMOTE 算法(人工少数类过采样法)在数量较少的故障样本和其附近样本之间合成“人造”样本,再将新样本添加到原数据集中,用新的样本数据集训练RF(随机森林)分类模型,最终得到AFCM-SMOTE-RF 分类模型,用该模型判断光伏电站运行情况。实验结果表明所提出的模型很好地解决了因故障样本少而分类不准确的问题,提高了故障诊断模型的精确度。
在实际中,光伏电站运行数据不易获取,因此需要建立不同故障条件下的光伏电站仿真模型。通过所建模型模拟不同情况(故障、正常)下的光伏电站的运行情况,随后对光伏电站的输出特性进行分析以获取实验研究所需的数据集。
光伏电站模型以光伏组件模型为基础。光伏组件以光伏电池为基础,进行串并联形成。如图1 所示,光伏电池模型可以用一个等效电路代替[12]。
图1 光伏电池电路图
根据图1,光伏电池电流与电压之间的关系为:
式中:m为二极管理想因子;I0为反向饱和电流;k=1.38×10-23J/K;q=1.6×10-19C;Tc=278 K。根据文献[13]中式(19)可以计算出,Rs的值为0.002 8 Ω;Rp的值为5.1 Ω。
在实际应用中,光伏电池的Iph和I0随着温度、光照度发生变化[14],可以表示为:
式中:Gc为阵列实际光照度;GR=1 000 W/m2;Tc为电池温度;Tr为标准状况下的电池温度;Ioc为短路电流;Vg=1.1 eV。
根据式(1)~(4)建立的光伏电池仿真模型如图2 所示。模型可以通过调整参数模拟不同条件、不同型号的光伏电池,具有一定实用性。
图2 光伏电池仿真模型
实验用SP 结构光伏阵列[15]作为研究对象。阵列故障形成原因主要有:(1)组件被短路;(2)组件被开路;(3)组件异常老化;(4)组件被遮挡,产生热斑现象。
实验中模拟的光伏组件参数相同,所以任取一个与实际光伏组件进行对比。在模拟时,通过导线代替组件内的一块电池板来模拟短路;去掉一列电池板来模拟开路;增大电池板串联等效电阻模拟老化;降低组件辐照度来模拟阴影。
模型仿真得出的故障组件发电特性和实际相比的类比度可以判断出仿真模型模拟的精确度,类比度越接近1,说明模拟效果越好。类比度计算方法如下:
选取5 个实际组件,编号为:1 正常,2 短路,3 开路,4 阴影,5 老化。以故障组件发电特性的4 个特征的估计值为分量,构造一个4 维向量,称之为特征向量。记模拟故障组件发电特性与实际故障组件发电特性的类比度为ai(i=1,...,5),故障组件发电特性的特征向量为C0,实际故障组件发电特性的特征向量为Ci(i=1,...,5)。计算ai公式[16]为:
式中:Ci(k)、C0(k)分别表示Ci、C0的第k(k=1,...,4)个分量。
计算得出a1=0.99、a2=0.97、a3=0.95、a4=0.89、a5=0.96,其中阴影的类比度较低,可能是因为实际情况下组件在阴影遮挡时有温度变化影响组件最大功率。但组件与实际的类比度均在合理范围内,所以该模型可以很好地模拟真实组件。
AFCM(alter-native fuzzy C-means)算法是由Kuo-Lung Wu等[17]提出的,提升了FCM 算法的效果。FCM 通过目标函数计算各类样本对其中心的隶属程度,来确定各样本属于哪一类,从而确定样本的分类[18],因此适用于对光伏阵列运行产生的样本数据进行预处理。但FCM 聚类算法存在这些不足:一是聚类类别数值无法确定;二是对聚类样本的空间分布及噪音数据都非常敏感[19]。而AFCM 算法很好地改善了这些问题。
SMOTE 算法(synthetic minority over-sampling technique)用于对样本进行采样[20]。随机过采样方法生成的新数据集中包含大量的重复数据,会出现过拟合。SMOTE 算法在原有数据集基础上,在数量较少的样本和其附近的样本之间合成新的样本,对数量较少的样本向上采样,合成新的样本。
SMOTE 算法在故障检测中主要有两个步骤:在每个故障样本附近随机选出几个样本;在故障样本与其附近样本的连线上合成新的无重复的故障样本。
随机森林是一种由多颗决策树组成的分类算法。随机森林分类过程:从训练集中选k个容量大小与训练集一样的样本,对k个样本一一建立决策树,得到不同的分类,再进行投票来决定最后的分类结果。随机森林有抗干扰能力强、可以平衡误差等优点,因此对于特征遗失数据、不平衡数据有较好的分类效果。
随机森林用边缘函数mr(X,Y)判定模型分类的准确度。
随机森林算法应用于光伏电站故障诊断时,其诊断结果往往会倾向于正常类,虽然整体的分类精度比较高,但是对故障样本的分类精度却非常低[21]。在光伏电站实际运行数据中故障样本相对于正常样本较少,但在故障诊断模型中对故障样本的分类精度更为重要。针对这个问题本文提出了AFCM 聚类算法与SMOTE 结合来对故障样本数据进行预处理,降低故障样本的不平衡度,处理后的新数据集经过随机森林进行分类。模型流程如图3 所示。
图3 故障诊断算法原理图
改进后的AFCM-SMOTE 算法,解决了少数类样本数据与多数类样本数据之间边界不清楚的问题,同时保证了新生成样本的有效性[22],再将AFCM-SMOTE 算法与RF 组合来更好地解决故障样本数据分类不精确问题。
AFCM-SMOTE-RF 算法在应用时,首先经过AFCM 算法聚类并计算聚类中心,再根据插值公式,在聚类中心与隶属数据的连线上合成新的样本,再进行分类。
定义3 插值公式:
式中:Xnew为新合成的样本;Zi为聚类中心;X为以Zi为聚类中心的原始样本;rand(0,1)为0 与1 之间的任意数。
利用MATLAB/Simulink 建立3×3 光伏阵列模型,如图4所示,其中PV 模块是对单个光伏组件进行封装而成。
图4 光伏阵列仿真模型
模型中设定温度为25 ℃,光照度为1 000 W/m2,AM=1.5。实验所用光伏组件参数:Pmax=110 W,Umax=34 V,Imax=3.25 A,UOC=43 V,ISC=3.5 A。
在光伏电站运行数据中,UOC、ISC、Umax和Imax这四个参数可以确定阵列的输出特性,不同故障状态下输出特性不同,所以对这几个参数进行提取并构建故障特征向量,用它们作为算法的特征参数。
实验中模拟的正常与故障时的光伏阵列的IV 曲线对比如图5,PV 曲线对比如图6 所示。实验各种设置中,阴影模拟:实验研究的光伏电站建立在风电场内,风机塔筒会对光伏阵列造成一定的遮挡,一般会遮挡一排或者一列光伏组件。因此在模拟阴影故障时,将第一列或者第一排的光照幅度降低至600 W/m2;开路模拟:开路故障主要由于动物啃咬导线,组件出现质量问题或者冰雹、暴雪等天气原因导致某一部分组件被开路。一个组件开路会导致整个组串不工作,所以实验中去掉第一列组件来模拟开路故障。经过仿真实验,在相同的条件下,去掉第一列组件与去掉第二列组件模拟结果相同;短路模拟:处于阵列边缘的组件容易出现电缆破损从而导致组件短路,组件会停止工作,作为一个负载消耗功率,但是消耗的功率较小可以忽略。所以用导线短接阵列第一排第一列组件模拟短路故障;老化故障:老化故障主要是由于阵列经过风吹日晒,一段时间后电池板功率下降。因此增大仿真模型中串联等效电阻值Rs的值就可以模拟电池板功率下降,由于处于同一环境下的阵列中的组件老化程度大致相同,模拟时将所有组件的串联等效电阻值统一增加为0.005 6 Ω(正常情况下的值为0.002 8 Ω)。
图5 不同故障I/V 曲线图
图6 不同故障P/V 曲线图
由图5、图6 可得:老化情况下阵列的最大功率点有所下降,短路情况下阵列最大功率、开路电压会降低,开路情况下阵列四个值都降低,热斑情况下的阵列会出现多峰值现象。
实验仿真模型得到的样本共600 份,分为测试集200 份和训练集400 份,其中正常样本40%,开路10%,短路15%,老化10%,热斑25%。通过模型仿真得到的各种故障情况下的样本数据经过清洗后,分为测试集和训练集。每种故障的样本数据示例如表1 所示。表1 数据中的最大功率点电压、最大功率点电流是在阵列仿真模型后加入MPPT 模型(最大功率点跟踪控制器模型)得到的。
表1 光伏阵列经典故障样本
测试集用AFCM-SMOTE-RF 算法检测,结果如图7 所示。由图7(d)可以看出1 类故障中有两个误判成2 类故障;2类故障中有一个误判成其它故障;3 类故障全部正确检测;4类故障中有一个误判成3 类故障,一个误判成5 类故障;5 类故障中有一个误判成4 类故障,一个误判成2 类故障。相对于其他三种算法,AFCM-SMOTE-RF 算法的分类效果有明显的提升。
图7 各算法检测结果对比
AFCM-SMOTE-RF 算法对5 种情况下的光伏阵列运行数据判断精确度如表2 所示。从表中可以看出,该方法可精确地检测阵列是否发生故障,同时对不同故障的分类也较为理想。其中,老化故障的检测精度较低,原因有:老化样本的属性特征值与正常样本较为相似,容易误判为正常;训练集中老化、开路的样本相对较少,对算法的精确度有一定的影响。
表2 AFCM-SMOTE-RF 光伏故障检测结果
对于同一样本数据集,用随机森林算法、SMOTE-RF 算法和AFCM-SMOTE-RF 算法进行分类的结果如图8 所示。对比可得,三种算法都可以检测出阵列是否存在故障,但AFCM-SMOTE-RF 算法精确度最好,且对于样本较少的故障(老化、开路)AFCM-SMOTE-RF 的精确度明显高于其他两种算法。
图8 各个方法对各种故障的精确度对比
在相同测试条件下,将本文提出的光伏故障诊断方法与其他诊断方法对比,结果如表3 所示。相对于传统随机森林算法和SRF 算法,诊断效果有所改进,准确率有所提高,并且算法响应时间略小于其他算法,该方法具有一定的可行性。
表3 各算法诊断结果对比
针对光伏电站故障检测的种种不便,本文提出了一种AFCM-SMTOE-RF 的光伏电站故障诊断模型对光伏电站开路、短路、局部热斑、老化这四种故障进行诊断。模型通过AFCM-SMOTE 算法对故障样本进行预处理,合成新样本,用新产生的样本集训练随机森林模型,得到故障检测模型。此方法解决了因故障样本少而导致故障分类不精确的问题。经过对模型模拟出来的数据进行分析,验证了该方法进行故障诊断的精确度较高,所需时间较短,可以对光伏电站各种故障进行有效的诊断。而且本文的故障诊断模型所需的故障样本数据较少,训练较为简单,提高了故障诊断的精确度及实用性。