【轴承故障诊断】一种用于轴承故障诊断的稀疏贝叶斯学习(SBL),两种群稀疏学习算法来提取故障脉冲,第一种仅利用故障脉冲的群稀疏性,第二种则利用故障脉冲的额外周期性行为(Matlab代码实现)

简介: 【轴承故障诊断】一种用于轴承故障诊断的稀疏贝叶斯学习(SBL),两种群稀疏学习算法来提取故障脉冲,第一种仅利用故障脉冲的群稀疏性,第二种则利用故障脉冲的额外周期性行为(Matlab代码实现)

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

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

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

💥1 概述

摘要:

在强背景噪声和/或多重干扰下提取故障脉冲是轴承故障诊断的一项具有挑战性的任务。稀疏表示已被广泛应用于提取故障脉冲,并且能够实现最先进的性能。然而,大多数当前的方法依赖于精心调整多个超参数,并且由于近似正则化和/或启发式稀疏模型可能会遭受算法退化的可能性。为了克服这些缺点,本文提出了一种用于轴承故障诊断的稀疏贝叶斯学习(SBL)框架,然后提出了两种群稀疏学习算法来提取故障脉冲,其中第一种仅利用故障脉冲的群稀疏性,而第二种则利用故障脉冲的额外周期性行为。由于SBL框架的固有学习能力,所提出的算法可以自动调整超参数,并且不需要任何先验知识。另一个优点是我们的解决方案在贝叶斯最优性的意义上是最大后验估计量,可以产生更高的准确性。对模拟和真实数据集的结果表明了所开发算法的优越性。

用于轴承故障诊断的稀疏贝叶斯学习(Sparse Bayesian Learning, SBL)框架中,两种群稀疏学习算法被用来提取故障脉冲,这两种算法分别侧重于故障脉冲的不同特性:

1. 仅利用故障脉冲的群稀疏性

原理

  • 该算法主要关注故障脉冲在信号中的群稀疏性,即故障脉冲在时域或变换域内以群组的形式出现,且这些群组相对于整个信号来说是稀疏的。
  • 通过稀疏贝叶斯学习框架,算法能够自动调整超参数,无需先验知识,从而有效地从信号中提取出这些稀疏的故障脉冲群组。

优势

  • 能够在强背景噪声和/或多重干扰下准确地提取故障脉冲。
  • 相比传统方法,该算法在准确性上表现出优越性能。

2. 利用故障脉冲的额外周期性行为

原理

  • 除了利用故障脉冲的群稀疏性外,该算法还进一步考虑了故障脉冲的额外周期性行为。
  • 故障脉冲在信号中往往呈现出一定的周期性特征,这种周期性特征可以被用来增强故障脉冲的提取效果。
  • 通过结合故障脉冲的群稀疏性和周期性行为,算法能够更精确地定位和提取故障脉冲。

优势

  • 在提取故障脉冲时,能够更全面地考虑信号的特性,从而提高提取的准确性和可靠性。
  • 适用于那些具有明显周期性故障特征的轴承系统。

应用实例与实验验证

  • 在实际应用中,这两种群稀疏学习算法已经被用于轴承故障诊断领域,并取得了显著的效果。
  • 实验结果显示,在模拟和真实数据集上,这两种算法均能够准确地提取出故障脉冲,并有效地识别出轴承的故障类型。

稀疏贝叶斯学习的优势

  • 稀疏贝叶斯学习方法在贝叶斯框架下特别针对高维数据和特征选择问题而设计,能够引入稀疏性以提高模型的效率、泛化能力和解释性。
  • 在轴承故障诊断中,稀疏贝叶斯学习方法不仅可以通过特征选择和提取来提高模型的精度和鲁棒性,还可以通过优化模型参数和结构来适应不同工况下的故障诊断需求。

综上所述,用于轴承故障诊断的稀疏贝叶斯学习框架中的两种群稀疏学习算法在提取故障脉冲方面各具特色且优势互补。在实际应用中,可以根据具体需求选择合适的算法或结合使用两种算法以达到最佳的故障诊断效果。

📚2 运行结果

image.gif 编辑

image.gif 编辑

部分代码:

%% P-GSL   %%%%%%%%%%%%%%%%%%%%%%%%%

[P_GSL_result] = P_GSL(y, Fs);

