基于SCADA数据驱动的风电机组部件故障预警

基于SCADA数据驱动的风电机组部件故障预警

吴亚联 1 , 梁坤鑫 1 , 苏永新 1* , 詹 俊 2
(1.湘潭大学 信息工程学院, 湖南 湘潭 411105; 2.湖南优利泰克自动化系统有限公司, 湖南 长沙 410205)

摘 要: 为提高风电机组部件故障预警的精度和速度, 文章提出了一种基于SCADA数据的风电机组部件故障预警方法, 用于解决现存的风电机组部件故障预警时间与故障预警精度的矛盾。 首先SCADA历史数据通过数据预处理与BP神经网络建立机组部件正常状态模型, 随后以该模型为基础结合基于马氏距离的数据统计方法形成故障预警判据, 并将结果反馈给SCADA系统达到风电机组部件故障预警目的。 仿真结果表明, 使用该方法能够提前2个月识别主轴承故障信号, 同时该方法能发现SCADA系统误报故障。
关键词: 神经网络; 故障诊断系统; 马氏距离; 风电场; SCADA系统

作为一种绿色无污染的新能源, 风能越来越受到重视,它将成为人类未来主要的能源资源 [1] 。 受复杂多变的环境因素影响, 风电机组各部件性能会在运行中逐渐下降, 最终导致部件发生故障。 而对风电机组部件进行故障预警则可提前发现隐患, 有利于优化维护计划, 避免因部件故障延误而导致更加严重的整机故障。
传统风电机组故障预警方法有振动分析、 声学分析、 润滑分析等, 这些方法需要采集高频率的振动数据或额外安装高成本附加设备或者传感器, 导致难以广泛应用于风场中。 风机数据采集与监控(Supervisory Control And Data Acquisition, SCADA) 系统作为风机状态监测的重要组成部分, 能够提供监测风机状态与风机部件运行状态的数据, 基于SCADA数据驱动的风机部件故障预警方法已经被广泛应用于风场中。 通过SCADA数据建立神经网络模型对风机部件进行故障预警不需要对风机组件的机械结构有深入了解。
当SCADA数据充足的情况下, 能够实现对风机多部件的故障预警。 神经网络对风机组件故障预警的这些优点, 使其成为风机关键部件故障预警的重要方法之一 [2-4] 。
Garcia等 [5] 在2006年提出通过利用神经网络建立风机组件正常模型对风机齿轮箱进行故障预警, 该方法通过神经网络正常模型的预测值与实际值进行比较得到误差, 将在正常行为模型定义的置信区间之外的误差判断为异常。 研究结果表明, 使用Garcia提出的方法只能提前26小时监测到风机齿轮箱发生故障, 预警时间过短导致无法针对即将发生的故障制定相应的维护计划。 Zaher等 [6] 在2009年提出类似的方法, 即通过观察神经网络的预测值与实时数据之间的误差和误差频率的增加来实现故障预警。 该方法能够提前6个月对齿轮箱轴承故障进行识别, 但是因为缺乏定量的判据来判断风机组件是否发生异常, 未曾大量运用于风场。 Kusiak等 [7] 在2012年通过改进神经网络模型, 选取最优性能模型对风机发电机轴承进行故障预测。 实验结果表明, 该方法能够提高神经网络精度, 但只能实现提前1.5小时对风机发电机轴承进行故障预测。 由于预警时间过短, 风场业主短时间内无法制定有效的维护计划。针对以上问题, 本文着力解决故障预警时间和预警精度的矛盾。 在结合逐步回归算法和遗传算法优化神经网络预测模型的基础上, 根据神经网络预测模型与马氏距离原理, 提出基于SCADA数据的风机部件故障预警方法。 通过某风场2 MW直驱式的风机进行试验、 分析, 验证所给出的方法在预警时间、 精度方面的有效性。
1 风机故障预警框架
如引言所述, 本文提出一种基于遗传算法的优化BP神经网络(Genetic Algorithm-Back Propagation, GA-BP) 和风机部件参数概率分布的风电机组部件故障预警方法, 其原理如图1所示, 方法分为风电机组部件正常行为建模、 故障预警两个部分。

<span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 图1 基于SCADA数据驱动的风电机组部件故障预警

