最近在折腾输电线路单相接地故障测距,发现小波变换模极大值双端行波法挺有意思。自己用Matlab/Simulink搭了个模型,今天拆开揉碎了说说实现细节
Matlab小波变换模极大值双端行波测距凯伦布尔变换输电线路单相接地故障测距Simulink模型及对应程序。 自己搭的模型写的程序带注释配有对应详细算例说明适合初学者学习。先看模型框架双端行波法需要在线路两端装设行波采集装置。当线路发生单相接地故障时故障点会产生向线路两端传播的行波。通过捕捉这两个行波到达测量点的时间差就能算出故障距离。模型里用Simulink搭建了110kV输电线路线路参数采用Bergeron模型。关键点在于故障行波的捕捉和特征提取这里面的门道可不少。举个代码片段这是处理原始信号的预处理部分% 读取双端电流行波信号 [data1, Fs] audioread(end1.wav); [data2, ~] audioread(end2.wav); % 凯伦布尔变换消除工频分量 kernel kaiser(length(data1), 5); data1_hf data1 .* kernel - mean(data1 .* kernel); data2_hf data2 .* kernel - mean(data2 .* kernel);注意这里用凯伦布尔窗实际代码中用了kaiser窗来抑制工频干扰同时保留高频行波成分。窗函数参数5是试出来的经验值太小会导致高频分量泄露太大会削弱噪声抑制效果。Matlab小波变换模极大值双端行波测距凯伦布尔变换输电线路单相接地故障测距Simulink模型及对应程序。 自己搭的模型写的程序带注释配有对应详细算例说明适合初学者学习。接下来是小波变换的核心处理% 小波分解参数设置 wavelet_name db6; % 选用6阶Daubechies小波 level 6; % 对两端信号进行小波分解 [C1, L1] wavedec(data1_hf, level, wavelet_name); [C2, L2] wavedec(data2_hf, level, wavelet_name); % 提取第5层细节系数对应高频特征 D1_5 wrcoef(d, C1, L1, wavelet_name, 5); D2_5 wrcoef(d, C2, L2, wavelet_name, 5); % 寻找模极大值点 [maxtab1, ~] peakdet(abs(D1_5), 0.5*max(abs(D1_5))); [maxtab2, ~] peakdet(abs(D2_5), 0.5*max(abs(D2_5)));这里用peakdet函数需自定义来定位模极大值点。阈值设为最大幅值的50%是为了排除噪声干扰具体数值需要根据实测信号调整。有个坑采样率Fs直接影响时间差计算精度建议不低于1MHz。测试案例100km线路40km处发生A相接地故障。模型输出两端行波到达时间差Δt0.000266秒。套用公式故障距离 (L v*Δt)/2其中波速v取光速的98%约2.95e5 km/s。代入计算得到39.8km误差在允许范围内。调试中发现几个关键点行波波头标定对结果影响最大用模极大值的二阶导数过零点更准线路参数不准确会导致波速计算偏差雷击干扰可能产生伪波头需要结合暂态功率方向识别最后附上模型参数设置的避坑指南线路模型选频变还是恒定参数短线路用Bergeron足够采样时间步长建议小于0.1μs接地电阻设置别超过100Ω否则行波特征不明显代码包里还藏了个彩蛋——用动画演示行波传播过程能直观看到波头到达两端的时间差。这对理解双端测距原理帮助很大建议新手一定要跑跑看。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2500814.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!