APP下载

基于自适应DBSCAN算法的风电机组异常数据识别研究

2021-10-22刘博嵩

动力工程学报 2021年10期
关键词:轮廓风电区间

雷 萌,郭 鹏,刘博嵩

(华北电力大学 控制与计算机工程学院,北京 102206)

采用数据采集与监视控制系统(SCADA)运行数据进行风电机组和风电场自动智能管理与监测,能够及时发现风电机组的运行异常情况及准确评价其发电状态和性能,提高风电场的管理水平和经济效益。通过分析风电机组运行数据,可以得到风速-功率散点图,进而得到其风速-功率特性和功率曲线,评估风电机组的发电性能[1-2]。同时,风电机组功率曲线也是准确预测风功率的基础。但由于风电机组的工况随风速时变、户外恶劣环境导致机组各部件故障率高及人为限电[3-4]等因素,原始风电机组运行数据中异常数据比例高,异常类型复杂。对风电机组运行数据进行有效预处理,自动准确标识正常和异常数据,才能应用于功率曲线分析或状态监测等工作[5]。

娄建楼等[6]提出最优组内方差算法(OIV),取风速区间间隔为0.5 m/s,将风速区间的风速-功率散点按功率大小进行排序并依次计算滑差值。该算法可以有效识别出功率曲线下方堆积型异常数据,但无法有效识别曲线上方异常数据。沈小军等[7]提出变点分组法和四分位法配合使用的风电机组异常数据清洗方法,在每个风速区间依次剔除各种异常数据。但从对风电机组原始运行数据清洗效果可以明显看出,由于相邻风速区间异常数据上下边界不同,得到的正常数据分布形状会存在明显锯齿特征,丢弃了大量正常数据。赵永宁等[8]提出一种对异常数据处理的组合筛选模式,先采用2次四分位法去除分散型异常数据,然后使用k-means方法剔除堆积型异常数据。该方法有过高的异常数据剔除率,会误删正常数据。Yue等[9]假设风电机组运行数据特征呈现高斯正态分布,采用基于3σ(σ为正态分布中的标准差)法则的方法剔除异常数据。但在风电机组实际运行数据中,堆积型异常数据往往会使风功率的概率密度呈现双峰或多峰分布,处理起来远远比高斯正态分布情况复杂。Zheng等[10]采用基于密度的局部离群因子(LOF)算法检测出风速-功率散点图中的高密度区域。该算法能有效识别分散型异常数据,但无法有效识别分布密度较高的堆积型异常数据。Kusiak等[11]通过建立风功率曲线的非线性模型来识别异常数据,但该方法在训练时需要大量的正常数据,否则训练误差较大,实用性较差。

笔者分析了安徽某风电场1.5 MW双馈式风电机组风速-功率散点图中的典型异常数据分布特征,提出基于分功率区间的密度聚类识别算法。在该算法模型中,针对基于密度的噪声应用空间聚类(DBSCAN)中参数取值问题,引入轮廓系数作为聚类评价指标,采用交叉遍历方法自动确定聚类参数。以实测数据为例对本文方法进行有效性验证,并与文献[5]中的OIV算法进行了对比。

1 风电机组运行数据分布

风电机组在运行过程中,由于停机、人为限负荷、通信噪声和设备故障以及子部件工作异常等因素,运行数据中通常包含大量异常数据。以安徽某风电场1.5 MW双馈式风电机组为例,选取实验机组(E17)2019年实测数据进行分析,机组SCADA系统以10 min为间隔记录重要传感器测量参数,共计42 321组,其风速-功率散点在坐标系内的分布如图1所示。从图1可以看出,不同原因产生的异常数据的分布特征也不相同。按照数据点分布特征,异常数据可以分为4类,包括曲线底部、中部、上部密集分布型异常数据和曲线周围分散型异常数据。

图1 风速-功率曲线Fig.1 Data distribution of wind speed-power curve

第一类:曲线底部分布的异常数据。此类异常数据表现为一条横向密集数据带,其产生的原因包括机组停机检修或者通信设备故障等情况。在这些情况下,风电机组的理论输出功率均为零。但内部的测控系统仍需电力驱动,也会出现功率为负值的情况。因此,曲线底部异常数据会在功率零值附近波动,表现为数据密集分布。

第二类:曲线中部分布的异常数据。此类异常数据表现为一条或多条位于功率曲线下界之外的横向密集数据带,其产生的主要原因是弃风限电。弃风限电时提前变桨,将实发功率限制在设定功率附近,限负荷异常功率散点位于功率主带右侧,且呈现显著的水平分布。

第三类:曲线顶部分布的异常数据。曲线顶部的功率值明显高于额定功率,表现为一条密集的横向数据带,这是因为风电机组在某一段时间内处于超发状态,长期处于这种状态会影响机组的寿命,因此将这部分数据作为异常数据的来源之一。

