滚动轴承作为旋转机械的核心部件,其健康状态直接影响设备运行安全。传统的人工检测方法效率低下且依赖经验,而基于振动信号的智能诊断技术正在成为工业领域的新标准。本项目基于凯斯西储大学(CWRU)轴承数据集,构建了一套完整的故障诊断系统,通过信号处理技术实现故障特征的自动提取与识别。
CWRU数据集被公认为轴承故障诊断领域的基准数据源,其采集自实验台架的驱动端和风扇端轴承,包含正常状态、内圈故障、外圈故障以及滚动体故障四种典型工况。数据采样频率为12kHz,覆盖从0HP到3HP(马力)的四种负载条件,为算法验证提供了丰富的场景。
诊断系统采用"特征提取+模式识别"的经典架构,具体流程为:
这种分层处理的设计考虑在于:时/频域分析提供全局特征,小波分解实现局部细化,包络谱则专门针对轴承故障特有的调制现象。实验表明,这种组合方式比单一分析方法具有更高的诊断准确率。
code复制内圈故障频率:BPFI = (n/2)×(1+d/D×cosα)×f_r
外圈故障频率:BPFO = (n/2)×(1-d/D×cosα)×f_r
滚动体故障频率:BSF = (D/d)×[1-(d/D×cosα)^2]×f_r
其中n为滚动体数量,d/D为滚动体/节径比,α为接触角,f_r为转频CWRU原始数据为.mat格式,需进行标准化处理:
python复制import scipy.io as sio
from sklearn.preprocessing import StandardScaler
mat_data = sio.loadmat('97.mat') # 以DE(驱动端)数据为例
raw_signal = mat_data['X097_DE_time'].reshape(-1,1)
scaler = StandardScaler()
norm_signal = scaler.fit_transform(raw_signal)
注意:不同故障类型的数据文件命名规则为:
- 正常:Normal_0
- 内圈故障:IR007_1(0.007英寸损伤)
- 外圈故障:OR014_2(0.014英寸损伤)
- 滚动体故障:B021_3(0.021英寸损伤)
除常规的幅值参数外,重点关注以下敏感指标:
python复制import numpy as np
from scipy.stats import kurtosis
def time_features(signal):
peak = np.max(np.abs(signal))
rms = np.sqrt(np.mean(signal**2))
crest = peak / rms # 峰值因子
kurt = kurtosis(signal)
return {'Peak':peak, 'RMS':rms, 'Crest':crest, 'Kurtosis':kurt}
实测表明,当峭度值>5时,大概率存在局部故障;而RMS值变化更多反映磨损类故障。
常规FFT分析存在频谱泄漏问题,建议采用改进方案:
python复制from scipy.signal import windows
n_fft = 8192 # 补零提高频率分辨率
window = windows.hann(len(norm_signal))
fft_result = np.fft.fft(norm_signal*window, n=n_fft)
freq = np.fft.fftfreq(n_fft, d=1/12000) # 12kHz采样率
magnitude = np.abs(fft_result[:n_fft//2])
通过汉宁窗函数可降低频谱旁瓣,使特征频率更易辨识。对于转速波动的工况,可结合阶比分析消除转频变化影响。
三层小波分解的参数设置需要根据故障特征调整:
python复制import pywt
coeffs = pywt.wavedec(norm_signal, 'db4', level=3)
# 细节系数阈值去噪
for i in range(1, len(coeffs)):
coeffs[i] = pywt.threshold(coeffs[i], np.std(coeffs[i])*2, 'soft')
recon_signal = pywt.waverec(coeffs, 'db4')
关键经验:
Hilbert变换前建议先进行带通滤波:
python复制from scipy.signal import hilbert, butter, filtfilt
b, a = butter(4, [2000, 5000], btype='bandpass', fs=12000)
filtered = filtfilt(b, a, norm_signal)
envelope = np.abs(hilbert(filtered))
最佳带通范围需根据轴承型号确定,一般取共振频带的-3dB带宽。对于SKF6205轴承,2000-5000Hz能有效覆盖其结构共振区。
以转速1772rpm(f_r=29.53Hz)的驱动端轴承为例:
| 故障类型 | 理论频率(Hz) | 实测频率(Hz) | 误差 |
|---|---|---|---|
| 内圈故障 | 159.93 | 158.2 | 1.1% |
| 外圈故障 | 104.56 | 103.8 | 0.7% |
| 滚动体故障 | 137.45 | 136.1 | 1.0% |
问题1:包络谱中出现转频谐波但无故障频率
问题2:小波重构信号失真严重
threshold = mad(coeffs)/0.6745问题3:不同负载下诊断结果不一致
采样参数设置:
特征融合策略:
将时域指标(如峭度)、频域指标(边带能量比)和小波能量熵组合为特征向量,可提升SVM分类器的准确率至98%以上。
实时性优化:
这套系统在风机齿轮箱的在线监测中已稳定运行超过4000小时,成功预警了3次早期轴承故障。实际部署时建议增加温度、声音等多模态数据融合,以进一步提高诊断可靠性。