基于冯洛伊曼拓扑的鲸鱼算法用于滚动轴承的故障诊断研究(Matlab代码实现)

news2025/2/26 19:51:50
👨‍🎓 个人主页: 研学社的博客
💥 💥 💞 💞 欢迎来到本博客 ❤️ ❤️ 💥 💥


🏆 博主优势: 🌞 🌞 🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。


座右铭:行百里者,半于九十。

📋 📋 📋 本文目录如下: 🎁 🎁 🎁
目录
💥1 概述
📚2 运行结果
2.1 改进鲸鱼算法
2.2 普通 lssvm
🎉3 参考文献
🌈4 Matlab代码实现

💥1 概述

本文利用最小二乘支持向量机进行分类器建模,改进鲸鱼算法(基于冯洛伊曼拓扑的鲸鱼算法)进行超参数寻优,最后将所提方法用于滚动轴承的故障诊断。

📚2 运行结果

2.1 改进鲸鱼算法

2.2 普通 lssvm

部分代码:

%% 本程序用于多种优化算法的对比

% 分别为粒子群 遗传算法 鲸鱼算法 基于冯洛伊曼拓扑的鲸鱼算法

% 运行只需要取消对应算法的注释

% 将不需要的算法加上注释 即‘%’

% 由于运行比较慢 我已经保存了一次vnwoa的结果在trace中

% 未优化的程序在lssvm_putong中

clear

clc

close all

format compact

%% 加载数据

load data_kjade

input=data_kjade;

output=[1*ones(1,100) 2*ones(1,100) 3*ones(1,100) 4*ones(1,100) 5*ones(1,100) 6*ones(1,100) 7*ones(1,100) 8*ones(1,100) 9*ones(1,100) 10*ones(1,100)]';

rand('seed',0)

%% 随机取700为训练集 300为测试集

[m,n]=sort(rand(1,1000));

m=700;

X1=input(n(1:m),:);

y1=output(n(1:m),:);

Xt=input(n(m+1:end),:);

yt=output(n(m+1:end),:);

%%

N=5;

G=10;

% [x,trace]=psoforlssvm(N,G,X1,y1,Xt,yt);%粒子群算法

% [x,trace]=gaforlssvm(N,G,X1,y1,Xt,yt);%遗传算法

[x,trace]=woaforlssvm(N,G,X1,y1,Xt,yt);%鲸鱼算法

% [x,trace]=vnwoaforlssvm(N,G,X1,y1,Xt,yt);%改进鲸鱼算法

load trace

figure

plot(trace)

xlabel('迭代次数')

ylabel('适应度值')

title('适应度曲线')

%%

gam = x(1)

sig2 =x(2)

% 利用寻优得到的最优gam与sig2重新训练lssvm

[yc,codebook,old_codebook] = code(y1,'code_OneVsOne');

%code_OneVsAll

%code_OneVsOne

%code_MOC

model = initlssvm(X1,yc,'c',gam,sig2,'RBF_kernel');

model = trainlssvm(model);

Y = simlssvm(model,X1);

predict_label = code(Y,old_codebook,[],codebook);

fprintf(1,'Accuracy: %2.2f\n',100*sum(predict_label==y1)/length(y1));

figure

stem(y1)

hold on

plot(predict_label,'*')

xlabel('训练集样本编号')

ylabel('输出标签')

title('训练集分类输出')

%%% 测试集准确率

Y = simlssvm(model,Xt);

predict_label = code(Y,old_codebook,[],codebook);

fprintf(1,'Accuracy: %2.2f\n',100*sum(predict_label==yt)/length(yt));

figure

stem(yt)

hold on

plot(predict_label,'*')

xlabel('测试集样本编号')

ylabel('输出标签')

title('测试集分类输出')

%% 普通 lssvm

clear

clc

close all

format compact

addpath LSSVMlab

%% 加载数据

load data_kjade

input=data_kjade;

output=[1*ones(1,100) 2*ones(1,100) 3*ones(1,100) 4*ones(1,100) 5*ones(1,100) 6*ones(1,100) 7*ones(1,100) 8*ones(1,100) 9*ones(1,100) 10*ones(1,100) ]';

rand('seed',0)

%% 随机取700为训练集 300为测试集