%% GSL     %%%%%%%%%%%%%%%%%%%%%%%%%

[GSL_result] = GSL(y);

%% AdaESPGL,

Params.Fs            = Fs;     % The sampling frequency of the simulation signal

Params.N             = N;      % The length of the signal

Params.N1    = 4;              % The samples of one impulse

Params.M     = 4;              % The number of periods

Params.Fn_N  = 0;   % a vector which contains the period of each component (Fs / fc)

Params.mu    = 9.235e-4;       % The parameter related to sparsity within groups

Params.pen   = 'atan';         % The penalty function

Params.rho   = 1;              % The degree of nonconvex

Params.Nit   = 100;            % The number of iteration

% Estimate noise

[C,L]=wavedec(y,5,'sym8');

c1=detcoef(C,L,1);

est_noise=median(abs(c1-median(c1)))/0.678;

Params.lam= 0.272*est_noise + 0.044;

[AdaESPGL_result] = AdaESPGL(y, Params);

%% BPD,  

N=Params.N ;

rho = 1;

Method.Name = 'L1';

k_sparsity=round(N*10/100);

BPD_result = IterGSS_modified(y, rho, k_sparsity, Method)';

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

%% Plot

fig=figure(8);

set(fig,'position',[100 100 800 1000]);

subplot(5,2,1)

plot(t, y);

axis([0 1 -2.1 2.1])

title('a) Original')

ylabel('Amp.')

subplot(5,2,3)

plot(t, P_GSL_result);

axis([0 1 -2.1 2.1])

title('c) P-GSL')

ylabel('Amp.')

subplot(5,2,5)

plot(t, AdaESPGL_result);

axis([0 1 -2.1 2.1])

title('e) AdaESPGL')

ylabel('Amp.')

subplot(5,2,7)

plot(t, GSL_result);

axis([0 1 -2.1 2.1])

title('g) GSL')

ylabel('Amp.')

subplot(5,2,9)

plot(t, BPD_result);

axis([0 1 -2.1 2.1])

title('i) BPD')

ylabel('Amp.')

xlabel('Time (s)')

%%

F = ([1:N]-1)*Fs/N;

F2= F(1:2001);

subplot(5,2,2)

y_enve=abs( fft(abs(hilbert(y))))/(N/2);

% y_enve=y_enve/max(y_enve);

plot(F2,  y_enve(1:2001))

axis([0 800 0 0.035])

title('b) Original')

subplot(5,2,4)

our_PSBL_enve=abs(fft(abs(hilbert(P_GSL_result))))/(N/2);

% our_PSBL_enve=our_PSBL_enve/max(our_PSBL_enve);

plot(F2,  our_PSBL_enve(1:2001) )

axis([0 800 0 0.035])

title('d) P-GSL')

subplot(5,2,6)

y_AdaESPGL_enve=abs(fft(abs(hilbert(AdaESPGL_result))))/(N/2);

% y_AdaESPGL_enve=y_AdaESPGL_enve/max(y_AdaESPGL_enve);

plot(F2,  y_AdaESPGL_enve(1:2001))

axis([0 800 0 0.035])

title('f) AdaESPGL')

subplot(5,2,8)

our_SBL_enve=abs(fft(abs(hilbert(GSL_result))))/(N/2);

% our_SBL_enve=our_SBL_enve/max(our_SBL_enve);

plot(F2,  our_SBL_enve(1:2001) )

axis([0 800 0 0.035])

title('h) GSL')

subplot(5,2,10)

y_BPD_enve=abs(fft(abs(hilbert(BPD_result))))/(N/2);

% y_BPD_enve=y_BPD_enve/max(y_BPD_enve);

plot(F2,  y_BPD_enve(1:2001) )

axis([0 800 0 0.035])

title('j) BPD')

xlabel('Frequency [Hz]')

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]段青.基于稀疏贝叶斯学习方法的回归与分类在电力系统中的预测研究[D].山东大学,2010.DOI:10.7666/d.y1794532.

[2]谈斐祺 谢磊 王挺任.基于稀疏性贝叶斯极限学习机的气动调节阀多类故障诊断[J].上海应用技术学院学报:自然科学版, 2015, 15(3):6.DOI:10.3969/j.issn.1671-7333.2015.03.012.

🌈4 Matlab代码、数据

资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取【请看主页然后私信】

