基于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等。
相关推荐
MSTcheng.2 分钟前
C语言操作符(上)
c语言·开发语言
DevOpsDojo10 分钟前
HTML语言的数据结构
开发语言·后端·golang
懒大王爱吃狼11 分钟前
Python绘制数据地图-MovingPandas
开发语言·python·信息可视化·python基础·python学习
数据小小爬虫15 分钟前
如何使用Python爬虫按关键字搜索AliExpress商品:代码示例与实践指南
开发语言·爬虫·python
好一点,更好一点30 分钟前
systemC示例
开发语言·c++·算法
不爱学英文的码字机器33 分钟前
[操作系统] 环境变量详解
开发语言·javascript·ecmascript
martian66537 分钟前
第17篇:python进阶:详解数据分析与处理
开发语言·python
五味香42 分钟前
Java学习,查找List最大最小值
android·java·开发语言·python·学习·golang·kotlin
AIGC大时代43 分钟前
方法建议ChatGPT提示词分享
人工智能·深度学习·chatgpt·aigc·ai写作
糯米导航1 小时前
ChatGPT Prompt 编写指南
人工智能·chatgpt·prompt