高被引算法GOA优化VMD,结合Transformer-SVM的轴承诊断,保姆级教程!

本期采用2023年瞪羚优化算法优化VMD,并结合Transformer-SVM实现轴承诊断,算是一个小创新方法了。需要水论文的童鞋尽快!

瞪羚优化算法之前推荐过,该成果于2023年发表在计算机领域三区SCI期刊“Neural Computing and Applications”上。GOA方法具有出色的鲁棒性和效率,目前被引258次。

8aa451e0cdd04ede922dd9c80613a3cd.png

本期轴承诊断思路如下:

①对官方下载的西储大学数据进行处理,划分10种故障类型;

②对第一步处理得到的数据进行特征提取,主要是采用GOA算法优化VMD的两个参数(模态分量和惩罚因子),并将优化后的最佳值回带提取10种状态的特征向量;

③采用Transformer模型对提取的特征进行学习,并采用SVM分类器替代传统的softmax分类器,进一步提升模型分类能力。

内容详解

一、数据处理

对官方下载的西储大学数据进行处理,步骤如下:

  1. 一共加载10种数据,然后取每个数据的DE_time(%DE是驱动端数据 FE是风扇端数据 BA是加速度数据 选择其中一个就行)

  2. 设置滑动窗口w,每个数据的故障样本点个数s,每个故障类型的样本量m

  3. 将所有的数据滑窗完毕之后,综合到一个data变量中

  4. 有关西储大学数据的处理之前有文章也讲过,大家可以看这篇文章:西储大学轴承诊断数据处理,matlab免费代码获取

    最后得到的数据是一个1000*2048的矩阵,其中1000是样本量,2048是特征。1000又等于100*10,10是指10种故障状态,100是指每种状态有100个样本。在代码中是data_total_1797.mat

二、特征提取

对第一步数据处理得到的数据进行特征提取:

选取五种适应度函数进行优化,这里大家可以自行决定选哪一个!以此确定VMD的最佳k和α参数。五种适应度函数分别是:最小包络熵,最小样本熵,最小信息熵,最小排列熵,排列熵/互信息熵,代码中可以一键切换。至于应该选择哪种作为自己的适应度函数,大家可以看这篇文章。VMD为什么需要进行参数优化,最小包络熵/样本熵/排列熵/信息熵,适应度函数到底该选哪个

关于特征提取的具体原理,也在这篇文章进行过详细介绍,大家可以跳转阅读。简单来说,就是利用包络熵最小的准则把每个样本的最佳IMF分量提取出来,然后对其9个指标进行计算,分别是:均值,方差,峰值,峭度,有效值,峰值因子,脉冲因子,波形因子,裕度因子。然后用这9个指标构建每个样本的特征向量。

本篇文章采用了2023年一个高被引算法--瞪羚优化器(GOA),对VMD参数进行了优化,找到了每个故障类型的最佳IMF分量,并利用包络熵最小的准则,提取出了最佳的IMF分量。每个状态的优化曲线图我也画出来了:

72c1ce4382d59822f562b02c28c424c2.jpeg

运行程序后会在命令行窗口打印寻优过程如下:

正在对第1个故障类型的数据进行VMD优化……请耐心等待!
第1个故障类型数据的最佳VMD参数是:2041     9最佳IMF分量是:IMF6
正在对第2个故障类型的数据进行VMD优化……请耐心等待!
第2个故障类型数据的最佳VMD参数是:626    3最佳IMF分量是:IMF2
正在对第3个故障类型的数据进行VMD优化……请耐心等待!
第3个故障类型数据的最佳VMD参数是:114    9最佳IMF分量是:IMF3
正在对第4个故障类型的数据进行VMD优化……请耐心等待!
第4个故障类型数据的最佳VMD参数是:192    3最佳IMF分量是:IMF3
正在对第5个故障类型的数据进行VMD优化……请耐心等待!
第5个故障类型数据的最佳VMD参数是:427    5最佳IMF分量是:IMF3
正在对第6个故障类型的数据进行VMD优化……请耐心等待!
第6个故障类型数据的最佳VMD参数是:242   10最佳IMF分量是:IMF10
正在对第7个故障类型的数据进行VMD优化……请耐心等待!
第7个故障类型数据的最佳VMD参数是:256   10最佳IMF分量是:IMF6
正在对第8个故障类型的数据进行VMD优化……请耐心等待!
第8个故障类型数据的最佳VMD参数是:510    8最佳IMF分量是:IMF8
正在对第9个故障类型的数据进行VMD优化……请耐心等待!
第9个故障类型数据的最佳VMD参数是:218    3最佳IMF分量是:IMF3
正在对第10个故障类型的数据进行VMD优化……请耐心等待!
第10个故障类型数据的最佳VMD参数是:820    4最佳IMF分量是:IMF4