[m,n]=sort(rand(1,1000));

m=700;

X1=input(n(1:m),:);

y1=output(n(1:m),:);

Xt=input(n(m+1:end),:);

yt=output(n(m+1:end),:);

%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

gam = 81.6492 ;

sig2 =53.5081;

[yc,codebook,old_codebook] = code(y1,'code_MOC');

model = initlssvm(X1,yc,'c',gam,sig2,'RBF_kernel');

model = trainlssvm(model);

%% 测试集准确率

Y = simlssvm(model,Xt);

predict_label = code(Y,old_codebook,[],codebook);

fprintf(1,'Accuracy: %2.2f\n',100*sum(predict_label==yt)/length(yt));

figure

stem(yt)

hold on

plot(predict_label,'*')

xlabel('测试集样本编号')

ylabel('输出标签')

title('测试集分类输出')

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]张兆坤,杨国华,张佳豪,杨晓伟,张云飞.基于VNWOA-LSSVM变压器故障诊断方法研究[J].电工电气,2022(12):32-36+62.

[2]杨亚红,王海瑞.基于AsyLnCPSO-SVM的滚动轴承故障诊断研究[J].农业装备与车辆工程,2022,60(10):163-166.

[3]左晗玥. 基于参数优化VMD的滚动轴承故障诊断方法研究[D].内蒙古科技大学,2022.DOI:10.27724/d.cnki.gnmgk.2022.000782.

🌈4 Matlab代码实现

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

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

相关文章

【YOLO】YOLOv8实操:环境配置/自定义数据集准备/模型训练/预测

YOLOv8实操:环境配置/自定义数据集准备/模型训练/预测引言1 环境配置2 数据集准备3 模型训练4 模型预测引言 源码链接:https://github.com/ultralytics/ultralytics yolov8和yolov5是同一作者,相比yolov5,yolov8的集成性更好了&a…

C++面向对象丨1. 内存分区模型

Author:AXYZdong 硕士在读 工科男 有一点思考,有一点想法,有一点理性! 定个小小目标,努力成为习惯!在最美的年华遇见更好的自己! CSDNAXYZdong,CSDN首发,AXYZdong原创 唯…

图解NLP模型发展:从RNN到Transformer

图解NLP模型发展:从RNN到Transformer 自然语言处理 (NLP) 是深度学习中一个颇具挑战的问题,与图像识别和计算机视觉问题不同,自然语言本身没有良好的向量或矩阵结构,且原始单词的含义也不像像素值那么确定和容易表示。一般我们需…

【随笔记】Win11、RTX3070、CUDA117的深度学习机器学习环境配置

