1. 电力数据基础:电力系统数据特点、常见数据类型与采集架构

大家好,我是老张。在电力行业摸爬滚打了十几年,今天咱们聊聊电力数据存储与回放的第一课——数据基础。说实话,很多人一上来就搞存储、搞回放,结果数据质量不行,后面全白搭。我踩过的坑,希望你别再踩了。

1.1 电力系统数据的特点

电力系统数据,说白了就是「快、准、多、杂」。我刚开始做项目时,总觉得跟普通工业数据差不多,结果被现实狠狠教育了一顿。

  • 实时性要求极高:电网故障时,数据延迟超过10毫秒就可能误判。嗯,这个要求很苛刻。
  • 数据量巨大:一个省级调度中心,每天产生的SCADA数据量轻松上TB。你想想看,光存下来就够呛。
  • 时序性强:所有数据都带时间戳,而且必须严格按时间顺序处理。顺序乱了,分析结果就废了。
  • 多源异构:不同厂家、不同协议、不同格式的数据混在一起。我在项目中遇到过,一个变电站里同时有IEC 61850、Modbus、DNP3三种协议,那叫一个头疼。
  • 质量参差不齐:丢包、延迟、坏数据是家常便饭。我曾经处理过一个项目,某台PMU设备一天丢掉了30%的数据包,查了三天才发现是网线接触不良。

核心要点:电力数据不是普通的大数据,它是「实时时序大数据」。存储和回放时,必须优先保证时序完整性和实时性。

1.2 常见数据类型:SCADA / PMU / AMI

电力系统里,数据种类很多。但最核心的,就这三种。我一个个说。

1.2.1 SCADA数据

SCADA(数据采集与监视控制)是电力系统的「老大哥」。它负责采集变电站、发电厂的各种遥测、遥信数据。

  • 遥测量:电压、电流、有功、无功、频率等模拟量。采样周期一般是1~5秒。
  • 遥信量:断路器状态、刀闸位置、保护动作信号等开关量。变化时才上报。
  • 遥控/遥调:下发控制命令,比如合闸、调档。

我个人习惯把SCADA数据叫做「慢速数据」。为什么?因为它的采样率低,但覆盖范围广。一个省级电网可能有上万个SCADA测点。

避坑指南:我曾经遇到过SCADA数据的时间戳不准的问题。有些老旧设备的时间戳是设备本地时间,跟GPS时间差了好几秒。存储前一定要做时间同步校验,否则回放时数据全乱套。

1.2.2 PMU数据

PMU(相量测量单元)是近十几年才大规模应用的。它测量的是「相量」——电压和电流的幅值、相位角。采样率极高,一般是每秒50帧或100帧(50Hz/60Hz系统)。

  • 同步相量:所有PMU都通过GPS同步,时间精度达到微秒级。
  • 频率和频率变化率:电网稳定分析的关键指标。
  • 数据帧格式:遵循IEEE C37.118标准,包含同步字、帧类型、数据体、CRC校验等。

PMU数据的特点是「快、准、全」。一台PMU设备每秒产生约5KB数据,一个省级电网如果有500台PMU,每天就是200GB以上。存储压力很大。

// IEEE C37.118 数据帧结构示例(简化版)
typedef struct {
    uint16_t sync_word;      // 同步字,0xAA01
    uint16_t frame_size;     // 帧大小
    uint16_t id_code;        // 设备ID
    uint32_t soc_time;       // 秒数(UTC)
    uint32_t frac_time;      // 微秒数
    uint16_t stat;           // 状态字
    float    phasor_real;    // 相量实部
    float    phasor_imag;    // 相量虚部
    float    frequency;      // 频率
    float    dfreq;          // 频率变化率
    uint16_t crc;            // CRC校验
} pmu_frame_t;

注意:PMU数据对网络延迟极其敏感。我见过一个项目,因为交换机配置不当,导致PMU数据包延迟超过100ms,整个广域监测系统直接失效。网络质量是PMU数据存储的前提。

1.2.3 AMI数据

AMI(高级量测体系)就是智能电表系统。它采集的是用户侧数据,包括电量、功率、电压质量等。

  • 电量数据:每15分钟或每小时采集一次有功电量、无功电量。
  • 事件数据:停电、来电、电压越限、窃电告警等。
  • 负荷曲线:用户24小时的用电功率曲线。

AMI数据的特点是「量大、低频、非实时」。一个城市可能有上百万只智能电表,每只表每天产生96个数据点(15分钟间隔),数据量惊人。但它的实时性要求不高,延迟几分钟甚至几小时都可以接受。

数据类型 采样率 数据量级 实时性要求 典型应用
SCADA 1~5秒 万级测点 高(秒级) 监控、控制
PMU 10~50ms 千级测点 极高(毫秒级) 动态监测、故障分析
AMI 15分钟~1小时 百万级测点 低(分钟级) 计量、负荷预测

1.3 数据采集架构概述

搞清楚了数据类型,咱们再看看数据是怎么从现场跑到存储系统的。我画过无数张架构图,这里给你讲个最通用的三层架构。

1.3.1 现场层

现场层就是各种采集设备:RTU(远程终端单元)、PMU、智能电表、保护装置等。它们直接跟一次设备打交道,采集电压、电流、开关状态等原始数据。

  • RTU:负责SCADA数据采集,通过串口或以太网连接。
  • PMU:通过GPS同步,直接输出相量数据帧。
  • 智能电表:通过PLC(电力线载波)或RF(射频)通信。

1.3.2 站控层

站控层在变电站或发电厂内部。它负责汇总现场层的数据,进行协议转换、数据预处理,然后上传到调度中心。

  • 数据网关:把IEC 61850、Modbus、DNP3等协议统一转换成标准格式。
  • 前置机:做数据缓存、规约解析、时间同步。
  • 站内监控系统:本地显示和存储。

我个人习惯在站控层做一次数据质量检查。比如检查时间戳是否连续、数据是否越限、通信是否中断。发现问题及时标记,避免脏数据污染上层系统。

1.3.3 主站层

主站层就是调度中心或数据中心。它接收所有站控层上传的数据,进行集中存储、分析和展示。

  • 数据采集服务器:负责接收海量实时数据。
  • 实时数据库:存储最近一段时间的数据,支持高速读写。
  • 历史数据库:存储长期数据,用于回放和分析。
  • 应用服务器:运行各种分析软件,比如状态估计、故障定位。

架构要点:数据采集架构的核心是「分层解耦」。每一层只做自己的事,层与层之间通过标准接口通信。这样即使某一层出问题,也不会影响其他层。我在项目中吃过亏,一开始把所有功能都塞在一个服务器里,结果一崩溃全完蛋。后来老老实实分层设计,稳定多了。

1.4 小结

这一章咱们聊了电力数据的三大特点(实时、时序、多源),三种核心数据类型(SCADA、PMU、AMI),以及三层采集架构(现场层、站控层、主站层)。

说白了,搞电力数据存储与回放,第一步就是搞清楚你面对的是什么数据、从哪里来、有什么特点。数据基础打不牢,后面存储和回放做得再花哨也是白搭。

下一章,咱们开始讲数据存储的具体技术。到时候我会分享一些实际项目中的存储方案选型经验,记得来看。