“三高”论文完美复现!基于PSO-VMD-MCKD方法的风机轴承微弱故障诊断,实现早期微弱故障诊断,MATLAB代码实现...

news2024/11/27 22:44:46

声明:对于作者的原创代码,禁止转售倒卖,违者必究!

本期文章思路来自振动测试与诊断期刊的一篇三高论文,点击链接可跳转。https://mp.weixin.qq.com/s/hmmDj5IwpaozeL4F0iI-2g

4a3f1b0f0383a4e6425367c0979f6d5d.png

文章摘要如下:

针对风机滚动轴承微弱故障信号所具有的非线性和非平稳特征及易被强背景噪声掩盖的特点,提出了一种变分模态分解(variational modal decomposition,简称VMD)和最大相关峭度解卷积(maximum correlated kurtosis deconvolution,简称MCKD)相结合的滚动轴承微弱故障诊断方法。为实现VMD和MCKD的参数自适应选择,采用粒子群优化算法(particle swarm optimization,简称PSO),对两种算法中的参数进行优化。首先,利用PSO优化VMD算法中的α和K,再基于VMD对微弱故障信号分解后的结果,选取最优模态分量;其次,利用PSO优化MCKD算法中的L和T,再基于MCKD算法加强最优分量信号中的故障冲击成分;最后,通过包络谱提取出轴承微弱故障特征。仿真和试验均表明,此方法能够自适应增强轴承微弱故障中的冲击成分,有效提取出被强噪声淹没的轴承微弱故障特征。

之前小淘发过一篇文章:改进的麻雀算法优化最大相关峭度解卷积(SCSSA-MCKD),这篇文章采用的是模拟的仿真信号,而且当时没有像论文中一样,先对VMD进行优化。

本期文章将采用西储大学轴承数据外圈故障130.mat为例,对该论文的主要方法进行完美复现!先看代码目录:所有代码均为.m文件,不是那种加密的.p文件!

3932909036f63ec407333c88c658573b.png

在介绍步骤流程之前,这里先对西储大学的数据进行一个知识补充。

选择130.mat这个数据进行分析处理一下:

5cc11d2445df433c143eab23db0494ef.jpeg

adb2400ec0440ba4ba1f9d81f5d675ef.jpeg

计算出此时的理论故障特征频率约为:

3a57e319920d625c75f91064d27bca5c.png

可以看到130.mat的理论故障频率为107.3050Hz。接下来的所有工作就是要在噪声淹没130.mat数据的情况下,还要能识别出来这个故障频率。

接下来针对代码目录截图讲步骤:

第一步:轴承数据分析

第一步是对西储大学130.mat的分析,大家也可以对其他数据进行分析。由于要模拟轴承被噪声掩盖的微弱故障信号,因此要先对原始的130.mat数据添加高斯白噪声数据,论文的原文也是这么做的。

运行Signal_Analysis.m文件,可以得到与论文中图10(a),图10(b),图10(c)相同的三幅图。并且会保存一个加了高斯白噪声的signal.mat文件,后面第二步是要针对这个signal.mat文件去优化VMD参数的。

641f5c327d63ea53be7c2c32b7041595.png

38fcfb61035967b178080ed6b8dc88a1.png

be751122726e3157498f3b129d342ee5.png

可以看到,添加了高斯噪声的轴承信号,时域波形中几乎观测不出任何冲击成分,而在频谱图中,也无规律可循。对信号进一步进行包络解调,也未发现突出频率成分。

第二步:采用粒子群算法优化VMD,包络谱峰值因子为适应度函数

采用粒子群算法优化VMD参数,并找到最佳IMF分量:将第一步得到的signal.mat复制到第二步的文件夹中,采用VMD方法对第一步得到的signal.mat信号分解,计算分解得到的各个IMF分量的包络谱峰值因子,包络谱峰值因子最大的IMF分量即为最佳IMF分量;

