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

本项目从零开始搭建深度领域混淆(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.rhkb.cn/news/420166.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

超级帐本(Hyperledger)

1. Hyperledger 项目 Hyperledger 下有两类项目:第一类是区块链框架项目;第二类是支持这些区块链的相关工具或模块。 在 Hyperledger 框架下,目前有 5 个区块链框架项目:Fabric、Sawtooth Lake、Iroha、Burrow 和 Indy。 在模块类下,则有 Hyp…

Spring Boot 集成 Redisson 实现消息队列

包含组件内容 RedisQueue:消息队列监听标识RedisQueueInit:Redis队列监听器RedisQueueListener:Redis消息队列监听实现RedisQueueService:Redis消息队列服务工具 代码实现 RedisQueue import java.lang.annotation.ElementTyp…

原生 iOS 引入 Flutter 报错 kernel_blob.bin 找不到

情况 在一次原生 iOS 项目中引入 Flutter 的过程中,在模拟器中运行出现报错: 未能打开文件“kernel_blob.bin”,因为它不存在。 如下图: 模拟器中一片黑 原因&解决方案 这个是因为 Flutter 的打包 iOS framework 命令中…

OCR技术视角:智能文档管理中的票据自动化识别与处理

在数字化转型的浪潮中,企业对于高效、自动化的文档管理需求日益增长。票据作为企业运营中不可或缺的部分,其识别与管理的智能化成为了提升工作效率的关键。本文将深入探讨智能文档系统中票据识别功能的原理、技术优势以及在不同行业中的应用实践&#xf…

Java、python、php、node.js版 铁路售票自动选座系统 高铁购票系统 火车订票平台(源码、调试、LW、开题、PPT)

💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…

Mac无法安装软件怎么解决?mac安装软件提示无法验证开发者怎么办

在使用 macOS 系统时,你可能会遇到一个常见的问题:当你尝试安装或打开某些应用程序时,系统会弹出一个警告,提示“无法验证开发者”。出现这个提示导致自己无法去进行程序安装,接下来我们就来看看如何解决此问题的方法吧…

云计算实训43——部署k8s基础环境、配置内核模块、基本组件安装

一、前期系统环境准备 1、关闭防火墙与selinux [rootk8s-master ~]# systemctl stop firewalld[rootk8s-master ~]# systemctl disable firewalldRemoved symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus…

VuePress搭建个人博客(一键安装)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

【第26章】Spring Cloud之Sentinel适配API Gateway

文章目录 前言一、准备1. 引入库2. 注册过滤器3. 添加配置4. 效果展示 二、基于网关的流控1. 新增流控规则2. 测试准备3. 测试结果 总结 前言 Sentinel从1.6.0 版本开始,Sentinel 提供了 Spring Cloud Gateway 的适配模块,可以提供两种资源维度的限流&a…

Django + websocket 连不上

看了网上的几个简单例子,一步一步做,但无一成功。都连不上websocket。 后来按一个视频教程的操作步骤来做,成功了。差别在于视频教程中加了 pip install daphne 和setting.py中 连不上的表现: 前端报错: WebSock…

Linux网络协议栈的实现

网络协议栈是操作系统核心的一个重要组成部分,负责管理网络通信中的数据包处理。在 Linux 操作系统中,网络协议栈(Network Stack)负责实现 TCP/IP 协议簇,处理应用程序发起的网络请求并与底层的网络硬件进行交互。本文…

[SWPUCTF 2022 新生赛]

目录 [SWPUCTF 2022 新生赛]ez_rce 什么是poc? [SWPUCTF 2022 新生赛]where_am_i [SWPUCTF 2022 新生赛]js_sign [SWPUCTF 2022 新生赛]xff ​[SWPUCTF 2022 新生赛]numgame call_user_func()函数 ::双冒号运算符 [SWPUCTF 2022 新生赛]ez_sql [SWPUCTF 2…

TortoiseGit无法安装解决方案

Win11安装TortoiseGit报错,错误码:2503,如下图: 开始-右键-Windows PowerShell(管理员)/终端 (管理员) 输入 msiexec /package 安装程序所在绝对路径, 例如 : msiexec /package D:\我的资料…

jenkins 部署应用到多个环境

在日常开发的过程中,我们经常会遇到将应用程序部署到多个环境的需求场景,如会先发布到测试环境,由测试人员进行测试,成功之后,会继续将当前应用部署到集成环境,进行集成测试,全部通过后&#xf…

RAG 聊天机器人:用 Langchain 和 Streamlit开启与 PDF 的智能对话

与大量 PDF 文档的交互如今变得前所未有地便捷与智能。想象一下,您可以轻松与您的笔记、书籍和各种文档进行无缝对话,不再需要繁琐的手动查找和处理。 这篇文章将带您逐步构建一个基于 Multi-RAG 和 Streamlit 的 Web 应用程序,该应用程序通过 AI 驱动的聊天机器人来读取、…

以实时,见未来——DolphinDB 2024 年度峰会圆满举办

2024年9月6日,“以实时,见未来”—— DolphinDB 2024 年度峰会在杭州圆满落下帷幕。本次峰会由主会场与三个专题分会场组成,众多金融机构领导与专家、行业领袖、高校与研究机构学者等近300位嘉宾共襄盛举,一同探讨数智化浪潮下金融…

基于JAVA+SpringBoot+Vue的工程教育认证的计算机课程管理平台

基于JAVASpringBootVue的工程教育认证的计算机课程管理平台 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接…

第三届人工智能与智能信息处理国际学术会议(AIIIP 2024)

目录 大会介绍 基本信息 合作单位 主讲嘉宾 会议组委 征文主题 ​ 参会方式 会议日程 中国-天津 | 2024年10月25-27日 | 会议官网:www.iiip.net 大会介绍 第三届人工智能与智能信息处理国际学术会议(AIIIP 2024)将于202…

MNIST数据集内容查看

测试数据集:t10k-images-idx3-ubyte.gz(1.57 MB ,包含10,000个样本)。测试数据集标签:t10k-labels-idx1-ubyte.gz(4.43 KB,包含10,000个样本的标签)训练数据集:train-ima…

使用 Parallel 类进行多线程编码(上)

用 C# 进行多线程编程有很多方式,比如使用 Thread 对象开启一个新线程,但这已经是一种落后的写法了,现在推荐的写法是使用 Parallel 类,它可以让我们像写传统代码一样编写多线程的程序,Parallel 类有三个常用的方法如下…