一、本期代码干了什么事情
本项目基于无监督域适配思想,实现了三种主流的跨工况故障诊断方法(分别是:DAN、DANN、CDAN),并在两个公开轴承数据集(西储大学数据、江南大学数据)上进行了18个迁移任务的实验验证。全程采用MATLAB代码实现。
二、问题背景
轴承故障诊断是工业设备运维的关键环节。传统智能诊断方法通常基于一个前提:训练数据与测试数据来自相同的工况条件。
实际工业环境中,设备的转速、负载时刻发生变化。比如在1797转/分钟下采集的数据训练出的模型,直接用于诊断1730转/分钟下的信号,准确率可能大幅下降。这就是域偏移问题——源域(训练数据)与目标域(测试数据)的分布不再一致。
更棘手的是,目标域数据往往没有标签。设备处于运行状态,无法获知当前故障状态,但仍需要模型做出准确判断。
这个时候,就需要无监督域方法来解决此问题了!
近几年关于无监督域方法方向,发文还是相对来说容易一点的。因为这个方法不同于传统的机器学习、深度学习、数据驱动诊断那一套,无监督域方法的门槛稍高,但只要你掌握了这个方法,发起文章来更有东西可写,不至于烂大街。
三、数据集介绍
西储大学轴承数据集(CWRU)
CWRU数据集是故障诊断领域最经典的基准数据集之一,来自美国Case Western Reserve University的轴承故障实验台。
-
采样频率:12kHz
-
故障类型:正常、内圈故障、外圈故障、滚动体故障,包含不同严重程度(0.007/0.014/0.021英寸),共10个类别
-
工况条件:4种电机转速(1797/1772/1750/1730 rpm),对应不同负载
-
数据规模:每类每种转速设置200个样本,每个样本长度2048点
江南大学轴承数据集(JNU)
JNU数据集来源于江南大学机械工程实验室,采集条件更接近实际工业场景。
-
采样频率:50kHz
-
故障类型:正常、内圈故障、外圈故障、滚动体故障,共4个类别
-
工况条件:3种转速(600/800/1000 rpm)
-
数据规模:每类每种转速设置500个样本,每个样本长度2048点
四、迁移任务设计
不同转速之间两两组合,构成迁移任务(这个迁移任务的设计可参考文献:《吕钟伟.基于迁移学习的滚动轴承故障诊断方法研究[D].山西大学,2025.》)
CWRU(12个任务):4种转速间的所有有向配对(如1797→1772、1772→1797、1797→1750……直至1730→1750)

JNU(6个任务):3种转速间的所有有向配对(如600→800、800→600、600→1000……直至1000→800)

每个任务中,源域数据有标签用于训练,目标域数据无标签仅用于测试评估。训练集与测试集按7:3比例划分,并保证各类别均衡。
五、数据处理流程
原始信号 → 分段截取 → 连续小波变换(CWT) → 64×64×3 RGB时频图
将原始一维振动信号通过连续小波变换转换为二维时频图像,使用cmor3-3复Morlet小波。时频图同时保留时间信息和频率特征,比原始波形包含更丰富的故障表征,并且非常适合卷积神经网络处理。
六、三种域适配方法
DAN(深度适配网络)
核心思想:在深度网络中增加约束,使提取到的源域特征与目标域特征在统计意义上尽可能接近。采用最大均值差异(MMD)度量两个域的分布差距,训练时最小化该差距。
DANN(域对抗神经网络)
核心思想:借鉴生成对抗网络思路。网络中增设“域判别器”,负责分辨特征来自源域还是目标域;特征提取器则要“欺骗”域判别器。通过这一对抗过程,迫使特征提取器学习域不变的特征表示。
CDAN(条件域对抗网络)
核心思想:DANN的改进版本。除特征信息外,还将分类器的预测结果作为条件信息融入域判别过程,使域对齐在考虑类别结构的前提下进行,从而避免粗粒度的全局对齐。
七、结果展示
本项目基于MATLAB实现,支持GPU加速。实验结果如下:
CWRU数据集(10类故障,12个迁移任务)
|
任务 |
源域(rpm) |
目标域(rpm) |
DAN |
DANN |
CDAN |
|---|---|---|---|---|---|
|
A |
1797 |
1772 |
100.00% |
79.17% |
100.00% |
|
B |
1772 |
1797 |
100.00% |
99.83% |
99.83% |
|
C |
1797 |
1750 |
100.00% |
70.33% |
100.00% |
|
D |
1750 |
1797 |
97.33% |
88.33% |
99.00% |
|
E |
1797 |
1730 |
99.33% |
99.17% |
99.50% |
|
F |
1730 |
1797 |
97.67% |
86.33% |
98.67% |
|
G |
1772 |
1750 |
100.00% |
100.00% |
100.00% |
|
H |
1750 |
1772 |
99.17% |
99.00% |
99.50% |
|
I |
1772 |
1730 |
98.50% |
98.17% |
99.83% |
|
J |
1730 |
1772 |
98.83% |
98.50% |
99.50% |
|
K |
1750 |
1730 |
99.33% |
100.00% |
100.00% |
|
L |
1730 |
1750 |
100.00% |
100.00% |
100.00% |
| 平均 |
- |
- | 99.18% | 93.24% | 99.65% |
JNU数据集(4类故障,6个迁移任务)
|
任务 |
源域(rpm) |
目标域(rpm) |
DAN |
DANN |
CDAN |
|---|---|---|---|---|---|
|
M |
600 |
800 |
99.50% |
97.83% |
98.33% |
|
N |
800 |
600 |
97.50% |
92.17% |
99.83% |
|
O |
600 |
1000 |
100.00% |
100.00% |
100.00% |
|
P |
1000 |
600 |
96.00% |
87.83% |
90.00% |
|
Q |
800 |
1000 |
99.50% |
100.00% |
99.83% |
|
R |
1000 |
800 |
96.67% |
85.50% |
98.33% |
| 平均 |
- |
- | 98.19% | 93.89% | 97.72% |
各方法总体平均准确率
|
方法 |
CWRU平均 |
JNU平均 |
总平均 |
|---|---|---|---|
|
DAN |
99.18% |
98.19% |
98.85% |
|
DANN |
93.24% |
93.89% |
93.46% |
|
CDAN |
99.65% |
97.72% |
99.01% |
八、可视化结果:



每一个任务都包含混淆矩阵图、Tsne降维图、损失函数曲线图,这里就不再一一展示。
九、方法对比总结
无监督域适配为跨工况故障诊断提供了一条切实可行的路径:无需目标工况的任何标注数据,仅利用源工况的标注数据和目标工况的无标签数据,即可训练出对目标工况有效的诊断模型。
-
域适配方法效果显著:三种方法在绝大多数跨工况任务中准确率超过90%,表明无监督域适配能有效应对工况变化引起的分布偏移。
-
CDAN表现最优:条件域对抗网络将分类预测信息作为对齐条件,在多数任务中取得最高准确率,说明考虑类别结构的精细对齐优于全局对齐。
-
DAN稳定性好:基于MMD的DAN方法原理简单,所有任务中表现稳定,未出现明显失败案例。
-
DANN偶有波动:对抗训练的不稳定性在部分困难任务(如速差较大的迁移)中有所体现,个别任务准确率相对偏低。
十、代码目录

并在ReadME中详细记载了每个脚本的功能,以及怎么使用。不用担心不会运行代码的问题。

注意,此代码需要2023以上MATLAB运行哦!

276

被折叠的 条评论
为什么被折叠?