第四类:曲线周围分散分布的异常数据。此类异常数据表现为功率曲线附近分布密度较低的无规律散点,是由启停机过渡过程、信号噪声、测量异常和极端天气情况等多种随机影响因素造成的。随机因素造成的异常数据会在正常值附近随机波动。因此,曲线周围分散型异常数据会在正常数据之外随机散布。

根据上述4类异常数据的分布特征和产生原因可知,异常数据通常是由于无法瞬时恢复的机组故障或异常状态产生的。由于这些故障或异常状态难以在短时间内恢复,如弃风限电或者叶片损坏等,因此前三类异常数据在集中时段内连续产生,具有量多且分布密集的特征。而短时间内可恢复的机组故障或异常状态会产生分散型异常数据,这些因素随机且不断变化,此类异常数据具有不确定性和随机性,呈现分散分布的形态。

2 自适应DBSCAN模型与风电机组异常数据识别

2.1 固定参数DBSCAN

DBSCAN算法是一种基于密度聚类的非监督机器学习方法[12],无需提前设定聚类簇的个数,通过半径(ε)和邻域密度阈值(Z)2个重要参数来反映数据分布的紧密程度,并找出形状不规则的簇。该算法将密集堆积的散点标记为一类,且可以将密度较低的散点识别为噪声。为了对算法进行准确说明,现给出DBSACN中的主要定义:

定义1(ε邻域):给定对象p在半径ε内的邻域称为该对象的ε邻域,即

Nε(p)={q∈D|ρ(p,q)≤ε}

(1)

式中:D为数据集;ρ(p,q)为对象p与对象q之间的距离;Nε(p)包含了数据集D中与对象p距离不大于ε的所有对象。

定义2(核心对象):如果对象p的ε邻域至少包含最小数目为Z的对象,则称该对象为核心对象,即

|Nε(p)|≥Z

(2)

定义3(密度直达):在数据集D中,若对象q在对象p的ε邻域内,且对象p满足式(2),则称对象q从对象p出发是密度直达的。

定义4(密度可达):如果存在一个对象链p1,p2,…,pi,…,pn,满足p1=p和pn=q,pi是从pi+1关于ε和Z是密度直达的,则对象p从对象q关于ε和Z是密度可达的。

定义5(密度相连):如果存在对象O∈D,使对象O对对象p和对象q都是密度可达的,那么对象p和对象q密度相连。

定义6(簇和噪声):从数据集D中任取一对象p,从对象p开始在数据集D中搜索满足ε和Z条件且密度可达的所有点构成一个簇,不属于任何簇的对象则被标记为噪声点。

图2中Z设置为6,正六边形点代表核心点,因为在半径ε内,其邻域的点的个数为6;三角形点在核心点的邻域内,且在其邻域半径ε内点的个数不超过Z,故为边界点。

图2 DBSCAN原理示意图Fig.2 Schematic diagram of DBSCAN

在使用DBSCAN算法时,对ε和Z的取值有一定要求:(1)参数Z的取值要满足以下要求,即Z>Ω+1,其中Ω是聚类数据空间的维度。对于二维数据,理论上Z应大于3。但由于Z代表了算法对噪声的容忍程度,不宜过大。(2)参数ε控制半径大小。如果其取值太小,大部分数据并不会被聚类;如果其取值太大,可能会使相近的簇被合并一起,甚至会使整个数据集被分到一个簇中。

DBSCAN算法在确定簇时会对数据集中每个测试对象的邻域进行搜索,如果邻域包含对象的数量超过最小值(Z),就会创建一个以该对象为核心的新簇。然后该算法从核心对象出发,找到所有密度可达的对象,并将其合并为一个簇。直到数据集中的点不能再被添加到任何簇中,进程将终止。不落在任何簇中的点被认为是噪声或异常值。

DBSCAN算法虽然具有能够自动确定聚类簇的个数、可以识别出任意形状的簇以及分离噪声等优点,但是缺点也非常明显,即对参数ε和Z的设置非常敏感[13]。由上述2个参数取值分析可知,参数取值不同,聚类结果也不同,需要人工观察聚类结果后手动调整参数值,无法实现真正的无监督自主聚类和风电机组异常数据识别。

2.2 基于轮廓系数的参数ε和Z自适应确定

在使用聚类算法进行聚类时,为了得到更合理的聚类结果,需要对其聚类有效性进行客观准确评价。聚类有效性是对聚类方法输出结果的评估,通常从簇内和簇间两个方面进行,当簇内距离最小和簇间距离最大时,聚类效果最佳。Kaufman等提出的轮廓系数(Silhouette Coefficient)是在没有真实簇标签的情况下,对模型和聚类结果本身进行度量的参数。轮廓系数结合凝聚度和分离度,当其得分较高时,聚类模型更好[14]。

