第四节:时域分析——峰值、峰峰值、均值、均方根值、波形因子、峰值因子

各位同学,咱们今天聊聊时域分析。说白了,就是直接看振动信号随时间怎么变化的。这就像医生听诊,不搞那些花里胡哨的频谱变换,就听原始声音。

我个人习惯,拿到一组振动数据,第一件事就是算几个最基本的时域指标。为什么?因为这些数字能快速告诉我:这台设备现在到底“闹”得有多凶。

4.1 峰值与峰峰值

峰值,就是信号的最大绝对值。你想想看,一个振动波形,最高点到零线的距离,就是峰值。

计算公式:

峰值 = max(|x(t)|)

单位:m/s² 或 mm/s 或 μm

我在项目里遇到过一台离心风机,峰值突然从5 m/s²飙到18 m/s²。当时我就判断,大概率是叶片出了问题。拆开一看,果然有一片叶轮根部出现了裂纹。峰值对这类瞬时冲击特别敏感。

峰峰值,就是信号最大值减去最小值。说白了,就是波峰到波谷的“总高度”。

计算公式:

峰峰值 = max(x(t)) - min(x(t))

峰峰值在旋转机械里用得特别多。比如轴振动,我们通常看峰峰值,因为它反映了轴心轨迹的“摆动幅度”。

我的经验: 峰值适合检测冲击,峰峰值适合评估整体振动烈度。两者结合看,效果更好。

4.2 均值与均方根值

均值,就是信号的平均水平。对于振动信号,均值通常接近零。为什么?因为振动是围绕平衡位置来回摆动的。

计算公式:

均值 = (1/N) * Σ x(t)

不过要注意,如果均值明显偏离零,说明传感器可能发生了零漂,或者设备有单向的力在作用。我曾经遇到过一台风机,均值一直有0.3 m/s²的偏移,查了半天发现是安装底座松动导致的。

均方根值,这才是咱们最常用的指标。它反映了信号的能量大小,也就是振动的“有效值”。

计算公式:

均方根值 = sqrt( (1/N) * Σ x(t)² )

均方根值在ISO标准里是评判设备状态的核心依据。比如ISO 10816标准,就是根据均方根值来划分A、B、C、D四个区域的。

指标 物理意义 适用场景
峰值 最大冲击 齿轮、轴承故障
峰峰值 摆动幅度 轴振动、不平衡
均值 直流分量 传感器校验、松动
均方根值 振动能量 整体状态评估

4.3 波形因子与峰值因子

这两个指标是“比值”,用来描述波形的形状特征。

波形因子,是均方根值与整流平均值的比值。

计算公式:

波形因子 = 均方根值 / 整流平均值

对于标准正弦波,波形因子是1.11。如果波形因子偏离这个值,说明波形发生了畸变。嗯,这里要注意,波形因子对早期故障不太敏感,它更多是作为一个辅助参考。

峰值因子,这个就厉害了。它是峰值与均方根值的比值。

计算公式:

峰值因子 = 峰值 / 均方根值

峰值因子对冲击性故障特别敏感。正常轴承的峰值因子一般在3-5之间。如果突然升到8以上,那就要警惕了——很可能出现了点蚀或剥落。

避坑指南: 我曾经遇到过一台风机,峰值因子从4.2升到了7.8,我判断轴承有故障。结果拆下来一看,轴承完好无损。后来发现是联轴器对中不良导致的周期性冲击。所以峰值因子高,不一定就是轴承问题,还要结合频谱分析来确认。

4.4 知识体系结构图

下面这张图,把咱们今天讲的几个指标串起来了。你一看就明白它们之间的关系。

时域分析指标体系 振动信号时域分析 幅值类指标 能量类指标 比值类指标 峰值 峰峰值 均值 均方根值 波形因子 峰值因子 冲击检测 · 不平衡判断 能量评估 · 状态分级 波形畸变 · 故障预警 核心思路:从不同维度描述振动特征 幅值看大小 · 能量看强弱 · 比值看形态

4.5 Python代码实战

光说不练假把式。咱们用Python把这些指标算一遍。你跟着敲一遍,印象会更深。

import numpy as np
import matplotlib.pyplot as plt

# 生成模拟振动信号(含冲击成分)
fs = 1000  # 采样频率
t = np.arange(0, 1, 1/fs)
# 正常振动 + 冲击
x = 2 * np.sin(2 * np.pi * 50 * t) + 0.5 * np.random.randn(len(t))
# 在0.3秒和0.7秒处加入冲击
x[300:310] += 8
x[700:710] += 10

# 计算时域指标
peak = np.max(np.abs(x))
peak_to_peak = np.max(x) - np.min(x)
mean_val = np.mean(x)
rms_val = np.sqrt(np.mean(x**2))
# 整流平均值
rectified_mean = np.mean(np.abs(x))
# 波形因子
form_factor = rms_val / rectified_mean
# 峰值因子
crest_factor = peak / rms_val

print(f"峰值: {peak:.3f}")
print(f"峰峰值: {peak_to_peak:.3f}")
print(f"均值: {mean_val:.3f}")
print(f"均方根值: {rms_val:.3f}")
print(f"波形因子: {form_factor:.3f}")
print(f"峰值因子: {crest_factor:.3f}")

# 可视化
plt.figure(figsize=(10, 4))
plt.plot(t, x, 'b-', linewidth=0.8)
plt.axhline(y=peak, color='r', linestyle='--', label=f'峰值={peak:.2f}')
plt.axhline(y=-peak, color='r', linestyle='--')
plt.axhline(y=rms_val, color='g', linestyle='--', label=f'均方根值={rms_val:.2f}')
plt.axhline(y=-rms_val, color='g', linestyle='--')
plt.xlabel('时间 (s)')
plt.ylabel('幅值')
plt.title('振动信号时域波形')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()

运行结果解读: 你会发现峰值因子明显偏大(正常正弦波是1.414,这里会到3以上),说明信号里含有冲击成分。这就是峰值因子在故障诊断中的价值所在。

4.6 实际应用中的注意事项

最后,我总结几条实战经验,你记好了:

  • 峰值因子不是万能的: 它只对冲击敏感,对磨损类故障(比如均匀磨损)反应迟钝。
  • 均方根值要结合趋势看: 单次测量意义不大,连续监测的趋势才有价值。
  • 波形因子适合做“体检”: 如果波形因子长期稳定在1.2左右,突然变成1.5,那肯定有问题。
  • 别忘了传感器类型: 加速度传感器测峰值,速度传感器测均方根值,位移传感器测峰峰值。用错了,数据就没意义了。

我曾经踩过的坑: 有一次我只看均方根值,发现数值在正常范围内,就判断设备没问题。结果第二天设备就停机了。后来复盘发现,峰值因子早就报警了,只是我没看。所以现在我的习惯是:六个指标一起看,互相印证,才能下结论。

好了,时域分析就讲到这里。这些指标虽然基础,但用好了,能解决80%的现场问题。记住:简单的东西,做到极致,就是绝招。


公众号:蓝海资料掘金营,微信deep3321