【源自一区】散度熵(Diversity Entropy)及其5种多尺度熵+多种分类器的状态识别和故障诊断(附Matlab代码)

目录

引言

数据集

特征提取

分类器

诊断流程

友情提示

Matlab代码下载

点击链接跳转:


引言

散度熵(Diversity Entropy,翻译可能不准确哈,请谅解)于2021年发表在中科院1区期刊 IEEE Transactions on Industrial Informatics(影响因子突破12)。散度熵首次提出并运用于机械设备的状态识别和故障诊断,从利用熵值表征不同的状态。而实际上,振动信号的本质是时间序列,那么散度熵可用于其他时间序列中,如:电能质量数据、风速、功率、声音、温度、交通、水流等等,您能想到的时间序列皆有可能。目前,基于散度熵的研究还不多

图片

图片

基于熵值理论的分析方法可以不经过数据的分解或变换,直接度量数据的复杂度,可完成不同时间序列的分类。状态识别和故障诊断本质是一个分类问题,解决这类问题主要有两步:1.利用熵的方法从信号中提取信息,即信号的熵值为故障特征;2.基于提取的熵值,利用机器学习方法作为分类器进行识别

本期推出散度熵及其5种多尺度熵结合多种机器学习方法进行状态识别和故障诊断。

散度熵(Diversity Entropy)多尺度散度熵(Multiscale Diversity Entropy)复合多尺度散度熵(Composite Multiscale Diversity Entropy)精细复合多尺度散度熵(Refined Composite Multiscale Diversity Entropy)时移多尺度散度熵(Time-shift Multiscale Diversity Entropy)层次散度熵(Hierarchical Multiscale Diversity Entropy)

散度熵的理论请参考原始论文:

X. Wang, S. Si and Y. Li, "Multiscale Diversity Entropy: A Novel Dynamical Measure for Fault Diagnosis of Rotating Machinery," in IEEE Transactions on Industrial Informatics, vol. 17, no. 8, pp. 5419-5429, Aug. 2021, doi: 10.1109/TII.2020.3022369.

5种多尺度的理论知识在中、英文期刊都有很多,可以参考其他论文,本期不在赘述。

图片

02. 实操

数据集

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

图片

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

图片

重叠:

图片

特征提取

计算每个样本的熵值(以上6种熵可随意切换),形成500*n的特征空间,将特征输入到后续的分类器中。对于散度熵而言,n=1,对于多尺度熵而言,n=你设置的时间尺度

分类器

将上述特征空间以一定的比例,划分了训练集、测试集,可非常方便地输入到任何分类器中

暂时集成了3种常用的分类器(可随意切换,也可自行添加其他分类器):

  1. 极限学习机(Extreme Learning Machine,ELM)

  2. 支持向量机(Support Vector Machine, SVM)

  3. 决策树(Decision Tree,DT)

为了消除随机性带来的影响,使结果更具说服力,模型运行了多次,每次运行都随机选择新的训练集和测试集,以平均结果作为最后的结果。

诊断流程

故障识别、诊断流程图大致如下:

图片

TSMDivEn-ELM结果展示

不同状态对比

图片

图片

混淆矩阵及分类结果图

图片

特征值 和 多次运行结果保存在mat中。可以方便使用matlab,python调用和查看这里考虑快速验证代码和算法,仅运行了2次,可根据实际需要修改。可以看到各状态的特征类间分离明显,类内高度聚合。

友情提示

1.理论上,该代码可适用于所有时间序列分类数据集,仅需将数据格式转换成:样本数N x 特征个数M。因此,可以浅显的理解:多分类问题实质是一个数据格式转换过程

2.理论上,该代码可替换的部分只有:数据加载和参数设置好处是:代码修改量极少,复用率高

3.如有matlab基础语法和代码bug问题,请多看资料,百度或者GPT解决;

4.如有其他专业疑问,请多阅读相关文献。

Matlab代码下载

微信搜索并关注-优化算法侠,或扫描下方二维码关注,以算法名字搜索历史文章即可下载。

【源自一区】散度熵(Diversity Entropy)及其5种多尺度熵+多种分类器的状态识别和故障诊断(附Matlab代码)

点击链接跳转:


matlab版的340种基础优化算法免费下载

cec2017测试函数使用教程及matlab代码免费下载

cec2018测试函使用教程及matlab代码免费下载

cec2019测试函使用教程及matlab代码免费下载

cec2020测试函使用教程及matlab代码免费下载

cec2021测试函使用教程及matlab代码免费下载

cec2022测试函使用教程及matlab代码免费下载
绘制cec2017/018/2019/2020/2021/2022函数的三维图像教程,SO EASY!

175种群智能优化算法python库

超175+种群智能优化算法Python库!!!icon-default.png?t=N7T8http://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247484577&idx=1&sn=ed0b2e27b73e738c094c7534a63a2cda&chksm=c12be8a4f65c61b2f3d90e2b4d1f480f8d0bb038b6598828ebf2434006e07925f8102af9795f&scene=21#wechat_redirect

求解cec测试函数-matlab

最新最火!cec2022测试函数来了(附Matlab代码)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247484693&idx=1&sn=ce311acb26bee2894db6fe90776288bd&chksm=c12be910f65c6006af080b1e97ad5514eee06b64d2caeeac2008b8c06fdc3ba379455e9ca709&scene=21#wechat_redirect

解决12工程设计优化问题-matlab

