01. 引言 机械设备在运行中的故障率较高,使得状态识别、故障诊断得到广泛重视。目前,常见的故障诊断方法主要包括振动信号分析,声学信号分析,温度监测,电信号分析等。传统时、频域的特征提取方法往往不能有效提取隐藏的故障特征,导致故障识别率降低。由于在不同位置发生故障时,故障冲击引起的系统响应不同,从而使得监测数据的混乱程度有所不同。基于熵值理论的分析方法可以不经过数据的分解或变换,直接度量数据的复杂度,可完成不同故障的识别。状态识别、故障诊断本质是一个分类问题,解决这类问题主要有两步:1.利用熵的方法从信号中提取信息,即信号的熵值为故障特征;2.基于提取的熵值,利用机器学习方法作为分类器进行识别。 本期推出散布熵(又称色散熵)及其5种多尺度熵共6种熵结合多种机器学习方法进行状态识别、故障诊断。 散布熵(Dispersion Entropy) 多尺度散布熵(Multiscale Dispersion Entropy) 复合多尺度散布熵(Composite Multiscale Dispersion Entropy) 精细复合多尺度散布熵(Refined Composite Multiscale Dispersion Entropy) 时移多尺度散布熵(Time-shift Multiscale Dispersion Entropy) 层次散布熵(Hierarchical Multiscale Dispersion Entropy) 基于散布熵及5种多尺度的理论知识中、英文期刊都有很多,本期不在赘述。 参考文献:
02. 实操 数据集本文使用故障识别和诊断任务中经典的凯斯西储大学CWRU数据集。随机选择了5类状态(当然可以加入更多的状态),选用DE端的振动数据,暂且命名为正常,故障1,故障2,故障3,故障4。设置每个样本长度为1024,每类状态共100个样本,总样本大小为:500*1024。即样本数*样本长度。 样本分割设置了重叠个数,可以随意选择重叠个数进行样本划分。非重叠即为重叠个数为0的情况,具体的原理如下: 重叠: 特征提取计算每个样本的熵值(以上6种熵可随意切换),形成500*n的特征空间,将特征输入到后续的分类器中。对于散布熵而言,n=1,对于多尺度熵而言,n=你设置的时间尺度。 分类器将上述特征空间以一定的比例,划分了训练集、测试集,可非常方便地输入到任何分类器中。 暂时集成了3种常用的分类器(可随意切换,也可自行添加其他分类器):
为了消除随机性带来的影响,使结果更具说服力,模型运行了多次,每次运行都随机选择新的训练集和测试集,以平均结果作为最后的结果。 诊断流程故障识别、诊断流程图大致如下: HDE-ELM结果展示: 不同状态对比 混淆矩阵 分类结果图 特征值 和 多次运行结果保存在mat中。可以方便使用matlab,python调用和查看这里考虑快速验证代码和算法,仅运行了2次,可根据实际需要修改。 友情提示1.理论上,该代码可适用于所有分类数据集,仅需将数据格式转换成:样本数N x 特征个数M。因此,可以浅显的理解:多分类问题实质是一个数据格式转换过程; 2.理论上,该代码可替换的部分只有:数据加载和参数设置。好处是:代码修改量极少,复用率高; 3.如有matlab基础语法和代码bug问题,请多看资料,百度或者GPT解决; 4.如有其他专业疑问,请多阅读相关文献。 03. Matlab代码获取 |
|