相关文章
|
13天前
|
人工智能 自然语言处理 Shell
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
本教程指导用户在开源AI助手Clawdbot中集成阿里云百炼API,涵盖安装Clawdbot、获取百炼API Key、配置环境变量与模型参数、验证调用等完整流程,支持Qwen3-max thinking (Qwen3-Max-2026-01-23)/Qwen - Plus等主流模型,助力本地化智能自动化。
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
|
8天前
|
人工智能 安全 机器人
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI助手,支持钉钉、飞书等多平台接入。本教程手把手指导Linux下部署与钉钉机器人对接,涵盖环境配置、模型选择(如Qwen)、权限设置及调试,助你快速打造私有、安全、高权限的专属AI助理。(239字)
4886 13
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
|
9天前
|
人工智能 机器人 Linux
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI智能体,支持飞书等多平台对接。本教程手把手教你Linux下部署,实现数据私有、系统控制、网页浏览与代码编写,全程保姆级操作,240字内搞定专属AI助手搭建!
4912 16
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
|
7天前
|
人工智能 机器人 Linux
OpenClaw(Clawdbot、Moltbot)汉化版部署教程指南(零门槛)
OpenClaw作为2026年GitHub上增长最快的开源项目之一,一周内Stars从7800飙升至12万+,其核心优势在于打破传统聊天机器人的局限,能真正执行读写文件、运行脚本、浏览器自动化等实操任务。但原版全英文界面对中文用户存在上手门槛,汉化版通过覆盖命令行(CLI)与网页控制台(Dashboard)核心模块,解决了语言障碍,同时保持与官方版本的实时同步,确保新功能最快1小时内可用。本文将详细拆解汉化版OpenClaw的搭建流程,涵盖本地安装、Docker部署、服务器远程访问等场景,同时提供环境适配、问题排查与国内应用集成方案,助力中文用户高效搭建专属AI助手。
3452 8
|
11天前
|
人工智能 JavaScript 应用服务中间件
零门槛部署本地AI助手:Windows系统Moltbot(Clawdbot)保姆级教程
Moltbot(原Clawdbot)是一款功能全面的智能体AI助手,不仅能通过聊天互动响应需求,还具备“动手”和“跑腿”能力——“手”可读写本地文件、执行代码、操控命令行,“脚”能联网搜索、访问网页并分析内容,“大脑”则可接入Qwen、OpenAI等云端API,或利用本地GPU运行模型。本教程专为Windows系统用户打造,从环境搭建到问题排查,详细拆解全流程,即使无技术基础也能顺利部署本地AI助理。
7335 16
|
9天前
|
存储 人工智能 机器人
OpenClaw是什么?阿里云OpenClaw(原Clawdbot/Moltbot)一键部署官方教程参考
OpenClaw是什么?OpenClaw(原Clawdbot/Moltbot)是一款实用的个人AI助理,能够24小时响应指令并执行任务,如处理文件、查询信息、自动化协同等。阿里云推出的OpenClaw一键部署方案,简化了复杂配置流程,用户无需专业技术储备,即可快速在轻量应用服务器上启用该服务,打造专属AI助理。本文将详细拆解部署全流程、进阶功能配置及常见问题解决方案,确保不改变原意且无营销表述。
5273 5
|
11天前
|
人工智能 JavaScript API
零门槛部署本地 AI 助手:Clawdbot/Meltbot 部署深度保姆级教程
Clawdbot(Moltbot)是一款智能体AI助手,具备“手”(读写文件、执行代码)、“脚”(联网搜索、分析网页)和“脑”(接入Qwen/OpenAI等API或本地GPU模型)。本指南详解Windows下从Node.js环境搭建、一键安装到Token配置的全流程,助你快速部署本地AI助理。(239字)
4947 22
|
17天前
|
人工智能 API 开发者
Claude Code 国内保姆级使用指南:实测 GLM-4.7 与 Claude Opus 4.5 全方案解
Claude Code是Anthropic推出的编程AI代理工具。2026年国内开发者可通过配置`ANTHROPIC_BASE_URL`实现本地化接入:①极速平替——用Qwen Code v0.5.0或GLM-4.7,毫秒响应,适合日常编码;②满血原版——经灵芽API中转调用Claude Opus 4.5,胜任复杂架构与深度推理。
9445 13