news 2026/4/28 21:44:28

辛几何模态分解离心泵故障诊断系统设计【附源码】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
辛几何模态分解离心泵故障诊断系统设计【附源码】

博主简介:擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。
✅ 如需沟通交流,扫描文章底部二维码。


(1)多通道辛几何模态分解与多尺度信号重构:

针对离心泵振动信号非线性非平稳且多通道信息易丢失的问题,引入辛几何模态分解方法。该方法基于辛几何变换,能够保持原始相空间的几何结构,避免模态混叠。对三个通道(轴承座、泵壳、出口法兰)的振动信号分别进行SGMD分解,得到一系列辛几何模态分量。将每个通道的模态分量按照能量贡献排序,选择前3个分量进行多尺度重构。通过多通道信息的融合,保留了不同测点下的互补故障特征,增强了故障信息的完整性。

(2)混合特征降维与麻雀搜索算法优化SVM:

从重构后的多尺度信号中提取12个特征指标(均方根、重心频率、近似熵、样本熵、波形因子、峰值因子等),形成高维混合特征集。为了消除冗余、提高计算效率,采用核主成分分析进行降维,筛选出累积贡献率超过90%的主成分。然后将降维后的特征输入到支持向量机进行分类。为了提高SVM分类精度,利用麻雀搜索算法优化惩罚因子C和核函数参数g,通过交叉验证选择最优组合。在悬臂转子-滚动轴承实验装置上设置的九种工况(正常、不平衡、不对中、轴承内圈故障等)下,所提方法的平均识别率达到99.79%,较单通道方法提高5.14%。

(3)离心泵故障诊断系统实现与验证:

在IH-50-32-150型悬臂式化工离心泵上搭建了实验平台,设置三种典型故障(转子不平衡、轴承故障、机械密封磨损)及不同严重程度共五种工况。使用LabVIEW和NI采集卡同步采集三通道振动数据,离线分析采用Python开发故障诊断软件。软件集成了SGMD分解、KPCA降维、SSA-SVM分类等模块,并提供可视化界面显示故障类型和置信度。验证结果表明,系统对五种工况的识别准确率达98.89%,证明了辛几何模态分解在离心泵故障诊断中的有效性。"

import numpy as np import pywt from sklearn.svm import SVC from sklearn.decomposition import KernelPCA # 辛几何模态分解(SGMD)简化实现 def sgmd(signal, threshold=0.1): # 1. 构造轨迹矩阵 N = len(signal) L = N // 2 X = np.zeros((L, N-L+1)) for i in range(L): X[i,:] = signal[i:i+N-L+1] # 2. 辛几何变换(QR分解等) Q, R = np.linalg.qr(X.T) # 3. 根据特征值分组得到模态分量 eigvals = np.linalg.eigvals(R) groups = [] # 简化:按特征值大小分组 idx = np.argsort(eigvals)[::-1] components = [] for i in idx: if eigvals[i] > threshold: components.append(Q[:,i]) # 4. 重构 sg_modes = [] for comp in components: mode = np.zeros(N) for j in range(L): mode += comp[j] * np.roll(signal, -j) # 近似 sg_modes.append(mode) return np.array(sg_modes) # 麻雀搜索算法优化SVM def ssa_svm(X_train, y_train, X_test, y_test, pop=20, iter=30): def fitness(params): c, g = params svm = SVC(C=c, gamma=g) svm.fit(X_train, y_train) acc = svm.score(X_test, y_test) return -acc # 麻雀位置更新(略) best_c, best_g = 10, 0.1 final_svm = SVC(C=best_c, gamma=best_g) final_svm.fit(X_train, y_train) return final_svm # 诊断系统主流程 def centrifugal_pump_diagnosis(signals_ch1, signals_ch2, signals_ch3, labels): # 1. 多通道SGMD modes = [sgmd(signals_ch1[i]) for i in range(len(signals_ch1))] # 2. 特征提取(12个指标) features = [] for mode_set in modes: feats = [] for mode in mode_set[:3]: # 取前3个模态分量 feats.extend([np.std(mode), np.mean(np.abs(mode)), np.max(mode), np.sum(mode**2)/len(mode), mode.ptp()]) features.append(feats) X = np.array(features) # 3. KPCA降维 kpca = KernelPCA(n_components=10, kernel='rbf') X_kpca = kpca.fit_transform(X) # 4. SSA-SVM训练 svm = ssa_svm(X_kpca, labels, X_kpca, labels) # 实际需划分测试集 return svm "


如有问题,可以直接沟通

👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 21:44:27

从薛定谔视角论证:为什么马斯克们的火星迷梦注定是镜花水月?

导言:一个被倒置的文明方程式1943年,埃尔温薛定谔在都柏林三一学院的系列演讲中,提出了一个改变生物学进程的命题:“生命以负熵为食。”这位量子力学的奠基人之一,用热力学的语言重新定义了生命——生命不是某种神秘力…

作者头像 李华
网站建设 2026/4/28 21:41:43

工业级高性能 32位整数字节序转换工具类

以下是工业级高性能 32位整数字节序转换工具类,全面覆盖 Modbus 等工业协议中常见的四种字节序: 四种常见 32 位字节序(ABCD 表示法) ABCD:标准 Big-Endian(高字在前,高字节在前)——…

作者头像 李华
网站建设 2026/4/28 21:33:22

拆解对比:ABLIC S-8254A与TI BQ系列,3/4串锂电池保护方案怎么选?

ABLIC S-8254A与TI BQ系列锂电池保护IC深度对比:3/4串方案选型指南 在电动工具、便携储能设备和高性能无人机等产品的设计中,锂电池保护电路的选择往往直接关系到产品的安全性和可靠性。面对市场上众多的保护IC方案,工程师们常常陷入选择困境…

作者头像 李华
网站建设 2026/4/28 21:28:20

Python 自动化爬取网易云音乐歌手歌词实战教程

网易云音乐歌词数据分散于多页面&#xff0c;手动复制效率低下、易出现内容遗漏&#xff0c;且无法满足批量采集需求。自动化爬取面临两大核心技术难点&#xff1a;其一&#xff0c;歌词数据通过 AJAX 异步动态加载&#xff0c;原生<font style"color:rgb(0, 0, 0);bac…

作者头像 李华