✅ 博主简介:擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。
✅ 具体问题可以私信或扫描文章底部二维码。
(1)电缆中的潜伏性缺陷是导致电缆故障的主要原因之一,这些缺陷可能包括绝缘材料的老化、机械损伤、水分侵入等。传统的时域反射法(TDR)和时频域反射法(TFDR)虽然在故障定位方面表现出色,但对于电缆内部的微小缺陷检测灵敏度不足,难以满足现代电力系统对电缆健康状态监测的高标准要求。近年来,宽带阻抗谱法(BIS)作为一种频域反射技术,在电缆缺陷定位领域取得了显著进展,它通过测量电缆在宽频带范围内的阻抗变化来识别潜在缺陷。然而,BIS技术也存在一些局限性,例如有效检测距离较短、检测效率低下以及定位精度不足等问题。为了解决这些问题,本研究提出了一种基于步进调频波的波形调制方法,该方法将BIS原有的多次阻抗测量简化为单次电压幅值测量,大大提高了测量效率和测量距离。进一步地,基于步进调频波的技术,我们开发了一种基于调频连续波(FMCW)的波形调制方案,旨在克服步进调频波存在的调制步数限制问题,并将阻抗测量转换为频率测量,增强了抗噪声能力和测量范围。实验验证表明,使用FMCW技术后,测量时间从BIS所需的30分钟缩短至10秒;在20MHz等效带宽条件下,有效测量距离从600米增加到了超过800米,提升了大约33%的有效检测距离。
(2)尽管FMCW技术显著提高了电缆缺陷定位的效率和距离,但在实际应用中仍面临一个挑战:FMCW调制信号中的高频分量衰减速度较快,这会导致等效带宽下降,进而影响定位精度。为解决这一问题,我们提出了一种基于FMCW的分段测量与时域频带合成方法。分段测量技术允许分别独立地测量高低频段的信号,避免了同时测量幅值差异极大的信号导致的系统噪声问题,从而保持较高的等效带宽。时域频带合成则解决了分段测量后信号的拼接难题,通过使用Hilbert算法计算每个分段信号的包络均值,以自身0V为参考点完成各分段信号的幅值对齐,最终实现了时域信号的无缝拼接,形成了连续的宽带频谱。这一方法不仅提高了等效带宽,还减少了0至200米范围内的测量噪声,显著提升了定位分辨率。具体来说,通过将两个25MHz带宽的测量结果合成,获得了等效于50MHz带宽的定位谱,等效带宽翻了一番,有效改善了测量效果。以300米长的带有缺陷的电缆为例进行了测试,结果证明了该方法的有效性。
(3)在将FMCW技术应用于电缆缺陷定位时,另一个关键问题是如何准确地从时域信号转换到频域定位谱,以实现精确定位。传统的快速傅里叶变换(FFT)方法在转换过程中会产生定位误差,这是因为离散频谱的谱线间隔会导致频率分辨率降低。为了解决这个问题,我们借鉴了游标卡尺中主尺与游标双刻度的概念,提出了一种变采样点FFT联合寻峰分析方法及其计算效率优化策略。该方法通过调整FFT算法的计算点数,使得频谱刻度更加精细,从而减小了定位误差。实验结果显示,采用此方法后,定位误差相比传统FFT方法减少了超过50%,并且在计算效率方面也有显著提升——在经过优化策略处理后,12次计算的结果与未优化状态下15000次计算的结果之间的差异小于0.001%。此外,我们还研究了FMCW混频信号经过FFT变换后得到的幅值谱、相位谱、实部谱和虚部谱四种定位诊断函数,发现幅值谱(功率谱)在定位电缆缺陷位置方面具有明显优势。同时,相位谱在评估电缆缺陷严重程度方面显示出更高的灵敏度,特别是对于局部容性缺陷,当电容值变化2%时,相位谱的诊断灵敏度可以从36%提升至71%。对于接头处的阻性、导性及铜屏蔽破损缺陷,相位谱的灵敏度也优于幅值谱,可提升7%至62%的诊断精度。基于相位谱形态的变化趋势,我们还提出了故障类型的判别准则,FMCW相位谱技术将BIS方法对高阻故障的检出灵敏度从2kΩ提高至10kΩ,并将遮蔽区域的比例从40%降低到18.2%以下,显著提高了电缆缺陷检测的准确性和可靠性。
import numpy as np
from scipy.signal import hilbert, find_peaks
from scipy.fftpack import fft, ifft
def fmcw_signal_generation(sampling_rate, sweep_time, start_freq, stop_freq):
"""
生成FMCW信号
:param sampling_rate: 采样率 (Hz)
:param sweep_time: 扫描时间 (s)
:param start_freq: 开始频率 (Hz)
:param stop_freq: 结束频率 (Hz)
:return: FMCW信号
"""
t = np.linspace(0, sweep_time, int(sampling_rate * sweep_time), endpoint=False)
chirp_rate = (stop_freq - start_freq) / sweep_time
signal = np.sin(2 * np.pi * (start_freq * t + 0.5 * chirp_rate * t**2))
return t, signal
def mix_signals(signal1, signal2):
"""
混频操作
:param signal1: 第一个信号
:param signal2: 第二个信号
:return: 混频后的信号
"""
mixed_signal = signal1 * signal2
return mixed_signal
def hilbert_envelope(signal):
"""
计算信号的希尔伯特包络
:param signal: 输入信号
:return: 包络信号
"""
analytic_signal = hilbert(signal)
amplitude_envelope = np.abs(analytic_signal)
return amplitude_envelope
def fmcw_defect_localization(mixed_signal, sampling_rate, start_freq, stop_freq, sweep_time):
"""
FMCW缺陷定位
:param mixed_signal: 混频后的信号
:param sampling_rate: 采样率 (Hz)
:param start_freq: 开始频率 (Hz)
:param stop_freq: 结束频率 (Hz)
:param sweep_time: 扫描时间 (s)
:return: 缺陷位置 (m)
"""
# 计算FFT
N = len(mixed_signal)
yf = fft(mixed_signal)
xf = np.linspace(0.0, 1.0/(2.0*(1/sampling_rate)), N//2)
# 寻找峰值
peaks, _ = find_peaks(np.abs(yf[:N//2]), height=0)
# 选择最大峰值对应的频率
peak_frequency = xf[peaks[np.argmax(np.abs(yf[peaks]))]]
# 计算缺陷位置
c = 3e8 # 光速 (m/s)
defect_position = (c * peak_frequency * sweep_time) / (2 * (stop_freq - start_freq))
return defect_position
# 示例参数设置
sampling_rate = 1e6 # 1 MHz
sweep_time = 0.1 # 0.1 s
start_freq = 1e6 # 1 MHz
stop_freq = 2e6 # 2 MHz
# 生成FMCW信号
t, fmcw_signal = fmcw_signal_generation(sampling_rate, sweep_time, start_freq, stop_freq)
# 假设有一个反射信号
reflection_delay = 0.05 # 0.05 s
reflected_signal = np.roll(fmcw_signal, int(reflection_delay * sampling_rate))
# 混频操作
mixed_signal = mix_signals(fmcw_signal, reflected_signal)
# 计算希尔伯特包络
envelope = hilbert_envelope(mixed_signal)
# 缺陷定位
defect_position = fmcw_defect_localization(envelope, sampling_rate, start_freq, stop_freq, sweep_time)
print("缺陷位置:", defect_position, "m")