略微出手,工程设计问题(12)(附Matlab代码)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247485052&idx=1&sn=80e5573c1c005ee5640e44935044ee35&chksm=c12bea79f65c636fc73758b4f4893502bd89cbd1c5d15d7db15e8b5c94eeae40450439d44944&token=681266555&lang=zh_CN#rd

求解11种cec测试函数-python

一网打尽!170+种优化算法求解11种cec测试函数(附Python代码)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247484745&idx=1&sn=1957f7c9b44c47f171c1cd46054d1679&chksm=c12be94cf65c605a5e0f8404e6c90964ce0743b7c25ff5f98a03dedc77e5eec5b48bf0c0e782&token=681266555&lang=zh_CN#rd

解决12种工程设计优化问题-python

大放送!170+种优化算法解决12种工程设计问题(附python代码)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247485068&idx=1&sn=c913be0f2445f8b4d3e944569f5e599f&chksm=c12bea89f65c639f1df0f8e6cacffc1fdffa96683d10743094435ee6b0b55573a5bc8eec7eb3&token=681266555&lang=zh_CN#rd

用于改进所有优化算法:21种混沌映射方法-混沌初始化(附matlab代码)

用于改进所有优化算法:21种混沌映射方法-混沌初始化(附matlab代码)21种混沌映射方法-混沌初始化,适用于所有优化算法icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486215&idx=2&sn=58f1a69175b0d6431a4c7cdfa114b84d&chksm=c12be702f65c6e14e6bd1ddc33b9cec74991d93303c325853049b7e4afd09039b13083fa79c5&token=25423484&lang=zh_CN#rd

沙场大点兵:24种信号分解方法(附matlab代码) 

沙场大点兵:24种信号分解方法(附matlab代码)icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486001&idx=1&sn=a87c24cb401017a78a90bd1b1439fcb0&chksm=c12be634f65c6f22368b7229a59ac5ef330b89d710c826dbfd1a1c34a02b1dd7e909c7f40d79&token=25423484&lang=zh_CN#rd

 沙场大点兵:27种一维数据转换成二维图像的方法-matlab代码沙场大点兵:27种一维数据转换成二维图像的方法-matlab代码icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDQ5MDk4Ng==&mid=2247486260&idx=1&sn=81b1970cb89364c0289ccdfb403e5388&chksm=c12be731f65c6e273a85456326b503b7f35d9f035405050932ff1926e0b1bfa8076b1bc2d1f2&token=25423484&lang=zh_CN#rd

### 精细复合多尺度算法实现与应用 #### 定义与原理 精细复合多尺度(Refined Composite Multiscale Dispersion Entropy, RCMSDE)是种改进的多尺度分析方法,旨在提高时间序列复杂性的评估精。该方法通过引入细化处理来减少噪声干扰,从而更精确地捕捉不同尺下的动态特征[^1]。 RCMSDE 的核心在于结合了多个尺上的计算,并采用了种新的组合策略以增强分能力。具体来说,在每个尺下先计算原始信号及其粗粒化版本的;随后利用这些值构建综合指标,最终形成个多维特征向量用于后续分析或分类任务。 #### Python 实现示例 下面是个简单的Python代码片段展示如何实现RCMSDE: ```python import numpy as np from scipy.signal import resample def dispersion_entropy(x, m=2, c=0.5): """ 计算单个尺上的 """ N = len(x) y = [] for i in range(N-m+1): yi = sum((x[i:i+m]-np.mean(x))**c)/m y.append(yi) p = np.histogram(y, bins='auto', density=True)[0] DE = -sum(p * np.log(p)) return DE def rcmsde(signal, scale_max=20): """ 计算精细复合多尺度 """ ms_de = [] # 对原信号进行多尺度分解 coarse_grained_signals = [signal] for s in range(1, scale_max + 1): temp_signal = signal.copy() while True: length = len(temp_signal) if length % (s + 1) != 0: temp_signal = temp_signal[:-length%(s+1)] else: break coarse_grained_signals.append(resample(temp_signal, int(len(temp_signal)/(s+1)))) # 计算各尺下的并求得到总分 total_score = 0 for idx, sig in enumerate(coarse_grained_signals[:scale_max]): de_val = dispersion_entropy(sig) weighted_de = ((idx + 1)**(-0.5))*de_val total_score += weighted_de ms_de.append(weighted_de) refined_msde = [(val / max(ms_de)) ** 2 for val in ms_de] return refined_msde, total_score ``` 此函数`rcmsde()`接收输入参数为待分析的维数组形式的时间序列数据 `signal`, 并返回两个结果列表:个是各个尺对应的精细化后的值组成的列表 `refined_msde`; 另外个是所有尺加权后累加所得的整体得分 `total_score`. 请注意这只是个简化版的例子,实际应用场景中还需要考虑更多细节优化以及针对不同类型的数据调整参数设置等问题。 #### 应用场景 RCMSDE广泛应用于机械健康监测领域中的状态识别故障诊断工作当中。通过对设备运行过程中产生的振动、声学或其他物理量变化记录下来作为时间序列样本,再运用上述提到的方法对其进行量化描述之后便可以有效地分正常操作条件与其他异常情况之间的差异[^3]。 此外,除了工业制造行业之外,任何涉及到长时间连续观测且存在周期性随机波动成分混合在起的现象都可以尝试使用这种方法来进行深入探究,比如金融市场的价格走势预测、气象预报模型建立等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值