)
用MATLAB给振动信号做‘体检’手把手教你提取12个关键时域特征附完整代码想象一下当医生用听诊器检查患者心跳时他们能通过波形特征判断健康状况。同样地工程师也能通过振动信号的心跳图——时域波形诊断设备的健康状态。本文将带你用MATLAB这把数字听诊器为机械系统做一次全面体检。在工业设备监测领域时域特征就像血液检测报告中的关键指标。它们能快速揭示振动信号中隐藏的故障征兆从简单的轴承磨损到复杂的齿轮箱故障。不同于频域分析需要复杂变换时域分析直接作用于原始波形计算效率高且物理意义明确特别适合实时监测场景。1. 时域特征基础振动信号的生命体征1.1 信号的基本统计量就像体检先测血压、体温一样这些基础指标构成分析的起点function [mean_val, var_val, ma_val] basic_stats(signal) % 输入signal - 振动信号向量 % 输出mean_val - 平均值, var_val - 方差, ma_val - 平均幅值 mean_val mean(signal); % 信号平均值 var_val var(signal); % 方差 ma_val mean(abs(signal)); % 平均幅值 end关键指标对比表特征名称物理意义健康信号典型值故障预警值平均值信号直流分量≈0 (交流信号)显著偏离0方差信号波动强度稳定范围内突然增大平均幅值绝对波动水平设备特定基准持续上升1.2 能量相关特征设备故障往往伴随能量分布变化这些指标如同代谢率检测function [energy, rms_val, root_amp] energy_features(signal) energy sum(signal.^2); % 信号能量 rms_val sqrt(mean(signal.^2)); % 均方根值 root_amp (mean(sqrt(abs(signal))))^2; % 方根幅值 end注意均方根值(RMS)对早期故障敏感是ISO标准中常用的振动评价指标2. 波形特征捕捉异常心律2.1 峰值与脉冲检测当设备出现冲击性故障如轴承剥落这些指标会显著变化function [cf, ifactor, mfactor] peak_features(signal) rms_val rms(signal); ma_val mean(abs(signal)); root_amp (mean(sqrt(abs(signal))))^2; cf rms_val / (max(signal)-min(signal)); % 峰值系数 ifactor max(abs(signal)) / mean(signal); % 脉冲因子 mfactor max(abs(signal)) / root_amp; % 裕度因子 end典型故障模式识别脉冲因子升高可能指示滚动体缺陷裕度因子突增常见于齿轮断齿故障峰值系数下降可能伴随润滑不良2.2 高阶统计量故障的显微镜峭度和偏度能发现常规指标难以捕捉的微妙变化function [kurt, skew, kurt_factor] higher_order_stats(signal) rms_val rms(signal); kurt kurtosis(signal); % 峭度 skew skewness(signal); % 偏度 kurt_factor kurt / (rms_val^4); % 峭度因子 end工业经验正常轴承振动峭度约3当超过5时需警惕超过10很可能已存在局部损伤3. 实战完整特征提取流程3.1 数据预处理要点在计算特征前必须进行数据净化去趋势处理消除信号基线漂移detrended detrend(raw_signal);异常值处理采用3σ原则剔除野值valid_idx abs(signal-mean(signal)) 3*std(signal); cleaned signal(valid_idx);归一化可选normalized (signal - mean(signal)) / std(signal);3.2 完整特征提取函数function features extract_time_features(signal) % 输入预处理后的振动信号 % 输出包含12个特征的向量 features zeros(1,12); % 基础统计量 features(1) mean(signal); % 平均值 features(2) var(signal); % 方差 features(3) mean(abs(signal)); % 平均幅值 % 能量特征 features(4) sum(signal.^2); % 能量 features(5) rms(signal); % RMS features(6) (mean(sqrt(abs(signal))))^2; % 方根幅值 % 波形特征 peak_to_peak max(signal) - min(signal); features(7) features(5)/peak_to_peak; % 峰值系数 features(8) features(5)/features(3); % 波形系数 % 高阶统计 features(9) skewness(signal); % 偏度 features(10) max(abs(signal))/features(1); % 脉冲因子 features(11) max(abs(signal))/features(6); % 裕度因子 features(12) kurtosis(signal); % 峭度 end4. 特征工程实战技巧4.1 特征选择策略不是所有特征都有同等价值推荐采用Spearman相关系数评估特征与故障的相关性[rho, pval] corr(feature_matrix, fault_labels, Type, Spearman);主成分分析(PCA)降低特征维度[coeff, score, latent] pca(feature_matrix); cum_var cumsum(latent)./sum(latent);4.2 实时监测系统集成将特征提取部署到在线系统时滑动窗口处理window_size 1024; % 采样点数 for i 1:hop:length(signal)-window_size window signal(i:iwindow_size-1); features(:,i) extract_time_features(window); end趋势可视化plot(features(12,:)); % 绘制峭度变化曲线 yline(5, r--, 报警阈值);状态判定逻辑alert features(12,:) 5 | features(10,:) 4;在实际项目中我们发现峭度指标对早期轴承故障最为敏感。某风机轴承案例显示峭度值在故障发生前两周就开始缓慢上升而传统RMS指标直到故障前一天才有明显变化。这凸显了多特征联合监测的价值——就像医生不会仅凭血压诊断疾病工程师也需要综合多个指标才能做出准确判断。