资讯详情

改进距离继电器功率摆动闭锁与解闭锁逻辑的完整实现方法

📅 2026/10/19 5:29:12 | 华诺云谱 👁 阅读
改进距离继电器功率摆动闭锁与解闭锁逻辑的完整实现方法
搞过输电线路保护的人大多被同一种情况折磨过系统没有短路故障距离保护却因为功率摆动动作了线路被无故跳开。功率摆动闭锁Power Swing BlockingPSB和解闭锁DeblockingPSD功能就是为了把这种误动拦住而设计的但传统方案在“把摆动拦得严”和“把故障放得快”之间越来越难取舍。这篇文章是我改进距离继电器功率摆动闭锁/解闭锁逻辑的完整记录——从摆动误动机理讲起对比传统判据的短板然后给出一套“突变量启动阻抗轨迹形态对称分量辅助”的新方法并附上Matlab代码实现、状态机逻辑和仿真工况验证。适合正在做保护算法仿真的工程师和研究生也想把手头距离保护PSB功能从“能动作”调到“动作得准”的同行都能从里面找到可直接落地的思路。1. 功率摆动与距离继电器误动误动的机理比你想的更普遍1.1 功率摆动的基本物理过程功率摆动本质上是“发电机转子相对运动的宏观表现”。把系统等值成两机模型发电机1电动势E1∠δ、发电机2电动势E2∠0中间由总电抗XΣ连接输送功率可以写成P E1·E2·sinδ / XΣ当系统发生短路、切机、重合闸、甩负荷这类扰动后发电机的电磁功率和机械功率失去平衡转子就要开始相对摆动功角δ在某个平衡点附近来回振荡。转子本身有巨大的机械惯性所以这种摆动节奏很慢频率通常在0.1Hz到2Hz之间比50Hz工频慢了不止一个数量级。这个慢速摆动反映到保护安装处的电气量上就是电压、电流的幅值和相位都在按某个低频规律周期性变化。注意这种变化是“连续渐变”的它仍然是三相基本对称的工频量只是工频量的幅值和相角被低频调制了。1.2 测量阻抗为什么会“路过”动作区距离继电器的本质是测阻抗它算的是母线电压和线路电流的比值Z Um / Im。正常负荷时测量阻抗落在负荷区当功率摆动发生后电压电流的幅值相位都在动测量阻抗就会在R-X阻抗平面上画出一条轨迹。这条轨迹有可能从负荷区慢慢扫进距离保护的动作圆然后再慢慢扫出来整个过程持续几十毫秒到几百毫秒。问题就出在这里动作圆没有分辨“真短路”和“摆动路过”的能力。它只看到“阻抗落入动作区”就认为线路内部发生了故障。于是一条好好的线路仅仅因为系统在摆动距离I段、II段就可能被误触发跳闸。这种误动在现场并不罕见尤其是摆动中心恰好落在保护线路附近时测量阻抗会最深地扎进动作区。可以这样理解距离保护动作圆像一个限速摄像头它盯的是“有没有车出现在不该出现的区域”但一辆车因为堵车、改道“路过”了这个区域它也会被拍照。PSB要做的事就是告诉摄像头“这辆车只是路过别拍”。1.3 闭锁与解闭锁的逻辑边界PSB功能的职责是识别“系统正在功率摆动”在摆动期间输出闭锁信号把距离保护跳闸出口暂时屏蔽掉。这个动作听起来简单难点在另一半——如果摆动期间真的发生了故障PSD功能又必须立刻解除闭锁把故障跳开。这等于要求同一个保护同时做到“拦得严”和“放得快”这两个目标天然冲突。再加上系统摆动平息之后闭锁信号不能立刻撤回。因为摆动可能在阻尼作用下慢慢衰减也可能后面还有第二个振荡周期如果闭锁撤得太早残余振荡扫回动作区又会导致误动。所以复归逻辑还要有延时和条件约束。整套功能在逻辑上是一个小状态机必须在“正常、预判、闭锁、解锁”几个状态之间切换每一步都要有清晰的判据。2. 传统检测手段的底子与新方法的三个突破口2.1 传统检测手段回看功率摆动检测不是新课题。早年微机保护普及之后主流做法有好几类我简单过一遍它们的底子。第一类是R/Rdot判据。R可以取测量阻抗的模值也可以是电阻分量Rdot就是它对时间的导数。正常负荷变化时阻抗移动很慢Rdot很小短路瞬间阻抗几乎阶跃式变化Rdot极大功率摆动介于两者之间。于是设定两个门槛当Rdot落在中间区域且阻抗进入动作区后判为摆动。这个思路直观但有一个大缺陷摆动过程中Rdot并不是恒定值越靠近振荡中心变化越快甚至可能达到接近故障的水平固定门槛很难两边兼顾。第二类是对称分量法。功率摆动在理想情况下三相是对称的负序和零序分量基本为零故障时负序或零序明显增大。所以用对称分量变化来区分故障与摆动是工程上很自然的做法。问题在于三相短路时负序、零序都出不来高阻接地时零序也可能微弱这类方法对某些故障类型存在盲区。第三类是振荡中心跟踪。通过等值系统阻抗计算振荡中心的位置判断它是否落在保护范围内。这类方法对系统等值参数依赖很大需要两端电源电动势、系统阻抗等信息在单端量保护装置里实现起来比较麻烦整定也复杂。2.2 传统方案在工程现场的短板单判据方案在特定工况下都有明显短板。我遇到过几种典型情况串补线路上串联电容器会让测量阻抗呈现跳跃性变化摆动轨迹可能不是平滑圆弧而是带折线的畸变轨迹R/Rdot容易把这种折线误判为故障。含分布式电源或多机系统里等值阻抗参数随时在变振荡中心跟踪的精度很难保证。还有不对称运行方式下线路本身就有负序和零序输出对称分量门槛必须抬高否则闭锁逻辑会被频繁扰动。再有就是系统振荡过程中叠加负荷快速波动采样值上会出现类似突变的“毛刺”干扰启动判据。这些场景叠加起来结论很清楚想让PSB/PSD在复杂电网结构下都稳得住单靠一个特征量是不够的必须走多判据融合的路子。2.3 新方法突变量启动轨迹形态对称分量联动我在改进方案里采用的核心思路可以概括成一句话不要只盯着阻抗轨迹本身要把“电气量突变”“轨迹形态”“对称分量变化”放到同一个数据窗里联合判断。第一层是突变量启动。用当前采样值或基波相量减去一个周波前的值超过门槛就说明系统发生了快速的电磁暂态。故障是电磁暂态功率摆动是机电暂态两者天然时间尺度不同。但要注意负荷快速变化、开关操作也会产生一定的突变量所以突变量只能作为启动量不能单独作为解锁判据。第二层是阻抗轨迹形态分析。计算测量阻抗在阻抗平面上的运动速率、方向连续性和在动作区内的“停留时间”。功率摆动轨迹是一个连续、缓慢、单调性较好的弧或圆方向变化是渐进的而故障轨迹往往是很快的折线甚至跳变进入动作区后通常会一直停留在故障阻抗附近。把这两类轨迹特征量化成几个指标比单独看Rdot可靠得多。第三层是对称分量辅助。负序、零序分量增大时可以直接加速解锁把不对称故障的解锁时间压到很短而在三相短路这种没有负序零序的场景就改用“低电压阻抗快速入圆”的判据。三个判据各管一摊又互相兜底整个逻辑的健壮性比单判据好很多。3. Matlab实现数据、相量与特征计算的完整链路3.1 仿真数据的获取与组织在Matlab里开发PSB/PSD算法第一步是拿到电压电流的时域波形。日常工作中数据来源主要有三类电磁暂态仿真软件如PSCAD、Simulink导出的波形现场故障录波装置导出的COMTRADE文件以及自己按解析模型构造的测试数据。我建议先按解析模型构造一组“教学数据”把算法流程调通再换成仿真或录波数据做批量验证。原因是解析数据里我们精确知道故障加入时刻标定算法响应时间非常方便。下面这组Matlab代码构造了一个理想化的摆动故障复合波形阻抗轨迹先按圆弧扫过动作区在2s时突然切成一个低阻抗故障点。fs 1000; % 采样率 1000Hz f0 50; % 工频 50Hz T 4; t (0:1/fs:T); % 功率摆动测量阻抗在R-X平面上沿圆弧轨迹移动 Z0 100 50j; % 圆弧圆心 Zr 40; % 圆弧半径 omega_p 2*pi*0.5; % 摆动角频率对应0.5Hz的机电振荡 Z_meas Z0 Zr * exp(1j*(omega_p*t pi/6)); % 2.0s时叠加A相接地故障阻抗跳变到一个低阻抗点 kf find(t 2.0 t 2.1); Z_meas(kf) 8 20j; % 构造三相电压电流设定电流幅值和相角由Z反推电压 I_mag 1; I_meas I_mag * exp(1j*(omega_p*t 0.2)); V_meas Z_meas .* I_meas;这样做出来的电压电流在三相上是对称的只用来验证算法逻辑。如果要验证零序负序判据需要另外构造不对称故障或者直接用电磁暂态模型数据。3.2 基于全周傅氏算法的相量提取距离保护要算测量阻抗必须先把电压电流基波相量提出来。Matlab里用fft很顺手但为了讲清楚原理我写了一个自定义的全周傅氏相量提取函数。它按一个周波的数据窗计算基波分量相位参考点为窗内第一个采样点。function ph dft_phasor(x, N, k) % x采样序列 % N每周波采样点数 % k当前数据窗结束点 if k N ph 0; return; end win x(k-N1:k); n (0:N-1).; ph 2/N * sum(win .* exp(-1j * 2 * pi * n / N)); end在主程序里对电压电流逐点滑动调用这个函数得到基波相量序列然后相除就是测量阻抗。注意全周傅氏对衰减直流分量比较敏感真实故障电流里常常带有衰减直流会影响相量幅值。实际工程中可以在数据窗前面加一个差分滤波或者用最小二乘拟合把直流分量剔掉在算法演示阶段先用纯工频分量调通逻辑再考虑这个误差源。3.3 阻抗轨迹关键特征的计算相量提取之后核心特征计算包括阻抗模值Z、变化速率dZdt、相量突变量dVa/dIa、正序电压幅值、负序和零序分量、以及“是否在动作圆内”的标志。Nw round(fs/f0); dt 1/fs; % 逐点计算基波相量和测量阻抗 Va_ph zeros(length(t), 1); Ia_ph zeros(length(t), 1); for k Nw1:length(t) Va_ph(k) dft_phasor(V_meas, Nw, k); Ia_ph(k) dft_phasor(I_meas, Nw, k); end Z_ph Va_ph ./ Ia_ph; % 相量突变量当前相量减一周前相量的幅值 dVa zeros(length(t), 1); dIa zeros(length(t), 1); for k Nw1:length(t) dVa(k) abs(Va_ph(k) - Va_ph(k-Nw)); dIa(k) abs(Ia_ph(k) - Ia_ph(k-Nw)); end % 阻抗变化速率 dZdt zeros(length(t), 1); for k Nw2:length(t) dZdt(k) abs(Z_ph(k) - Z_ph(k-1)) / dt; end % 方向圆动作区判断|Z - Zset/2| |Zset/2| Zset 20 20j; inZone abs(Z_ph - Zset/2) abs(Zset/2);这段代码把三个关键判据输入都算出来了。实际项目中dZdt一般不用整段连续计算而是对阻抗轨迹做滑动线性拟合求斜率抗噪能力更好。轨道形态特征还包括“轨迹在动作区内的连续点数”和“轨迹运行方向变化角”这两个量在摆动过程中和故障过程中差异非常明显后面状态机里会用到。4. 核心判据逻辑状态机、解锁与复归决策4.1 主闭锁状态机设计整套PSB/PSD逻辑我实现成了一个有限状态机比直接堆一堆if/else要清晰得多。状态定义如下状态0正常没有闭锁保护正常开放。当阻抗进入动作区且dZdt落在“摆动典型区间”内进入状态1预闭锁如果dZdt极大且突变量明显说明可能是故障直接进入状态3。状态1预闭锁连续观察一段时间确认轨迹是否“平滑缓慢”。若确认是摆动进入状态2正式闭锁如果过程中出现明显突变量立刻切到故障处理路径。如果轨迹很快离开动作区且变化率恢复正常则延时返回状态0。状态2闭锁输出闭锁信号屏蔽距离保护跳闸出口。此时时刻监视故障特征只要解锁子判据满足马上进入状态3。状态3解锁输出解除闭锁允许距离保护出口跳闸同时记录解锁时刻。解锁信号保持一段设定的时间防止状态翻转。为什么加一个“预闭锁”状态因为故障合闸或者线路充电瞬间阻抗也可能快速进入动作区这时候马上闭锁会把真正的故障也给拦掉。用一小段时间观察轨迹是否平滑能显著提高可靠性。4.2 故障解锁的三个子判据闭锁状态下最核心的任务是“快速、可靠地识别故障并放行”。我在状态机里用了三个子判据它们相互配合子判据计算方式主要面向故障设计思路突变量判据dVa和dIa超过门槛且连续多拍保持各种短路类型电磁暂态与机电渐变本质不同对称分量判据负序/零序分量超过门槛不对称接地、相间短路响应快可在半个周波内动作低电压快速入圆判据正序电压低于门槛且dZdt超过故障速度门槛三相短路、无负序零序的故障弥补对称分量盲区突变量判据不能单独解锁否则系统冲击、开关操作会引起误放行。我把它和“阻抗同时在动作区内”一起用突变量超过门槛并且阻抗满足动作方程才认为是真故障。对称分量判据的好处是响应快基本不需要等待阻抗稳定但CT饱和时负序和零序也会假性增大所以我在工程版本里加了“正序电压不能深度凹陷”的约束条件防止饱和误判。低电压快速入圆判据是专门留给三相短路的。发生三相短路时没有负序零序突变量虽然很大但如果恰恰发生在摆动轨迹上dZdt和纯摆动可能重叠这时正序电压跌落是最可靠的补充特征。4.3 复归与展期逻辑功率摆动平息后闭锁信号不能马上撤。我见过一个现场案例摆动第一波衰减后保护复归结果第二波回摆又扫进动作区照样误跳。所以复归需要满足两个条件一是测量阻抗连续离开动作区超过一个设定时间二是正序电压基本恢复。这两个条件同时满足才允许状态回到正常。“展期”逻辑是个容易被忽略的细节。当阻抗轨迹正在动作区内移动时突变量启动过一次但最终没有满足解锁条件这时候不能简单回到闭锁等待状态。原因是这往往意味着“真有故障但特征不够明显”比如高阻接地。我的做法是一旦出现过上述情况就进入一个“警惕展期”在这个时间段内降低解锁门槛同时延长闭锁保持时间防止故障特征稍微模糊就被漏掉。5. 典型工况仿真结果与性能对比5.1 三种测试工况设计为了验证改进算法我构造了三类典型工况模拟的是实际运行中最容易出问题的场景工况A纯功率摆动无故障。设置摆动幅度使测量阻抗周期性进入距离I段动作圆摆完约1.5个振荡周期后趋于稳定。这个工况考验的是“闭锁会不会漏”。工况B功率摆动期间在阻抗轨迹刚进入动作区后约50ms叠加A相接地故障。这个工况最考验“解锁快不快”因为它发生在摆动最“像故障”的阶段。工况C功率摆动期间发生三相短路故障点靠近线路末端。这个工况考验“没有对称分量可用时能不能靠低电压判据把故障捞出来”。5.2 三种工况下的判据响应工况A的结果很直观阻抗进入动作区后dZdt落在摆动区间内状态机从正常走到预闭锁再到闭锁闭锁信号建立后距离保护即使测量阻抗落在I段圆内跳闸出口也被可靠屏蔽。摆动过程中没有出现突变量对称分量也基本为零解锁子判据全部不满足最后摆动衰减闭锁信号延时复归。工况B是重点。故障发生瞬间相量突变量很快超过门槛负序分量也同步增大状态机在故障发生后大约13ms在我的整定参数下就给出了解锁信号距离保护随即跳闸。这个速度对于后备保护完全够用。如果改用传统R/Rdot判据在这个故障时刻下要么因为摆动速度刚好处于“灰色地带”而拒绝解锁要么因为门槛太低过早解锁很难两全。工况C的响应稍慢一点因为没有负序零序可用也没有明显的相量突变量优势最后是靠“正序电压跌落阻抗快速入圆”判据把故障识别出来的解锁时间约18ms。这个数值仍然在保护允许范围内而且比单纯依赖负序零序的方案在三相短路场景下要可靠得多。5.3 性能指标对比我把三种工况的核心指标整理成表格这里数值是基于我自己整定参数的实测结果具体数值会随系统参数变化但趋势是稳定的工况闭锁建立时间故障解锁时间是否有误动/拒动传统R/Rdot对比A 纯摆动约24ms无无误动摆动速度较快时容易误动B 摆动中单相接地约26ms约13ms无拒动可能拒动或误动取决于门槛C 摆动中三相短路约25ms约18ms无拒动对门槛依赖严重容易漏判从对比里能看到改进方案最大的提升不是某一个指标“特别快”而是把三种典型工况都照顾到了。传统方案往往在某一种工况下表现不错换一种工况就露馅。6. 常见问题与调试心得6.1 判据整定与延时取舍功率摆动闭锁的整定是整个功能调试里最费时间的部分。dZdt门槛不能拍脑袋定我习惯先跑一组纯摆动波形统计阻抗变化速率的分布范围再跑一组故障波形看故障瞬间的dZdt峰值然后取一个让两类工况有明显区分度的中间值。两个门槛的办法更实用一个低门槛用于“摆动识别”一个高门槛用于“故障快速判别”。突变量启动门槛一般取额定电压幅值的5%~10%或者额定电流幅值的10%左右。太灵敏会在负荷波动、系统冲击时频繁启动干扰状态机太迟钝则延迟解锁影响保护动作时间。我建议在Matlab里用批量仿真做一次简单扫参观察解锁时间与误动次数的关系再定最终值。6.2 数据窗与滤波器选型对结果的影响全周傅氏算法有一个固有延时故障发生后大约要一个周波才能给出准确的基波相量所以纯阻抗判据很难把故障解锁时间压进半个周波以内。改进方案里我采用“双数据窗并行”的思路负序、零序分量用短窗滤波器计算5ms左右就能出来测量阻抗用全周窗计算保证精度。两个数据窗各自服务于不同的解锁子判据。衰减直流分量是个必须处理的坑。故障电流中如果含有明显的衰减直流全周傅氏算出来的基波幅值会偏大直接导致测量阻抗失真。我在调试时专门构造了带衰减直流的仿真数据发现不加处理的算法在高阻接地场景下判据稳定性很差。解决方案是数据窗之前加差分滤波或者在最小二乘估计模型里把指数衰减项作为未知量一起估计。6.3 现场录波与电磁暂态仿真数据的差异仿真数据通常很“干净”现场录波数据则有一堆现实问题采样噪声、测量误差、CT饱和、电压互感器暂态误差。我调试中遇到最典型的问题是CT饱和时负序分量假性增大导致对称分量解锁判据误动。解决办法是在对称分量判据前增加一个约束正序电压不能深度跌落。因为真正的不对称故障通常伴随明显的电压跌落而CT饱和发生在电流侧对电压影响没那么大。另一个常见问题是录波数据里三相电压不平衡时零序分量长期存在如果门槛按理想对称系统设定闭锁逻辑会被频繁扰动。处理方法是把零序门槛抬高或者增加“电压不平衡度”作为配套条件。这些都是纯仿真验证很难暴露出来的工程细节遇到录波数据时务必注意。功率摆动闭锁功能我前后改了三版。第一版只盯阻抗变化率振荡中心附近故障解锁太慢第二版加了突变量启动又把三相短路的低电压判据带上才把两种极端工况都兜住。调试下来最大的体会是这种功能千万别指望单一判据包打天下判据融合、状态机管理才是出路。你可以先用我上面的教学数据把状态机调通再换成电磁暂态仿真或录波数据做批量验证。下一步整套逻辑还可以移植到基于采样值的快速距离保护里与行波启动配合进一步压缩动作时间。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