1.1 风电机组部件正常行为建模
实际观测中发现SCADA数据中存在异常数据, 为保证训练数据的一致性与连续性, 对训练数据进行异常数据滤除。 同时为了避免输入参数重复使用与数据冗余, 采用逐步回归算法获取神经网络输入参数, 获取风机部件参数相关性较大的输入参数。SCADA系统由于结构复杂状态参数众多, 故障特征与故障之间存在极为复杂的非线性关系。 GA-BP神经网络具有强大的非线性映射功能, 无需单独建模, 能有效运用于风电场故障诊断中。 基于GA-BP神经网络, 选取相关参数, 建立风电机组部件正常行为模型, 正常行为模型结合基于马氏距离的数据统计方法, 形成故障预警判据, 计算了故障分布概率, 能适应多重工况。
1.2 故障预警
通过SCADA系统将风电机组部件实时监控数据输入模型, 得到其输出, 并计算其与正常值的马氏距离, 如果马氏距离越限, 则判定机组故障, 从而实现故障预警。如图1所示, 基于SCADA数据对风电机组部件进行故障预警主要分为以下3个步骤: 神经网络选择; 数据预处理; 风机部件故障判据确定。
1.3 神经网络选择
风机部件故障诊断问题本质上是非线性的, 选择的神经网络应具有并行处理学习记忆和非线性等特点。 针对以上特点, 选取BP神经网络建立正常模型对风机部件进行故障诊断, 结果表明BP神经网络在风机故障预警中的适用性 [7-8] 。结合具有全局寻优能力的遗传算法, 优化BP神经网络的权重和阈值, 设计基于GA-BP神经网络, 构建风电机组部件预警方案, 有效改善了BP神经网络速度和收敛速度, 也可提高故障预警的成功率 [8-9] 。 本文采用遗传算法优化后的BP神经网络。
2 数据预处理
2.1 异常数据滤除
神经网络预测模型通过训练阶段的数据来确定输入输出之间的映射, 然而SCADA数据在正常情况下很难找到一个完整的、 正常的训练数据集。 通常情况下通过SCADA系统获取的数据是不连续、 不一致的, 为了提高神经网络预测模型的准确性, 需要对数据进行预处理。选取风机功率数据进行数据预处理, 图2为某风机功率数据图, 通过数据的平均值 x 和偏差δ, 对数据进行异常滤除, 受到其他外部因素的影响导致数据具有波动性, 对其进行指数滑差处理:

<span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 式中: k通过统计小概率事件确定, 通过设置k和α对数据进行异常判断, 当x t 满足公式(2) 时, 可以判断当前数据为正常值, 否则为异常进行滤除。 选取k=3和α=0.3对功率数据进行处理, 滤除结果如图2所示。

<span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 图2 风电机组功率数据预处理

2.2 神经网络输入参数选择
对于风电场的SCADA数据, 神经网络选取输入参数, 大多通过主观经验判断或者参数之间的相关性来决定。 由于风电场SCADA参数之间存在相关性, 使用参数相关性选取神经网络输入参数的方法, 当选择输入参数存在高度相关时, 会造成参数的重复使用和数据冗余的问题。 而通过主观经验法选择神经网络输入参数, 由于影响风机部件的参数比较多, 存在选择参数不准确, 导致神经网络效率低, 选择参数过少, 精度不够等问题。我们采取逐步回归 [10-11] 解决这一问题, 逐步回归分析具体步骤如下所示:
第一步: 输入SCADA参数样本X(m,n), 有n个参数x 1 ,x 2 ,x 3 ,…,x n , 所有参数的维度为m。
第二步: 故障预警部件参数设为x n 计算所有参数的平均值ix 、 离均差平方和s ii 、 协方差矩阵S=(s ij ) n×n’ 和相关系数矩阵R=(r ij ) n×n’ 。

<span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 其中i,j=1,2,3,…,n-1,n。
第三步: 判断可选入参数个数是否大于2, 选入参数数量当大于2继续下一步, 否则结束。
第四步: 计算各参数的方差贡献, 以l(l≥1) 步为例, 计算偏回归平方和V l p 。

