news 2026/2/9 6:24:07

模糊神经网络机械故障诊断(MATLAB代码)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
模糊神经网络机械故障诊断(MATLAB代码)

效果

用训练好的模糊神经网络对机械故障进行诊断,根据网络的预测值得到机械的技术状态。预测值小于 1.5 时为正常状态,预测值在 1.5~2.5 之间时为曲轴轴承轻微异响,预测值在 2.5~3.5 之间时为曲轴轴承严重异响预测值在 3.5~4.5 之间时为连杆轴承轻微异响,预测值大于 4.5 时为连杆轴承严重异响。

y是真实标签,yt是预测标签

模糊神经网络代码

clear all; %下载数据 load data_fnn; %网络结构 I=9; %输入节点 M=18; %隐含节点 O=1; %输出节点 maxgen=10000; %迭代次数 xite=0.07; %网络学习率 a0=0.3; b0=0.6; Ek=1e-15; %误差 %初始化模糊神经网络参数 p0=a0*ones(M,1);p0_1=p0; p1=a0*ones(M,1);p1_1=p1; p2=a0*ones(M,1);p2_1=p2; p3=a0*ones(M,1);p3_1=p3; p4=a0*ones(M,1);p4_1=p4; p5=a0*ones(M,1);p5_1=p5; p6=a0*ones(M,1);p6_1=p6; p7=a0*ones(M,1);p7_1=p7; p8=a0*ones(M,1);p8_1=p8; p9=a0*ones(M,1);p9_1=p9; %初始化模糊隶属度参数 c=0.8+b0*rands(M,I);c_1=c; b=0.8+b0*rands(M,I);b_1=b; %训练数据归一化 [inputn,inputps]=mapminmax(input_train); [outputn,outputps]=mapminmax(output_train); %----------------------------------------用训练样本训练模糊神经网络-------------------------------------------- [n,m]=size(input_train); EE=100; p=1; while p<=maxgen && EE>=Ek for k=1:m %m 样本个数 %提取训练样本 x=inputn(:,k); %输入参数模糊化 for i=1:I for j=1:M u(i,j)=exp(-(x(i)-c(j,i))^2/b(j,i)); end end %模糊隶属度计算 for i=1:M w(i)=u(1,i)*u(2,i)*u(3,i)*u(4,i)*u(5,i)*u(6,i)*u(7,i)*u(8,i)*u(9,i); end addw=sum(w); %输出计算 for i=1:M yi(i)=p0_1(i)+p1_1(i)*x(1)+p2_1(i)*x(2)+p3_1(i)*x(3)+p4_1(i)*x(4)+p5_1(i)*x(5)+p6_1(i)*x(6)+p7_1(i)*x(7)+p8_1(i)*x(8)+p9_1(i)*x(9); end addyw=0; addyw=yi*w'; yn(k)=addyw/addw; e(k)=outputn(k)-yn(k); %系数p修正值计算 d_p=zeros(M,1); for i=1:M d_p(i)=xite*e(k)*w(i)/addw; end %系数b修正值计算 d_b=0*b; for i=1:M for j=1:I d_b(i,j)=xite*e(k)*(yi(i)*addw-addyw)*(x(j)-c(i,j))^2*w(i)/(b(i,j)^2*addw^2); end end %c的修正值计算 d_c=0*c; for i=1:M for j=1:I d_c(i,j)=xite*e(k)*(yi(i)*addw-addyw)*2*(x(j)-c(i,j))*w(i)/(b(i,j)*addw^2); end end %系数修正 p0_1=p0_1+d_p; p1_1=p1_1+d_p*x(1); p2_1=p2_1+d_p*x(2); p3_1=p3_1+d_p*x(3); p4_1=p4_1+d_p*x(4); p5_1=p5_1+d_p*x(5); p6_1=p6_1+d_p*x(6); p7_1=p7_1+d_p*x(7); p8_1=p8_1+d_p*x(8); p9_1=p9_1+d_p*x(9); %隶属度参数修正 b=b+d_b; c=c+d_c; end for k=1:m %m 样本个数 %提取训练样本 x=inputn(:,k); %输入参数模糊化 for i=1:I for j=1:M u(i,j)=exp(-(x(i)-c(j,i))^2/b(j,i)); end end %模糊隶属度计算 for i=1:M w(i)=u(1,i)*u(2,i)*u(3,i)*u(4,i)*u(5,i)*u(6,i)*u(7,i)*u(8,i)*u(9,i); end addw=sum(w); %输出计算 for i=1:M yi(i)=p0_1(i)+p1_1(i)*x(1)+p2_1(i)*x(2)+p3_1(i)*x(3)+p4_1(i)*x(4)+p5_1(i)*x(5)+p6_1(i)*x(6)+p7_1(i)*x(7)+p8_1(i)*x(8)+p9_1(i)*x(9); end addyw=0; addyw=yi*w'; yn(k)=addyw/addw; end EE=(1/2)*sumsqr(outputn-yn) E(p)=EE; p=p+1; end EE,p y=mapminmax('reverse',yn,outputps) epoch=1:size(E,2); figure plot(epoch,E,'-r'); title('误差变化曲线');xlabel('步数');ylabel('误差'); %----------------------------------------------测试样本网络预测----------------------------------------- %输入数据归一化 inputn_test=mapminmax('apply',input_test,inputps); [n,m]=size(input_test); %网络预测 for k=1:1:m x=inputn_test(:,k); %输入参数模糊化 for i=1:I for j=1:M u(i,j)=exp(-(x(i)-c(j,i))^2/b(j,i)); end end %模糊隶属度计算 for i=1:M w(i)=u(1,i)*u(2,i)*u(3,i)*u(4,i)*u(5,i)*u(6,i)*u(7,i)*u(8,i)*u(9,i); end addw=sum(w); %输出计算 for i=1:M yi(i)=p0_1(i)+p1_1(i)*x(1)+p2_1(i)*x(2)+p3_1(i)*x(3)+p4_1(i)*x(4)+p5_1(i)*x(5)+p6_1(i)*x(6)+p7_1(i)*x(7)+p8_1(i)*x(8)+p9_1(i)*x(9); end addyw=0; addyw=yi*w'; %网络预测值 ytn(k)=addyw/addw; end %预测值反归一化 yt=mapminmax('reverse',ytn,outputps) #代码:https://mbd.pub/o/bread/mbd-ZJyTmZZw
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/8 6:14:27

