✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,
代码获取、论文复现及科研仿真合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab完整代码及仿真定制内容点击👇
🔥 内容介绍
在振动信号中,重复瞬态分量(RTC)是反映旋转机械局部缺陷的典型症状,可以通过到达间隔、最大幅度、共振频率和衰减比等特征参数进行数学定义。特别是,到达间隔和最大幅度揭示了故障的位置和严重程度,为状态监测和故障诊断提供了关键信息,在信号处理过程中应妥善保留这些信息。周期性 RTC 具有离散且清晰的频谱结构。在这种情况下,我们可以通过构建局部窄带通滤波器组来提取具有等频率间隔的突出谱线来尽可能地恢复周期性RTC。然而,这种带通滤波器组无法直接提取伪周期RTC,因为时域重复周期的轻微随机偏差,即RTC的波动到达间隔,会导致严重的频谱拖尾,尤其是在频谱的高频区域。
从时域波形和频谱的形状来看,由多个谐波组成的分量在时域中是分散的,但在频域中表现为具有局部紧凑带宽的重复瞬态形式。基于傅里叶变换(FT)的对偶性,FT对在时域和频域s的函数形式可以互换。这意味着周期性或伪周期性 RTC 可以表示为多谐波对偶函数的傅里叶逆变换 (IFT)。基于这一思想,提出 了一种称为变分多谐波对偶模态追踪(VMHDMP)的复值目标分量分解方法)被开发来处理复值频率信号并准确提取时域中发生的 RTC 。本质上,VMHDMP 提供了一个最佳的“瞬态通过”逆滤波器组,仅在 RTC 中每个瞬态发生时刻附近具有紧凑的通道。这样,与故障密切相关的重要参数得以完整保留,而不同时刻出现的频率重叠噪声和大幅值干扰得以有效消除。通过一些仿真和实验例子来测试VMHDMP的有效性。
📣 部分代码
%% 清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc % 清空命令行
%% 导入数据
res = xlsread('数据集.xlsx');
%% 划分训练集和测试集
temp = randperm(357);
P_train = res(temp(1: 240), 1: 12)';
T_train = res(temp(1: 240), 13)';
M = size(P_train, 2);
P_test = res(temp(241: end), 1: 12)';
T_test = res(temp(241: end), 13)';
N = size(P_test, 2);
%% 数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);
t_train = ind2vec(T_train);
t_test = ind2vec(T_test );