使用python对电力故障录波数据进行滤波再分析

使用python对电力故障录波数据进行滤波再分析,第1张

电力系统在发生故障时,往往伴随着高频分量的产生,分析高频分量,在电力系统故障分析中起着重要的作用。


在小电流接地系统发生故障时,高频分量可用于故障选线。


在输电系统中(大电流接地系统),高频行波信号的分析也用于故障选线和故障定位。


小电流接地选线装置、故障录波装置、行波测距装置记录的波形往往为宽频带数据,对这种数据进行滤波再分析对于其实现自身基础功能、开发扩展功能尤为重要。


通过最近一段时间的学习,发现python对于处理这种录波宽频带数据高效且灵活。


在我负责的行波测距项目中,需要对行波波头的识别算法进行升级改造。


所以,我最近利用空余时间,学习了这方面的知识。


今天进行的试验比较简单:读取电力故障数据,然后进行滤波分析,通过低通滤波器提取低频波形,通过高通滤波器提取高频波形,并将原始波形与处理后的波形分别绘制出来。


python代码如下:

import numpy as np
import json
import csv
from scipy.fftpack import fft,ifft
from scipy import signal
import matplotlib.pyplot as plt
from matplotlib.pylab import mpl

# 1 读取数据
datafile = './work/csv/fft_test.csv'
data = np.loadtxt(datafile, dtype=np.float, delimiter=',',skiprows=1)
data_t = data.T

# 2 形成时戳坐标,采样频率为10kHz,即1秒中采样10000次
t = np.linspace(0, 0.25, 2500, False)  # 0.25 second

# 3 提取分析与绘制的通道与样点区间
sig = data_t[5,1500:4000]

# 4.1 原始波形
fig, (ax1, ax2, ax3) = plt.subplots(3, 1, sharex=True)
ax1.plot(t, sig)
ax1.set_title('original signals')
ax1.axis([0, 0.25, -35, 35])

# 4.2 高频部分波形,大于100Hz
sos2 = signal.butter(15, 100, 'highpass', fs=10000, output='sos')
filtered2 = signal.sosfilt(sos2, sig)
ax2.plot(t, filtered2)
ax2.set_title('After 100Hz high-pass filter')
ax2.axis([0, 0.25, -35, 35])

# 4.3 低频部分波形,低于100Hz
sos3 = signal.butter(15, 100, 'lowpass', fs=10000, output='sos')
filtered3 = signal.sosfilt(sos3, sig)
ax3.plot(t, filtered3)
ax3.set_title('After 100Hz low-pass filter')
ax3.axis([0, 0.25, -35, 35])

ax3.set_xlabel('Time [seconds]')
ax3.set_ylabel('Voltage [V]')

plt.tight_layout()
plt.show()

通过执行代码,绘制结果如下:

通过图像发现,大体实现了预想的功能,但有一个问题,由于滤波器设置的截止频率太低,导致低频部分波形出现了明显的滞后,这是由于滤波器特性导致的。


我调整了滤波器参数再次试验,相关调整部分代码如下:

 

sos2 = signal.butter(15, 1250, 'highpass', fs=10000, output='sos')
filtered2 = signal.sosfilt(sos2, sig)
ax2.plot(t, filtered2)
ax2.set_title('After 1250Hz high-pass filter')
ax2.axis([0, 0.25, -35, 35])


sos3 = signal.butter(15, 1250, 'lowpass', fs=10000, output='sos')
filtered3 = signal.sosfilt(sos3, sig)
ax3.plot(t, filtered3)
ax3.set_title('After 1250Hz low-pass filter')
ax3.axis([0, 0.25, -35, 35])

再次运行,得到结果如下图所示:

可以看到,低通滤波器的波形滞后(或者叫相位滞后?)问题已经改善。


关于滤波器参数设置的相关问题,后续等我专门学习了之后再进行分析 。


并且,实际的行波波形,信号频率大概在几百K赫兹左右,这需要对滤波器参数进行细致的设计,任重而道远。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/569108.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存