<span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 第五步: 选入参数的显著性检验。 检验时, 先选定信度a, 查表得到F a , 挑选未入选的模型中方差贡献最大的参数,计算:

<span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 若F 1 >F a , 说明该参数对y作用显著, 应该选入参数, 同时对相关系数矩阵R做变换, 否则结束。
第六步: 判断选入参数的数量是否大于2, 当数量大于2则继续下一步, 否则执行第四步。
第七步: 做剔除参数的显著性检验。 挑选入选模型中方差贡献最小的变量, 计算:

<span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 若F 2 <F a , 说明该变量对y作用不显著, 应该剔除掉, 对相关系数矩阵R做变换。 否则将参数保留。 并执行下一步
第八步: 判断为剩余可选入参数数量是否大于2个, 当满足大于2时, 执行第四步, 否则获得最优参数子集。
3 风机部件故障判据
针对上文中提出的传统风机部件故障预警方法的局限性, 本文通过马氏距离设计风电机组部件故障判据, 马氏距离方本质上是一种统计学方法, 避免了传统上单次幅度阈值判断方法受偶然因素影响剧烈的缺点。马氏距离是一种距离测量单位, 表示数据协方差距离大小。 马氏距离能够排除相关变量之间相关性的干扰, 给出多元变量中单变量的距离, 常用来识别数据集中的异常值。 由此本文使用该方法以获取SCADA数据集中的异常值, 马氏距离获取数据异常值计算如式(10) 所示:

<span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 第i个向量X i =[Xi1, Xi2, Xi3,…, X im ], m是向量总数。u=[u 1 ,u 2 ,u 3 ,…,u m ]是均值向量。马氏距离对于训练数据集的计算如下:

<span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 式中: X ref =[训练数据, 训练误差], 用于训练神经网络的历史数据, 训练数据所产生的误差。通过获取到的马氏距离值利用最小二乘法确定威布尔分布函数:

<span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 在训练阶段获取到的马氏距离值符合双函数威布尔分布, 如图3所示。 通过获取到的马氏距离值利用最小二乘法确定威布尔分布函数:

<span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 其中: X newi =[预测误差, 测量数据], 其中测量数据指的是预测时SCADA监控到的组件的实时数据, 预测误差指的是神经网络的预测值与实时数据的误差。

通过获取到实时的预测误差与检测数据, 计算得到马氏距离值MD newi , 通过获取到的马氏距离值MD newi 计算f(MD newi ) 。 当满足f(MD newi ) <0.01时, 则可以判断当前数据为异常 [12] 。 实现风机部件故障诊断。

<span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 图3 人工神经网络训练过程MD值的
直方图和韦布尔概率密度函数

4 仿真及结果分析
相比于传统的风电机组需要齿轮箱的多级增速, 直驱式风电机组忽略了增益齿轮箱, 结构较为简单。 但是由于风轮和发电机的整个重量作用在主轴承上, 一旦主轴承发生故障, 若不能及时处理, 将导致更为严重的风电机组整机故障。 本文基于Matlab 2016a平台对直驱式风电机组关键部件主轴承的故障预警进行上述方法试验分析。
4.1 神经网络型输入参数选择
SCADA系统主要监测主轴承运行时的温度, 选取SCADA系统参数主轴承温度2(前端) 作为因变量, 其他参数为自变量, 如图4所示, 使用SPSS软件进行逐步回归分析,获得主轴承温度2正常模型输入参数。

<span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 图4 模型输入输出参数

4.2 异常数据滤除
根据第2节所提到的方法对主轴承温度2数据进行预处理。 如图4所示选取输入参数为自变量对主轴承温度2分别进行异常数据滤除, 同时当主轴承温度2处于异常时, 滤除对应所有输入参数数据。 如图5所示, 当主轴承温度2处于异常状态时, 滤除对应的输入参数如风速、 轮廓转速、 机舱温度等数据。 将滤除后的数据用于神经网络训练和测试。
4.3 主轴承故障诊断
本文通过两台直驱式风机主轴承故障诊断仿真试验, 验证上述故障预警方法的有效性, 并与其他传统风机部件故障预警方法进行比较。神经网络训练阶段原始SCADA数据具有较大的波动性, 为了降低波动性, 对数据进行10 min平均标准化处理。在24 h内可获取144个测量值, 进行故障诊断的马氏距离值根据经验法应当选取12 h平均, 每24 h生成2个马氏距离值。

