【故障诊断分析】基于matlab小波包能量分析轴承故障诊断【含Matlab源码 1620期】

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、简介

在滚动轴承的故障诊断时,传统的频谱分析法通常采用共振解调技术 , 具有良好的效果 ,但当内圈 、 滚动体或多点故障时,解调谱线却很难分辨故障类型小波包是小波理论在信号处理应用领域的又一重大发展,它在小波理论的基础上引人了最优基准准则,目前已在通信、 图像处理、分形 、信号检测等方面获得成功应用小波包分解是多分辨率分析的推广,是一种比小波分析更为精细的信号时频分析方法 ,它将频带进行多层次划分 , 对小波分析没有细分的高频部分也进行了分解,并能根据被分析信号的特征 , 自适应地 选择频带,使之与信号频谱相匹配 ,从而提高时频分辨率, 因此它是一种非常有效的信号处理方法。本文将用小波包分析方法构造滚动轴承状态检测信号的能量特征向量,再用神经网络方法对滚动轴承的状态进行识别。

1 小波包理论
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2 特征频率估算
滚动轴承各部件发生单点故障时 , 其特征信号频率为
在这里插入图片描述
3 构造能量特征向量
当轴承在负载旋转过程中出现疲劳 、 压痕或局部腐蚀等故障时 , 将产生冲击振动 , 而这些振动反复互激又会引起更大的振颤 , 用加速度传感器获取运动中轴承的振动加速度信号 , 由于轴承的故障使得该振动信号在某些频带内的信号能量减小 , 而使另外一些频带内的信号能量增强 , 因此 , 在各频率成分信号的能量中, 包含了丰富的故障信息 ,某种或某几种频率成分能量 的改变代表一种故障,基于这点,由轴承振动信号的各频段能量相对值构造轴承故障特征向量。
在这里插入图片描述

⛄二、部分源代码