(1)样本个体的轮廓系数。

针对数据集中样本di,假设样本di被聚类到簇A,其轮廓系数si定义为:

(3)

式中:ai为样本di与同一类别中所有其他点之间的平均距离,体现了凝聚度;bi为样本di与下一个距离最近的簇中的所有其他点之间的平均距离,体现了分离度。

样本di的轮廓系数si的取值范围为[-1,1],据此可以判断该样本是否适合所在簇。若si接近1,此时ai远小于bi,表示样本di适合所在簇;若si接近-1,此时ai远大于bi,表示样本di被分到了错误的簇。

(2)聚类轮廓系数。

整个数据集的轮廓系数就是所有样本轮廓系数的平均值。对于数据集D的某次聚类来说,其聚类轮廓系数sk定义为:

(4)

为克服DBSCAN算法参数选取困难、需要人为设定的缺陷,笔者引入聚类轮廓系数作为衡量聚类质量的重要依据。聚类轮廓系数具有鲁棒性,在不需要明确聚类中心的情况下就能计算出簇与簇之间的密集与分散程度,从而确定最优的ε和Z,实现DBSCAN算法参数的自适应确定。

自适应确定DBSCAN算法参数ε和Z的流程如下:对于所有可能的参数取值,只需给定DBSCAN算法的2个参数ε和Z的取值范围,再通过寻找聚类轮廓系数最大值的方法,确定最佳的ε和Z,可得到最佳的聚类结果,此时的sk被称为最佳聚类轮廓系数。

2.3 DBSCAN算法对风电机组异常数据的识别过程

由于DBSCAN算法在风速和功率2个方向的搜索半径是相同的,故在识别异常数据之前需要先将风电机组的风速及功率数据进行无量纲标幺化处理。在对原始数据标幺化之前,对第一类异常数据(即功率为零及负值的异常数据)直接剔除即可。风速和功率基准值及其标幺值如表1所示。标幺化后的风速-功率散点图如图3所示。

表1 风速和功率基准值及标幺值Tab.1 Wind speed and power reference values and their per unit values

在第1节中,除了第四类分散型分布的异常点外,其余三类异常点均沿水平功率方向横向密集分布。如图3所示,风电机组运行数据在水平功率方向的散布范围显著小于其在垂直风速方向的散布范围。为了达到更好的聚类数据和异常数据识别效果,将标幺化后的数据在水平横向功率维度以0.05为间隔等分为20个功率区间,在每一个功率区间分别应用自适应DBSCAN算法对该功率区间内风速-功率散点进行聚类数据和异常数据识别。在实际运行中,有时运行人员为了追求更大的经济效益,人为增大发电机转矩,使机组处于超发状态,在图1中表现为第三类异常数据,即图3功率区间为0.95~1.00中的数据。针对第三类处于超发状态的异常数据,在实际工程中通常将其直接标记为正常数据。对于其余的19个功率区间,在每一个功率区间内采用自适应DBSCAN算法识别数据,算法流程如图4所示。根据算法流程对每个功率区间进行相同的处理,即可实现风电机组异常数据识别。

图3 标幺化的原始数据分布Fig.3 Per-unit original data distribution of power vs.wind speed

图4 基于分功率区间的自适应DBSCAN算法对风电机组异常数据的识别流程Fig.4 Abnormal data recognition process of adaptive DBSCAN algorithm based on sub-power interval

图3中标出的2个功率段异常数据簇分布比较典型:0.65~0.70功率区间为人为限功率数据异常;0.75~0.80功率区间为周围发散型数据异常。以这2个典型功率区间为例来说明基于轮廓系数的DBSCAN算法参数自适应确定方法。

根据2.2节设定合理的参数范围:ε的范围为[0,0.010],以0.000 1为步距等间隔取100个值。Z为[3,12]区间内所有整数,共计10个值。ε的100个取值和Z的10个取值交叉组合共生成1 000组DBSCAN算法参数对。