三,采用Transformer-SVM模型实现故障分类

Transformer 作为一种创新的神经网络结构,深受欢迎。采用 Transformer 编码器对数据特征间的复杂关系以及时间序列中的长短期依赖关系进行挖掘,并在模型最后的分类阶段,将传统的softmax分类器替换为SVM分类器,进一步提升模型的分类准确率!

本文所选SVM是从官网下载的libsvm-3.3版本,已编译好,大家可以直接运行。

将第二步提取的特征划分训练集与测试集后(3:1),送入Transformer-SVM模型进行训练,结果如下:

结果展示

2c15609bceb122f9ab5af21c2d9f21a6.png

c36988fea3d971ca05c3104c14ca015e.png

同时还绘制了Transformer模型识别前后的样本分布图,采用tsne降维后绘制二维平面图如下:

9b731ab93cc1058f32bf3d955566907b.png

代码目录:

a8b2294077c083481e2135bf1ca2f161.png

最后一个压缩包是有关VMD画图的程序。考虑到大家可能会用到VMD的相关作图,包络谱,频谱图等,作者在这里也一并附在代码中了。这部分大家需要自行更改数据!也就是作者比较火的文章之一,这里边提到的所有代码:VMD分解,matlab代码,包络线,包络谱,中心频率,峭度值,能量熵,样本熵,模糊熵,排列熵,多尺度排列熵,西储大学数据集为例

代码获取

点击下方卡片获取。

已将此代码添加至故障诊断全家桶中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/443851.html

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

相关文章

智能配音软件哪款好?分享5个搞怪软件

想要让视频或社交媒体内容更加生动有趣?搞笑配音软件是个不错的选择。 无论是嘻哈风格的视频,还是搞怪的段子,合适的配音都能让内容增色不少。 今天,就让我们来探索六个文字配音软件,它们不仅能帮你实现搞笑配音&…

Centos7安装RocketMQ[图文教程]

文章目录 RocketMQ介绍基于Linux服务部署RocketMQ(单机)配置JDK环境下载RocketMQ部署RocketMQ1、解压2、修改VM参数3、配置环境变量4、编写Service文件5、启动服务 基于Docker方式部署RocketMQ安装Docker编写docker-compose文件启动RocketMQ服务 部署Roc…

嵌入式面试——FreeRTOS篇(四) 信号量

本篇为:FreeRTOS信号量篇 信号量 1、什么是信号量 答: 信号量是一种解决同步问题的机制,可以实现对共享资源的有序访问。 2、信号量简介 答: 当计数值大于0,表示有信号量资源。当释放信号量,信号量计数…

SQL 干货 | 使用 EXISTS 编写 SELECT 查询

基于 SQL 中的 EXISTS 运算符为我们提供了一种基于其他数据是否存在(或不存在)来检索数据的简便方法。更具体地说,它是一个逻辑运算符,用于评估子查询的结果,并返回一个布尔值,该值指示是否返回了行。尽管 …

Elasticsearch 实战应用

Elasticsearch 实战应用 引言 Elasticsearch 是一个分布式、RESTful 风格的搜索和分析引擎,能够快速、实时地处理大规模数据,广泛应用于全文搜索、日志分析、推荐系统等领域。在这篇博客中,我们将从 Elasticsearch 的基本概念入手&#xff…

ubuntu 开放 8080 端口快捷命令

文章目录 查看防火墙状态开放 80 端口开放 8080 端口开放 22端口开启防火墙重启防火墙**使用 xhell登录**: 查看防火墙状态 sudo ufw status [sudo] password for crf: Status: inactivesudo ufw enable Firewall is active and enabled on system startup sudo…

curl执行报【先没有那个文件或目录】解决办法

开发微信发过了curl命令后,执行报错 是空格导致的,解决办法是打开下面网址重新输入空格即可 在线curl命令转代码 删除这个空格 重新输入空格

