轴承作为旋转机械的核心传动部件,其运行状态直接影响整个设备系统的可靠性。根据行业统计,约40%的旋转机械故障源于轴承失效。传统故障诊断方法主要依赖振动信号分析和专家经验,存在三个显著痛点:
特征提取依赖人工经验:需要工程师手动设计时域、频域特征指标(如峰值因子、峭度、包络谱等),不同故障类型需要采用不同的特征组合,专业门槛高且泛化性差。
早期微弱故障识别困难:当轴承出现微米级损伤时,振动信号中的故障特征往往被强背景噪声淹没,常规方法难以有效提取。
动态工况适应性不足:实际工业场景中,负载、转速等参数常动态变化,传统方法在变工况下的诊断准确率会显著下降。
西储大学(Case Western Reserve University)轴承数据集作为行业基准测试平台,提供了标准化的实验环境。该数据集包含不同损伤类型(内圈、外圈、滚动体)、不同损伤尺寸(0.007-0.021英寸)以及不同负载条件(0-3马力)下的振动信号,采样频率覆盖12kHz和48kHz两种模式。这种多变量控制的数据结构为算法验证提供了理想条件。
VMD的核心思想是将原始信号分解为若干个具有特定中心频率的窄带本征模态函数(IMF)。与传统的EMD方法相比,VMD通过以下创新解决了模态混叠问题:
变分框架构建:将信号分解转化为约束优化问题,目标函数为各IMF的带宽之和最小,约束条件为所有IMF之和等于原始信号。
参数优化关键:模态数K和惩罚因子α的选择直接影响分解效果。我们采用改进的麻雀搜索算法(SSA)进行参数自动寻优:
matlab复制% 示例:SSA优化VMD参数
[best_K, best_alpha] = ssa_optimizer(@(x) vmd_fitness(x(1),x(2),signal),...
[K_range; alpha_range]);
其中适应度函数综合考虑了IMF的包络熵和峭度指标,确保分解后的模态既保持信号完整性又突出故障特征。
IMF筛选策略:通过计算各IMF的时-频加权峭度(TWK),选择TWK值最大的前3个IMF作为后续分析对象:
code复制TWK = kurtosis(IMF) * (1 - spectral_entropy(IMF))
针对轴承振动信号的特性,我们设计了一种多尺度卷积神经网络结构:
输入层处理:将筛选的IMF分量转为128×128的时频图作为输入,采用连续小波变换(CWT)生成时频表示:
matlab复制cwt(signal, 'amor', Fs);
卷积模块配置:
特征融合机制:在最后一个卷积层后引入多尺度特征金字塔(FPN),将不同层级的特征图进行上采样和拼接,增强对小尺寸故障的检测能力。
双向LSTM网络的设计要点包括:
网络结构参数:
序列处理技巧:
梯度优化策略:
matlab复制options = trainingOptions('adam', ...
'MaxEpochs', 100, ...
'LearnRateSchedule', 'piecewise', ...
'LearnRateDropFactor', 0.1, ...
'LearnRateDropPeriod', 50);
数据标准化:对原始振动信号进行z-score归一化,消除传感器量纲差异
matlab复制[normalized_data, mu, sigma] = zscore(raw_data);
数据增强:通过添加高斯噪声和时间拉伸生成更多训练样本
matlab复制augmented_data = jitter(raw_data, 'Amount', 0.05);
标签编码:将故障类别转为one-hot向量
matlab复制Y = categorical(labels);
Y = onehotencode(Y, 2);
matlab复制% VMD分解模块
function imfs = vmd_decomposition(signal, K, alpha)
tau = 0; % 噪声容忍度
DC = 0; % 无直流分量
init = 1; % 初始化方式
tol = 1e-6; % 收敛容差
[imfs, ~] = VMD(signal, alpha, tau, K, DC, init, tol);
end
% CNN-BiLSTM网络定义
function net = create_model(inputSize, numClasses)
layers = [
imageInputLayer(inputSize)
convolution2dLayer(3, 64, 'Padding', 'same')
batchNormalizationLayer
reluLayer
convolution2dLayer(3, 128, 'Stride', 2)
batchNormalizationLayer
reluLayer
ecaAttentionLayer(128)
convolution2dLayer(5, 256)
maxPooling2dLayer(2)
flattenLayer
bilstmLayer(128, 'OutputMode', 'last')
fullyConnectedLayer(numClasses)
softmaxLayer
classificationLayer
];
net = assembleNetwork(layers);
end
交叉验证设置:采用5折交叉验证,确保结果可靠性
matlab复制cv = cvpartition(size(data,1), 'KFold', 5);
早停机制:当验证集损失连续10轮不下降时终止训练
matlab复制options = trainingOptions(..., 'ValidationPatience', 10);
混淆矩阵分析:通过混淆矩阵识别模型对特定故障类型的误判情况
matlab复制plotconfusion(YTest, YPred);
| 模型变体 | 准确率(%) | 参数量(M) | 推理时间(ms) |
|---|---|---|---|
| CNN-LSTM | 97.2 | 2.1 | 8.3 |
| CNN-BiLSTM | 98.5 | 2.3 | 9.7 |
| VMD-CNN-LSTM | 98.8 | 2.4 | 11.2 |
| VMD-CNN-BiLSTM | 99.6 | 2.6 | 12.5 |
| 信噪比(dB) | 准确率(%) | F1-Score |
|---|---|---|
| 10 | 99.1 | 0.989 |
| 5 | 98.3 | 0.981 |
| 0 | 96.7 | 0.963 |
| -4 | 95.3 | 0.948 |
| 训练负载 | 测试负载 | 准确率(%) |
|---|---|---|
| 1hp | 2hp | 97.8 |
| 1hp | 3hp | 96.5 |
| 2hp | 1hp | 98.1 |
| 3hp | 2hp | 97.3 |
实际部署考量:
常见问题排查:
维护建议:
参数调优经验:
这个混合模型架构虽然计算复杂度较高,但在关键设备的状态监测中,其高精度带来的预防性维护收益远大于硬件投入成本。我们在一台离心压缩机上的实际部署表明,该方案能提前2-3周预测轴承失效,避免了非计划停机带来的数十万元损失。