在2个典型功率区间内,自适应DBSCAN算法将交叉组合得到的1 000对参数组合依次应用于功率区间内数据点的聚类并计算每一组参数对的聚类轮廓系数。聚类轮廓系数最大的一组参数对即为最佳的ε和Z参数值。2个典型功率区间内的自适应DBSCAN算法最优参数确定过程如图5所示。在图5中,2个功率区间的聚类轮廓系数sk得分曲面的形状较为相似,其受ε的影响极大,随着Z增加,聚类轮廓系数sk得分先增大后减小。当两参数取到特定范围时(如ε接近取值范围下限或上限),DBSACN算法会将所有样本直接识别为噪声或将其全部聚为一类,此时聚类轮廓系数计算出错,为了更直观地在图中表达,此情况直接将聚类轮廓系数sk得分赋值为-1。图5(a)为0.65~0.70功率区间中聚类轮廓系数sk得分,最大值为0.631,对应的最佳参数对ε和Z取值为0.007 8和10。图5(b)为0.75~0.80功率区间中聚类轮廓系数sk得分,最大值为0.802,对应的最佳参数对ε和Z取值为0.005 6和10。需要说明的是,图5(b)中当ε取值较大时,DBSCAN算法对两参数的敏感程度降低,聚类结果随两参数变化较小,其聚类轮廓系数sk得分几乎趋同。

2个典型功率区间采用上述自适应方法得到的聚类轮廓系数最大即最佳参数对的数据聚类效果如图6和图7所示,图中也给出了固定参数ε为0.02、Z为4时的DBSCAN聚类效果。从图6和图7可以看出,所提出的自适应DBSCAN算法对2个典型功率区间中水平分布异常数据及分散分布异常数据均有很好的识别效果。而固定参数DBSCAN算法不能有效分离异常数据与正常数据。相较于固定参数DBSCAN算法需要多次人工调参,自适应DBSCAN算法能自动寻找理想聚类效果,有效识别异常数据。

(a)0.65~0.70功率区间聚类轮廓系数

(a)自适应DBSCAN算法结果

(a)自适应DBSCAN算法结果

3 案例分析

3.1 效果验证

3.1.1 案例1

为验证所提出清洗算法的有效性,将实验机组E17的实测数据进行标幺化,然后水平划分功率区间,在每个功率区间分别采用DBSCAN算法进行异常数据识别,根据聚类轮廓系数优化聚类效果,自适应确定每个功率区间DBSCAN算法的2个参数ε和Z。识别结果如图8所示。由图8可知,实验机组E17功率-风速数据中的异常数据能够被有效识别。

图8 自适应DBSCAN算法对实验机组异常数据的识别效果Fig.8 Recognition effect of abnormal data by adaptive DBSCAN algorithm for the experimental turbine

3.1.2 案例2

由于案例1取机组间隔10 min的运行数据,其数据量较大,正常数据组成的功率主带分布较宽。为了验证该算法具有一定的通用性,对编号为LY16的机组2018年5月至6月4 908条10分钟级(即间隔时间为10 min)运行数据进行验证,结果如图9所示。从图9可以看出其数据量较少,功率主带分布窄,本文算法对该机组的异常数据有很好的识别效果。

图9 自适应DBSCAN算法对LY16机组异常数据的识别效果Fig.9 Recognition effect of abnormal data by adaptive DBSCAN algorithm for LY16 turbine

3.2 算法对比分析

作为对比,采用文献[5]中的OIV算法对实验机组E17运行数据进行异常数据识别。OIV算法将每个风速区间内的功率值降序排列,并依次计算每个功率值对应的滑差值(方差),之后通过与设定滑差阈值比较来实现数据清洗。OIV算法对实验机组原始数据的识别效果如图10所示。

图10 OIV算法对实验机组异常数据的识别效果Fig.10 Recognition effect of abnormal data by OIV algorithm for the experimental turbine

对比图10与图8可知,OIV算法不能有效识别部分第二类异常数据以及分布在正常数据上部的第三类异常数据。由OIV算法原理可知,OIV算法识别异常数据的依据为滑差曲线出现显著变化,即在某风速区间内数据点由密集分布向稀疏分布转换非常明显。在图10中如额定功率以上的某些风速区间内数据点分布较稀疏,由上至下没有呈现出由密集分布到稀疏分布的显著变化,导致某些异常数据未能被准确识别。

4 结 论

(1)在水平功率方向等间隔划分多个功率区间,并对每一个功率区间内的运行数据进行分析,能够得到更高的数据处理精度。

(2)以聚类轮廓系数为聚类效果评价指标,采用参数交叉组合方式自适应确定每个功率区间内最佳的DBSCAN算法参数,达到了较为满意的聚类数据和异常数据识别结果。

(3)采用自适应DBSCAN算法可以有效识别出安徽某风电场1.5 MW双馈式风电机组异常数据,该算法具有较强的通用性。

猜你喜欢

轮廓风电区间
你学会“区间测速”了吗
OPENCV轮廓识别研究与实践
基于实时轮廓误差估算的数控系统轮廓控制
全球经济将继续处于低速增长区间
海上风电跃进隐忧
分散式风电破“局”
风电:弃风限电明显改善 海上风电如火如荼
高速公路主动发光轮廓标应用方案设计探讨
区间对象族的可镇定性分析
重齿风电