基于动态自适应加权极限RUL 预测(Matlab代码实现)

2023-11-22 14:59

本文主要是介绍基于动态自适应加权极限RUL 预测(Matlab代码实现),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

💥💥💞💞欢迎来到本博客❤️❤️💥💥

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

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

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现

💥1 概述

本文引入了 [1] 中提出的 LCI-ELM 的新改进。创新点侧重于训练模型对更高维度“时变”数据的适应。使用C-MAPSS数据集[2]对所提出的算法进行了研究。PSO[3]和R-ELM[4]训练规则被整合在一起,用于此任务。

[1] Y. X. Wu, D. Liu, and H. Jiang, “Length-Changeable Incremental Extreme Learning Machine,” J. Comput. Sci. Technol., vol. 32, no. 3, pp. 630–643, 2017.
[2] A. Saxena, M. Ieee, K. Goebel, D. Simon, and N. Eklund, “Damage Propagation Modeling for Aircraft Engine Prognostics,” Response, 2008.
[3] M. N. Alam, “Codes in MATLAB for Particle Swarm Optimization Codes in MATLAB for Particle Swarm Optimization,” no. March, 2016.
[4] J. Cao, K. Zhang, M. Luo, C. Yin, and X. Lai, “Extreme learning machine and adaptive sparse representation for image classification,” Neural Networks, vol. 81, no. 61773019, pp. 91–102, 2016.

📚2 运行结果

部分代码:

%% Options 
Options.k=10;                     % incremental lraning parameters
Options.lambda=0.7;               % incremental lraning parameters
Options.MaxHiddenNeurons=100;     % maximaum number of hidden neurons
Options.ActivationFunType='radbas';  % activation function
population=exp(-0:0.5:4)';        % generate random initial population
Options.C(:,1)=population;        % regularization parameter
Options.Weighted=population;      % weighted ELM parameters
Options.epsilon=1e-3;             % desired tolerance error
%% PSO
Options.epsilonPSO=10e-3; % desired tolerance error
Options.LB=100;           % Lower bounds constraints
Options.UB=-100;          % Upper bounds constraints
Options.maxite=3;         % maximum number of iterations
Options.wmax=0.2;         % inertial weight
Options.wmin=0.2;         % inertial weight
Options.c1=2;             % acceleration factor
Options.c2=2;             % acceleration factor
%% dataset
load('FD001')
xtr=DATA.X_batch;
ytr=DATA.Y_batch;
xts=DATA.Xts_batch;
yts=DATA.Yts_batch;
%% Training
i=17;
[neta] = LCIELM(xtr,ytr,xts,yts,DATA.Xts{i},Options)        % LCI-ELM
[netb] = LOO_RT_LCI_ELM(xtr,ytr,xts,yts,DATA.Xts{i},Options)% Leave One Out Regularized LCI-ELM
[netc] = OP_W_LCI_ELM(xtr,ytr,xts,yts,DATA.Xts{i},Options)  % PSO for weighted LCI-ELM
%% Plot population variation 
subplot(121)
plot(1:length(netc.reg(:,2)),netc.reg(:,2),'k:'...
     ,1:length(netc.reg(:,2)),netc.reg(:,1),'k*'...
     ,'LineWidth',2)
xlabel('Iterations'...
 ,'FontName','Times New Roman','FontSize',14)
ylabel('C and W'...
 ,'FontName','Times New Roman','FontSize',14)
title('(a) Balancing parameters'...
 ,'FontName','Times New Roman','FontSize',14) 
legend('regularization parameter','weighted ELM parameters')
%% plot (Error)
subplot(122)

f=30;
plot(neta.nodes,smooth(neta.E,f),'k',...
    netb.nodes,smooth(netb.E,f),'k--',...
    netc.nodes,smooth(netc.E,f),...
   'k:','LineWidth',2);
xlabel('Hidden nodes'...
 ,'FontName','Times New Roman','FontSize',14)
ylabel('Training RMSE'...
 ,'FontName','Times New Roman','FontSize',14)
