基于时域特征和频域特征组合的敏感特征集,再利用CNN进行轴承故障诊断(python编程)
1.文件夹介绍(使用的是CWRU数据集)

0HP-3HP四个文件夹装载不同工况下的内圈故障、外圈故障、滚动体故障和正常轴承数据。

2.模型
按照1024的长度分割样本,构建内圈故障、外圈故障、滚动体故障和正常轴承样本集
2.1.计算11种时域特征值
# 计算时域特征
def calculate_time_domain_features(signal):features = []# 均值features.append(np.mean(signal))# 标准差features.append(np.std(signal))# 方根幅值features.append(np.sqrt(np.mean(np.square(signal))))# 均方根值features.append(np.sqrt(np.mean(np.square(signal))))# 峰值features.append(np.max(signal))# 波形指标features.append(np.mean(np.abs(signal)) / np.sqrt(np.mean(np.square(signal))))# 峰值指标features.append(np.max(np.abs(signal)) / np.mean(np.abs(signal)))# 脉冲指标features.append(np.max(np.abs(signal)))# 裕度指标features.append(np.max(np.abs(signal)) / np.sqrt(np.mean(np.square(signal))))# 偏斜度features.append(skew(signal))# 峭度features.append(kurtosis(signal))return features
2.2.计算12种频域特征值
# 计算频域特征
def calculate_frequency_domain_features(signal, sample_rate):features = []# 快速傅里叶变换spectrum = fft(signal)spectrum = np.abs(spectrum)[:len(spectrum)//2] # 取一半频谱#频域指标1features.append(np.mean(spectrum))# 频域指标2features.append(np.var(spectrum))# 频域指标3features.append(np.sqrt(np.mean(np.square(spectrum))))# 频域指标4features.append(np.max(spectrum) / np.sqrt(np.mean(np.square(spectrum))))# 频域指标5features.append(kurtosis(spectrum))# 频域指标6features.append(skew(spectrum))# 频域指标7features.append(np.max(spectrum))# 频域指标8features.append(np.min(spectrum))# 频域指标9features.append(np.max(spectrum) - np.min(spectrum))# 频域指标10features.append(np.max(np.abs(spectrum)) / np.mean(np.abs(spectrum)))# 频域指标11features.append(np.max(np.abs(spectrum)) / np.sqrt(np.mean(np.square(spectrum))))# 频域指标12peak_index = np.argmax(spectrum)peak_frequency = peak_index * sample_rate / len(spectrum)features.append(peak_frequency)return features
2.3.构建评价指标,从时域和频域一共23个指标中选出对故障特征最敏感的前4个特征,这里用的是方差评价指标,也可以选用其它的评价指标
# 数据
samples = data # 轴承振动信号样本数据列表
sample_rate = 12000 # 采样率# 构建特征集
feature_set = build_feature_set(samples, sample_rate)# 选择前4个敏感特征
import numpy as np
from sklearn.model_selection import train_test_split# 将特征集转换为NumPy数组
feature_set = np.array(feature_set)# 计算评价指标(这里以方差为例)
scores = np.var(feature_set, axis=0)# 选出最敏感的4个特征
selected_indices = np.argsort(scores)[-4:]
selected_features = feature_set[:, selected_indices]
最后选出 的敏感特征集

2.4.将每个样本的这4个特征输入CNN模型进行分类(也可以输入给SVM或KNN等分类器)
3.效果
0HP数据集


1HP数据集

2HP数据集


3HP数据集