<span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 图5 风电机组主轴承温度2异常数据滤除

4.3.1 风机P01主轴承发生故障
风电场SCADA系统通过简单设置主轴承温度阈值的方法来对主轴承温度进行状态监测, 当主轴承温度高于设定的阈值时SCADA就会向风场业主发出报警。使用本文方法结合SCADA数据对风机P01在2016年1月到2017年1月进行主轴承故障诊断, 结果如图6所示。 由图可得SCADA系统第一次发出警报的时间在5月份, 随着时间的推移, SCADA系统报警的次数随之增加, 最终业主进行维护, 主轴承故障消失, SCADA系统报警停止。

<span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 图6 P01主轴承故障监测结果

相比于SCADA报警方法, 使用本文方法在3月份时马氏距离值已经超出了故障阈值从而得到第一次报警。 随着时间的增加, SCADA系统在5月份开始报警, 相比于SCADA系统状态监测的方法, 使用本文方法能够提前2个月对风机主轴承进行故障报警。为了避免本文方法由于神经网络输入参数值异常, 导致马氏距离值超出阈值产生故障报警。 如图7所示, 对神经网络输入参数进行分析, 图7中的最大值和最小值分别对应的是训练数据中的最大值和最小值, 可以观察到在图7中, 输入正常模型的参数在训练神经网络数据的范围内, 输入参数值并未产生异常。 因此可以判断使用本文方法检测到的异常为组件状态异常。

<span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 <span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 <span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 <span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 <span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 图7 P01主轴承故障监测输入数据

在同一时间内获取风机P01神经网络预测误差值如图8所示。 由图7、 图9可得当误差阈值绝对值设定在1.5时,预测误差并没有超过该阈值, 并未能产生报警。 验证了本文方法优于传统利用预测误差进行风机部件进行故障预警的方法。

<span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 图8 P01主轴承预测误差

<span>基于SCADA数据驱动的风电机组部件故障预警</span>

 

 

 图9 P07主轴承故障监测结果

4.3.2 风机P07SCADA系统误报警
使用本文方法对相同型号风机P07在2016年1月到2017年1月进行主轴承故障诊断, 结果如图9所示。由图9可知, 该风机SCADA系统在1月出现第一次报警,随着时间的增加SCADA系统报警数量增加。 而根据本文方法, 马氏距离的值全程均未曾超过阈值, 可以得到主轴承没有发生故障的结论, 与事实相符。 可见我们提出的方法, 还能辅助风场业主分辨现有SCADA系统报警是否有效, 有利于风场业主制定有效的维护计划。
5 结语
对风电机组关键部件进行故障预警的关键是预警准确、 及时。 本文以神经网络在风电机组部件故障预警的应用为背景, 着力解决故障预警时间和预警精度的矛盾, 提出了一种SCADA数据驱动的风电机组部件故障预警方法。
(1) 方法结合逐步回归算法与指数滑差算法, 给出SCADA数据预处理方法, 准确找出对风电机组影响较大参数, 并滤除这些参数的噪声。
(2) 方法通过神经网络预测模型与马氏距离算法, 将传统故障预警方法改为统计方法, 并且这种统计方法计算了故障分布概率, 能够适应运行工况复杂多变情况。
(3) 以两台2 MW直驱式风机为对象, 对本文方法进行实例验证。 试验结果表明: 使用该方法能够提前2个月识别主轴承故障信号, 同时该方法能发现SCADA系统误报故障。 本方案能有效赢得备件和维护计划优化时间, 也能剔除SCADA系统误报降低维护量, 有效降低风电场维护成本。下一步将根据风机内部零部件之间的相关性, 针对风机整机研究风电机组整机故障预警方法。