解析muduo源码之 Poller.h Poller.cc

目录 一、 Poller.h 1. Poller 类的整体定位与核心设计目标 2. 核心成员变量解析 1. 私有成员&#xff1a;所属 EventLoop&#xff08;线程安全核心&#xff09; 2. 保护成员&#xff1a;fd 到 Channel 的映射&#xff08;核心管理结构&#xff09; 3. 公共类型别名&…

作者头像 李华
网站建设 2026/2/8 17:36:07

解锁AI效率工具的高级功能:10款专业版优势分析

&#xfffd;&#xfffd; 10大降AIGC平台核心对比速览 排名 工具名称 降AIGC效率 适用场景 免费/付费 1 askpaper ⭐⭐⭐⭐⭐ 学术论文精准降AI 付费 2 秒篇 ⭐⭐⭐⭐⭐ 快速降AIGC降重 付费 3 Aibiye ⭐⭐⭐⭐ 多学科论文降AI 付费 4 Aicheck ⭐⭐⭐⭐…

作者头像 李华
网站建设 2026/2/8 5:36:43

洛谷 P1165:日志分析 ← 双栈

【题目来源】 https://www.luogu.com.cn/problem/P1165 【题目描述】 M 海运公司最近要对旗下仓库的货物进出情况进行统计。目前他们所拥有的唯一记录就是一个记录集装箱进出情况的日志。该日志记录了两类操作&#xff1a;第一类操作为集装箱入库操作&#xff0c;以及该次入库…

作者头像 李华
网站建设 2026/2/8 11:16:02

前端判断不等于 undefined 不等于 null 的方法

前端判断不等于 undefined 不等于 null 的方法 在前端开发&#xff08;JavaScript/TypeScript&#xff09;中&#xff0c;判断一个变量既不等于 undefined 也不等于 null&#xff0c;通常被称为判断“空值”或“有效存在”。 以下是几种常用且推荐的方法&#xff0c;你可以根…

作者头像 李华
网站建设 2026/2/7 11:48:35

MCP4725 I2C 12位数模DA转换模块原理图设计,已量产

目录 1、核心芯片:MCP4725 为什么是首选? 2、原理图深度拆解:每一处设计都有讲究 2.1、电源系统:LP5907 带来的稳定供电 2.2、DAC 核心电路:MCP4725 的极简设计 2.3、I2C 接口与地址配置:灵活适配多设备级联 2.4、低功耗设计:<0.2mA 的 “隐形优势” 在 Arduin…

作者头像 李华
网站建设 2026/2/9 1:17:39

Palantir 第四季度财报深度解读CEO致股东信:43亿美元订单,70%营收增长,AI驱动下的惊人增长与企业级AI技术帝国的宏伟愿景

摘要 Palantir CEO亚历克斯卡普在2026年2月2日发布的致股东信中,宣布公司第四季度营收达到创纪录的14亿美元,同比增长70%,美国市场营收达11亿美元,同比增长93%。公司单季利润达6.09亿美元,环比增长28%。信中强调了AI技术的实际应用价值,批判了行业内的浮夸风气,阐述了技术如何…

作者头像 李华