基于KNN的旋转机械故障诊断方法(MATLAB)

首先说点其他的,容易水论文的,比如基于几何模型的旋转机械故障诊断。

近年来,仿射包、超球体、凸包、超圆盘等图形学中的几何模型受到了学者的广泛关注, 并提出了一系列基于几何模型的分类方法。几何模型分类方法通常采用一种几何模型估计样本的类别分布,并根据某种决策准则(如最大间隔分类,最近邻分类)实现模式识别的目的。就分类性能而言,由于仿射包的无界性,在处理样本数量有限的高维数据时,其分类性能要逊色于超球体、凸包、超圆盘等有限边界几何模型。基于超球体的分类模型通过构造一个最小体积超球体来描述样本分布,其最典型的模型为支持向量数据描述SVDD。SVDD 是一种经典的单分类模型,在故障诊断领域常用于故障检测。

在计算几何学中,凸包为样本在给定空间中所构成的最小凸多边形。最大间隔凸包分类MMCCH是通过寻找不同类别凸包间的最近邻点,从而构建具有最大间隔的分类超平面,以分离不同类别样本。从几何角度分析,SVM 的求解问题可以转化为两个凸包间的最大间隔问题,因而MMCCH 是SVM 更直观的几何解释,两者的目标函数是可以相互转化的。由于基于凸包的分类方法具有坚实的统计学原理及良好的可解释性,因此在故障诊断方面具有一定的优越性。

然而,凸包对样本的类别分布估计过于紧密,导致其对异常值格外敏感。为此,超圆盘几何模型被提出,其具体表示形式为仿射包和超球体在样本空间的交集。因此,超圆盘的样本边界要比仿射包紧致,同时要比凸包松弛,这极大增强了超圆盘模型的泛化能力。基于超圆盘模型,最近邻超圆盘分类器NHDC和大间隔超圆盘分类器LMCHD被相继提出,并被用于高维小样本数据分类,也被成功引入故障诊断领域。

接下来,采用KNN模型对旋转机械故障进行诊断,运行环境为MATLAB R2018A,故障包括轴承故障、齿轮啮合故障、不平衡故障、不对中故障、多点故障、共振故障

Matlab 复制代码
%===================== Plot time-domain graph ==========================%

plot_time_domain('bearing.mat')
plot_time_domain('gearmesh.mat')
plot_time_domain('imbalance.mat')
plot_time_domain('misalignment.mat')
plot_time_domain('multifault.mat')
plot_time_domain('resonance.mat')


%===================== Plot frequency-domain graph and time domain graph side by side ====================%

 global pos_data;
 pos_data=1;
 figure( 'Name','Figure showing a comparison between time domain and frequency domain graph for various types of Faults ')
 plot_frequency_domain('bearing.mat')
 plot_frequency_domain('gearmesh.mat')
 plot_frequency_domain('imbalance.mat')
 plot_frequency_domain('misalignment.mat')
 plot_frequency_domain('multifault.mat')


知乎学术咨询获取代码:
https://www.zhihu.com/consult/people/792359672131756032?isMe=1
擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。


 plot_frequency_domain('resonance.mat')
  • 擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。
相关推荐
锅包肉的九珍1 分钟前
Scala的Array数组
开发语言·后端·scala
心仪悦悦4 分钟前
Scala的Array(2)
开发语言·后端·scala
yqcoder27 分钟前
reactflow 中 useNodesState 模块作用
开发语言·前端·javascript
baivfhpwxf202337 分钟前
C# 5000 转16进制 字节(激光器串口通讯生成指定格式命令)
开发语言·c#
许嵩6640 分钟前
IC脚本之perl
开发语言·perl
长亭外的少年1 小时前
Kotlin 编译失败问题及解决方案:从守护进程到 Gradle 配置
android·开发语言·kotlin
直裾1 小时前
Scala全文单词统计
开发语言·c#·scala
心仪悦悦1 小时前
Scala中的集合复习(1)
开发语言·后端·scala
JIAY_WX1 小时前
kotlin
开发语言·kotlin