数据采集与治理:SCADA数据、振动数据、气象数据采集规范与清洗

各位同行,今天咱们聊聊数据采集与治理。说实话,这是风电数字化转型里最“脏”最“累”的活,但也是地基。地基不稳,后面所有分析、预测、优化都是空中楼阁。

我个人习惯把数据采集比作“养鱼”。鱼塘里的水(数据)如果浑浊、有杂质,你捞上来的鱼(洞察)肯定不新鲜。咱们得先把水源管好,把过滤网装好。

一、SCADA数据采集规范

SCADA系统是风机的“黑匣子”,记录着运行状态、发电量、温度、压力等几百个参数。但很多场站的数据质量,说实话,惨不忍睹。

核心原则:SCADA数据采集要遵循“三统一”原则——统一时间戳、统一采样频率、统一数据格式。

1. 时间戳统一

我遇到过最头疼的问题:风机本地时间与SCADA服务器时间相差十几分钟。你想想看,做功率曲线分析时,风速和功率对不上,这怎么玩?

  • 所有风机必须通过NTP(网络时间协议)同步,误差控制在1秒以内
  • 记录时使用UTC时间,避免时区、夏令时带来的混乱
  • 每个数据点必须带时间戳,不能依赖采集系统自动打标

2. 采样频率统一

不同参数对采样频率要求不同。温度变化慢,1分钟一次足够;振动信号快,需要kHz级别。但很多场站图省事,全部用10分钟平均数据。

  • 运行参数(功率、转速、桨距角):1秒或1赫兹
  • 温度、压力等慢变量:1分钟
  • 报警/故障事件:实时触发,毫秒级

注意:千万别把高频数据降采样成低频再存。原始数据是金子,降采样后就是沙子。存储成本再高,也比数据丢失强。

3. 数据格式统一

不同风机厂家、不同型号,数据命名千奇百怪。有的叫“WindSpeed”,有的叫“WS”,还有的叫“风速(m/s)”。

  • 建立统一的参数映射表,比如:风速→WindSpeed_Avg,单位m/s
  • 缺失值用NaN或-9999标记,不要用0或空字符串
  • 异常值(如风速-5m/s)直接标记为无效

二、振动数据采集规范

振动数据是预测性维护的“眼睛”。但振动信号采集,坑特别多。我曾经在一个项目里,花了整整两周才发现振动传感器装反了方向。

1. 传感器选型与安装

  • 加速度传感器:量程±50g,频率响应0.5Hz~10kHz
  • 安装位置:主轴承、齿轮箱高速轴、发电机驱动端/非驱动端
  • 安装方式:磁吸式方便但精度差,螺栓固定才是正道

我的经验:传感器安装前,一定要做“敲击测试”。用橡胶锤敲击安装点,看信号响应是否正常。这步省了,后面数据全是废的。

2. 采样参数设置

参数 推荐值 说明
采样频率 ≥2.56倍最高分析频率 比如分析到1kHz,采样至少2.56kHz
采样时长 ≥1个完整转频周期 低速轴(10rpm)需要6秒以上
数据长度 2的N次方(1024/2048/4096) 方便FFT计算

3. 数据标记与存储

振动数据必须和工况数据关联。没有工况的振动数据,就像没有坐标的地图。

  • 记录采集时的转速、功率、桨距角
  • 区分“停机”、“并网”、“满发”等工况
  • 原始时域波形和FFT频谱都要保存

三、气象数据采集规范

气象数据是风电的“原料”。风速、风向、温度、气压、湿度,每个参数都影响发电量。但气象数据采集,说白了就是跟老天爷打交道,不确定性最大。

1. 测风塔 vs 机舱风速仪

测风塔数据准,但成本高、维护难。机舱风速仪便宜,但受叶片尾流影响,误差大。

  • 测风塔:10m、50m、轮毂高度三层风速,每层两个风向
  • 机舱风速仪:必须做“尾流修正”,否则数据偏小10%~20%
  • 激光雷达:精度高但贵,适合前期测风或复杂地形

避坑指南:我曾经遇到一个场站,机舱风速仪被鸟粪糊住了,数据连续三个月偏低。后来加了自动清洁装置,问题才解决。所以,定期巡检比什么都重要。

2. 数据质量控制

气象数据常见的“脏数据”包括:

  • 风速负值:传感器故障或结冰
  • 风速长时间不变:传感器卡死
  • 风向突变:传感器松动或雷击
  • 温度异常:太阳辐射导致传感器升温

3. 数据补全策略

气象数据难免有缺失。我的做法是:

  • 短时间缺失(<1小时):线性插值
  • 长时间缺失(>1小时):用相邻风机数据或NWP(数值天气预报)数据替代
  • 极端天气(台风、雷暴):直接标记为“恶劣工况”,不参与建模

四、数据清洗实战

数据清洗,说白了就是“去伪存真”。我总结了一套“三步走”流程:

  1. 规则清洗:基于物理约束。风速0~40m/s,功率0~额定功率×1.1,温度-40~60℃。超出直接剔除。
  2. 统计清洗:基于3σ原则或箱线图。比如功率曲线上的离群点,明显偏离正常范围。
  3. 模型清洗:基于机器学习。用正常数据训练模型,预测值与实际值偏差过大则标记。

我的习惯:清洗后的数据不要直接覆盖原始数据。建一个“清洗日志”,记录每条数据被清洗的原因。这样出了问题还能追溯。

下面是一个简单的数据清洗代码示例,用Python实现:

import pandas as pd
import numpy as np

# 加载SCADA数据
df = pd.read_csv('scada_data.csv')

# 规则清洗:风速0~40m/s
df = df[(df['WindSpeed'] >= 0) & (df['WindSpeed'] <= 40)]

# 统计清洗:功率3σ原则
mean_power = df['Power'].mean()
std_power = df['Power'].std()
df = df[(df['Power'] >= mean_power - 3*std_power) & 
        (df['Power'] <= mean_power + 3*std_power)]

# 标记缺失值
df['Temperature'] = df['Temperature'].replace(-9999, np.nan)

# 保存清洗日志
cleaning_log = {
    'total_records': len(df),
    'removed_by_rule': 150,
    'removed_by_stats': 80,
    'missing_values': 20
}
print(f"清洗完成,保留记录数:{len(df)}")

五、知识体系总览

为了让大家更直观地理解数据采集与治理的完整流程,我画了一张图:

风电数据采集与治理知识体系 SCADA数据 振动数据 气象数据 采集规范 时间同步 | 采样频率 | 数据格式 | 传感器安装 | 工况标记 数据清洗三步走 规则清洗(物理约束) → 统计清洗(3σ/箱线图) → 模型清洗(机器学习) 高质量数据资产 → 分析/建模/优化

这张图把整个流程串起来了。从三个数据源出发,经过采集规范约束,再到数据清洗,最终形成高质量的数据资产。每一步都马虎不得。

最后提醒一句:数据治理不是一次性工作,而是持续的过程。我见过太多场站,一开始数据质量很好,半年后就一塌糊涂。建立数据质量巡检机制,每周检查一次,比什么都管用。

好了,关于数据采集与治理,今天就聊到这儿。记住:数据是风电数字化转型的“血液”,血液干净了,身体才能健康。

专注资料整理