调度自动化系统是电网的中枢神经,从上世纪的"四遥"逐步进化到能量管理系统(EMS)与广域测量系统(WAMS)。本节看这套体系怎么分层搭起来、各自看得见什么、看不见什么。
遥控变电所的革命始于四个字:遥测(远程读模拟量:电压电流功率)、遥信(远程读开关状态)、遥控(远程分合开关)、遥调(远程设定目标值,如变压器分接头)。在这之前,调度员靠电话问各厂站"你们那边电压多少",等回话时系统可能已经变了一个样。四遥把电网从"看不见的黑箱"变成调度屏上一张活地图。
电网监控天然分层:国调/网调管跨区直流与主网架,省调管省内 220kV 以上,地调管地区电网与配网,县调管 10kV 馈线。每层有自己的 SCADA(数据采集与监控)系统,向上送汇总数据、向下发控制指令。变电站内的综自系统(IEC 61850 标准)把保护、测控、通信统一到以太网上;配电侧的 DTU/FTU 馈线终端把开关状态送到配电主站——第 2.3 节说的"自愈",靠的就是这套末梢神经。
EMS 在 SCADA 之上叠了应用层:状态估计(把带噪声的遥测"洗"成一致的电网快照——因为表计有误差、量测有坏数据,直接用会自相矛盾)、潮流与稳定分析、AGC、负荷预测。状态估计是所有高级应用的守门员:没有可信的实时快照,后面全是空中楼阁。
SCADA 的死穴是不同步:各地数据到达时间差几秒,拼出的快照是"拼接照片",对功角摇摆这种亚秒级过程完全失明——2003 年美加大停电时调度员面对失真告警的困境,部分就源于此。相量测量单元(PMU) 以全球卫星授时为统一时钟,每秒上传 25–100 帧带绝对时标的电压相量,全网数据可以精确对齐到微秒级。基于 PMU 的 WAMS 让调度员第一次能"看清"功角摇摆、低频振荡的传播过程,也让在线安稳预警成为可能。
# 用两站 PMU 相量数据估算功角差与振荡频率(示意) import cmath, math def phase_diff_samples(va, vb): """va/vb: 同一时刻两站正序电压相量列表(幅值,角度度)""" diffs = [b[1] - a[1] for a, b in zip(va, vb)] mean = sum(diffs) / len(diffs) osc = [d - mean for d in diffs] # 简单过零计数估振荡频率(PMU 每秒 50 帧) zero_cross = sum(1 for i in range(1, len(osc)) if osc[i-1] * osc[i] < 0) f_osc = zero_cross / 2 / (len(osc) / 50) # Hz return round(mean, 2), round(f_osc, 3) va = [(1.02, 0), (1.02, 1), (1.02, 3), (1.02, 4)] # A 站角度 vb = [(1.01, 20), (1.01, 16), (1.01, 14), (1.01, 11)] # B 站角度 print(phase_diff_samples(va, vb)) # 平均功角差约 11 度,含约 0.25Hz 低频振荡
SCADA 与 PMU 的关系像听诊器与高速摄像机:前者慢而全,后者快而稀(布点有限)。现代调度中心两者并用,互补盲区。
量测体系再先进,也只覆盖到 220kV 以上主网和部分配网;用户内部的电能质量扰动、逆变器控制的内部状态,系统仍然看不见。第 5 章会讨论数字孪生试图把这张感知网织得更密,但成本与数据治理是现实约束。另一个老问题反而更尖锐:网络攻击。2015 年乌克兰配电公司调度系统被入侵,攻击者远程分闸造成约 23 万用户停电——监控体系越集中、越智能,其自身的安全加固就越重要。
状态估计最常用的加权最小二乘(WLS):设量测 z = H·x + e,e 为噪声,解 x̂ = (HᵀR⁻¹H)⁻¹HᵀR⁻¹z,其中 R 是量测方差阵。估出 x̂ 后算残差 r = z − Hx̂,哪个量测的残差除以自身标准差明显偏大(|r|/σ > 3),哪个就是嫌疑坏数据——剔除后重新估计,快照恢复一致。
# 三母线直流潮流示意下的 WLS 与坏数据辨识 import numpy as np H = np.array([[1.0, 0.0], [0.0, 1.0], [1.0, 1.0]]) # 线路潮流对状态量 z = np.array([1.02, 0.51, 1.49]) # 第三台表被人为加坏 R = np.diag([0.01, 0.01, 0.01]) x = np.linalg.solve(H.T @ np.linalg.inv(R) @ H, H.T @ np.linalg.inv(R) @ z) r = z - H @ x print("状态估计:", np.round(x, 3), " 残差/σ:", np.round(r/0.1, 2)) # 残差/σ = [2.4, -2.4, 7.2] -> 第三个量测是坏数据, 剔除后收敛
| 体系 | 数据延迟 | 时间同步 | 分辨率 | 看得见 |
|---|---|---|---|---|
| 四遥/RTU | 2-5 s | 无 | 秒级 | 稳态趋势 |
| SCADA+EMS | 1-4 s | 无 | 秒级 | 稳态+估计快照 |
| PMU/WAMS | 20-40 ms | μs 级 | 25-100 帧/s | 功角/振荡动态 |
这张能力表反向解释了 3.2 节的事故史:凡是被"看见"需要亚秒级分辨率的过程(低频振荡、连锁裂解的最初几百毫秒),在前两代体系里都是盲区,直到 WAMS 普及才补上。监控体系的进化史,就是电网"可观测频带"不断向左推进的历史。