第3章 振动测量与信号分析基础:传感器选型与数据采集
做振动控制这些年,我最大的体会是:测量不准,后面全是白干。传感器选型、数据采集、信号分析,这三步就像盖楼打地基。地基歪了,楼盖得再漂亮也得塌。
今天咱们就聊聊这个基础中的基础。我会结合自己踩过的坑,把传感器选型、采集系统搭建、时域和频域分析这些事儿说透。
3.1 传感器选型:加速度计、速度计、位移计
选传感器,说白了就是回答三个问题:测什么?量程够不够?频率范围对不对?
我个人习惯先看被测对象的振动特性。低频大位移,比如桥梁晃动,用位移计。中频振动,比如机床主轴,用速度计。高频冲击,比如齿轮啮合,用加速度计。
| 传感器类型 | 适用频率范围 | 典型应用场景 | 我踩过的坑 |
|---|---|---|---|
| 加速度计 | 0.5 Hz ~ 10 kHz | 轴承故障、齿轮箱、冲击测试 | 低频信号信噪比差,慎用 |
| 速度计 | 1 Hz ~ 2 kHz | 旋转机械、电机振动 | 温度漂移大,需补偿 |
| 位移计 | 0 ~ 100 Hz | 桥梁、建筑、大型结构 | 安装麻烦,对表面要求高 |
选型时还有几个关键参数:灵敏度、量程、频率响应、横向灵敏度。灵敏度越高,信噪比越好,但量程会受限。你想想看,测火箭发动机振动和测空调压缩机,用的传感器能一样吗?
3.2 数据采集系统搭建
传感器选好了,接下来就是采集系统。我见过太多人花大价钱买传感器,却在采集卡上省钱,结果数据质量一塌糊涂。
搭建采集系统,核心就三点:
- 采样率:至少是最高分析频率的2.56倍。我习惯取5~10倍,留足余量。
- 抗混叠滤波器:这个必须有!没有的话,高频信号会折叠到低频段,你看到的频谱全是假的。
- ADC位数:16位是底线,24位更好。位数不够,小信号就被量化噪声淹没了。
采集系统搭建的流程,我画了张图,你看一眼就明白了:
3.3 时域分析:峰值与均方根值
数据采回来了,先别急着做FFT。时域分析能给你最直观的感受。
峰值(Peak):信号的最大绝对值。我常用它来判断有没有瞬时冲击。比如齿轮断齿,时域波形上会突然冒出一个尖峰。
均方根值(RMS):反映信号的能量大小。对于平稳振动,RMS比峰值更有工程意义。ISO标准里评价振动烈度,用的就是RMS。
峰值 = max(|x(t)|)
均方根值 = sqrt( (1/N) * Σ x(t)² )
举个例子。我在做离心泵振动测试时,时域波形显示峰值正常,但RMS偏高。拆开一看,轴承保持架磨损了。如果只看峰值,这个问题就漏掉了。所以我的习惯是:峰值和RMS一起看,互相印证。
3.4 频域分析:FFT与功率谱密度
时域信号看着乱糟糟的,一转到频域,规律就出来了。这就是FFT的魅力。
FFT(快速傅里叶变换):把时域信号分解成不同频率的正弦波。每个频率对应一个幅值。你想想看,一个复杂的振动信号,在频域里可能就是几个尖峰。
功率谱密度(PSD):表示信号功率在频率上的分布。单位是g²/Hz或(m/s²)²/Hz。PSD对随机振动特别有用,比如路面激励、风载荷。
- 正弦信号 → 矩形窗(幅值精度高)
- 随机信号 → 汉宁窗(泄漏小)
- 冲击信号 → 力窗/指数窗(衰减快)
下面是一个简单的Python代码示例,演示如何计算FFT和PSD:
import numpy as np
import matplotlib.pyplot as plt
# 生成模拟信号:50Hz正弦 + 200Hz正弦 + 噪声
fs = 1000 # 采样率 1000 Hz
t = np.arange(0, 1, 1/fs)
x = 2 * np.sin(2*np.pi*50*t) + 0.5 * np.sin(2*np.pi*200*t) + 0.2*np.random.randn(len(t))
# FFT
N = len(x)
X = np.fft.fft(x)
freq = np.fft.fftfreq(N, 1/fs)
amp = np.abs(X) / N * 2 # 单边幅值谱
# PSD(使用Welch方法)
from scipy import signal
f, psd = signal.welch(x, fs, nperseg=256)
# 绘图
plt.figure(figsize=(10, 4))
plt.subplot(1,2,1)
plt.plot(freq[:N//2], amp[:N//2])
plt.title('FFT 幅值谱')
plt.xlabel('频率 (Hz)')
plt.ylabel('幅值')
plt.subplot(1,2,2)
plt.semilogy(f, psd)
plt.title('功率谱密度 (PSD)')
plt.xlabel('频率 (Hz)')
plt.ylabel('PSD (g²/Hz)')
plt.tight_layout()
plt.show()
最后说一句:振动测量和信号分析,理论不难,难在实践。多动手、多对比、多复盘,慢慢就有感觉了。我做了十几年,每次遇到新问题,还是会翻回这些基础内容。基础不牢,地动山摇。
公众号:蓝海资料掘金营,微信deep3321