基于近似熵、样本熵、模糊熵、排列熵、散布熵和优化支持向量机SVM的机械故障诊断(附Matlab代码)

旋转机械在运行中的故障率较高,使得故障诊断得到广泛重视。目前,常见的故障诊断方法主要包括振动信号分析,声学信号分析,轴承温度监测等。由于振动信号具有易于采集和分析的优点, 基于振动信号的故障诊断方法应用最为广泛。传统时频域的特征提取方法往往不能有效提取隐藏的故障特征,导致故障识别率降低。由于在不同位置发生故障时,故障冲击引起的系统响应不同,从而使得振动信号的混乱程度有所不同。基于熵值理论的分析方法可以不经过信号的分解或变换,直接度量信号的复杂度,完成不同故障的识别。故障诊断本质是一个分类问题,解决这类问题主要有两步:1.利用熵的方法从信号中提取信息,即信号的熵值为故障特征;2.基于提取的熵值,利用机器学习方法作为分类器进行识别
 

支持向量机SVM是机器学习中非常优秀的算法,在解决小样本问题上具有出色的性能。然而,SVM的性能受其参数的影响。传统的依靠人工经验选取和网格试错法都难以很好地解决。群智能优化算法是一种很有吸引力的算法,可以在保持计算成本合理的情况下解决SVM参数的选择问题,提高SVM的分类性能和泛化能力。本文利用matlab自带的SVM分类器,省去了安装第三方工具箱的繁琐,避免了安装不成功的风险,通过群智能优化算法选择SVM合适参数,解决分类问题。

本期推出近似熵、样本熵、模糊熵、排列熵、散布熵共5种熵结合SVM进行故障诊断。表面上得到5种诊断方法,实际上这些熵随便排列组合就有几十种!!!

基于熵的故障诊断,知网上有很多,理论知识这里不在赘述。参考文献(已标注发表年份):

【1】近似熵:Pincus, and M. S. . "Approximate entropy as a measure of system complexity. " Proceedings of the National Academy of Sciences of the United States of America 88.6(1991):2297-2301

【2】样本熵:J. S. Richman and J. R. Moorman, “Physiological time-series analysis using approximate entropy and sample entropy,” American Journal of Physiology-Heart and Circulatory Physiology, vol. 278, no. 6, pp. H2039–H2049, Jun. 2000, doi: 10.1152/ajpheart.2000.278.6.H2039

【3】模糊熵:Chen, W. , et al. "Characterization of Surface EMG Signal Based on Fuzzy Entropy." IEEE transactions on neural systems and rehabilitation engineering: a publication of the IEEE Engineering in Medicine and Biology Society 2(2007):15.

【4】排列熵:C. Bandt and B. Pompe, “Permutation Entropy: A Natural Complexity Measure for Time Series,” Phys. Rev. Lett., vol. 88, no. 17, p. 174102, Apr. 2002, doi: 10.1103/PhysRevLett.88.174102.

【5】散布熵:M. Rostaghi and H. Azami, “Dispersion Entropy: A Measure for Time-Series Analysis,” IEEE Signal Process. Lett., vol. 23, no. 5, pp. 610–614, May 2016, doi: 10.1109/LSP.2016.2542881.

02. 实操

数据集

本文使用诊断任务中经典的凯斯西储大学CWRU数据集。随机选择了5类状态,选用DE端的振动数据,暂且命名为正常,故障1,故障2,故障3,故障4。设置每个样本长度为1024,每类状态共100个样本,总样本大小为:500*1024。即样本数*样本长度。

图片

样本分割设置了重叠个数,可以随意选择重叠个数进行样本划分。非重叠即为重叠个数为0的情况,具体的原理如下:
非重叠:

图片

重叠:

图片

特征提取

总样本大小为:500*1024。计算每个样本的熵值,形成500*1的特征空间,将特征输入到后续的分类器中。这些熵可随便排列组合,那么特征空间就是500*n,n取决你选的特征个数。

SVM分类器

利用Matlab自带了SVM分类器fitcecoc函数用于多分类任务(类别数>2),利用fitcsvm用于二分类任务。详细信息请参考matlab的阅读文档:

https://www.mathworks.com/help/stats/fitcecoc.html  

本文选择径向基核函数(RBF)作为SVM的核函数,因此,SVM待选择的参数有两个:惩罚系数C和核参数g。k折交叉验证的误差作为优化目标函数。

优化算法

以2023年发表在中科院1区SCI上的成吉思汗鲨鱼优化算法(Genghis Khan shark optimizer,GKSO)(源码),和受欢迎的灰狼优化算法(GWO)(源码作为例子。前期也推出了多种统计指标(一网打尽优化算法的8种统计指标,助力提升论文录用率(附Matlab代码)),在SVM参数优化中继续使用。

诊断流程

基于近似熵、样本熵、模糊熵、排列熵、散布熵和优化支持向量机SVM的机械故障诊断流程图大致如下:

图片

结果展示:

PE不同状态对比

图片

混淆矩阵

图片

图片

分类结果图

图片

图片

箱型图boxplot

图片

收敛曲线

图片

多次运行结果保存在Optimal_results中。这里考虑快速验证代码和算法,仅运行了2次,可根据实际需要修改。

图片

Matlab代码:

 基于近似熵、样本熵、模糊熵、排列熵、散布熵和优化支持向量机SVM的机械故障诊断(附Matlab代码)

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
样本MATLAB实现可以使用以下代码: ```matlab function H = SampleEntropy(N, m, r, input) for i = 1 : length(input) for j = 1 : N-m+1 temp = input(i, j:j+m-1); A = []; for k = 1 : N-m+1 if k ~= i dist = max(abs(temp-input(k, j:j+m-1))); if dist <= r A = [A; k]; end end end C(i, j) = length(A); end end B = sum(C); H = -sum(B .* log(B/size(C, 2))) / size(C, 2); end ``` 这段代码实现了计算样本的函数。其中,N表示样本数据序列的长度,m表示采样的模板长度,r表示匹配窗口的差异阈值,input为输入的样本数据序列。在函数中,首先遍历每个样本,然后遍历每个子序列,计算其与其他子序列的距离,并根据阈值判断是否为匹配点。最后,统计每个窗口内的匹配点数,计算概率并计算样本。需要注意的是,若概率为0或1,需要取特殊值进行计算。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [样本及其matlab实现方法](https://blog.csdn.net/weixin_44463965/article/details/130672201)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [matlab求信号的样本](https://blog.csdn.net/weixin_44463965/article/details/130555499)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值