%%%%以下提取小波包重构信号的故障诊断
clc
clear
fs=12e3;
load zhengchang.mat;%加载正常信号
load 98.mat;
s1=X098_DE_time(19001:1:20000,1);% 正常情况下驱动端数据
% s1=X098_FE_time(1:1:10000,1);% 正常情况下驱动端数据
load in.mat;%加载内圈故障信号
% load fan_in.mat;%加载风扇端内圈故障信号
load 106.mat;
s2=X106_DE_time(19001:1:20000,1);% 内圈故障信号情况下驱动端数据
% s2=X279_FE_time(1:1:10000,1);% 内圈故障信号情况下驱动端数据
% load fan_ball.mat;%加载滚动体故障信号
load ball.mat;%加载滚动体故障信号
load 119.mat;
s3=X119_DE_time(19001:1:20000,1);% 滚动体故障情况下驱动端数据
% s3=X283_FE_time(1:1:10000,1);% 滚动体故障情况下驱动端数据
% load fan_out_12.mat;%加载外圈12点位置故障信号
load out_12.mat;%加载外圈12点位置故障信号
load 158.mat;
s4=X158_DE_time(14001:1:15000,1);% 外圈12点位置情况下驱动端数据
% s4=X305_FE_time(1:1:10000,1);% 外圈12点位置情况下驱动端数据
n=3;
ji=‘db5’;
wpt=wpdec(s1,n,ji);%使用db5小波包分解正常信号到底三层,使用shannon熵
% plot(wpt);
rcfs10=wprcoef(wpt,[n,0]);%利用相应的频段进行重构
rcfs11=wprcoef(wpt,[n,1]);
rcfs12=wprcoef(wpt,[n,2]);
rcfs13=wprcoef(wpt,[n,3]);
rcfs14=wprcoef(wpt,[n,4]);
rcfs15=wprcoef(wpt,[n,5]);
rcfs16=wprcoef(wpt,[n,6]);
rcfs17=wprcoef(wpt,[n,7]);
cfs10=wpcoef(wpt,[n,0]);%提取小波包分解系数
cfs11=wpcoef(wpt,[n,1]);
cfs12=wpcoef(wpt,[n,2]);
cfs13=wpcoef(wpt,[n,3]);
cfs14=wpcoef(wpt,[n,4]);
cfs15=wpcoef(wpt,[n,5]);
cfs16=wpcoef(wpt,[n,6]);
cfs17=wpcoef(wpt,[n,7]);
wpt1=wpdec(s2,n,ji);
rcfs20=wprcoef(wpt1,[n,0]);
rcfs21=wprcoef(wpt1,[n,1]);
rcfs22=wprcoef(wpt1,[n,2]);
rcfs23=wprcoef(wpt1,[n,3]);
rcfs24=wprcoef(wpt1,[n,4]);
rcfs25=wprcoef(wpt1,[n,5]);
rcfs26=wprcoef(wpt1,[n,6]);
rcfs27=wprcoef(wpt1,[n,7]);
cfs20=wpcoef(wpt1,[n,0]);
cfs21=wpcoef(wpt1,[n,1]);
cfs22=wpcoef(wpt1,[n,2]);
cfs23=wpcoef(wpt1,[n,3]);
cfs24=wpcoef(wpt1,[n,4]);
cfs25=wpcoef(wpt1,[n,5]);
cfs26=wpcoef(wpt1,[n,6]);
cfs27=wpcoef(wpt1,[n,7]);
wpt2=wpdec(s3,n,ji);
rcfs30=wprcoef(wpt2,[n,0]);
rcfs31=wprcoef(wpt2,[n,1]);
rcfs32=wprcoef(wpt2,[n,2]);
rcfs33=wprcoef(wpt2,[n,3]);
rcfs34=wprcoef(wpt2,[n,4]);
rcfs35=wprcoef(wpt2,[n,5]);
rcfs36=wprcoef(wpt2,[n,6]);
rcfs37=wprcoef(wpt2,[n,7]);
cfs30=wpcoef(wpt2,[n,0]);
cfs31=wpcoef(wpt2,[n,1]);
cfs32=wpcoef(wpt2,[n,2]);
cfs33=wpcoef(wpt2,[n,3]);
cfs34=wpcoef(wpt2,[n,4]);
cfs35=wpcoef(wpt2,[n,5]);
cfs36=wpcoef(wpt2,[n,6]);
cfs37=wpcoef(wpt2,[n,7]);
wpt3=wpdec(s4,n,ji);
rcfs40=wprcoef(wpt3,[n,0]);
rcfs41=wprcoef(wpt3,[n,1]);
rcfs42=wprcoef(wpt3,[n,2]);
rcfs43=wprcoef(wpt3,[n,3]);
rcfs44=wprcoef(wpt3,[n,4]);
rcfs45=wprcoef(wpt3,[n,5]);
rcfs46=wprcoef(wpt3,[n,6]);
rcfs47=wprcoef(wpt3,[n,7]);
cfs40=wpcoef(wpt3,[n,0]);
cfs41=wpcoef(wpt3,[n,1]);
cfs42=wpcoef(wpt3,[n,2]);
cfs43=wpcoef(wpt3,[n,3]);
cfs44=wpcoef(wpt3,[n,4]);
cfs45=wpcoef(wpt3,[n,5]);
cfs46=wpcoef(wpt3,[n,6]);
cfs47=wpcoef(wpt3,[n,7]);
for i=1:2^n
E(i)=(norm(wpcoef(wpt,[n,i-1]),2))^2;%求第i个节点的范数平方,其实也就是平方和,即能量
end
E_total=sum(E); %求总能量
for i=1:2^n
pfir(i)= E(i)/E_total;%若求每个节点的概率,即所占的能量比,则为E(i)/E_total
end

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]张国新,刘祚时.基于小波包分析的滚动轴承故障诊断[J].江西理工大学学报. 2007,(01)

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 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

  • 4
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: 小波包能量分析是一种用于轴承故障诊断的方法,它可以通过分析信号的频域特征来判断轴承的工作状态是否正常。在MATLAB中,我们可以使用小波分析工具箱来进行小波包能量分析。 首先,我们需要使用MATLAB采集或导入轴承故障信号的数据。可以使用MATLAB的数据采集工具箱或从已保存的文件中导入数据。 接下来,我们可以使用MATLAB的小波分析工具箱来进行小波包能量分析。首先,我们可以将导入的轴承故障信号进行小波变换,将信号分解为不同频带的子信号。然后,我们可以选择一个合适的小波基函数,并选择适当的小波包层次来进行分析。 在小波包能量分析中,我们可以计算每个子信号的能量,并根据能量的大小来判断轴承的工作状态。通常情况下,当某个频带的能量明显高于其他频带时,表示轴承可能存在故障。我们可以使用MATLAB能量计算函数来计算每个频带的能量。 最后,我们可以使用MATLAB绘图工具箱将能量结果可视化。可以绘制出每个频带能量的时域波形图或频域图,并通过观察能量分布情况来判断轴承的工作状态。 总的来说,通过使用MATLAB进行小波包能量分析,在轴承故障诊断中可以有效地提取信号特征,并判断轴承的工作状态是否正常。可以使用MATLAB的小波分析工具箱进行小波变换和能量计算,并使用绘图工具箱进行结果可视化。 ### 回答2: 小波包能量分析是一种用于轴承故障诊断的信号处理方法,可以通过分析轴承振动信号的能量分布特征,来判断轴承是否存在故障。这种方法在故障诊断领域具有广泛的应用价值。 Matlab是一种功能强大的数学软件工具,它提供了丰富的信号处理函数和工具箱,可以方便地实现小波包能量分析算法。以下是一个简单的小波包能量分析轴承故障诊断Matlab源码示例: ```matlab % 导入信号数据 data = importdata('bearing_vibration_data.mat'); % 设置小波包参数 waveletName = 'db4'; % 小波函数名称 levels = 5; % 小波分解的层数 % 对每个轴承信号进行小波包能量分析 for i = 1:size(data, 2) signal = data(:, i); % 小波包分解 [C, L] = wavedec(signal, levels, waveletName); % 计算每个小波包能量 energy = zeros(1, levels+1); for j = 1:levels+1 energy(j) = sum(C(L(j)+1:L(j+1)).^2); end % 绘制小波包能量分布图 figure; bar(1:levels+1, energy); xlabel('小波包级别'); ylabel('能量'); title(['轴承', num2str(i), '能量分布']); end ``` 以上代码示例中,首先通过`importdata`函数导入轴承振动信号数据,然后使用`wavedec`函数进行小波包分解,然后根据小波包系数计算每个小波包能量,最后绘制能量分布图。 通过该源码,我们可以得到每个轴承信号的小波包能量分布图,从图中可以观察到故障轴承的能量分布是否与正常轴承有较大差异,从而判断轴承是否存在故障。 需要注意的是,以上示例中的源码仅是一个简单的示例,实际应用中可能还需要进行其他的信号处理和特征提取,以及制定合理的故障判据和阈值。 ### 回答3: 小波包能量分析是一种常用的轴承故障诊断方法,可以通过对轴承振动信号进行小波包分解,提取各尺度小波包系数的能量特征,从而判断轴承是否存在故障。 在Matlab中进行小波包能量分析轴承故障诊断,可以遵循以下步骤: 1. 数据采集:首先,需要采集到轴承振动信号的数据。可以使用加速度传感器等装置将振动信号转化为电信号,再通过数据采集卡将信号输入到计算机。 2. 信号预处理:将采集到的振动信号进行预处理,如去除高频噪声、降低采样率等。可以使用Matlab中的滤波函数对信号进行滤波处理。 3. 小波包分解:使用Matlab中的小波分析工具包,对预处理后的信号进行小波包分解。可以选择适当的小波基函数和分解层数,将信号分解为多个尺度上的小波包系数。 4. 能量计算:对每个尺度上的小波包系数进行能量计算。可以使用Matlab中的能量计算函数,将每个尺度上的小波包系数的平方和作为该尺度上的能量值。 5. 故障诊断:根据能量值的变化特点,判断轴承是否存在故障。通常,正常轴承的能量值会在一定范围内波动,而故障轴承的能量值会出现明显的异常变化。 在Matlab中实现小波包能量分析源码可以参考Matlab官方文档中的小波分析相关函数和示例代码。可以根据实际需要进行代码的编写和修改,以适应轴承故障诊断的具体要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海神之光

有机会获得赠送范围1份代码

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值