总的代码和数据集放在了压缩包里
plt.rcParams['font.size'] = 25
# 绘制损失曲线
plt.figure(figsize=(10, 8))
plt.plot(train_loss, label='训练集损失')
plt.plot(test_loss, label='测试集损失')
plt.xlabel('迭代次数')
plt.ylabel('损失')
plt.title('1HP训练集与测试集损失')
plt.legend()
plt.savefig('0.png', dpi=600,bbox_inches = "tight")
plt.show()
# 绘制准确率曲线
plt.figure(figsize=(10, 8))
plt.plot(train_accuracy, label='训练集准确率')
plt.plot(test_accuracy, label='测试集准确率')
plt.xlabel('迭代次数')
plt.ylabel('准确率')
plt.title('1HP训练集与测试集准确率')
plt.legend()
plt.savefig('1.png', dpi=600,bbox_inches = "tight")
plt.show()
#可以关注:https://mbd.pub/o/bread/ZJuXmZtt
相关文章:
基于时域特征和频域特征组合的敏感特征集,再利用CNN进行轴承故障诊断(python编程)
1.文件夹介绍(使用的是CWRU数据集) 0HP-3HP四个文件夹装载不同工况下的内圈故障、外圈故障、滚动体故障和正常轴承数据。 2.模型 按照1024的长度分割样本,构建内圈故障、外圈故障、滚动体故障和正常轴承样本集 2.1.计算11种时域特征值 # 计…...
CAD2021安装教程适合新手小白【附安装包和手册】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、下载文件二、使用步骤1.安装软件前,断开电脑网络(拔掉网线、关闭WIFI)2、鼠标右击【AutoCAD2021(64bit)】压缩包选择【解…...
AcWing 107. 超快速排序—逆序对
问题链接: AcWing 107. 超快速排序 问题描述 分析 这道题考查的算法不难,就只是利用归并排序来求逆序对的数量,但是主要是如何分析问题,如何能从问题中看出来和逆序对数量有关,现在的题目基本上很少是那种模板算法题了ÿ…...
华为、阿里巴巴、字节跳动 100+ Python 面试问题总结(三)
系列文章目录 个人简介:机电专业在读研究生,CSDN内容合伙人,博主个人首页 Python面试专栏:《Python面试》此专栏面向准备面试的2024届毕业生。欢迎阅读,一起进步!🌟🌟🌟 …...
详解在Linux中修改Tomcat使用的jdk版本
问题分析 由于部署个人项目使用了openjdk11,但是我之前安装的是jdk1.8,jdk版本升级的后果就是,tomcat运行的时候报一点小bug(因为之前安装tomcat默认使用了系统的jdk版本)所以就想着把tomcat使用的jdk版本调回原来的&…...
高级 Matplotlib:3D 图形和交互性
Matplotlib 是 Python 中最重要的数据可视化库之一。在之前的文章中,我们讨论了如何使用基础和中级功能来创建各种图形。在本文中,我们将深入研究 Matplotlib 的高级特性,特别是如何创建 3D 图形和交互式图形。 一、创建 3D 图形 Matplotli…...
cloud Alibab+nacos+gateway集成swaggerui,统一文档管理(注意点)
首先说明:本文只说整合注意点 效果图和功能参考链接 1.使用gateway访问nacos服务,503 在网关服务添加依赖即可解决 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign&…...
使用 YOLOv8 进行传输线故障检测-附源码
用于传输线故障检测的 YOLO 我将模型缩小到YOLO 或 Faster R-CNN。但YOLO 作为单次目标检测模型在速度和计算效率方面获得了许多好处。由于基于无人机的实时故障检测是最佳选择,我选择使用 YOLO。YOLO 代表“You Only Look Once”,暗示您只需要通过一个神经网络即可对检测到…...
安装RabbitMQ 详细步骤
我这里是在Linux系统里面安装的按照步骤即可 1. 安装Socat🍉 在线安装依赖环境: yum install gcc yum install socat yum install openssl yum install openssl-devel2. 安装Erlang🍉 去官网下载一下安装包,将安装包拉到Linux系…...
SAP CAP篇十:理解Fiori UI的Annoation定义
本文目录 本系列此前的文章官方文档和基础概念SAP CAP对Fiori UI的支持package.json的新增内容Annotation定义List Page 生成的Edmx文件 对应代码及branch 本系列此前的文章 SAP CAP篇一: 快速创建一个Service,基于Java的实现 SAP CAP篇二:为Service加上…...
不允许你不知道的 MySQL 优化实战(二)
文章目录 11、使用联合索引时,注意索引列的顺序,一般遵循最左匹配原则。12、对查询进行优化,应考虑在where及order by涉及的列上建立索引,尽量避免全表扫描。13、如果插入数据过多,考虑批量插入。14、在适当的时候&…...
JVM_00000
JVM 所谓虚拟机(Virtual Machine)就是一台虚拟的计算机。它是一款软件,用来执行一系列虚拟计算机指令。大体上,虚拟机可以分为系统虚拟机和程序虚拟机。 Visual Box,VMware就属于系统虚拟机,它们完全是对物…...
MCU嵌入式开发-硬件和开发语言选择
引入 RTOS的考虑因素 主要考虑以下方面来决定是否需要RTOS支持: 需要实现高响应时的多任务处理能力需要实现实时性能要求高的任务需要完成多个复杂的并发任务 NanoFramework 具备满足工控系统实时性要求的各项功能特性。通过它提供的硬件库、线程支持、中断支持等,可以完全控制…...
SVR算法简介及与其它回归算法的关系
目录 参考链接 有人可以帮助我理解支持向量回归技术和其他简单回归模型之间的主要区别是什么 支持向量回归找到一个线性函数,表示误差范围 (epsilon) 内的数据。也就是说,大多数点都可以在该边距内找到,如下图所示 这意味着 SVR 比大多数其…...
Rust系列(二) 内存管理
上一篇:Rust系列(一) 所有权和生命周期 通过前面的文章,目前我已经了解到了单一所有权、Move语义、Copy语义、可变和不可变借用以及引用计数。突然回首可以发现,Move 语义和 Copy 语义保证了值的单一所有权;而可变和不可变借用又可…...
VYaml | 超快速低内存占用yaml库
一、介绍 官方github仓库 YAML:YAML Ain’t Markup Language(YAML 不是标记语言)。 使用Unity2021.3 or later。 通过Unity Package Manager安装: https://github.com/hadashiA/VYaml.git?pathVYaml.Unity/Assets/VYaml#0.13.1 …...
动态规划01背包之1049 最后一块石头的重量 II(第9道)
题目: 有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 。那么粉碎的可能结果如下: …...
运输层(TCP运输协议相关)
运输层 1. 运输层概述2. 端口号3. 运输层复用和分用4. 应用层常见协议使用的运输层熟知端口号5. TCP协议对比UDP协议6. TCP的流量控制7. TCP的拥塞控制7.1 慢开始算法、拥塞避免算法7.2 快重传算法7.3 快恢复算法 8. TCP超时重传时间的选择8.1 超时重传时间计算 9. TCP可靠传输…...
GDAL操作实践培训
1 主要安排 本帖子专门写给我侄儿,其他读者可以忽略。 步骤一: 跑程序 先下载GDAL,使用的版本号与项目组一致(当前使用的版本号为2.2.4,visual studio 2019);百度找到GDAL库的使用教程&#x…...
3.Redis主从复制、哨兵、集群
文章目录 Redis主从复制概念主从复制实验哨兵模式哨兵模式的作用故障转移机制:搭建Redis哨兵模式 Redis集群模式集群的作用搭建Redis集群扩容cluster集 Redis主从复制 概念 Redis主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
