数据采集与接入:三大数据源深度解析

做风电功率预测这些年,我最大的感触就是——数据质量决定预测上限。你算法再牛,模型再花哨,数据源出了问题,一切都是白搭。今天咱们就聊聊SCADA系统、测风塔数据和数值天气预报(NWP)这三个核心数据源。

说白了,这三者就像人的三根支柱。缺了哪一根,预测系统都站不稳。我见过太多项目,前期数据采集没做好,后期模型怎么调都救不回来。

一、SCADA系统数据:风机的“体检报告”

SCADA系统,全称是数据采集与监视控制系统。每个风场都有,每台风机都连着。它实时记录风机的运行状态,是功率预测最基础的数据来源。

SCADA能采集什么?

  • 电气量:有功功率、无功功率、电压、电流、频率
  • 机械量:桨距角、偏航角度、发电机转速、齿轮箱温度
  • 环境量:机舱风速、机舱风向、环境温度、湿度
  • 状态量:运行/停机/故障/限电状态、累计发电量

重点提醒:SCADA数据的时间分辨率通常是1秒到10分钟不等。做功率预测,我建议至少用10分钟级数据。太细了噪声大,太粗了丢失细节。

我在项目中遇到过一个问题:某风场SCADA记录的风速和实际测风塔数据总是对不上。后来排查发现,是机舱风速仪受叶片尾流影响,测出来的风速普遍偏低10%-15%。这个坑,大家一定要提前注意。

二、测风塔数据:风资源的“金标准”

测风塔是独立于风机安装的测风设备。它不受风机尾流干扰,数据更准确、更可靠。业内公认,测风塔数据是风资源评估的“金标准”。

测风塔通常采集:

测量参数 典型高度 传感器类型
风速 10m、30m、50m、70m、轮毂高度 风速计(杯式/超声波)
风向 10m、轮毂高度 风向标
温度 10m、轮毂高度 温度传感器
气压 地面 气压计
湿度 10m 湿度传感器

你想想看,测风塔数据为什么重要?因为它能反映风场的真实风资源特性。SCADA数据受风机控制策略影响,而测风塔数据是纯天然的。做功率预测模型时,我习惯用测风塔数据做模型训练,用SCADA数据做实时输入。

我的经验:测风塔数据也不是完美的。我曾经遇到测风塔结冰导致数据异常的情况。所以数据接入时,一定要做质量控制——检查数据完整性、范围合理性、时间连续性。

三、数值天气预报(NWP)数据:预测的“灵魂”

功率预测,核心在于“预测”二字。SCADA和测风塔告诉你“现在”怎么样,NWP告诉你“未来”怎么样。没有NWP数据,你只能做超短期预测(未来0-4小时),做不了真正的功率预测。

NWP数据源有哪些?

  • 全球模式:ECMWF(欧洲中心)、GFS(美国)、IFS(欧洲)
  • 区域模式:WRF(中尺度)、COSMO(德国)、HRRR(美国)
  • 商业产品:MeteoGroup、DTN、Vaisala等

嗯,这里要注意:不同NWP数据源的空间分辨率、时间分辨率、更新频率都不一样。ECMWF的全球模式分辨率约9km,而WRF区域模式可以做到1km甚至更细。

NWP数据的关键参数:

  • 风速(10m高度、100m高度、轮毂高度)
  • 风向(10m高度、100m高度)
  • 温度(2m高度、各气压层)
  • 气压(海平面气压、地面气压)
  • 湿度(相对湿度、比湿)
  • 降水(降水量、降水类型)
  • 边界层参数(湍流动能、边界层高度)

避坑指南:我曾经踩过一个坑——直接使用NWP的10m风速做预测。结果发现,10m风速和轮毂高度(80-100m)的风速差异巨大。后来我改用风切变公式做高度修正,预测精度提升了15%以上。

四、三大数据源的协同关系

这三者不是孤立的。它们需要协同工作,才能构建完整的功率预测系统。

我画了一张图,帮你理清它们的关系:

SCADA系统 实时运行数据 1秒-10分钟级 测风塔数据 风资源基准数据 10分钟级 NWP数据 未来天气预报 1小时-6小时级 数据融合与质量控制 时间对齐 · 异常检测 · 缺失值处理 · 高度修正 功率预测模型

从这张图你能看到:SCADA提供实时状态,测风塔提供基准参考,NWP提供未来预测。三者经过数据融合和质量控制后,才能输入到预测模型中。

五、数据接入的实战要点

数据接入不是简单的“把数据拿过来”。我总结了几条实战经验:

  1. 时间同步:三个数据源的时间戳必须对齐。SCADA可能是UTC+8,NWP可能是UTC,测风塔可能是本地时间。统一转换成UTC时间,这是基本功。
  2. 数据频率匹配:SCADA是分钟级,NWP是小时级。做预测时,需要把高频数据降采样,低频数据升采样。我习惯统一到15分钟间隔。
  3. 异常值处理:SCADA数据经常出现“死值”(长时间不变)、“跳变”(瞬间大幅变化)、“缺失”(通信中断)。这些都要做标记或剔除。
  4. 数据存储:建议用时序数据库(如InfluxDB、TimescaleDB)存储原始数据,用关系数据库存储清洗后的数据。别混在一起,否则后期查问题很痛苦。

核心原则:数据接入阶段,宁可多存,不要少存。原始数据永远保留,清洗逻辑要可追溯。我见过太多项目,数据清洗后原始数据丢了,模型出问题想回溯都找不到原因。

六、一个实际的数据接入流程

最后,我分享一个我在项目中实际使用的数据接入流程。代码就不贴了,流程思路更重要:

1. 数据源配置
   - SCADA:OPC UA/Modbus TCP 协议接入
   - 测风塔:FTP/SFTP 定时拉取
   - NWP:API接口定时请求(ECMWF/GFS)

2. 数据采集
   - SCADA:实时流式采集(Kafka/Flume)
   - 测风塔:每10分钟拉取一次
   - NWP:每6小时拉取一次(全球模式)

3. 数据预处理
   - 时间戳统一(UTC)
   - 缺失值标记(不填充,保留原始)
   - 异常值检测(3σ原则 + 业务规则)

4. 数据存储
   - 原始数据:时序数据库(保留30天)
   - 清洗数据:关系数据库(保留3年)
   - 特征数据:HDF5/Parquet(长期保留)

5. 数据质量监控
   - 数据延迟监控(超过30分钟告警)
   - 数据完整性监控(缺失率>5%告警)
   - 数据范围监控(超出物理极限告警)

这个流程看起来简单,但每个环节都有坑。比如NWP数据拉取,API有时候会超时,需要做重试机制。测风塔数据有时候文件格式会变,需要做格式校验。SCADA数据量大,需要做流式处理。

嗯,今天就聊到这儿。数据采集与接入是功率预测项目的第一步,也是最重要的一步。这一步走稳了,后面的模型训练、部署上线都会顺利很多。