故障诊断迁移学习项目DDC(保姆教程)

news/2024/9/17 19:08:55/ 标签: 迁移学习, 人工智能, 机器学习

本项目从零开始搭建深度领域混淆(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
@6:00

Orthogonal
@3:00

Opposite
@12:00

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可视化。


http://www.ppmy.cn/news/1523642.html

相关文章

电脑系统找不到mfc100u.dll,无法继续执行代码的多种解决方法

当你试图打开某些应用程序或游戏时,可能会收到“mfc100u.dll文件丢失”的错误消息。这个错误通常会使应用程序或游戏无法正常启动。以下关于mfc100u.dll丢失的解决方法的一些分析。 一.什么是mfc100u.dll文件 mfc100u.dll是Microsoft Visual Studio 2010应用程序使…

flutter之常用数据类型

常用数据类型学习: Numbers(数值类型) int 例如:1、10、100 整型 int num 1; int num2 10; int num3 100; double 例如:0.1、2.3、10.1 浮点型 double a 0.1; double b 2.3; double c …

c++开关灯

题目描述 现有 𝑛n 盏灯排成一排,从左到右依次编号为:11,22,……,𝑛n。然后依次执行 𝑚m 项操作。 操作分为两种: 指定一个区间 [𝑎,𝑏][a,b]&…

Linux常见运维命令

lscpu socket lsblk 硬盘 ip a free -mh 内存 lspci -nn | grep -i nvidia 修改ipmi地址 ipmitool lan print ipmitool -I open lan set 1 ipsrc static 设置本地BMC地址为静态,才能设置IP ipmitool -I open lan set 1 ipaddr 192.168.0.51 设置本地BMC的IP地址 ipm…

QT多个界面

主函数 #include "widget.h" #include "second.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;Second s;QObject::connect(&w,&Widget::my_signals,&s,&Second::my_slots);w.…

哈希leetcode-1

目录 1前言 2.例题 2.1两数之和 2.2判断是否互为字符重排 2.3存在重复元素1 2.4存在重复元素2 2.5字母异位词分组 1前言 哈希表主要是适合于快速查找某个元素&#xff08;O(1)&#xff09; 当我们要频繁的查找某个元素&#xff0c;第一哈希表O(1)&#xff0c;第二&#xf…

Python Flask 实现图片上传页面

其中index.html文件&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Image and Text U…

云计算之网络

目录 一、VPC&#xff1a;云网络的基石 1.1 VPC产品介绍 1.2 vswitch交换机 1.3 vrouter路由器 1.4 产品架构 1.5 常见问题解答及处理 1.5.1 VPC内如何查询某个IP归属? 1.5.2 网络ACL阻断导致ECS访问CLB不通 1.5.3 EIP秒级突发/分布式限速丢包 1.5.4 NAT网关的流量监…

【项目一】基于pytest的自动化测试框架day1

day1不涉及编写代码&#xff0c;只简单梳理接口测试相关的概念。 day1接口测试的本质&#xff1a;功能测试的一部分测试用例的设计与实现接口调试与自动化&#xff1a;从postman到持续集成补充概念 day1 接口测试的本质&#xff1a;功能测试的一部分 接口测试是功能测试的一部…

ETL_场景练习

1 行列转换 (1) 列拆分为多行 把指定字段按指定分隔符进行拆分为多行,然后其它字段直接复制. select字段列,hobby2 from tbl -- lateral view udtf(expression) tablealias as columnalias (‘,’ columnalias) lateral view explode(split(hobby,;)) temp as hobby2 (2) 行扁…

unreal engine骨骼绑定重定向实现自定义人物替换游戏中小白人,但是用小白人或者某超人现有的移动等功能再次折腾笔记...

image.png 2023年6月整过&#xff0c;也出过演示 视频&#xff0c; 视频演示地址https://www.bilibili.com/video/BV1AP4y167iF/?spm_id_from333.999.0.0 2024,ue5.4增加了自动ik重定向&#xff0c;但是我发现我那个模型不行&#xff0c;而我以前是手动添加的。 时隔1年重新折…

奢侈品牌用AI和计算机视觉打击假货

美国海关压毁了价值超过60万美元的17,000多块假冒名牌手表。这些手表包括劳力士、百达翡丽、昆仑和康科德的山寨产品&#xff0c;是在“秒表行动”假表打击行动中查获的。 在当下真伪难辨的时代&#xff0c;奢侈品市场正转向一个强大的盟友——计算机视觉&#xff08;CV&#…

vim常用快捷键问答之二

vim的查找和替换功能快捷键有哪些&#xff1f;怎样记忆它们&#xff1f; 在 Vim 中&#xff0c;查找和替换功能是非常常用的操作。下面是一些常用的查找和替换快捷键以及如何记忆它们。 常用查找命令 查找单词 /pattern&#xff1a;从光标位置向下查找 pattern&#xff0c;按…

C++20标准对线程库的改进:更安全、更高效的并发编程

引言 C20 是 C 语言的一个重要里程碑&#xff0c;它引入了许多新特性&#xff0c;其中就包括对线程库&#xff08;thread&#xff09;的重大改进。这些改进不仅增强了语言的并发编程能力&#xff0c;还解决了先前版本中的一些痛点问题。本文将详细介绍 C20 在线程方面的改进&a…

超越IP-Adapter!阿里提出UniPortrait,可通过文本定制生成高保真的单人或多人图像。

阿里提出UniPortrait&#xff0c;能根据用户提供的文本描述&#xff0c;快速生成既忠实于原图又能灵活调整的个性化人像&#xff0c;用户甚至可以通过简单的句子来描述多个不同的人物&#xff0c;而不需要一一指定每个人的位置。这种设计大大简化了用户的操作&#xff0c;提升了…

图文解析保姆级教程:Tomcat下载、安装、卸载、启动、关闭,解决窗口闪退问题、端口号冲突问题

文章目录 1. 下载2. 安装与卸载3. 启动与关闭4. 常见问题问题1&#xff1a;Tomcat启动时&#xff0c;窗口一闪而过问题2&#xff1a;端口号冲突&#xff08;Tomcat使用的端口被占用&#xff09; 此教程摘选自我的笔记&#xff1a;黑马JavaWeb开发笔记14——Tomcat&#xff08;介…

详细介绍msvcr120.dll文件以及修复msvcr120.dll丢失的几种方法

遇到“msvcr120.dll丢失”错误通常会在尝试运行某些程序时发生&#xff0c;这类错误提示“程序无法启动&#xff0c;因为您的计算机缺少msvcr120.dll文件。”这可能导致许多用户感到困扰和不便。有几个步骤可以帮助你轻松修复“msvcr120.dll丢失”错误&#xff0c;保证应用程序…

2024国赛数学建模-模拟火算法(MATLAB 实现)

模拟退火算法 1.1 算法原理 模拟退火算法的基本思想是从一给定解开始 ,从邻域 中随机产生另一个解 ,接受 Metropolis准则允许目标函数在 有限范围内变坏 ,它由一控制参数 t决定 ,其作用类似于物 理过程中的温度 T,对于控制参数的每一取值 ,算法持续进 行“产生 —判断 —接受…

Not all code paths return a value. <ArkTSCheck>

这个错误提示 “Not all code paths return a value.” 意思是您的某些代码路径没有返回值。 这通常发生在定义了一个应该返回值的函数或方法&#xff0c;但存在某些情况或分支导致没有返回相应的值。您需要检查相关的函数&#xff0c;确保在所有可能的执行路径中都有返回值。…

vue如何使用百度地图

一、引入百度地图 1.public文件夹下放置index.html文件 2.在html文件中引入网址&#xff0c; 二、在config.js文件中添加externals.BMap配置&#xff0c;与entry平级&#xff0c;内容如下 三、设置地图区域 必须设置div宽度和高度&#xff0c;否则也不能正常显…