本项目从零开始搭建深度领域混淆(Deep Domain Confusion,DDC)算法。项目包括加载CWRU轴承原始信号,信号处理、数据集制作,模型搭建,DDC域混淆算法设计、特征可视化,混淆矩阵等流程来帮助读者学习基于迁移学习的故障诊断。学懂本项目即可了解故障诊断之迁移学习的基本流程。本项目中[*所有程序代码包含详细的注释*],适合新生小白学习。
1.数据集介绍
1.1试验台介绍
CWRU凯斯西储大学数据集包括四种轴承不同轴承健康状态,即正常状态、内圈故障、外圈故障和滚动体故障。分别有7mils、14mils和21mils三种故障直径(1mils=0.0254mm)。该电动机在0hp、1hp、2hp、3hp四种不同的负载和1730r/min、1750r/min、1772r/min、1797r/min四种不同转速下收集振动信号。
图1. CWRU试验台
1.2采集信号样本介绍
(1)正常数据样本
Motor Load (HP) | Approx. Motor Speed (rpm) | Normal Baseline Data |
0 | 1797 | 97.mat |
1 | 1772 | 98.mat |
2 | 1750 | 99.mat |
3 | 1730 | 100.mat |
(2)故障数据样本
故障直径 | 电机负载 (HP) | 电机 转速 (rpm) | 内圈 故障 | 滚珠故障 | 外圈故障 | ||
Centered | Orthogonal | Opposite | |||||
0.007" | 0 | 1797 | 105.mat | 118.mat | 130.mat | 144.mat | 156.mat |
1 | 1772 | 106.mat | 119.mat | 131.mat | 145.mat | 158.mat | |
2 | 1750 | 107.mat | 120.mat | 132.mat | 146.mat | 159.mat | |
3 | 1730 | 108.mat | 121.mat | 133.mat | 147.mat | 160.mat | |
0.014" | 0 | 1797 | 169.mat | 185.mat | 197.mat | * | * |
1 | 1772 | 170.mat | 186.mat | 198.mat | * | * | |
2 | 1750 | 171.mat | 187.mat | 199.mat | * | * | |
3 | 1730 | 172.mat | 188.mat | 200.mat | * | * | |
0.021" | 0 | 1797 | 209.mat | 222.mat | 234.mat | 246.mat | 258.mat |
1 | 1772 | 210.mat | 223.mat | 235.mat | 247.mat | 259.mat | |
2 | 1750 | 211.mat | 224.mat | 236.mat | 248.mat | 260.mat | |
3 | 1730 | 212.mat | 225.mat | 237.mat | 249.mat | 261.mat |
2.数据预处理
数据预处理部分主要是将原始信号划分为训练集和测试集,以用于训练模型。该部分包括:
- 加载原始信号,从.mat原始数据中加载信号数据;
- 信号分割,即将原始信号分割为多个样本;
- 信号变换,将时域信号转换为频域信号;
- 信号归一化,将信号进行归一化处理;
- 信号重塑,将信号转换为[batch, channel, height, weight]的数据,以便于输入卷积模型;
- 数据集生成,将每个类别的样本和标签进行拼接,组成一个完成的训练集。
图2. 信号预处理过程
2.1加载原始信号
从mat文件中加载原始的信号,如下图所示。
图3. 原始信号
2.2信号分割
从原始信号中随机采样n个样本长度为1024的样本,如下图所示。
图4. 截取的单个样本信号
2.3对原始信号进行FFT变换
图5. 时域信号变换为频域信号
2.4信号重塑
将长度为[1024]的一维频域信号重塑为[32, 32]的二维信号,如下图所示。
图6. 二维信号
3.模型介绍
3.1模型结构介绍
本项目使用的轻量化模型主要由标准卷积(Conv1和Conv2)、轻量化特征提取块(Block1和Block2)和分组卷积GC组成,如图6所示,在网络最后一层施加MMD策略。
图7. 诊断模型结构
3.2模型结构参数介绍
具体的模型结构如表1所示,如果不理解可以查看ShuffleNet参考文献。
表1. 诊断模型详细结构参数
4.程序介绍
本项目包含的所有程序文件如下:
图8. DDC项目包含的所有文件
5.混淆矩阵
本项目根据模型保存的预测标签与真实标签来画混淆矩阵,DDC算法在0hp至0hp、0hp至1hp、0hp至2hp、0hp至3hp四个迁移任务中混淆矩阵如下,可以看出DDC在四个迁移任务中均取得了100%准确的分类结果。
图9. DDC在四个迁移任务中模型输出预测标签与真实标签混淆矩阵
6.特征可视化
本项目根据通过加载训练时保存的模型并抽取某一层特征,然后利用t-SNE算法对特征进行可视化,DDC算法在0hp至0hp、0hp至1hp、0hp至2hp、0hp至3hp四个迁移任务中特征可视化效果如下,可以看出DDC在四个迁移任务中均取得了良好的聚类效果。
7.项目包含的程序文件
项目文件具体包含以下具体文件:
完整项目获取:kk:1764619824
1. CWRU原始信号数据;
2. 数据预处理程序文件:该文件包含加载原始信号、样本采样、信号变换、信号归一化、样本打标签、生成训练集和测试集。
3. 自己搭建的诊断模型;
4.DDC域混淆算法程序文件,CWRU变工况诊断准确率可达100%;
5. 模型训练与测试程序文件,该文件的功能包括:
(1)保存最佳诊断模型;
(2)保存最佳模型预测的分类标签;
(3)保存模型的训练过程,包括训练集的损失和准确率、测试集的损失和准确率,以及总的训练损失。
(4)项目使用深度域混淆算法DDC来优化模型。
6. 绘制混淆矩阵的程序文件,该文件可以读取保存的预测标签并绘制混淆矩阵;
7. 模型测试与特征抽取的程序文件,该文件可以:
(1)加载4保存好的模型并进行测试模型的效果;
(2)抽取模型提取的某一层特征,以便于特征可视化;
8. 特征可视化程序文件,该文件可以加载6抽取好的特征进行t-SNE可视化。