数据采集与接入:三大数据源深度解析
做风电功率预测这些年,我最大的感触就是——数据质量决定预测上限。你算法再牛,模型再花哨,数据源出了问题,一切都是白搭。今天咱们就聊聊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提供实时状态,测风塔提供基准参考,NWP提供未来预测。三者经过数据融合和质量控制后,才能输入到预测模型中。
五、数据接入的实战要点
数据接入不是简单的“把数据拿过来”。我总结了几条实战经验:
- 时间同步:三个数据源的时间戳必须对齐。SCADA可能是UTC+8,NWP可能是UTC,测风塔可能是本地时间。统一转换成UTC时间,这是基本功。
- 数据频率匹配:SCADA是分钟级,NWP是小时级。做预测时,需要把高频数据降采样,低频数据升采样。我习惯统一到15分钟间隔。
- 异常值处理:SCADA数据经常出现“死值”(长时间不变)、“跳变”(瞬间大幅变化)、“缺失”(通信中断)。这些都要做标记或剔除。
- 数据存储:建议用时序数据库(如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数据量大,需要做流式处理。
嗯,今天就聊到这儿。数据采集与接入是功率预测项目的第一步,也是最重要的一步。这一步走稳了,后面的模型训练、部署上线都会顺利很多。