1. 项目背景与核心思路
轴承作为工业设备中的关键部件,其故障诊断一直是设备健康管理的重要课题。传统振动信号分析方法存在特征提取困难、诊断精度有限等问题。我们团队尝试将小波变换的时频分析能力与Swin Transformer的视觉特征提取优势相结合,构建了一个端到端的轴承故障诊断模型。
这个方案的创新点在于:
- 利用连续小波变换(CWT)将一维振动信号转换为二维时频图像
- 采用Swin Transformer作为主干网络,捕捉时频图中的全局和局部特征
- 整个流程实现了从原始振动信号到故障分类的全自动诊断
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 关键技术实现细节
2.1 数据预处理与特征工程
我们使用凯斯西储大学(CWRU)轴承数据集作为基准数据源。原始振动信号采样频率为12kHz,包含正常状态和多种故障类型(内圈、外圈、滚动体故障,每种故障又有不同损伤程度)。
预处理流程:
- 信号分段:每段4096个采样点(约0.34秒时长)
- 归一化处理:采用z-score标准化
- 数据增强:添加高斯噪声、时间偏移等扩增手段
重要提示:信号分段长度需要根据设备转速调整,确保包含完整的故障特征周期
2.2 小波时频图生成
选择Morlet小波作为基函数,其数学表达式为:
code复制ψ(t) = π^(-1/4) * e^(iω0t) * e^(-t^2/2)
其中ω0为中心频率,我们设置为6以保证良好的时频分辨率平衡。
时频图生成参数:
- 尺度范围:对应频率20Hz-6000Hz
- 尺度数:64(生成64×64的时频图像)
- 颜色映射:使用jet色图增强视觉对比度
python复制import pywt
import numpy as np
def generate_cwt(signal, scales=64):
widths = np.arange(1, scales+1)
cwtmatr, _ = pywt.cwt(signal, widths, 'morl')
return np.abs(cwtmatr)
2.3 Swin Transformer模型架构
基于Swin-Tiny架构进行适配修改:
-
Patch Partition:
- 输入图像尺寸:64×64
- Patch大小:4×4
- 嵌入维度:96
-
Swin Transformer Block:
- 窗口大小:8×8
- 多头注意力头数:3
- MLP扩展比:4
-
阶段设置:
- 阶段1:2个Block,分辨率32×32
- 阶段2:2个Block,分辨率16×16
- 阶段3:6个Block,分辨率8×8
- 阶段4:2个Block,分辨率4×4
-
分类头:
- 全局平均池化
- 全连接层输出10类(对应数据集故障类别)
python复制import torch
import torch.nn as nn
from swin_transformer import SwinTransformer
model = SwinTransformer(
img_size=64,
patch_size=4,
in_chans=1,
num_classes=10,
embed_dim=96,
depths=[2,2,6,2],
num_heads=[3,6,12,24],
window_size=8,
mlp_ratio=4.
)
3. 模型训练与优化
3.1 训练配置
-
硬件环境:
- GPU:NVIDIA RTX 3090 (24GB显存)
- 内存:64GB DDR4
-
软件环境:
- PyTorch 1.12.1
- CUDA 11.3
- Python 3.8
-
训练参数:
- 批量大小:32
- 初始学习率:1e-4
- 优化器:AdamW
- 学习率调度:CosineAnnealingLR
- 训练轮次:100
- 早停耐心:15轮
3.2 关键训练技巧
- 混合精度训练:
python复制scaler = torch.cuda.amp.GradScaler()
with torch.cuda.amp.autocast():
outputs = model(inputs)
loss = criterion(outputs, labels)
scaler.scale(loss).backward()
scaler.step(optimizer)
scaler.update()
- 标签平滑:
python复制criterion = nn.CrossEntropyLoss(label_smoothing=0.1)
- 梯度裁剪:
python复制torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)
4. 实验结果与分析
4.1 性能指标
在CWRU测试集上的表现:
| 模型 | 准确率 | 精确率 | 召回率 | F1分数 |
|---|---|---|---|---|
| 传统SVM | 87.2% | 86.5% | 87.1% | 86.8% |
| 1D-CNN | 92.3% | 91.8% | 92.1% | 91.9% |
| 本文方法 | 98.6% | 98.4% | 98.5% | 98.4% |
4.2 消融实验
验证各组件贡献:
| 配置 | 准确率 |
|---|---|
| 仅原始信号+MLP | 72.1% |
| 时频图+ResNet | 94.3% |
| 时频图+ViT | 96.8% |
| 时频图+SwinT | 98.6% |
4.3 可视化分析
-
时频图特征:
- 正常状态:能量分布均匀
- 外圈故障:周期性冲击特征明显
- 内圈故障:伴随转速调制现象
-
注意力图:
- 浅层:关注局部冲击特征
- 深层:捕捉故障模式全局关联
5. 工程实践建议
-
部署优化:
- 使用TorchScript导出模型
- 量化到INT8精度(精度损失<1%)
- 开发实时推理服务
-
实际应用注意事项:
- 安装位置影响:传感器应尽量靠近轴承座
- 转速变化处理:需要转速同步采集
- 环境噪声抑制:建议配合带通滤波
-
扩展方向:
- 多传感器融合(振动+温度+声发射)
- 迁移学习到其他旋转机械
- 开发轻量化版本(MobileViT架构)
经验之谈:在实际工业场景中,建议保留原始信号和时频图双重数据,既满足模型输入需求,也便于人工复核诊断结果。我们发现当模型置信度低于90%时,结合时频图人工研判能显著降低误诊率。
