一种改进解卷积算法在旋转机械故障诊断中的应用(MATLAB)

轴承振动是随机振动。在不同的时刻,轴承振动值是不尽相同的,不能用一个确定的时间函数来描述。这是由于滚动体除了有绕轴承公转运动以外,还有绕自身轴线的自旋运动,且在轴承运转时,滚动接触表面形貌是不断变化的,以及外来杂质进入运行区域的不确定性形成的。轴承振动也是宽带振动,其振动能量分布在一个宽带范围内,反映在幅值谱中就是轴承的振动频率范围为零到数万赫兹的连续谱。

当轴承正常时,其振动信号近似服从正态分布,此时信号中非噪声成分主要源于保持架转频和轴频,以及保持架对轴的旋转产生的微弱调制,信号能量在频域分布比较均匀,且各个频率分量的不确定性都较大且比较接近;而当轴承出现故障时,故障冲击将激励系统共振,产生脉冲冲击串,这将改变轴承振动信号的概率分布和能量分布,信号能量就会逐渐集中到故障特征频率(带)上。且随着轴承性能退化,信噪水平增加,信号的频率分布变得越来越规则,轴承振动信号的能量也会更加集中。

当轴承故障时,其原始脉冲冲击信号受随机噪声信号和周期信号干扰,并经过一定的传递路径衰减等因素影响,传感器采集的振动信号往往不能够反映真实的轴承故障信息,为设备故障诊断和状态监测增加了难度。解卷积类算法可以突出信号中的脉冲冲击成分,使得滤波后信号是原来脉冲冲击成分的一个近似。因此,可以认为经解卷积滤波后的信号是一个更加接近于轴承脉冲冲击信号的信号,对该信号做包络谱分析等即可找出轴承故障频率,进而反映轴承的故障类型。而当轴承正常时,轴承的脉冲冲击信号主要为轴的转频成分。经解卷积滤波处理后的信号,其在包络谱中对应的峰值频率为轴的转频,为判断轴承正常提供理论依据。

鉴于此,采用一种改进解卷积算法对旋转机械进行故障诊断,该算法不需要先验知识,效果较好。

function [CoSi, Bm] = CoSiEn(Sig, varargin)narginchk(1,11)
Sig = squeeze(Sig);p = inputParser;
Chk = @(x) isnumeric(x) && isscalar(x) && (x > 0) && (mod(x,1)==0);
Chk2 = @(x) isnumeric(x) && isscalar(x) && (x >= 0);
Chk3 = @(x) isnumeric(x) && isscalar(x) && (x > 1) && (mod(x,1)==0);
addRequired(p,'Sig',@(x) isnumeric(x) && isvector(x) && (length(x) > 10));
addParameter(p,'m',2,Chk3);
addParameter(p,'tau',1,Chk);
addParameter(p,'r',.1,@(x) isnumeric(x) && (x > 0) && (x < 1));
addParameter(p,'Logx',2,Chk2);
addParameter(p,'Norm',0,@(x) ismember(x,[0:4]));
parse(p,Sig,varargin{:})
m = p.Results.m; tau = p.Results.tau; r = p.Results.r;
Logx = p.Results.Logx; Norm = p.Results.Norm;N = length(Sig);
if Logx == 0Logx = exp(1);
end
if Norm == 1Xi = Sig - median(Sig);
elseif Norm == 2Xi = Sig - mean(Sig);
elseif Norm == 3Xi = (Sig - mean(Sig))/std(Sig,1);
elseif Norm == 4Xi = (2*(Sig - min(Sig))/range(Sig)) - 1;
elseXi = Sig;
end
Nx = N-((m-1)*tau);
Zm = zeros(Nx,m);
for n = 1:mZm(:,n) = Xi((n-1)*tau+1:Nx+(n-1)*tau);
endNum = Zm*Zm'; 
Mag = sqrt(diag(Num));
Den = Mag*Mag';
AngDis = acos(Num./Den)/pi;
if max(imag(AngDis(:))) < (10^-5) %max(max(imag(AngDis))) < (10^-5)Bm = sum(sum(triu(round(AngDis,6) < r,1)))/(Nx*(Nx-1)/2);
elseBm = sum(sum(triu(real(AngDis) < r,1)))/(Nx*(Nx-1)/2);warning('Complex values ignored')
end
if Bm == 1 || Bm == 0CoSi = 0;
elseCoSi = -(Bm*log(Bm)/log(Logx)) - ((1-Bm)*log(1-Bm)/log(Logx));
end
end
代码可通过知乎学术咨询获得:
https://www.zhihu.com/consult/people/792359672131756032?isMe=1

擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/859670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android与JavaScript的交互,以实现从WebView中打开原生页面并传递参数

在Android应用中&#xff0c;实现Android与JavaScript的交互&#xff0c;以实现从WebView中打开原生页面并传递参数&#xff0c;可以通过以下详细步骤完成&#xff1a; 1. 准备工作 添加WebView至布局&#xff1a;在你的Activity或Fragment的XML布局文件中加入WebView控件。 …

计算机中丢失vcruntime140_1.dll如何修复?分享7种常用解决方法

vcruntime140_1.dll缺失原因分析 软件卸载或更新不当在软件卸载或更新过程中&#xff0c;如果未能正确处理依赖关系&#xff0c;可能会导致vcruntime140_1.dll文件被错误地删除或损坏。 据统计&#xff0c;约有30%的DLL文件丢失问题是由于不当的卸载或更新操作引起的。 用户…

行列视(RCV)在生产型企业中的应用与集控值班员考核体系优化

行列视&#xff08;RCV&#xff09;在生产型企业中的应用主要体现在数据整合、报表制作与可视化、数据分析与决策支持等方面&#xff0c;对于提高生产型企业的工作效率、优化管理流程以及实现数字化转型具有重要意义。而集控值班员考核体系的优化&#xff0c;则关乎于电力集控站…

git 拉下来的项目,出现“加载失败”的解决方法

现象&#xff1a; 1、对加载失败的项目&#xff0c;尝试重新加载 解决思路&#xff1a;根据上面的提示&#xff0c;打开F盘对应的 .vcxproj文件&#xff0c;查看里面关于opencv454.props的内容 先删了&#xff0c;后面再补 2、当前的工作重点是消除加载失败的情况&#xff0c;…

【杂记-浅谈TCP/IP协议模型】

TCP/IP协议模型 一、TCP/IP协议概述2、端口号使用规则 二、TCP/IP各层级 一、TCP/IP协议概述 TCP/IP&#xff0c;Transmission Control Protocol/Internet Protocol。TCP/IP协议是指一个有FTP、SMTP、TCP、UDP 、IP等协议构成的协议簇&#xff0c;是互联网通信的基础&#xff…

JavaScript循环遍历:数组A与B的循环遍历及数据同步策略

在编程中&#xff0c;我们经常需要处理数组数据&#xff0c;特别是当需要将一个数组中的某些数据映射到另一个数组时。本文将通过一个具体的JavaScript函数实现&#xff0c;来探讨数组A和数组B的循环遍历赋值情况&#xff0c;以及如何处理数组中存在的循环值和不存在循环中的情…

Day13—大语言模型

定义 大语言模型&#xff08;Large Language Models&#xff09;是一种基于深度学习的自然语言处理&#xff08;NLP&#xff09;模型&#xff0c;用于处理和生成人类语言文本。 一、认识NLP 什么是NLP ​ NLP&#xff08;Natural Language Processing&#xff09;&#xff0…

不同系统传文件

Windows 系统与 Linux 系统之间传输文件&#xff0c;基于网络协议的方法有很多种。以下是几种常见的方法&#xff1a; 1. 使用 SCP&#xff08;Secure Copy Protocol&#xff09;SCP 是一种通过 SSH 传输文件的协议&#xff0c;安全且简单。 在 Windows 上使用 SCP下载并安装一…

鸿蒙NEXT实战开发: 依据前端对http请求进行二次简单封装

一、为什么要对http请求进行封装&#xff1f; 在我看来二次封装有一下几点好处 代码封装之后&#xff0c;开发人员只用关注业务层面的东西&#xff0c;不用去过多浪费时间在接口请求数据处理上。封装之后代码更加简洁&#xff0c;通俗易懂&#xff0c;方便后期维护&#xff0…

MUR4060PT-ASEMI逆变焊机MUR4060PT