[参考文献]
[1]GWEC.Global wind energy outlook 2016 available online[EB/OL].(2016-04-04) [2018-05-08].http://www.gwec.net.
[2]郭清, 夏虹, 韩文伟.基于小波熵与BP神经网络的电机故障信号研究[J].仪表技术与传感器, 2014(1): 96-99.
[3]范文, 孙冬梅, 熊鑫, 等.基于信息融合技术的磁轴承转子故障诊断[J].仪表技术与传感器, 2015(12): 136-140.
[4]张伟, 郑恩让.基于多层前向神经网络的应力传感器故障诊断[J].仪表技术与传感器, 2001(4): 1-2.
[5]GARCIA M C, SANZ-BOBI M A, DEL PICO J.SIMAP: intelligent system for predictive maintenance: application to the health condition monitoring of a windturbine gearbox[J].Computers in Industry, 2006(6): 552-568.
[6]ZAHER A, MCARTHUR S D J, INFIELD D G, et al.Online wind turbine fault detection through automated SCADA data analysis[J]. Wind Energy, 2009(6): 574-593.
[7]KUSIAK A, VERMA A.Analyzing bearing faults in wind turbines: a data-mining approach[J].Renewable Energy, 2012(48): 110-116.
[8]SUN P, LI J, WANG C, et al.A generalized model for wind turbine anomaly identifcation based on SCADA data[J].Applied Energy,2016(168): 550-567.
[9]郭东杰, 王灵梅, 郭红龙, 等.改进小波结合BP网络的风力发电机故障诊断[J].电力系统及其自动化学报, 2012(2): 53-58.
[10]ZHANG Z Y, WANG K S.Wind turbine fault detection based on SCADA data analysis using ANN[J].Advances in Manu Facturing,2014(1): 70-78.
[11]高兴良.基于逐步回归分析的组合神经网络股指预测研究[D].哈尔滨: 哈尔滨工业大学, 2015.
[12]BANGALORE P, LETZGUS S, KARLSSON D, et al.An artificial neural network‐ based condition monitoring method for wind turbines, with application to the monitoring of the gearbox[J].Wind Energy, 2017(8): 1421-1438.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/119549.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • SilverLight浏览器支持情况

    SilverLight浏览器支持情况推荐使用IE、360浏览器,搜狗、QQ浏览器需切换到兼容模式。以下浏览器版本不再支持:Chrome45及以后版本、Firefox52及以后版本、MicrosoftEdge浏览器、Opera浏览器。…

  • c语言链表数据存入文件和读取文件

    c语言链表数据存入文件和读取文件c语言,链表数据存入文件和读取文件

  • Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

    Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?今天打开centos7,由于没设置开机自启,当我启动docker时,发现与docker有关的命令都会报错,百度过,说什么重装docker啥的,我都试过,但是还是解决不了问题,下面我贴出问题集:1.例如我查看版本信息2.重启容器3.systemctlstatusdocker查看docker状态也发现错误:最后解决问题方法是:进入/etc/docker,没有daemon.json文件就自己新建一个:cd/etc/docker编辑daemon.json文件:加入这段代码:

  • vue devtools如何使用调试_千牛提示opendevtools

    vue devtools如何使用调试_千牛提示opendevtoolsWriteByMonkeyfly以下内容均为原创,如需转载请注明出处。前提今天准备开始学vue.js了,不为别的,只是因为我女朋友毕设项目的前端是使用vue开发的,而我作为一个前端开发却无能为力,你说可不可笑。她需要一个会vue的前端帮她做界面,而我虽然身为一个前端开发,但是并不会vue,所以作为男朋友的我本身就很自责。现阶段的情况是:我只是知道有这些框架,再加上公司的项…

  • 如何使用IntelliJ IDEA 配置Maven

    如何使用IntelliJ IDEA 配置MavenIDEA全称IntelliJIDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的Java开发工具之一,IDEA是JetBrains公司的产品,现在有逐步取代老牌Java开发工具Eclipse的趋势.那本人也是从Eclipse转到IDEA.那刚转换过来时,确实很不适应,不过好在坚持使用了几天后,确实感觉IntelliJIDEA比Eclipse更加智能.  

  • 变异系数法matlab代码[通俗易懂]

    变异系数法matlab代码[通俗易懂]function[w,ave,score]=byxsf(A)[m,n]=size(A);%m:对象数,n:指标数v=zeros(1,n);w=zeros(1,n);fori=1:nv(i)=std(A(:,i))/mean(A(:,i));endfori=1:nw(i)=v(i)/sum(v);enddisp(‘权重为:’)wscore=w(…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号