第三章 数据采集与预处理:从传感器到可用的能量数据

说实话,做能量调度这么多年,我最大的体会就是——数据质量决定调度上限。你算法再牛,模型再准,进来的数据是脏的,那输出就是一堆废纸。这一章,咱们就聊聊数据是怎么从现场设备一路走到数据库的。

3.1 传感器数据采集:能量系统的“神经末梢”

传感器是啥?说白了就是能量系统的眼睛和耳朵。电流、电压、温度、压力、流量……这些物理量都得靠它转成电信号,我们才能读懂。

常见的能量传感器类型:

  • 电流互感器(CT):测大电流用的,我见过不少项目把CT变比选错,结果数据差了好几个数量级。
  • 电压互感器(PT):配合CT算功率,精度等级一般选0.5级或0.2级。
  • 温度传感器(PT100/热电偶):光伏板背板温度、变压器油温,这些都得盯着。
  • 流量计:燃气、蒸汽、冷却水,流量数据对热平衡计算至关重要。
  • 气象传感器:光照强度、风速、环境温度,光伏和风电调度离不开它。
我的经验:传感器选型时,别光看精度。现场环境温度、湿度、电磁干扰,这些都会影响实际表现。我曾经在一个钢厂项目里,温度传感器离电弧炉太近,数据直接飘到天上去了。

3.2 SCADA系统:数据的中枢神经

SCADA,全称是监控与数据采集系统。它干的事很简单:把分散的传感器数据收上来,集中展示,再下发控制指令。

SCADA的核心架构:

  • RTU(远程终端单元):部署在现场,负责采集传感器信号,做简单的预处理,然后上传。
  • 通信网络:光纤、4G/5G、LoRa、WiFi……选哪种取决于现场条件和实时性要求。
  • 主站系统:服务器集群,跑着SCADA软件,负责数据汇聚、存储、展示。
  • HMI(人机界面):给运维人员看的,实时曲线、报警列表、设备状态。

我习惯把SCADA比作人体的神经系统。传感器是神经末梢,RTU是神经节,主站就是大脑。任何一个环节断了,数据就传不上来。

关键指标:SCADA系统的数据刷新率一般要求1秒以内,关键测点(如发电机功率)甚至要100毫秒。延迟超过5秒,调度系统基本就废了。

3.3 数据清洗与异常值处理:把垃圾数据挡在门外

数据采上来了,但别高兴太早。现场环境恶劣,传感器漂移、通信丢包、设备故障……各种问题都会导致数据异常。我见过最离谱的——某个光伏电站的辐照度数据,半夜两点显示1200 W/m²,这太阳是打西边出来了?

常见的异常数据类型:

异常类型 典型表现 常见原因
缺失值 数据点为空或NaN 通信中断、传感器故障
跳变值 瞬间变化超过物理极限 电磁干扰、AD转换错误
死值 长时间保持不变 传感器卡死、通信冻结
越限值 超出合理范围 传感器漂移、量程设置错误

我常用的清洗策略:

  1. 阈值过滤:设定物理上下限,超出直接剔除。比如电压不可能为负,电流不可能超过断路器额定值。
  2. 变化率检测:相邻两个数据点的变化率超过阈值,标记为可疑。比如1秒内功率从100kW跳到1000kW,这肯定有问题。
  3. 3σ原则:假设数据服从正态分布,超出均值±3倍标准差的数据视为异常。这个方法对平稳工况很有效。
  4. 插值填补:对于缺失值,用线性插值或样条插值补上。注意,连续缺失超过5个点就别补了,直接标记为无效时段。
避坑指南:我曾经在一个水电站项目里,直接用均值填补了连续2小时的缺失数据。结果调度模型根据这些“假数据”给出了错误的发电计划,差点导致弃水。记住——数据清洗不是万能的,缺失太多就该标记为不可用。

3.4 数据存储方案:选对工具,事半功倍

数据洗干净了,得找个地方存起来。能量调度系统的数据有几个特点:数据量大(一个中型光伏电站每天几千万条)、写入频率高(秒级甚至毫秒级)、查询模式固定(按时间范围聚合)。

我推荐的存储方案:

  • 时序数据库(TSDB):首选。InfluxDB、TimescaleDB、TDengine都行。专门为时间序列数据优化,写入快,聚合查询也快。
  • 关系型数据库:存元数据用。设备信息、测点配置、用户权限,这些用PostgreSQL或MySQL。
  • 消息队列:数据入口用Kafka或RabbitMQ。先缓冲,再写入,防止数据洪峰把数据库冲垮。

嗯,这里要注意——千万别把所有数据都往一个库里塞。我见过有人把实时数据和历史数据混着存,结果查询历史趋势时把实时写入拖慢了,调度界面直接卡死。

一个典型的数据流架构:

传感器 → RTU → SCADA主站 → Kafka → 数据清洗服务 → InfluxDB(实时库)
                                                      ↓
                                              Hadoop/Parquet(历史归档)

实时库只保留最近7天的数据,用于调度决策。超过7天的数据压缩后归档到Hadoop,需要时再调出来做离线分析。

我的习惯:数据存储设计时,一定要考虑数据生命周期。哪些数据需要秒级响应?哪些可以容忍分钟级延迟?想清楚再选方案,别一上来就上最贵的。

3.5 本章知识体系总览

下面这张图,是我梳理的数据采集与预处理全流程。从传感器到最终可用的数据,每一步都有坑,每一步也都有解法。

数据采集与预处理全流程 传感器层 CT/PT/温度/流量 气象传感器 SCADA系统 RTU → 通信 → 主站 HMI展示 消息队列 Kafka/RabbitMQ 数据缓冲 数据清洗服务 阈值过滤/变化率检测 3σ原则/插值填补 实时数据库 InfluxDB/TimescaleDB 最近7天数据 关系数据库 PostgreSQL/MySQL 元数据/配置 历史归档 Hadoop/Parquet 离线分析 数据流向:从现场到存储,每一步都关乎调度质量

你看,从传感器到最终可用的数据,中间要经过采集、传输、清洗、存储四个环节。每个环节都有它的技术选型和注意事项。我个人觉得,数据清洗是最容易被忽视的环节——很多人觉得数据采上来就能用,结果模型跑出来一塌糊涂,回头查才发现是数据本身有问题。

好了,这一章的内容就到这儿。数据准备好了,下一章咱们就可以聊聊怎么用这些数据做能量预测了。


公众号:蓝海资料掘金营,微信deep3321