💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab武动乾坤博客之家💞💞💞💞💞💞💞💞💞💥💥💥💥💥💥💥💥
🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀
🔊博主简介:985研究生,Matlab领域科研开发者;
🚅座右铭:行百里者,半于九十。
🏆代码获取方式:
优快云 Matlab武动乾坤—代码获取方式
更多Matlab信号处理仿真内容点击👇
①Matlab信号处理(进阶版)
⛳️关注优快云 Matlab武动乾坤,更多资源等你来!!
⛄一、BP神经网络故障诊断简介
滚动轴承是旋转机械中应用最广泛的一种基础机械零件,它的运行状态是否正常直接关系到整机的性能,它是机器最易损坏的零件之一。据统计。旋转机械的故障有30%是由轴承引起的。轴承缺陷或故障会导致设备产生异常震动,甚至损坏,因此对滚动轴承进行故障诊断是很有意义的。
轴承故障诊断就是要通过对能够反映轴承工作状态的信号的测取,分析与处理,来识别轴承的状态。包括以下几个环节:信号测取、特征提取、状态识别、故障诊断、决策干预[1]传统诊断技术,如震声、油液分析、声发射、光纤、温度诊断等多种多样,且各具特点[2]。目前国内外对于滚动轴承故障诊断的一些方法的研究工作主要集中在时域分析法、频域分析法、时频分析法以及智能诊断。本文对滚动轴承进行时域和频域分析,并采用 BP 神经网络进行模式识别。通过对 BP 神经网络的设计训练和测试,判断滚动轴承的工作状态。
1 振动信号处理
1.1 零均值处理
为了得到很好的处理数据,需要对数据进行预处理,当时域信号成分中有一一直不变大小信号也就是直线信号时,会在频域中产生冲击信号,抑制旁边微弱幅值的频率信号,影响分析。因此要进行零均值处理。零均值化处理又称中心化处理。信号的均值相当于一个直流分量,而直流信号的傅里叶变换是在𝜔𝜔 = 0处的冲激函数,因此若不去除均值,在作信号谱分析时,将在𝜔𝜔 = 0处出现一个大的谱峰,并会影响在𝜔𝜔 = 0左右处的频谱曲线,使它产生较大的误差。
1.2 时域特征提取
轴承振动信号时域分析主要任务是计算振动信号的时域统计特征参数,再通过和参照
值的对比来确定轴承的状态。常用的特征参数可分为有量纲参数和无量纲参数。
设为采集到的振动信号序列,i =1,2,…,N,其中有量纲量包括均值、均方根值、峰值、方差。无量纲参数包括峰值因子、峭度系数、波形因子、脉冲因子、裕度因子
从图中可以看到各特征值得差异变化,而且由上图可以知道在 10 以前和 10 以后各成分高度有明显区别,这也就是故障轴承与正常轴承各时域特征值的区别。
1.3 频域分析
对去除直流分量的数据进行傅里叶变换,在频域中对数据进行分析,以其中一组数据
为例
1.4 频域特征提取
可以看出前 10 组和后 10 组数据特征值有较大差异,这也是故障轴承和正常轴承的差异。
2 特征值归一化
由于各个特征值的幅值大小不一,不便于比较同一特征值的不同样本之间的差异。并
且考虑都后面的神经网络输入值大小。需要将所有特征值归一化到 0~1 区间。线性函数转换,表达式如下:
y=(x-MinValue)/(MaxValue-MinValue)
说明:x、y 分别为转换前、后的值,MaxValue、MinValue 分别为样本的最大值和最小值。
3 建立 BP 神经网络,训练网络,测试网络
BP(Back Propagation Network)神经网络是目前应用最为广泛和成功的神经网络之一,它是由一个输入层,一个或多个隐藏层以及一个输出层组成,上下层之间实现全连接,而每层神经元之间无连接。网络的学习过程包括信号正向传播和误差反向传播。在正向传播进程中,输入信息从输入层经隐藏层加权处理传向输出层,经功能函数运算后得到的输出值与期望值进行比较,若有误差,则误差反向传播,沿原先的连接通道返回,通过逐层修改各层的权重系数,减小误差。随着这种误差逆向传播修正的不断进行,网络对输入模式响应的正确率也不断上升。
3.1 输入、输出层的设计
在轴承状态监测过程中,样本数据来源于实验数据分析后提取的有效特征值。所以网
络输入神经元个数为 22;网络输出为轴承状态,分为正常轴承和故障轴承,用(0 1)表示故障轴承,(1 1)表示正常轴承,因此网络中只设计 2 个输出神经元表示这 2 个状态。综上所述,该 BP 网络输入层有 22 个神经元,输出层有 2 个神经元。
3.2 隐层的选择
对于轴承的不同状态进行识别,建立神经网络对它进行训练,用上述提到的公式来确
定隐层个数,那么在本文的轴承状态识别中,由于输入为 22 个神经元,输出为 2 个神经元,由参考公式可知隐层神经元在 45 左右。下面就设计一个隐层可以随意改变的 BP 神经网络,由通过误差对比确定隐层数目,隐层神经元在 32~41 之间进行比较,经过 1000 次的训练后(训练函数采用 traingdx),隐含层神经元为 40 的 BP 网络对函数的逼近效果最好,因为它的误差最小所以这里将网络隐含层的神经元数目设定为 40。
3.3 训练网络
确定 BP 神经网络的最终结构如下:
BP 网络输入层有 22 个神经元,输出层有 2 个神经元,隐层有 40 个神经元。
⛄二、部分源代码
%% 滚动轴承故障诊断前期数据处理
%=%
%% 数据的导入处理G3015
%=轴承故障诊断数据处理=%
%%导入数据
% fg=fopen(‘G3015.txt’,‘r’); %以读的方式打开数据文件
% G3015=textscan(fg,‘%f’); %读取数据
% fclose(fg); %关闭文件
%格式化读写,生成元包数组%
%=直接读取==%
G3015=textread(‘G3015.txt’,‘%f’) ; %读取数据生成矩阵
G301=G3015(1:1:20000); %取数组前20000个元素,即第一组数据,采样点数为20000
G301j=G301-mean(G301); %零均值处理,%G301j=G301-sum(G301)/20000
G302=G3015(20001:1:40000);
G302j=G302-mean(G302); %零均值处理
G303=G3015(40001:1:60000);
G303j=G303-mean(G303); %零均值处理
G304=G3015(60001:1:80000);
G304j=G304-mean(G304); %零均值处理
G305=G3015(80001:1:100000);
G305j=G305-mean(G305); %零均值处理
G30610=textread(‘G30610.txt’,‘%f’) ; %读取数据生成矩阵
G306=G30610(1:1:20000); %取数组前20000个元素,即第一组数据,采样点数为20000
G306j=G306-mean(G306); %零均值处理,%G306j=G306-sum(G306)/20000
G307=G30610(20001:1:40000);
G307j=G307-mean(G307); %零均值处理
G308=G30610(40001:1:60000);
G308j=G308-mean(G308); %零均值处理
G309=G30610(60001:1:80000);
G309j=G309-mean(G309); %零均值处理
G3010=G30610(80001:1:100000);
G3010j=G3010-mean(G3010); %零均值处理
%% 零均值处理时域图对比
%%%%%%用语句 isequal(G301j,(G301-sun(G301)/20000))判断正确性,返回值应该为1
subplot(2,1,1); %分割图形窗口2X1,在1上绘图
plot(G301); %绘图,X轴以索引值为横坐标
xlabel(‘采样点数’); %x轴标注
ylabel(‘幅值’); %y轴标注
title(‘G301’); %图形标题标注
subplot(2,1,2); %分割图形窗口2X1,在2上绘图
plot(G301j); %绘图,X轴以索引值为横坐标
xlabel(‘采样点数’); %x轴标注
ylabel(‘幅值’); %y轴标注
title(‘G301j’); %图形标题标注
%=以上为在时域上的图形,零均值后图形向下平移均值个单位%
%% 零均值处理频域图对比
%=在频域上作图=====================================%
N=length(G301); %采样点数,20000
fs=10000; %采样频率
f=(0:N-1)'*fs/N; %进行对应频率变换,(0:N-1)'矩阵转置,行变为列
G301p=abs(fft(G301)); %G301进行fft变换
G301jp=abs(fft(G301j));%G301j进行fft变换
subplot(2,1,1);
plot(f(1:N/2),G301p(1:N/2),‘r’); %用向量一半的数据作图,红色曲线
ylim([0,800]); %定义Y轴显示范围
xlabel(‘频率’); %x轴标注
ylabel(‘幅值’); %y轴标注
title(‘G301p’); %图形标题标注
subplot(2,1,2);
plot(f(1:N/2),G301jp(1:N/2),‘r’); %用向量一半的数据作图,红色曲线
%===== ylim([0,800]); %定义Y轴显示范围
xlabel(‘频率’); %x轴标注
ylabel(‘幅值’); %y轴标注
title(‘G301jp’); %图形标题标注
%% 时域特征提取G3015
G301m=sum(G301j)/20000; %G301m为均值,G301j为零均值化处理后结果,下同
G301f=sum((G301j-G301m).^2); %G301f为方差
G301rms=sqrt(sum(G301j.^2)/20000); %G301rms均方根值
G301peak=(max(G301j)-min(G301j))/2; %G301peak为峰值
G301c= G301peak/G301rms; %G301c为峰值因子
G301k=sum(G301j.4)/((G301rms.4)20000); %G301k为峭度系数
G301s=(G301rms20000)/sum(abs(G301j)); %G301s为波形因子
G301cl=G301peak/(sum(sqrt(abs(G301j)))/20000).^2; %G301cl裕度因子
G301i=(G301peak*20000)/sum(abs(G301j)); %G301i脉冲因子
G302m=sum(G302j)/20000; %G302m为均值,G302j为零均值化处理后结果,下同
G302f=sum((G302j-G302m).^2); %G302f为方差
G302rms=sqrt(sum(G302j.^2)/20000); %G302rms均方根值
G302peak=(max(G302j)-min(G302j))/2; %G302peak为峰值
G302c= G302peak/G302rms; %G302c为峰值因子
G302k=sum(G302j.4)/((G302rms.4)20000); %G302k为峭度系数
G302s=(G302rms20000)/sum(abs(G302j)); %G302s为波形因子
G302cl=G302peak/(sum(sqrt(abs(G302j)))/20000).^2; %G302cl裕度因子
G302i=(G302peak*20000)/sum(abs(G302j)); %G302i脉冲因子
⛄三、运行结果
⛄四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1]罗耀华,从静.基于matlab BP神经网络的三相逆变器故障诊断[J].应用科技.2010年6月.
[2] 贺红林,封立耀等.基于神经元网络的滚动轴承诊断系统设计.机床与液压
2004,No.11.
[3]周瑞峰.滚动轴承故障智能诊断方法的研究与实现.大连理工大学,2009.
[4]陈进.机械设备振动监测与故障诊断. 上海: 上海交通大学出版社.1999.
[5]梅宏斌.滚动轴承振动监测与诊断[M].北京:机械工业出版社,1995.
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除
🍅 仿真咨询
1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化
2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化
5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配
6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化
7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化
8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置
9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长
10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合