运行PSOmain.m,可以得到论文中图11(a),图11(b),和一个PSO寻优VMD最佳参数的曲线图。并会将最佳的IMF分量进行保存,得到best_imf.mat文件,后面第三步要对这个best_imf.mat文件进行操作。第二步的代码运行结果如下:

6c1a0779ba363a9e7fde43f2f2f1be09.png

2c7d5fcab74048461e87adbefb736e5a.png

e774ce745b8d38674a5ac4d26ee39d47.png

最后得到的最佳VMD参数结果为:

4b51394896aa40cadf27d57efa907545.png

从最佳IMF分量的包络谱中观测出在108Hz有明显的突出谱线,其幅值较其他谱线都大,但因为其倍频不够明显突出,不能确定108Hz为轴承故障频率。为了避免错诊,应做进一步分析。

第三步:采用粒子群算法优化MCKD,包络谱峰值因子为适应度函数

采用粒子群算法对最大相关峭度解卷积(MCKD)的三个参数进行寻优,得到增强的IMF分量。原文献中只对MCKD的[L,T]两个参数进行了优化,作者在这里进行了改进,对[L,T,M]三个参数进行了优化,以确保找到最佳的MCKD参数。

将第二步得到的best_imf.mat复制到第三步的文件夹中,运行main.m文件,会得到论文中的图12(a),图12(b),和一个PSO优化MCKD的寻优曲线。

ab9b2d4b44b6ebc1f3e2f0d830938e9b.png

88e82a95e009422239eb2b3ad3ebd9eb.png

05366b614341f1d20db8a615c10373c0.png

处理过程如下:

d240def192db9a53981d13bb906f2f46.png

得到的最佳参数分别是[L,T,M] = [532,111,6];

可以看到,与优化前的IMF分量包络谱比较,得到了明显的增强。解卷积后的包络谱中故障特征频率fi 及其2-9倍频的谱线均清晰可见,表明特征频率被准确提取。均是130.mat理论故障频率的倍数。

能够认真看到这里的同学,作者在这里在稍稍提一句,也算是个水论文不错的方法,可以将此文中的VMD方法换成其他数据分解的方法,也可以将粒子群算法换个算法,还可以对MCKD也找一种替换方法,这论文不就凑出来了嘛哈!

部分代码分享

%% 
clear
clc  
close all
fobj=@mckdcost;       %包络谱峰值因子
%% 选取数据
load best_imf.mat  %注意这里替换为自己的数据即可,数据形式为n行*1列,列数必须为1。
data = best_imf;
%% 设置参数
lb = [100 85 1];    %mckd下限
ub = [1000 142 7];  %mckd上限
dim = 3;            % 优化变量数目
Max_iter=30;       % 最大迭代数目
SearchAgents_no=10;       %种群规模
fs = 12000;   %采样频率
%% 调用PSO函数
[fMin , bestX, Convergence_curve ] = PSO(SearchAgents_no,Max_iter,lb,ub,dim,fobj,data,fs);
%% 画适应度函数曲线图,并输出最佳参数
figure
plot(-Convergence_curve,'Color',[0.9 0.5 0.1],'Marker','>','LineStyle','--','linewidth',1);


title('Objective space')
xlabel('Iteration');
ylabel('Best score obtained so far');
legend('PSO优化MCKD')
display(['The best solution obtained by PSO is : ', num2str(fix(bestX))]);  %输出最佳位置
display(['The best optimal value of the objective funciton found by PSO is : ', num2str(-fMin)]);  %输出最佳适应度值


%% 将最佳的MCKD参数回带,求出结果


filterSize = fix(bestX(1));
termIter = 30;
T = fix(bestX(2));
M = fix(bestX(3));
plotMode = 0;
%--------------- Run actual mckd code:数据进行mckd分解---------------------------
[y_final,~,~] = mckd(data,filterSize,termIter,T,M,plotMode);


