4、状态估计:为什么要做状态估计、加权最小二乘法原理、坏数据检测与辨识

大家好,我是老张。今天咱们聊聊状态估计。说实话,我刚入行那会儿,觉得状态估计就是个“锦上添花”的东西——数据都有了,直接算不就行了?后来在项目里栽了跟头,才明白这步有多关键。

4.1 为什么要做状态估计?

你想想看,EMS系统里成千上万个测点,SCADA采集上来的数据,真的都靠谱吗?

我遇到过这么个事:某次调度员看着母线电压显示正常,结果实际已经越限了。查了半天,原来是某个PT(电压互感器)的接线端子松了,导致测量值偏小。要不是后来做了状态估计,这个隐患不知道要藏多久。

说白了,状态估计要解决三个核心问题:

  • 数据冗余与一致性:同一个电气量可能有多个测点(比如线路两端都有功率测量),它们之间可能互相矛盾。状态估计能“调和”这些矛盾。
  • 坏数据检测:测量设备会坏、通信会丢包、遥测会跳变。状态估计能揪出这些“捣乱”的数据。
  • 不可观测量的推算:有些量没法直接测(比如某些节点的电压相角),但可以通过其他量间接算出来。

核心观点:状态估计不是“锦上添花”,而是“雪中送炭”。没有它,EMS就像蒙着眼睛开车。

我个人习惯把状态估计比作“数据清洗+数据补全”的组合拳。它先帮你把脏数据洗掉,再把缺失的数据补上,最后给你一套自洽的、完整的系统状态。

4.2 加权最小二乘法原理

好,那状态估计具体怎么做的?最经典的方法就是加权最小二乘法(WLS)。

原理其实不复杂。假设我们有m个测量值(z₁, z₂, ..., zₘ),n个状态变量(一般是节点电压幅值和相角)。测量值和状态变量之间有个关系:

z = h(x) + e

其中h(x)是测量函数(比如功率方程),e是测量误差(通常假设服从正态分布)。

加权最小二乘法的目标就是:找到一组状态变量x,使得测量残差的加权平方和最小。

min J(x) = [z - h(x)]ᵀ · W · [z - h(x)]

这里的W是权重矩阵,对角线元素是每个测量值的权重。权重怎么定?我一般用测量精度的倒数。精度高的测量(比如数字式仪表),权重就大;精度低的(比如老式变送器),权重就小。

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

Δx = (Hᵀ · W · H)⁻¹ · Hᵀ · W · [z - h(x)]
x_new = x_old + Δx

其中H是雅可比矩阵(测量函数对状态变量的偏导数)。

实战技巧:迭代收敛判据我一般设两个:一是状态变量变化量小于阈值(比如10⁻⁴),二是目标函数变化量小于阈值。两个条件满足一个就停,防止死循环。

我记得第一次手写WLS代码时,卡在雅可比矩阵的推导上。后来发现,其实很多电力系统分析工具包(比如MATPOWER)都有现成的函数。但建议你还是自己推一遍,理解透了才能用好。

4.3 坏数据检测与辨识

状态估计做完了,数据就干净了吗?不一定。还得做坏数据检测。

坏数据检测的核心思想是:如果某个测量值偏差太大,那它很可能是坏的。怎么判断“太大”?看残差。

常用的方法有:

  • 残差检测法:计算每个测量值的标准化残差。如果某个残差超过阈值(比如3σ),就标记为可疑。
  • χ²检测法:计算目标函数J(x)的值,如果它超过某个统计阈值,说明整体数据质量有问题。
  • 量测突变检测:比较当前测量值和历史值,如果变化幅度异常大,可能是坏数据。

我曾经在项目里遇到过一个典型案例:某条线路的功率测量值突然跳变到正常值的两倍。残差检测法直接把它揪出来了。后来一查,是RTU(远程终端单元)的通信模块出了故障。

注意:坏数据检测不是万能的。如果坏数据恰好“伪装”得很好(比如偏差不大不小),可能会漏检。所以建议多种方法联合使用。

坏数据辨识比检测更进一步——不仅要发现坏数据,还要找出具体是哪个测点坏了。常用的方法有:

  • 逐个排除法:把可疑的测量值逐个剔除,重新做状态估计,看哪个剔除后残差下降最明显。
  • 残差灵敏度分析法:通过灵敏度矩阵,分析每个测量值对残差的贡献度。

我个人更推荐残差灵敏度分析法,效率高,不用反复迭代。但要注意,如果多个坏数据同时存在,可能会互相掩盖,这时候就得用更高级的方法了。

4.4 状态估计的整体流程

说了这么多,咱们用一张图把整个流程串起来:

状态估计整体流程 SCADA数据采集 拓扑分析 可观测性分析 添加伪量测 WLS状态估计(迭代求解) 坏数据检测与辨识 剔除坏数据 输出状态估计结果

这张图把整个流程串起来了。从SCADA采集原始数据开始,经过拓扑分析(确定网络结构)、可观测性分析(检查数据是否足够)、WLS状态估计、坏数据检测,最后输出干净的状态估计结果。

如果可观测性分析发现数据不够,就得加伪量测(比如用历史数据或预测值补上)。如果坏数据检测发现了问题,就得把坏数据剔除,重新做状态估计。

总结一下:状态估计是EMS的“数据净化器”。它用加权最小二乘法把脏数据洗干净,用坏数据检测把坏数据揪出来。没有它,调度员看到的数据可能就是“假象”。

好了,这一章就到这里。下一章咱们聊聊动态状态估计,那又是另一个有意思的话题了。


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