4、现货市场下的EMS状态估计:状态估计原理、加权最小二乘法、不良数据检测与辨识

各位同行,今天我们来聊聊EMS里一个非常核心的模块——状态估计。说实话,我刚入行那会儿,觉得SCADA(数据采集与监控系统)直接拿遥测数据用不就行了?干嘛还要多此一举做状态估计?后来在项目里吃了亏才明白,现场来的数据,那叫一个“脏”。

你想想看,一个500kV变电站,几百个遥测点,偶尔来个通信中断、互感器饱和、或者A/D转换卡了个毛刺,SCADA上显示的数据就全乱了。调度员要是按这个去决策,那后果……嗯,我不说你也懂。

所以,状态估计就是干这个的——从一堆“半真半假”的量测数据里,把系统真实的运行状态给“算”出来。说白了,就是给数据做一次“去伪存真”的清洗。

4.1 状态估计的基本原理

状态估计的核心思想,其实就一句话:用冗余的量测信息,去推算系统最可能的状态

什么叫冗余?举个例子,一条线路两端都有功率表,理论上P1应该等于P2加上线损。但如果两个表读数对不上,你信谁?状态估计不偏信任何一个,而是利用全网所有量测,通过数学模型找出一个“最合理”的解。

数学上,我们建立这样一个关系:

z = h(x) + v

其中:

  • z:量测向量(SCADA传来的电压、功率、电流等)
  • x:状态向量(通常是各节点的电压幅值和相角)
  • h(x):量测函数(描述状态量与量测量之间的物理关系)
  • v:量测误差(服从正态分布,均值为0)

我们的目标,就是找到一组x,使得h(x)与z之间的“差距”最小。这个“差距”怎么衡量?这就引出了加权最小二乘法。

我个人习惯把状态估计比作“拼图”。SCADA数据是散落一地的碎片,有的碎片是完整的,有的缺了角,有的干脆是别的拼图混进来的。状态估计就是那个帮你把正确碎片拼回原图,同时扔掉错误碎片的过程。

4.2 加权最小二乘法(WLS)

加权最小二乘法,是状态估计里最经典、最成熟的方法。它的目标函数长这样:

min J(x) = [z - h(x)]^T * W * [z - h(x)]

这里的W是权重矩阵,通常取量测误差方差的倒数。为什么加权?因为不同量测的精度不一样。比如PMU(相量测量单元)的精度远高于常规RTU(远程终端单元),那PMU的数据就应该被赋予更高的权重。

求解这个优化问题,通常用牛顿法迭代。迭代公式为:

Δx = [H^T * W * H]^{-1} * H^T * W * [z - h(x)]
x_new = x_old + Δx

其中H是量测函数的雅可比矩阵。每次迭代,就是沿着“梯度下降”的方向修正状态量,直到收敛。

避坑指南:我曾经在一个项目里,发现状态估计怎么都不收敛。查了两天,最后发现是雅可比矩阵里一个符号写反了。所以,写代码时一定要把H矩阵的推导手算一遍,别偷懒。

加权最小二乘法的优点很明显:

  • 数学基础扎实,收敛性好
  • 能充分利用冗余量测
  • 实现相对简单

缺点也有:

  • 对不良数据敏感(一个坏数据可能把整个解带偏)
  • 计算量大(需要求逆矩阵,对大规模系统是个挑战)

4.3 不良数据检测与辨识

前面说了,WLS对坏数据很敏感。那怎么办?这就需要不良数据检测与辨识(BDD/BDI)出场了。

检测,就是判断“有没有坏数据”。辨识,就是找出“哪个是坏数据”。

4.3.1 检测方法:残差分析

状态估计做完后,我们会计算量测残差:

r = z - h(x̂)

正常情况下,残差应该服从正态分布,均值为0。如果某个量测的残差特别大,那它很可能就是不良数据。

常用的检测指标是标准化残差

r_N = |r_i| / σ_i

设定一个阈值(比如3.0),如果r_N超过阈值,就认为存在不良数据。

注意:残差大不一定就是坏数据!有时候是系统拓扑结构错了,或者参数错了。我曾经遇到过一次,所有残差都偏大,最后发现是变压器变比参数输错了。所以,检测到异常后,先别急着删数据,要综合判断。

4.3.2 辨识方法:逐次剔除

检测到不良数据后,怎么找出具体是哪个?最直接的方法是“逐次剔除”:

  1. 计算所有量测的标准化残差
  2. 找出标准化残差最大的那个量测
  3. 把它从量测集中剔除
  4. 重新做状态估计
  5. 重复以上步骤,直到所有残差都正常

这个方法简单有效,但计算量大。对于大规模系统,每次剔除一个数据都要重新做一次状态估计,效率很低。

4.3.3 更高效的方法:假设检验

在实际工程中,我更推荐用假设检验的方法。它的思路是:

  • 先假设所有数据都是好的(零假设H0)
  • 计算统计量(比如χ²统计量)
  • 如果统计量超过阈值,拒绝H0,说明存在不良数据
  • 然后利用“残差灵敏度矩阵”直接定位不良数据,不需要反复迭代

这种方法效率高,适合在线应用。我在做某省调EMS升级时,就把原来的逐次剔除改成了假设检验,状态估计的计算时间从5秒降到了0.8秒。

4.4 知识体系总览

下面这张图,是我自己总结的状态估计知识体系,帮你理清思路:

现货市场下EMS状态估计知识体系 SCADA量测数据 状态估计核心算法 加权最小二乘法 (WLS) 状态估计原理 z = h(x) + v 不良数据检测 残差分析 不良数据辨识 逐次剔除 / 假设检验 关键点 • 冗余量测是基础 • 权重反映精度 关键点 • 标准化残差 • 阈值设定 关键点 • 避免误删好数据 • 考虑拓扑错误 输出:可靠的状态估计结果

这张图把整个流程串起来了:SCADA数据进来,经过WLS状态估计,然后做不良数据检测和辨识,最后输出干净、可靠的状态估计结果。每一步都环环相扣,缺一不可。

我的经验:在实际工程中,状态估计的收敛性和准确性,很大程度上取决于量测配置。如果某个区域量测冗余度不够,状态估计就很难收敛。所以,在做EMS设计时,一定要和SCADA系统规划同步进行,确保关键节点有足够的量测。

好了,关于状态估计的原理、加权最小二乘法和不良数据处理,今天就聊到这儿。这些内容看起来有点数学化,但说白了,核心就是“用冗余换可靠”。你只要记住这个思路,具体算法细节可以在实践中慢慢打磨。


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