1. 为什么暂态稳定分析必须依赖WAMS数据
这几年电力系统里的稳定分析有一个明显变化:过去做暂态稳定分析,大部分时间是靠离线仿真和人工经验判断,而现在已经慢慢变成靠WAMS(广域测量系统)的在线数据来做实时分析。想把这个方向做好,第一步不是急着调算法,而是先搞清楚WAMS到底带来了什么不一样的东西。
1.1 SCADA看不到的“快过程”,恰恰是暂态稳定的关键窗口
在调度自动化系统里,SCADA是传统的监控手段,RTU按周期采集遥测遥信数据,典型采样间隔是2到5秒,甚至更长。这个时间尺度对于负荷曲线、母线电压的稳态监视完全够用,但一旦遇到短路、跳闸这类大扰动,发电机转子角在故障后的第一个周波(20毫秒左右)就会出现明显的相对摆动,几秒钟内就能判定系统是趋于同步还是失去同步。SCADA这种“每隔几秒拍一张照片”的方式,根本捕捉不到暂态过程的中间轨迹。
打个比方,SCADA像是停车场入口的监控摄像头,每5秒抓拍一张图,用来数车流量没问题;但你要看车祸瞬间的碰撞过程,就必须用高速摄像机。WAMS的角色就是这套高速摄像机——它基于PMU(同步相量测量单元)采集数据,采样率通常能做到10Hz到100Hz甚至更高,能够把故障后电压、电流、频率、功角的变化过程完整记录下来。做暂态稳定特征提取,前提就是你得有这种高分辨率的时序数据。
1.2 PMU测到的“相量”,才是多机系统功角分析的基础
PMU和传统RTU的本质区别,不只是采样快,更在于它测量的是相量——电压和电流的幅值加相角,而且是通过卫星对时系统(GPS或北斗)打统一时标的。相角数据的价值在于:全网发电机之间的相对功角可以直接由母线电压相角推算出来。暂态稳定关心的核心物理量是发电机转子间的相对摇摆,没有统一的时标参考,跨厂站的相角比较就没有意义。
这个特性对特征提取的影响非常直接。比如我们常用的“最大相对功角差”特征,需要从故障清除后提取两台或多台发电机功角曲线之间的最大差值;再比如“功角摆开速度”,需要计算相对功角在某一时间窗口内的变化率。这些特征都要求所有PMU数据在同一时间基准下对齐,颗粒度至少要到毫秒级。这也是为什么WAMS的数据质量直接决定后续特征能否成立,而不是一个可以事后补救的问题。
1.3 数据质量对特征提取的影响,怎么强调都不过分
我在实际项目里碰到过一个典型案例:某次测试中,两台PMU的时钟偏差有2毫秒左右,看起来微不足道,但计算相位变化率特征时,输出曲线在故障发生的瞬间出现了一串明显毛刺,一度被误判为“系统出现了高频振荡”。后来排查发现,纯属时标偏差造成的相位跳变。这类问题在做特征工程时非常隐蔽,因为特征计算环节通常会做平滑处理,掩盖掉一部分异常,但模型的判断已经被污染了。
所以我的建议非常朴素:在这个领域里,花在数据清洗和时标校验上的时间,至少要占到整个项目的60%。很多团队一上来就急着上深度学习模型,结果效果不好,最后回头查才发现数据源本身就不同步、坏数据没剔干净。数据是特征提取的上游,上游缺了水,下游再好的方法也白搭。后面第3章我会专门说数据接入时那几个“脏”问题的排查方法,都是踩过之后才明白的。
2. 特征提取的完整思路:从相量曲线到稳定指标
暂态稳定特征提取,本质上是要把一段时间上的高维时序曲线,压缩成一组能反映系统稳定状态的数值指标。压缩不是简单地取几个统计量,而是要遵循物理逻辑,否则特征变量的含义说不清楚,模型调优的时候也无从下手。
2.1 第一层特征池:功角、电压、频率、功率的原始时域特征
最基础的特征都来自四类电气量:发电机功角、母线电压幅值、系统频率、线路有功功率。对这四类曲线做时域统计,可以形成初级特征池。
以发电机功角为例,常用的特征包括最大相对功角差、出现最大功角差的时刻、故障清除后某一时窗内的功角摆开速度、功角曲线的振荡衰减率。电压方面,常见的是母线最低电压、电压跌落深度、电压恢复时间、低电压持续时间。频率方面,关注频率最低点数值、频率偏移峰值、频率变化率的最大值。功率方面,则有振荡幅值、振荡频率、阻尼比等。
这一层特征的构造逻辑,是抓住暂态过程的“形态”:什么时候跌到最低、摆到最大、花了多久恢复、振荡是收敛还是发散。比如振荡阻尼比这个特征,如果发电机功角曲线在故障后是缓慢衰减的振荡,说明系统有正的阻尼,大概率能回到稳定;如果振荡幅度持续增大,则失稳风险很高。这类特征物理意义明确,做模型时的可解释性也强。
2.2 轨迹特征与能量特征:看曲线“怎么走”比看“走到哪”更重要
仅靠极值和恢复时间还不够,因为两条曲线最高点一样,但一条是快速摆开又拉回,另一条是缓慢持续外摆,稳定结论完全不同。所以在实际项目中,我通常会引入轨迹特征和能量特征作为第二层。
轨迹特征的核心对象是发电机的功角-角速度相图,也就是把功角作为横轴、角速度偏差作为纵轴画出来的二维轨迹。稳定系统的相轨迹通常呈现为收敛的螺旋线,失稳系统的相轨迹则向外发散或形成极限环。可以从相轨迹中提取形态特征,比如轨迹斜率的平均值、轨迹曲率、轨迹偏离平衡点的最大距离。这些特征数量不多,但往往比单纯时域统计量更灵敏。
能量特征则来自暂态能量函数理论。大扰动发生后,系统能量由动能和势能两部分组成。动能与发电机转速偏差相关,势能与系统偏离平衡点的程度相关。如果扰动后系统总能量始终低于临界能量,系统是稳定的;一旦越过临界点,就可能失稳。实际工程中不需要精确求解能量函数,而是构造近似指标,比如一段时间窗口内系统动能峰值、动能向势能转化的速率、能量衰减速度。这些指标对故障严重程度的刻画比单看功角更有全局视角。
2.3 特征筛选与降维:先按物理意义筛,再用统计方法排
初始特征池很容易做到四五十维,如果全丢给分类器,会出现两个问题:一是维度灾难导致训练数据量要求急剧上升,二是大量冗余特征会掩盖少数关键特征的作用。
我的操作顺序是先按物理意义粗筛一轮。比如电压恢复时间和功角最大摆开距离这两个特征,如果故障场景都是三相短路,那它们之间相关性极高,保留一个就行。粗筛完成后,再上统计方法:计算特征间的相关系数矩阵,剔除相关系数大于0.9的冗余对;然后用随机森林的特征重要性排序,或者用主成分分析看累积贡献率,确定保留的主成分数量。
以前做过一个实验,初始特征58维,按上述流程筛选后剩下15维,决策树模型的测试集准确率反而从86%提升到了93%。原因很简单,被剔除的特征大多是噪声或冗余信息,留着它们只会让模型过拟合训练集。筛选后的特征还有一个好处:更容易做错误案例复盘,因为你能清楚地指出是哪个特征取值异常导致了误判。
2.4 多源特征的时序对齐与匹配:最容易埋雷的环节
前面说到的特征,可能来自不同采样率的PMU,有的来自故障录波器,有的来自SCADA的历史断面。把这些来源拼在一起时,如果时标不统一,就会出现“特征错位”的问题。
我处理过的一个工程数据里,故障录波数据是1kHz采样,PMU是50Hz采样,SCADA断面是秒级刷新。构造特征时,我先按照统一的绝对时标(比如故障发生时刻的UTC时间戳)将所有数据对齐,再在统一时标网格上做重采样。重采样用的是一阶线性插值,对暂态分析来说,线性插值已经足够了,样条插值反而可能引入振荡假象。
时序对齐的坑在于:不同数据源的时标基准可能相差一个固定的偏移量,比如某些老站的时间源是本地时钟而非卫星对时,导致积累误差达到几十毫秒。如果拿这样的数据算暂态过程中的相对速度特征,结果自然失真。做任何特征提取之前,第一步永远是画一遍各数据源在同一时间段内的曲线,肉眼看时标是否对齐,这个土办法比任何自动校验函数都可靠。
3. 数据接入前必须解决的三个“脏”问题
很多做算法的人不太关注数据接入,觉得那是通信和系统集成的事。但基于WAMS的分析项目里,数据接入的质量直接影响后面所有环节。这里我把三个最常遇到的“脏”问题展开来说,如果你也负责这类系统的数据处理模块,应该用得上。
3.1 数据源与规约差异:CDT、104、C37.118各管一摊
WAMS的数据核心是PMU,但一个完整分析系统通常还要接调度端的SCADA数据、继保子站的故障录波数据,这就涉及多套通信规约并存。
传统SCADA/RTU链路里,最常见的是CDT规约(循环式远动规约)和IEC 60870-5-101/104规约。CDT是早期电力系统广泛使用的循环式规约,特点是厂站端主动循环向主站发送遥测、遥信帧,帧结构里有同步字、控制字、信息字。解析的时候要特别注意同步字识别和信息字地址到遥测点号的映射,尤其是老站改造项目,点表经常和图纸对不上,一个点号错位,整条母线的电压数据全错。
PMU数据则走IEEE C37.118或国内对应的GB/T 26865.2规约,配置帧、数据帧带有时标和品质位,数据帧结构比CDT清晰很多,重点在解析品质位——品质位标为invalid或estimated的数据,不能直接参与特征计算。
| 规约 | 典型数据源 | 传输方式 | 时标能力 | 解析重点 |
|---|---|---|---|---|
| CDT | 老站RTU/SCADA | 厂站主动循环上送 | 无精确实时标 | 同步字、点号映射 |
| IEC 104 | 新站RTU/SCADA | 主站召唤+厂站上送 | 带时标 | 传输原因、公共地址 |
| IEEE C37.118 | PMU/WAMS | 实时连续上送 | 精确到微秒 | 数据帧、品质位 |
3.2 时标对齐与时钟同步:先对表,再谈数据
多源数据接入后的第一件事是检查时钟同步状态。PMU设备本身带卫星对时,问题通常出在旁路设备上,比如经过串口服务器或交换机转发后,数据到达处理节点的时刻与真实采集时刻之间会出现jitter,这些时延虽然只有几十毫秒,但在高频振荡分析和暂态特征提取中会造成不可忽略的相位误差。
处理流程我一般分三步:第一步,解析数据帧自带的时标字段,排查时标跳变和时标缺失;第二步,按统一参考时钟(主站系统时钟)计算各数据源的时间偏差,分数据源记录偏差曲线;第三步,在统一时标网格上重采样,把不同采样率的数据对齐到同一时刻序列。做完这三步,才算拿到可以放心做特征提取的数据。
3.3 滤波去噪与缺失值处理:别把异常当噪声,也别把噪声当特征
PMU数据在传输过程中会出现少量毛刺和缺失帧。滤波处理上,我推荐先用中值滤波去除孤立毛刺,再用低通滤波器平滑高频分量。要注意低通滤波的截止频率不能卡太狠,暂态过程中的有效频率分量一般在几赫兹以内,截止频率设在10Hz左右比较稳妥,再低会把暂态摆开过程的真实轨迹抹平。
缺失值的处理需要分情况:单帧缺失用前向填充或线性插值均可;连续多帧缺失超过50个采样点,建议直接放弃该时间段内的对应特征,而不是硬插值出来。你补出来的数据模型不知道是假的,但对于失稳判断这样高风险结论,宁缺毋假。
一个容易被忽略的细节是PMU品质位。数据帧里的品质位明确告诉你当前数据是否有效,但有的处理程序把这几位直接丢弃了。数据出处不合法还用,等于开门把坏数据放进来。我的建议是,接入程序里一定要保留品质位并在入库时字段化存储,后续分析程序可以按数据质量动态调整特征权重,这是很多商用系统都做不到的差异化处理。
4. 暂态稳定评估方法对比:传统判据、直接法与机器学习
特征提取出来之后,评估方法的选择决定了最终能否给出稳定结论。这个领域的方法大致分三类:时域仿真法、直接法、机器学习法,它们在计算速度、物理可解释性、在线适用性方面各有取舍。
4.1 时域仿真法和EEAC:离线初筛的常规武器
时域仿真法是暂态稳定分析的基线方法,通过逐步积分求解全系统微分代数方程,精确模拟故障后各发电机的摇摆轨迹。这个方法计算量大,单次故障扫描在大型系统上可能需要几分钟到几十分钟,适合离线规划和方式计算,很难直接搬到在线实时场景。
EEAC(扩展等面积准则)是在时域仿真思想上发展出来的简化方法,思路是把多机系统在特定故障模式下的相对运动,“映像”成单机无穷大系统的等面积问题,通过比较加速面积和减速面积来判断稳定性。这个方法物理意义直观,计算速度比时域仿真快几个量级,但精度受映像简化的影响,在处理复杂故障序列时容易出现偏差。工程上的典型用法是:用EEAC对所有预想故障集做快速初筛,筛出高风险场景后,再用时域仿真做精算验证。
4.2 暂态能量函数法:临界能量比较的直接判据
暂态能量函数法的核心是先构造一个李雅普诺夫函数,把系统在故障清除时刻的能量与临界能量进行比较。能量低于临界能量判定稳定,高于则判定失稳。这个方法不需要逐步积分,计算速度快,理论上也严格。
实际应用中的难点在于临界能量的求取。主导不稳定平衡点法、势能界面法等各有适用范围,在复杂模型下求取结果可能不够稳定。工程处理上,我通常是离线批量计算各种故障场景的临界能量经验值,建立故障类型与临界能量的映射表,在线运行时直接查表近似判断。这个做法牺牲了一部分理论严格性,但工程上实用、稳定。
4.3 特征加分类器:在线评估的主流工程路线
近几年的在线暂态稳定评估系统,基本都走向了“特征提取+分类器”的路线。分类器可以用支持向量机、随机森林、梯度提升树,也可以用深度神经网络。输入是上一章提取的各类特征向量,输出是稳定或失稳的分类标签,训练数据来自离线仿真软件批量生成的各种故障场景样本。
这条路线最大的好处是推理速度快,单次判断只需要几毫秒到几十毫秒,完全能在调度主站的在线决策框架内使用。但要注意,分类器的效果上限由特征质量决定,不是调一个更深的网络就能解决的。我在项目里遇到过团队盲目堆网络层数,效果反而变差,退回特征层面重新筛选后才恢复正常。
4.4 评估指标设定:漏掉一次失稳,比误报十次稳定更严重
评估模型不能只看准确率,在稳定评估场景里,错误代价是不对称的。把一个失稳场景误判为稳定,意味着调度人员得不到任何告警,系统可能在毫无准备的状态下走向崩溃,这是致命的;把一个稳定场景误判为失稳,顶多是调度员多应对一次虚拟告警,浪费一点注意力资源。
所以我在训练模型时,评价指标用召回率(失稳样本的检出率)作为首要优化目标,同时监控误报率。实际操作上,倾向选择预测概率的阈值下移策略:分类器输出失稳概率大于0.4就触发告警,而不是默认的0.5。这个策略会把误报率从2%抬到8%左右,但失稳检出率能从90%提升到97%,在代价不对称的工程场景里,这笔账非常划算。
| 方法类别 | 计算速度 | 物理可解释性 | 在线适用性 | 主要局限 |
|---|---|---|---|---|
| 时域仿真法 | 慢 | 强 | 差 | 计算量过大 |
| EEAC | 快 | 强 | 中 | 映像简化有误差 |
| 暂态能量函数 | 快 | 强 | 中 | 临界能量求取困难 |
| 特征+分类器 | 很快 | 中 | 好 | 依赖训练数据与特征质量 |
5. 一个具体算例的完整流程:从仿真样本到失稳判断
理论方法说得再多,不如把一个具体算例从零到一完整走一遍,这里用IEEE 39节点系统作为测试平台,展示我实际开展这个方向研究的完整流程。
5.1 故障场景设置与样本生成
先搭建仿真模型,在系统中设置一组典型故障:选择不同母线发生三相短路,故障清除时间从0.1秒到0.3秒之间按0.02秒步长扫掠,覆盖稳定和失稳两种标签空间。每个场景下记录各发电机功角曲线、关键母线电压幅值、系统频率和部分线路功率,仿真时长为10秒,输出采样步长取0.01秒,对齐PMU工作模式。
总共生成了240个样本,其中稳定样本156个、失稳样本84个。在真实工程数据里,失稳样本往往会更少,类不平衡问题更突出;仿真环境的好处是可以人为把两类样本配到相对均衡,方便先验证方法的有效性。
5.2 特征提取在算例里的实现与参数选择
针对每组仿真数据,我提取了三组特征:第一组是发电机功角轨迹的时域特征,包括最大相对功角差、最大相对功角差出现时间、故障清除后0.5秒内功角平均摆开速度;第二组是母线电压恢复特征,包括最低电压值、低电压持续时长、故障清除后1秒时电压恢复百分比;第三组是系统频率特征,包括频率最低点、频率最低点出现时间、频率偏差积分值。
特征计算的时间窗口不是随意定的。以“故障清除后0.5秒内功角摆开速度”为例,这个窗口覆盖了故障后系统摇摆最剧烈的阶段,0.5秒太长会把后续振荡平均掉,太短又捕捉不到关键走势。多次试算后,0.5秒这个窗口在各类故障场景下区分度最好。
| 特征名 | 计算方式 | 稳定组均值 | 失稳组均值 |
|---|---|---|---|
| 最大相对功角差 | 故障后10秒内全局最大值 | 42.3度 | 135.8度 |
| 功角摆开速度 | 清除后0.5秒内平均斜率 | 8.2度/秒 | 41.6度/秒 |
| 电压恢复百分比 | 清除后1秒电压/初始电压 | 93.5% | 51.2% |
| 频率最低点 | 故障后全时窗最小值 | 49.45Hz | 48.63Hz |
稳定组和失稳组在各个特征上均值差异明显,说明这些特征对标签具有基本可分性。但不同特征之间也存在相关性,比如最大相对功角差和功角摆开速度的相关系数达到0.87,训练模型时我只保留其中一个,避免冗余。
5.3 模型训练、评估与误判案例复盘
用筛选后的10个特征训练随机森林模型,数据按7:3划分训练集和测试集,做5折交叉验证。模型在测试集上的稳定召回率为98.2%,失稳召回率为94.6%,整体准确率96.7%。
真正有价值的是误判案例复盘。测试集里有两个误判:一个失稳样本被判定为稳定,一个稳定样本被判定为失稳。
先说失稳漏判这个。回溯特征发现,这个样本的故障清除时间刚好在临界清除时间附近,功角摆开速度和电压恢复百分比都在稳定与失稳的边界区间。模型在训练集中这类边界样本本身就少,学得不够充分。处理办法是把故障清除时间在临界值附近细化扫掠,加密生成边界样本,补充到训练集里。
再说稳定误判成失稳的那个。查看相轨迹发现,这个稳定样本在故障后初期功角摆得很大,一度接近阈值,但后续系统阻尼把振荡拉了回来。模型太依赖峰值类特征,忽略了轨迹收敛趋势。我随后加入了一个“振荡阻尼趋势斜率”特征,取故障后第3到第5秒功角轨迹拟合直线的斜率,这个特征能有效区分“摆幅大但收敛”和“摆幅大发散”两类场景。加入后误判案例清零。
这类误判复盘经验给我的体会是:模型判断错了不一定是坏事,反而是发现特征盲区的机会。每处理一个误判,就补一个对应场景,特征池就更完备一点。
6. 实操中的常见坑与我最后的几点体会
做了几个基于WAMS的暂态稳定特征提取项目,踩过的坑不少,这里挑几个值得展开的说说,希望能让你的弯路少一点。
6.1 数据层的坑:时标、品质位、采样率不一致
数据层的坑最为隐蔽,因为通常在早期阶段不会暴露。最典型的是时标字段解析错误。不同厂家的PMU对时标字段的定义存在差异,有的用秒计数,有的直接用时间戳,直接按同一逻辑解析就会错位。我的排查方式是抽一段故障数据,人工对比各测点的相对功角变化时刻,如果同一故障在不同测点出现的时间差超过一个采样周期,基本可以认定有时标问题。
品质位是第二常见的坑。很多数据处理程序在接入时直接丢弃了品质位,导致无效数据混入特征计算。我建议从接入层就建立“数据有效性校验”机制,任何品质位为invalid、estimated或out-of-range的数据,不进入特征计算主流程,单独标记后供人工复核。
采样率不一致的坑则发生在多源数据融合阶段。处理办法是先按统一时标网格做重采样,再做特征计算,顺序不能反。如果先算特征再对齐,插值函数会作用在特征值上而不是原始采样点上,误差会叠加放大。
6.2 特征层的坑:泄漏、与物理意义脱节
特征泄漏在仿真数据里尤其容易发生。举个例子,有人把故障清除时刻的实际值拿来当特征,但在线运行时,故障清除时刻本身就是需要模型判断的量,拿它当输入是“作弊”。
我见过一个项目,训练阶段模型准确率99%,一到线上运行就崩了,最后查出来就是特征里混了未来信息。排查方法是做特征时序审计:每个特征必须能明确对应到“当前时刻之前”的某个时窗,任何依赖未来数据的特征一律删除。
另外,特征不能跟物理意义脱节。曾经试过把所有时序数据原始采样本直接丢给LSTM做端到端训练,调参调了一周,效果反而没有人工特征加随机森林好。这个领域的可解释性非常重要,调度人员不可能接受一个“黑盒子”直接给出稳定性结论,每一步产出的特征都要能说清楚物理含义。
6.3 模型层的坑:样本不均衡、过拟合、在线时延预算
失稳样本在真实历史数据中很少,所以大量项目依赖仿真数据训练。仿真数据的样本分布与实际运行场景存在偏差,尤其是重载方式、极端故障序列等场景,仿真覆盖不足会导致模型在边缘情况失准。解决思路是持续从真实WAMS记录中收集扰动样本,定期增量重训模型,它属于一个长期迭代过程而非一次性任务。
在线部署时还有一个容易被忽视的约束——延迟预算。调度主站对在线稳定评估的典型要求是秒级出结果,整个链路包括数据接入、预处理、特征计算、模型推理、结果展示。我在部署时把链路拆开测时延,数据接入占最大比重,通过缓存复用和并行计算可以显著降低,特征计算和推理本身耗时并不高。实测下来,50个PMU测点、10Hz数据的全链路时延能压在1.2秒左右,满足实时性要求。
6.4 后续可以扩展的方向:多模态融合与边缘轻量化
这个方向可以做深的空间还很大。一是多模态融合:结合WAMS电气量数据、保护动作信息、开关变位信号、气象影响数据,用多源信息时序对齐的方法做综合稳定评估,单一电气量特征对某些复杂故障不敏感,融合后才能覆盖全面。二是边缘侧轻量化:把特征提取算法裁剪后在变电站边缘计算装置上执行,只上送特征值和判断结果而不是裸数据,对主站通信带宽压力会大幅下降。
这几年做下来最大的体会是:这个方向真正的门槛不在模型,而在对数据质量和物理机理的把控。希望这篇分享能给你一些可以直接拿来用的思路和方法,更希望你在做特征提取的时候,多回头看看数据,多为最后的结果问一句“为什么”——这两个习惯,比任何先进算法都管用。