第3章:可靠性数据采集与处理

数据采集与处理,说白了就是风电可靠性工程的「地基」。

我见过太多团队,算法模型搞得花里胡哨,结果数据一塌糊涂,最后全白干。你想想看,垃圾数据进去,能出来什么好东西?

这一章,咱们就聊聊怎么把SCADA、CMS这些原始数据,变成真正能用的可靠性数据。

3.1 SCADA数据清洗——别让脏数据骗了你

SCADA系统每10分钟记录一次数据,一年下来就是5万多条。但这里面,至少10%-20%是有问题的。

常见问题有哪些?

  • 停机时段数据:风机没转,数据全是0,这种数据必须剔除
  • 传感器漂移:温度、振动值慢慢偏离真实值,趋势看着对,实际是错的
  • 通信中断:数据突然跳变,或者连续几个点一模一样
  • 限功率运行:风速高但功率低,不是故障,是电网调度

我的清洗流程:

  1. 剔除停机数据(有功功率 < 0.1倍额定功率)
  2. 去除物理极限值(风速>50m/s、温度>100°C等)
  3. 检测连续重复值(连续3个以上相同值,标记为可疑)
  4. 处理缺失值(短时间缺失用插值,长时间缺失直接剔除)
# 一个简单的SCADA清洗示例
import pandas as pd
import numpy as np

def clean_scada(df):
    # 1. 剔除停机数据
    df = df[df['active_power'] > 0.1 * df['rated_power']]
    
    # 2. 去除物理极限
    df = df[(df['wind_speed'] > 0) & (df['wind_speed'] < 50)]
    df = df[(df['ambient_temp'] > -40) & (df['ambient_temp'] < 60)]
    
    # 3. 检测重复值
    dup_mask = (df.diff(periods=1) == 0).all(axis=1)
    df = df[~dup_mask]
    
    return df

个人经验:我习惯先做可视化,把功率曲线画出来。正常数据应该是一条S形曲线,偏离太远的点,十有八九有问题。

3.2 CMS振动数据处理——听出故障的「声音」

CMS数据比SCADA复杂得多。SCADA是「慢变量」,CMS是「快变量」——每秒几千个采样点。

为什么要处理振动数据?

齿轮箱、轴承的故障,最早都体现在振动信号里。等SCADA报警,往往已经晚了。

我的处理步骤:

  • 去趋势项:消除传感器安装带来的直流分量
  • 带通滤波:保留故障特征频段,滤掉噪声
  • 重采样:统一采样频率,方便后续分析
  • 特征提取:计算RMS、峰值因子、峭度等指标

避坑指南:我曾经遇到过一个问题——振动值突然变大,以为是轴承故障,结果发现是传感器松了。所以,处理CMS数据前,一定要先做传感器状态检查。

# CMS振动数据预处理示例
from scipy import signal

def preprocess_vibration(data, fs=2560):
    # 去趋势
    data = signal.detrend(data)
    
    # 带通滤波(保留10-1000Hz)
    b, a = signal.butter(4, [10/(fs/2), 1000/(fs/2)], btype='band')
    filtered = signal.filtfilt(b, a, data)
    
    # 计算RMS
    rms = np.sqrt(np.mean(filtered**2))
    
    return filtered, rms

3.3 故障代码标准化——让不同厂家说同一种「语言」

做可靠性分析最头疼的是什么?

不同厂家的故障代码,完全不一样!

金风有金风的代码,远景有远景的代码,维斯塔斯有维斯塔斯的代码。你拿到的数据,可能是「Fault_001」、「ERR_23」、「Alarm_Generator_Overtemp」——五花八门。

怎么标准化?

原始代码 厂家 标准化代码 故障描述
Fault_001 金风 GEN_OVERTEMP 发电机超温
ERR_23 远景 GEN_OVERTEMP 发电机超温
Alarm_Gen_Temp_High 维斯塔斯 GEN_OVERTEMP 发电机超温

我的做法:建立一套「三级编码体系」——系统级(发电机、齿轮箱、叶片)、部件级(轴承、绕组、齿轮)、故障模式级(超温、振动、过载)。这样不管原始代码长什么样,都能映射到统一体系里。

3.4 数据质量评估——给你的数据打个分

数据清洗完了,不代表就能用了。你得知道这批数据「有多好」。

我常用的评估指标:

  • 完整率:实际数据量 / 理论数据量(>95%算合格)
  • 准确率:与现场实测值的偏差(<5%算合格)
  • 一致性:同一参数在不同传感器间的差异(<2%算合格)
  • 时效性:数据延迟时间(<10分钟算合格)

数据质量等级:

A级:四项指标全部合格,可直接用于可靠性建模

B级:1-2项不合格,需标注使用限制

C级:3项以上不合格,建议重新采集

嗯,这里要注意——数据质量评估不是一次性工作。我建议每个月做一次,因为传感器会老化,通信会出问题,数据质量是动态变化的。

警告:千万别用「看起来差不多」的数据做可靠性分析。我曾经吃过这个亏——一批数据完整率只有85%,我硬着头皮用了,结果模型预测偏差超过30%。后来重新清洗、补采数据,才把偏差降到5%以内。

本章知识体系

可靠性数据采集与处理知识体系 数据采集与处理 SCADA数据清洗 CMS振动数据处理 故障代码标准化 数据质量评估 剔除停机数据 去除物理极限 检测重复值 处理缺失值 去趋势项 带通滤波 重采样 特征提取 系统级编码 部件级编码 故障模式编码 完整率 准确率 一致性 时效性 数据质量是可靠性分析的基石,每一步都马虎不得

数据采集与处理,说白了就是「把垃圾变成金子」的过程。SCADA清洗、CMS处理、代码标准化、质量评估——这四步走完,你的数据才算真正能用。

我做了这么多年风电可靠性,最大的体会就是:数据花的时间越多,后面建模就越省心。别急着跑模型,先把数据搞干净。


公众号:蓝海数据掘金营,微信deep3321