距离继电器作为电力系统保护的关键设备,其可靠性直接关系到电网安全稳定运行。在电力系统发生故障时,距离继电器需要快速准确地识别故障位置并执行跳闸操作;而在系统出现功率摆动(Power Swing)等暂态过程时,又需要可靠闭锁以防止误动作。传统功率摆动闭锁(PSB)和解闭锁方案存在响应速度慢、适应性差等问题,这正是本项目研究的切入点。
我在某500kV变电站保护改造项目中,曾遇到因功率摆动导致的距离继电器误动作案例。当时系统在经历大负荷转移后出现振荡,传统基于阻抗变化率的PSB算法未能及时闭锁,造成多条线路误跳闸。这次事故促使我深入研究PSB算法的改进方法,这也是本文分享内容的实践基础。
目前主流的PSB方案主要基于以下两种原理:
阻抗变化率检测法:通过监测测量阻抗在R-X平面上的移动速度来判别功率摆动。典型阈值设为7-10Ω/s,但实际应用中存在两个问题:
双阻抗元件法:采用内外两个阻抗圆,通过检测阻抗轨迹穿越两个圆的时间差来判断。这种方法在复杂故障场景下(如故障发展为振荡)容易失效。
matlab复制% 传统PSB算法示例代码
function [block_flag] = conventional_PSB(Z_meas, dZdt)
threshold = 8; % Ω/s
if dZdt < threshold
block_flag = 1; % 功率摆动闭锁
else
block_flag = 0; % 开放保护
end
end
随着新能源高比例接入电网,系统动态特性发生显著变化:
这些变化使得传统PSB方案在以下场景面临挑战:
新方法采用三层判据结构:
暂态特征层:
matlab复制% Prony算法实现示例
[amp, phase, freq] = prony_analyze(Z_meas, Ts);
dominant_freq = freq(find(amp==max(amp)));
轨迹形态层:
matlab复制% 轨迹特征提取
curvature = abs(diff(angle(diff(Z_meas))));
能量突变层:
解闭锁逻辑采用动态阈值机制:
matlab复制% 自适应解闭锁算法核心
function [unblock] = adaptive_unblock(Z, t)
persistent freq_est;
% 实时频率估计
freq_est = 0.9*freq_est + 0.1*instant_freq(Z);
% 动态延时计算
T_delay = min(0.2/freq_est, 0.5);
% 突变检测
dZ = abs(Z(end) - Z(end-10));
unblock = (dZ > 0.2*abs(Z(end))) && (t > T_delay);
end
建议采用以下工具链组合:
主仿真平台:Matlab/Simulink R2021a+
信号处理工具:
matlab复制% 推荐使用DSP System Toolbox中的滤波器
hp_filter = designfilt('highpassiir', 'FilterOrder', 8, ...
'PassbandFrequency', 5, 'SampleRate', 4000);
机器学习工具:
实时阻抗计算模块:
matlab复制function Z = calc_impedance(v, i)
% 采用全波傅氏算法
N = length(v);
V = fft(v)./fft(i);
Z = abs(V(2)) * exp(1j*angle(V(2)));
end
多判据融合逻辑:
matlab复制function [block, confidence] = decision_fusion(freq, curve, entropy)
weights = [0.4, 0.3, 0.3]; % 可调参数
score = weights * [freq_feature(freq), curve_feature(curve), entropy];
block = score > 0.7;
confidence = min(score, 1);
end
可视化调试工具:
matlab复制% 实时显示阻抗轨迹
polarplot(angle(Z_memory), abs(Z_memory), '-o');
在IEEE 39节点系统上验证,对比传统方案:
| 测试场景 | 传统方法 | 新方法 |
|---|---|---|
| 纯功率摆动 | 正确闭锁 | 正确闭锁 |
| 区内故障+摆动 | 误闭锁 | 正确动作 |
| 振荡中心在Ⅲ段内 | 误动作 | 正确闭锁 |
| 谐波污染故障 | 误判 | 正确识别 |
Prony分析窗口:
SVM分类器训练:
matlab复制% 训练数据预处理
features = normalize([freq_features; curve_features]);
model = fitcsvm(features, labels, 'KernelFunction', 'rbf');
小波熵阈值:
硬件实现约束:
现场调试要点:
特殊工况处理:
matlab复制// 处理CT饱和情况
if (THD(i) > 0.15)
enable_CT_sat_compensation();
end
与现有保护的配合:
在某风电场送出线保护改造中,该方案成功识别出12次有效故障,避免了3次由次同步振荡引起的误动。实测表明,新方法将复杂故障的识别准确率从78%提升至94%,响应时间缩短约15ms。