文章目录一、创建深度学习 Conda 虚拟环境二、安装 Pytorch-Gpu三、安装 PyTorch Geometric四、安装 Sklearn五、Jupyter 配置5.1 将虚拟环境加入内核5.2 插件配置5.3 主题、字体、字号配置假设你已经安装了Anaconda3(最新Anaconda3的安装配置及使用教程&#xff08…

里程碑,ChatGPT插件影响几何?

目录插件发布网络浏览器代码解释器平台生态微软魄力总结3月15日OpenAI推出了GPT-4,引起了全球轰动,仅仅过去一周多时间,OpenAI又宣布推出插件功能。如果说ChatGPT是AI的“iPhone时刻”,那么插件就是ChatGPT的“App Store”。超强的…

SpringBoot整合Flink(施耐德PLC物联网信息采集)

SpringBoot整合Flink(施耐德PLC物联网信息采集)Linux环境安装kafka前情:施耐德PLC设备(TM200C16R)设置好信息采集程序,连接局域网,SpringBoot订阅MQTT主题,消息转至kafka&#xff0c…

【chatgpt-01】部署学术神器chatgpt_academic

目录1 chatgpt_academic简介2 前置准备3 项目下载/配置4 安装依赖5 项目配置6 运行7 测试实验性功能1 chatgpt_academic简介 chatgpt_academic是一个科研工作专用ChatGPT拓展,特别优化学术Paper润色体验,支持自定义快捷按钮,支持markdown表格…

Jenkins部署与自动化构建

Jenkins笔记 文章目录Jenkins笔记[toc]一、安装Jenkinsdocker 安装 JenkinsJava启动war包直接安装二、配置mavenGit自动构建jar包三、自动化发布到测试服务器运行超时机制数据流重定向编写清理Shell脚本四、构建触发器1. 生成API token2. Jenkins项目配置触发器3. 远程Git仓库配…

Elasticsearch:配置选项

Elasticsearch 带有大量的设置和配置,甚至可能让专家工程师感到困惑。 尽管它使用约定优于配置范例并且大部分时间使用默认值,但在将应用程序投入生产之前自定义配置是必不可少的。 在这里,我们将介绍属于不同类别的一些属性,并讨…

【风光场景生成】基于改进ISODATA的负荷曲线聚类算法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。⛳座右铭&#…

《计算机网络-自顶向下》04. 网络层-数据平面

文章目录网络层数据平面和控制平面两者的概述数据平面控制平面控制平面:传统方法控制平面:SDN 方法网络服务模型路由器工作原理通用路由器体系结构输入端口的功能基于目标的转发交换结构内存交换方式总线交换方式纵横式交换方式输出端口的功能何时何处出…

YOLOV8改进:如何增加注意力模块?(以CBAM模块为例)

YOLOV8改进:如何增加注意力模块?(以CBAM模块为例)前言YOLOV8nn文件夹modules.pytask.pymodels文件夹总结前言 因为毕设用到了YOLO,鉴于最近V8刚出,因此考虑将注意力机制加入到v8中。 YOLOV8 代码地址&am…

ChatGPT能代替Oracle DBA吗?用Oracle OCP(1z0-083)的真题测试一下。

让我们来看看ChatGPT不能通过Oracle OCP的考试? 文章目录引言测试过程总结和分析关于博主,姚远:Oracle ACE(Oracle和MySQL数据库方向)。Oracle MAA 大师。华为云MVP。《MySQL 8.0运维与优化》的作者。拥有 Oracle 10g和…

被吐槽 GitHub仓 库太大,直接 600M 瘦身到 6M,这下舒服了

大家好,我是小富~ 前言 忙里偷闲学习了点技术写了点demo代码,打算提交到我那 2000Star 的Github仓库上,居然发现有5个Issues,最近的一条日期已经是2022/8/1了,以前我还真没留意过这些,我这人懒…

Esp8266+阿里云+STM32点灯(三)

1、简介 1、固件库烧录:Esp8266阿里云STM32点灯(一) 2、ESP8266通过电脑与阿里云通讯:Esp8266阿里云STM32点灯(二) 前两部分已经完成ESP8266和阿里云简单通讯,这部分通过STM32单片机通过ESP8…

vue全局使用svg

1、安装依赖 npm install svg-sprite-loader2、配置选项 在vue.config.js的chainWebpack里配置下面代码 解释:config.module.rule是一个方法,用来获取某个对象的规则。.exclude.add(文件a)是往禁用组添加文件a,就是对文…

人民链Baas服务平台上线,中创助力人民数据共建数据服务应用场景

人民链2.0是数据要素大发展时代下的可信联盟链 作为区块链分布式存储领域行业先驱与让人民放心的国家级数据云平台,中创算力与人民数据的合作从未间断。为了推动人民链2.0高质量发展,中创算力与人民数据开展了多方面合作,助力人民数据共建数据…

计算机网络 - 网络通信 (TCP与UDP)

前言 本篇通过了解套接字,TCP与UDP协议的特点,使用UDP的api套接字与TCP的api套接字进行回显程序的网络通信,如有错误,请在评论区指正,让我们一起交流,共同进步! 文章目录前言1. 认识网络通信需…

JVM、JVM中的垃圾回收、类加载、IoC和DI

一、JVM 1、概念 JVM:Java Virtual Machine 的简称,意为 Java虚拟机,可以运行Java代码,是整个Java实现跨平台的最核心的部分;所有的Java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行&…

2022-ISCC信息安全与对抗竞赛wp-misc(详解,有脚本( •̀ ω •́ )y)

前言 没想到不知不觉一年时间就这样过去了,又到了一年一度的ISCC信息对抗大赛,不知道去年打比赛的小伙伴今年还能不能再碰到,期待与君再相见( •̀ ω •́ )y 所以今天就把去年的题目再复现一遍供师傅们参考 嘻嘻 目录 misc &#xff08…