编辑&#xff1a;ll MUR4060PT-ASEMI逆变焊机MUR4060PT 型号&#xff1a;MUR4060PT 品牌&#xff1a;ASEMI 封装&#xff1a;TO-247 恢复时间&#xff1a;35ns 最大平均正向电流&#xff08;IF&#xff09;&#xff1a;40A 最大循环峰值反向电压&#xff08;VRRM&#x…

Nature重磅:揭开睡眠不足为什么会损害记忆力

我们的记忆力会在睡眠期间得到增强&#xff0c;海马体是大脑的记忆中心&#xff0c;而海马体尖波涟漪&#xff08;sharp-wave ripple&#xff0c;SWR&#xff09;期间觉醒体验的激活和重放被认为是记忆力得到增强的关键。睡眠不足会损害记忆力&#xff0c;然而&#xff0c;我们…

计算机组成原理笔记-第4章 存储器

第4章 存储器 笔记PDF版本已上传至Github个人仓库&#xff1a;CourseNotes&#xff0c;欢迎fork和star&#xff0c;拥抱开源&#xff0c;一起完善。 该笔记是最初是没打算发网上的&#xff0c;所以很多地方都为了自我阅读方便&#xff0c;我理解了的地方就少有解释&#xff1b…

【杂记-浅谈OSPF中的各种报文】

OSPF中的各种报文 一、Hello报文二、DD报文三、LSR报文四、LSU报文五、LSAck报文 一、Hello报文 Hello报文周期性发送&#xff0c;用来发现和维持OSPF邻居关系&#xff0c;其中&#xff0c;Hello报文包含的字段有&#xff1a; 1、Network Mask&#xff1a;发送Hello报文的接口…

Tomcat简介与安装

目录 一、Tomcat 简介 1、Tomcat好帮手---JDK 2、安装Tomcat & JDK 1、系统环境说明 2 、安装JDK 3、安装Tomcat 二、Tomcat目录介绍 1、tomcat主目录介绍 2、webapps目录介绍 3、Tomcat配置介绍&#xff08;conf&#xff09; 4、Tomcat的管理 5、tomcat 配置管…

Linux启动Oracle数据库

1.登录oracle用户 su - oracle2.进入sqlplus界面 sqlplus / as sysdba; 或者 sqlplus /nolog; conn / as sysdba;3.启动数据库实例 SQL> startup4.停止数据库实例 SQL> shutdown immediate5.检查数据库是否启动 ps -ef|grep ora_6.检查监听是否启动 lsnrctl status…

Spring Boot 优雅进行数据脱敏

文详细解析在Spring Boot应用中优雅地脱敏敏感信息&#xff0c;如手机号、邮箱、身份证等&#xff0c;使用的是Jackson库中的JsonSerializer。 1. 创建自定义脱敏序列化器 首先&#xff0c;创建一个继承自JsonSerializer<String>的序列化器。以MobileSerializer为例&am…

24.6.16

星期一&#xff1a; 补cf global round26 C2 cf传送门 思路&#xff1a;有效操作2只有一次&#xff0c;且反转后不会再出现负数&#xff0c;即后面能贡献 2^n-i个方案&#xff0c;再乘上前面 2^(k>0的次数) 代码如下&…

B3850 [GESP202306 四级] 幸运数

特殊原因&#xff0c;学校请2.5天假 [GESP202306 四级] 幸运数 题目描述 小明发明了一种 "幸运数"。一个正整数&#xff0c;其偶数位不变&#xff08;个位为第 1 位&#xff0c;十位为第 2 位&#xff0c;以此类推&#xff09;&#xff0c;奇数位做如下变换&#x…

【C++11】initializer_list详解!

一、什么是initializer_list? nitializer_list 是一种C11新的类型特性&#xff0c;它允许我们以统一的方式初始化对象。它是一个代表数组的轻量级包装器&#xff0c;通常用于构造函数和函数参数中&#xff0c;以允许传递一个初始化元素列表。 initializer_list也是一种模板类…

【C#基础】C#中的IEnumerable<T>接口介绍

文章目录 前言一、关于 IEnumerable<T> 接口的一些关键点1、定义2、使用3、LINQ支持4、自定义实现5、线程安全6、延迟执行 二、C#中的IEnumerable<T>接口的扩展介绍1、接口定义与基础2、使用场景3、扩展方法4、延迟执行5、自定义实现6、线程安全7、性能考虑 前言 …