SCI论文快速排版:word模板一键复制样式和格式【重制版】

关注B站可以观看更多实战教学视频:hallo128的个人空间 SCI论文快速排版:word模板一键复制样式和格式:视频操作 SCI论文快速排版:word模板一键复制样式和格式【重制版】 模板与普通文档的区别 为了让读者更好地了解模板&#xff…

国产工具链GCKontrol-GCAir助力控制律开发快速验证

前言 随着航空领域技术的不断发展,飞机的飞行品质评估和优化成为了航空领域的一个重要任务,为了确保飞行器在各种复杂条件下的稳定性,控制律设计过程中的模型和数据验证需要大量仿真和测试。 本文将探讨基于世冠科技的国产软件工具链GCKont…

前端Vue3字体优化三部曲(webFont、font-spider、spa-font-spider-webpack-plugin)

前端Vue字体优化三部曲(webFont、font-spider、spa-font-spider-webpack-plugin) 引言 最近前端引入了UI给的思源黑体字体文件,但是字体文件过于庞大,会降低页面首次加载的速度,目前我的项目中需要用到如下三个字体文…

IP协议报文

一.IP协议报头结构 二.IP协议报头拆解 1.4位版本 实际上只有两个取值,分别是4和6,4代表的是IPv4,6代表的是IPv6。 2.4位首部长度 IP协议报头的长度也是边长的,单位是*4,这里表示的大小为0~15,当数值为1…

从FastBEV来学习如何做PTQ以及量化

0. 简介 对于深度学习而言,通过模型加速来嵌入进C是非常有意义的,因为本身训练出来的pt文件其实效率比较低下,在讲完BEVDET后,这里我们将以CUDA-FastBEV作为例子,来向读者展示如何去跑CUDA版本的Fast-BEV,…

刷题 链表

面试经典150题 - 链表 141. 环形链表 class Solution { public:bool hasCycle(ListNode *head) {ListNode* slow head, *fast head;while (fast ! nullptr && fast->next ! nullptr) {slow slow->next;fast fast->next->next;if (slow fast) {return…

java9的juc包中的Flow接口(响应式编程/发布订阅模式)

前言 在java9的juc包中有一个Flow接口,里面有几个接口 分别为 Publisher 发布者Subscriber 订阅者 Subscription 订阅关系 Processor 中间操作用来完成发布订阅模式的响应式开发 我的环境为java17 响应式编程 底层:基于数据缓冲队列消息驱动模型异…

简单的网络爬虫爬取视频

示例代码爬取一个周杰伦相关视频 import requests# 自己想下载的视频链接 video_url https://vdept3.bdstatic.com/mda-qg8cnf4bw5x6bjs5/cae_h264/1720516251158906693/mda-qg8cnf4bw5x6bjs5.mp4?v_from_shkapp-haokan-hbf&auth_key1728497433-0-0-4a32e13f751e04754e4…

RandLA-Net PB C++

tensorflow pb 模型 实现 c++ 部署 Code: https://github.com/QingyongHu/RandLA-Net RandLA-Net PB C++ randlanet_tf.h #ifndef RANDLANET_TF_H_

gaussdb hccdp认证模拟题(判断)

1.在事务ACID特性中,原子性指的是事务必须始终保持系统处于一致的状态。(1 分) 错。 2.某IT公司在开发软件时,需要使用GaussDB数据库,因此需要实现软件和数据的链接,而DBeaver是一个通用的数据库管理工具和 SQL 客户端&#xff…

【windows Server 2012】把我的电脑放在桌面

WinR 打开命令输入框 输入 rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0

深入理解 CSS 浮动(Float):详尽指南

“批判他人总是想的太简单 剖析自己总是想的太困难” 文章目录 前言文章有误敬请斧正 不胜感恩!目录1. 什么是 CSS 浮动?2. CSS 浮动的历史背景3. 基本用法float 属性值浮动元素的行为 4. 浮动对文档流的影响5. 清除浮动clear 属性清除浮动的技巧1. 使用…

推荐一个物联网平台,支持源代码交付

ThingsKit物联网平台概述: ThingsKit是一个开箱即用的物联网平台,它支持通过行业标准的物联网协议(如MQTT、TCP、UDP、CoAP和HTTP)实现设备连接。这个平台能够帮助用户快速实现物联网的数据收集、分析处理、可视化和设备管理&…