title('(b) Training accuracy'...
 ,'FontName','Times New Roman','FontSize',14)
legend('LCI-ELM','LR-LCI-ELM','PW-LCI-ELM');

%% plot (Score)
figure(2)
subplot(131)
plot(neta.d,neta.S,'k.',neta.d,neta.er,'k*')
xlabel('RUL error'...
 ,'FontName','Times New Roman','FontSize',14)
ylabel('RMSE and Score'...
 ,'FontName','Times New Roman','FontSize',14)
title('(a) LCI-ELM'...
 ,'FontName','Times New Roman','FontSize',14)
legend('Score','RMSE');
%%%%
subplot(132)
plot(netb.d,netb.S,'k.',netb.d,netb.er,'k*')
xlabel('RUL error'...
 ,'FontName','Times New Roman','FontSize',14)
ylabel('RMSE and Score'...
 ,'FontName','Times New Roman','FontSize',14)
title('(b) LR-LCI-ELM'...
 ,'FontName','Times New Roman','FontSize',14)
legend('Score','RMSE');
%%%%
subplot(1,3,3)
plot(netc.d,netc.S,'k.',netc.d,netc.er,'k*')
xlabel('RUL error'...
 ,'FontName','Times New Roman','FontSize',14)
ylabel('RMSE and Score'...
 ,'FontName','Times New Roman','FontSize',14)
title('(c) PW-LCI-ELM'...
 ,'FontName','Times New Roman','FontSize',14)
legend('Score','RMSE');
%%%%

🎉3 参考文献

[1] Y. X. Wu, D. Liu, and H. Jiang, “Length-Changeable Incremental Extreme Learning Machine,” J. Comput. Sci. Technol., vol. 32, no. 3, pp. 630–643, 2017.
[2] A. Saxena, M. Ieee, K. Goebel, D. Simon, and N. Eklund, “Damage Propagation Modeling for Aircraft Engine Prognostics,” Response, 2008.
[3] M. N. Alam, “Codes in MATLAB for Particle Swarm Optimization Codes in MATLAB for Particle Swarm Optimization,” no. March, 2016.
[4] J. Cao, K. Zhang, M. Luo, C. Yin, and X. Lai, “Extreme learning machine and adaptive sparse representation for image classification,” Neural Networks, vol. 81, no. 61773019, pp. 91–102, 2016.

🌈4 Matlab代码实现

这篇关于基于动态自适应加权极限RUL 预测(Matlab代码实现)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/410955

相关文章

AJAX请求上传下载进度监控实现方式

《AJAX请求上传下载进度监控实现方式》在日常Web开发中,AJAX(AsynchronousJavaScriptandXML)被广泛用于异步请求数据,而无需刷新整个页面,:本文主要介绍AJAX请... 目录1. 前言2. 基于XMLHttpRequest的进度监控2.1 基础版文件上传监控2.2 增强版多

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

Redis分片集群的实现

《Redis分片集群的实现》Redis分片集群是一种将Redis数据库分散到多个节点上的方式,以提供更高的性能和可伸缩性,本文主要介绍了Redis分片集群的实现,具有一定的参考价值,感兴趣的可以了解一... 目录1. Redis Cluster的核心概念哈希槽(Hash Slots)主从复制与故障转移2.

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

Mybatis 传参与排序模糊查询功能实现

《Mybatis传参与排序模糊查询功能实现》:本文主要介绍Mybatis传参与排序模糊查询功能实现,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、#{ }和${ }传参的区别二、排序三、like查询四、数据库连接池五、mysql 开发企业规范一、#{ }和${ }传参的

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

基于SpringBoot+Mybatis实现Mysql分表

《基于SpringBoot+Mybatis实现Mysql分表》这篇文章主要为大家详细介绍了基于SpringBoot+Mybatis实现Mysql分表的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录基本思路定义注解创建ThreadLocal创建拦截器业务处理基本思路1.根据创建时间字段按年进

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态