2、SCADA数据基础:SCADA系统介绍、数据采集频率与类型、数据质量评估与清洗

各位同学,咱们今天聊聊SCADA数据。说实话,这玩意儿是咱们做故障诊断的“粮食”。没有它,再牛的算法也是白搭。我见过太多项目,算法模型调得漂漂亮亮,结果一上现场数据就崩了——为什么?数据质量不行。

所以这一章,咱们把SCADA系统的底裤扒干净。从系统架构到数据采集,再到怎么清洗脏数据,一步到位。

2.1 SCADA系统:风机的“黑匣子”

SCADA,全称是Supervisory Control And Data Acquisition,翻译过来就是“监控与数据采集系统”。说白了,它就是风机的“黑匣子”,记录着风机从出生到退役的每一个动作。

我个人习惯把SCADA系统分成三层:

  • 现场层:传感器、PLC、变桨控制器这些硬件。它们负责采集原始信号,比如风速、转速、温度。
  • 通讯层:光纤、交换机、OPC协议。把现场数据传到中控室。
  • 应用层:数据库、HMI界面、报表系统。咱们工程师主要跟这层打交道。

嗯,这里要注意:很多新手以为SCADA数据就是“直接拿来用”的。其实不然。我在项目中遇到过,某风场SCADA系统因为通讯延迟,数据时间戳错位了整整2分钟。你想想看,用这种数据做故障诊断,结果能准吗?

核心观点:SCADA数据是“带病”的。咱们做诊断的第一步,不是建模,而是先搞清楚数据是怎么来的、有什么毛病。

2.2 数据采集频率与类型

SCADA系统采集什么数据?我列个表,大家一目了然:

数据类型 典型参数 采集频率 用途
气象数据 风速、风向、温度、湿度 1秒~10秒 功率预测、偏航控制
电气数据 有功功率、无功功率、电流、电压 1秒~1分钟 发电性能评估、电网适应性
机械数据 主轴转速、齿轮箱温度、振动 1秒~10秒 机械故障诊断
状态数据 运行状态、故障代码、停机次数 事件触发 运维决策

采集频率这块,我踩过坑。曾经有个项目,客户说“我们SCADA数据是1秒采集一次”。结果我拿到数据一看,好家伙,大部分时间戳间隔是5秒、10秒,甚至30秒。为什么?因为SCADA系统在数据量大的时候会“丢点”——这是常态。

所以我的建议是:不要迷信标称频率。拿到数据后,先统计一下实际采样间隔的分布。如果80%以上的数据点间隔在标称值的±20%以内,就算合格。

2.3 数据质量评估:先给数据“体检”

数据质量评估,说白了就是给数据做个体检。我一般从四个维度看:

  1. 完整性:有没有缺失值?缺失比例多少?
  2. 准确性:数值是否在合理范围内?比如风速不可能超过50m/s(除非台风)。
  3. 一致性:不同参数之间是否矛盾?比如风速为0但功率不为0,这就有问题。
  4. 时效性:时间戳是否连续?有没有跳变?

小技巧:我习惯用“3σ原则”做初步筛选。对于正态分布的数据,超过均值±3倍标准差的值,大概率是异常点。但注意,风速、功率这些参数不是正态分布,得用分位数法。

我曾经遇到一个案例:某风场齿轮箱温度数据,连续3个月都显示正常。但仔细一看,温度值始终在45°C~46°C之间波动,精度高得离谱。后来发现是传感器坏了,输出的是固定值。这种“死数据”比缺失数据更可怕,因为它会骗过你的模型。

2.4 数据清洗:把“垃圾”倒掉

数据清洗,就是去掉那些“脏数据”。我总结了一套“四步清洗法”:

  • 第一步:去重。删除完全重复的记录。SCADA系统偶尔会重复发送数据。
  • 第二步:去无效。删除停机、限功率、维护等非正常运行状态的数据。咱们做故障诊断,只关心正常运行时的数据。
  • 第三步:去异常。用阈值法或统计法剔除明显不合理的数据点。
  • 第四步:补缺失。对于短时间缺失(比如<5分钟),可以用线性插值;长时间缺失,建议直接删除该时间段。

这里给一段Python代码示例,大家感受一下:

import pandas as pd
import numpy as np

# 读取SCADA数据
df = pd.read_csv('scada_data.csv', parse_dates=['timestamp'])

# 第一步:去重
df = df.drop_duplicates()

# 第二步:筛选正常运行状态(假设状态码1表示运行)
df = df[df['status'] == 1]

# 第三步:风速合理性检查(0~40m/s)
df = df[(df['wind_speed'] >= 0) & (df['wind_speed'] <= 40)]

# 第四步:线性插值补缺失(缺失不超过5个点)
df = df.set_index('timestamp').resample('10S').mean()
df = df.interpolate(method='linear', limit=5)

警告:插值不是万能的。如果缺失数据超过总数据量的10%,建议重新评估数据源。强行插值只会引入更多噪声。

2.5 知识体系总览

为了让大家更直观地理解本章内容,我画了一张图:

SCADA数据基础知识体系 SCADA系统 数据采集 数据质量评估 数据清洗 现场层·通讯层·应用层 频率·类型·采样间隔 完整性·准确性·一致性·时效性 去重·去无效·去异常·补缺失 核心逻辑:从系统认知 → 数据采集 → 质量评估 → 清洗处理 数据质量是故障诊断的基石,清洗比建模更重要

这张图把本章的核心逻辑串起来了。从SCADA系统认知开始,到数据采集、质量评估,最后到清洗处理。每一步都环环相扣。

好了,关于SCADA数据基础,咱们就聊到这儿。记住一句话:数据质量决定诊断上限。下一章咱们会讲特征工程,但前提是你得先把数据洗干净。

课后思考:你手头的SCADA数据,缺失率是多少?有没有“死数据”问题?建议花10分钟跑一遍上面的代码,看看结果。

专注资料整理