%% 绘制MCKD处理后的时域波形
fs=12000;%采样频率
Ts=1/fs;%采样周期
L=4000;%采样点数,稍微多点即可,不用全部取完
t=(0:L-1)*Ts;%时间序列
figure;
plot(t,y_final); %故障信号
ylabel('幅值','fontsize',12);
xlabel('t/s','fontsize',12);
xlim([0 t(end)])
title('MCKD处理后的时域波形')
set(gcf,'unit','centimeters','position',[10 16 15 5])

每个代码都有详细的注释,文中提到的所有图片均可运行出来!大家按照文中步骤一一运行即可。

05代码获取

   完整代码获取,点击下方卡片后台回复关键词,不区分大小写:

tgdm829

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

alist windows 命令行版本下载、使用

下载 下载地址 https://github.com/alist-org/alist/releases 文件下载链接 ,直接点击就能下载https://github.com/alist-org/alist/releases/download/v3.27.0/alist-windows-arm64.zip 安装 输入cmd,按enter键,会调出cmd命令行 输入 alis…

内存管理之虚拟内存

本篇遵循内存管理->地址空间->虚拟内存的顺序描述了内存管理、地址空间与虚拟内存见的递进关系,较为详细的介绍了作为在校大学生对于虚拟内存的理解。 内存管理 引入 RAM(内存)是计算机中非常重要的资源,由于造价的昂贵&…

前端对接阿里oss保姆级教程(第二章使用武器)

1.在前端项目下载ali-oss yarn add ali-oss 2.编写上传方法 const OSS require(ali-oss)const client new OSS({// 填写Bucket所在地域。我的杭州的,Region填写为oss-cn-hangzhou。region: oss-cn-hangzhou,//填写组件的密钥accessKeyId: ,accessKeySecret: ,/…

小试GraphQL

之前做的需求,基本都是REST风格,以github提供的api为例,比较二者差异。试用GraphQL,找寻其独到之处 REST REST[1] 一个URI代表一种资源 通过HTTP动词对资源进行操作 以创建一个仓库[2]为例 GET[3], PATCH[4]和 DELETE[5]类似 Gra…

〔023〕Stable Diffusion 之 界面主题 篇

✨ 目录 🎈 系统内置主题🎈 kitchen Theme 主题🎈 Catppuccin Theme 主题🎈 Cozy Nest 主题🎈 系统内置主题 可以通过命令行修改主题,在 webui-user.bat 文件中 set COMMANDLINE_ARGS 参数后面添加 --theme dark 来设置深色主题当然,系统设置里面也自带了很多的主题…

VS2015 设置工程目录不保存 .sdf或.db 文件、 Ipch 文件夹

VS2015 设置工程目录不保存 .sdf或.db 文件、 Ipch 文件夹 sdf或db文件、Ipch文件夹均较大,编译几次就可以达到几十兆。 为了便于工程保持,可以设置这些文件保存于工程之外,但又不影响工程的正常运行。 (PS:这些文件不…

家族小程序开发方案

家族小程序的开发需要考虑到家族成员之间的沟通和互动需求,以及家族文化传承和传承方式等因素。以下是一些开发家族小程序时需要考虑的方面: 家族文化传承:家族小程序需要考虑到家族文化传承的需求,包括家族历史、家族文化、家…

C++真的是 C加加

📝个人主页:夏目浅石. 📌博客专栏:C的故事 🏠学习社区:夏目友人帐. 文章目录 前言Ⅰ. 函数重载0x00 重载规则0x01 函数重载的原理名字修饰 Ⅱ. 引用0x00 引用的概念0x01 引用和指针区分0x03 引用的本质0x04…

【lesson8】冯诺依曼体系的介绍

文章目录 冯诺依曼体系是什么?为什么要有存储器?怎么实现数据传输的? 冯诺依曼体系是什么? 冯诺依曼体系是一种计算机体系结构,是现代计算机的基础被广泛应用。 如图所示: 输入设备:键盘&…

企业直播如何实现多画面多场景切换?

企业直播如何实现多画面多场景切换? 应用场景 主要应用于:企业的会议直播、小型会务直播、异地讲师培训授课,实现较低成本的导播台场景切换效果(阿酷TONY注,比不上硬件导播台,但整体还可以,能…

快手商品详情数据API接口【关键词搜索商品列表数据】APP端商品详情数据

快手商品API接口是快手电商平台为开发者提供的一组接口,允许开发者通过程序代码访问快手电商平台的商品数据,实现商品信息的获取等操作。以下是快手商品API接口的一些常用功能: 获取商品列表:通过该接口可以获取店铺或分类下的商…

安科瑞电流隔离传感器 BA穿孔交流电流变送器-安科瑞黄安南

一.产品原理和功能介绍 BA系列产品应用电磁感应原理,对电网中的交流电流进行实时测量,采用精密恒流技术和线性温度补偿技术,将其隔离变换为标准的直流信号输出 采用24伏或12伏安全电压供电,具有过载能力强、高精度、高隔离、高安…

Linux 手动卸载jdk

Linux 手动卸载jdk 1、先输入java -version 查看是否安装了jdk java -version2、如果安装了,检查下安装的路径 which java(查看JDK的安装路径) which java3、卸载 rm -rf JDK地址(卸载JDK) rm -rf /home/koneom/ja…

为什么现在的LLM都是Decoder only的架构?

LLM 是 “Large Language Model” 的简写,目前一般指百亿参数以上的语言模型, 主要面向文本生成任务。跟小尺度模型(10亿或以内量级)的“百花齐放”不同,目前LLM的一个现状是Decoder-only架构的研究居多,像…

RobotFrameWork环境搭建及使用

RF环境搭建 首先安装python并且配置python环境变量pip install robotframeworkpip install robotframework-ride 生产桌面快捷方式 不行换豆瓣源检查一下pip list RF类库和扩展库 标准库 按F5快捷键查询,可以看到rf自带的库不需要额外安装这些标准库在python的 …

ai智能写作软件哪个好-AI智能写作软件的类型标准

AI智能写作软件能做什么? 节省时间:手动撰写文章和内容可能会非常耗时,而AI智能写作软件可以帮助我们快速生成文字,节省大量时间和精力。 增加生产力:对于内容创作者、营销人员和企业来说,高效地生成文章…

【独家】电视盒子哪个牌子最好?老烧力荐目前性能最强的电视盒子

电视盒子是电视机的最佳拍档,仅需几百元就能让电视机升级换代,身边朋友在挑选电视盒子时不知道电视盒子哪个牌子最好会咨询我的意见,下面我将介绍发烧友们最爱的目前性能最强的电视盒子,如果你近期也想购入电视盒子,记…

sourcetree 配置 gitlab ssh及公钥私钥设置

参考链接:Mac sourcetree 配置 ssh 密钥 - 简书 1.打开sourcetree --新建--从URL克隆,复制你项目的ssh 链接添加进去,如果没有配置就会提示: 这是一个无效的源路径/URL 2.打开sourcetree的设置 3.账户--添加 4.如图输入&#xf…

poi判断excel单元格内容是否为日期

通过cell.getCellType()拿到单元格的数据类型,CellType是一个枚举类型详情如下,能够看到并没有日期类型的code,poi读取到的日期类型的单元格时会认为是NUMERIC类型,然后,poi提供了HSSFDateUtil.isCellDateFormatted(ce…

SEO方案尝试--Nuxtjs项目基础配置

Nuxtjs 最新版 Nuxt3 项目配置 安装nuxtjs 最新版 Nuxt3 参考官网安装安装插件安装ElementPlus页面怎么跳转,路由怎么实现 安装nuxtjs 最新版 Nuxt3 参考官网安装 安装插件 安装ElementPlus 安装 Element Plus 和图标库 # 首先,使用以下命令安装 Eleme…