4、信号处理基础:时域特征、频域特征与时频分析的适用场景
TinyML预测性维护的核心挑战在于:如何在资源受限的MCU(微控制器)上,从振动、电流或声学传感器信号中提取出能够区分“正常”与“故障”的判别性信息。信号处理并非越复杂越好,而是需要在计算开销、物理可解释性与故障灵敏度之间取得平衡。本章将系统梳理时域、频域及时频分析三类特征提取方法的数学本质、适用场景与工程取舍,帮助你在电机、泵与风扇的故障监测中做出正确的技术选型。
4.1 时域特征:计算效率与物理直觉的平衡
核心原理:时域特征直接对原始采样序列进行统计运算,不涉及频率分解。在TinyML场景中,最常用的四个特征为:均方根值(RMS)、峰值(Peak)、峰峰值(Peak-to-Peak)和峭度(Kurtosis)。RMS反映信号的整体能量水平,与振动烈度直接相关;峰值捕捉瞬时最大冲击;峰峰值描述信号摆幅范围;峭度则衡量信号分布的“尖锐程度”,对早期微弱冲击故障极为敏感。
判断方法与操作流程:在嵌入式端提取时域特征时,通常采用滑动窗口方式。窗口长度建议覆盖至少10个旋转周期(例如电机转速为3000 RPM,则窗口长度应≥200ms)。对于每个窗口,依次计算:
RMS = sqrt( (1/N) * Σ x[i]² )
Peak = max(|x[i]|)
Peak-to-Peak = max(x[i]) - min(x[i])
Kurtosis = (1/N) * Σ ((x[i]-mean)/std)⁴
峭度计算涉及四次方运算,在MCU上建议使用查表法或近似公式以降低计算开销。实际部署时,可将窗口数据先存入环形缓冲区,再批量计算,避免频繁中断。
案例拆解:某化工厂循环水泵(转速2950 RPM,轴承型号6315)出现异常振动。在DSP芯片上以12.8 kHz采样率采集振动信号,窗口长度取0.25s(3200点)。初始时域指标:RMS从2.1 mm/s升至3.8 mm/s(ISO 10816报警阈值为4.5 mm/s),峭度从3.2升至5.8。虽然RMS未超报警值,但峭度显著升高提示存在早期冲击。进一步观察时域波形,发现每转存在2个等间隔冲击脉冲,初步判断为外圈剥落。后续停机检查确认外圈存在2处剥落坑。此案例说明:峭度对早期局部缺陷比RMS更敏感,但需结合转速信息判断冲击频率。
常见误区:时域特征无法区分故障类型。例如,不平衡与不对中都会导致RMS升高,但频谱特征完全不同。因此,时域特征适合作为“粗筛”或“异常检测”的第一层,当检测到异常后再触发频域分析以确定故障模式。此外,峭度对随机脉冲噪声(如电磁干扰)也敏感,需在采集前端加入抗混叠滤波。
4.2 频域特征:FFT与频谱包络的故障定位能力
核心原理:快速傅里叶变换(FFT)将时域信号分解为不同频率分量的幅值与相位。在旋转机械中,故障特征频率与转频(f_r)存在固定比例关系:不平衡表现为1×f_r,不对中表现为2×f_r,轴承外圈故障频率BPFO≈0.4×N×f_r(N为滚动体数量)。频谱包络(Envelope Spectrum)则是对原始信号先进行带通滤波,再取包络(Hilbert变换),最后对包络做FFT,用于解调高频冲击成分,特别适合早期轴承故障。
判断方法与操作流程:在TinyML设备上执行FFT需注意:
- 采样点数建议为2的幂(256/512/1024),以利用基-2 FFT算法。
- 加窗函数(汉宁窗或平顶窗)抑制频谱泄漏,窗函数类型影响幅值精度。
- 频率分辨率Δf = fs / N,例如fs=12.8kHz,N=1024,则Δf=12.5Hz。对于低速设备(f_r<10Hz),需增大N或降低fs以保证分辨率。
- 频谱包络流程:带通滤波(中心频率选轴承共振频带,通常5-20kHz)→ 包络解调 → 低通滤波 → FFT。
| 故障类型 | 特征频率 | FFT直接观察 | 频谱包络适用性 |
|---|---|---|---|
| 转子不平衡 | 1×f_r | 幅值明显 | 不必要 |
| 轴不对中 | 2×f_r(有时含3×) | 幅值明显 | 不必要 |
| 轴承外圈故障 | BPFO≈0.4N×f_r | 微弱,常被噪声淹没 | 强烈推荐 |
| 轴承内圈故障 | BPFI≈0.6N×f_r | 微弱且调制 | 强烈推荐 |
| 齿轮断齿 | 啮合频率及边带 | 边带可见 | 辅助 |
案例拆解:某风机(转速1470 RPM,f_r=24.5Hz)振动超标。直接FFT频谱显示1×f_r幅值正常,但2×f_r幅值达到1.8 mm/s(超过1×f_r的1.5倍),且存在微弱的高频宽带抬升。进一步做频谱包络(带通8-16kHz),在包络谱中清晰看到BPFO=89.3Hz及其谐波(2×BPFO=178.6Hz)。结合轴承型号(SKF 6205,滚动体数9),理论BPFO=0.4×9×24.5=88.2Hz,实测与理论偏差1.2%,确认外圈故障。更换轴承后,2×f_r降至0.4 mm/s,包络谱中BPFO消失。此案例表明:FFT适合定位不平衡/不对中,而频谱包络是轴承故障的“金标准”。
工程风险提示:FFT对转速波动敏感。若设备存在负载波动导致转速变化超过±2%,频谱会因频率模糊而难以识别边带。此时需采用阶比跟踪(Order Tracking)或使用转速计信号进行重采样,但这会增加硬件成本。在TinyML场景中,若无法保证稳态工况,建议优先考虑时频分析。
4.3 时频分析:STFT与小波变换的瞬态捕捉
核心原理:短时傅里叶变换(STFT)将信号分段加窗后分别做FFT,得到时间-频率二维谱图。其时间分辨率与频率分辨率受海森堡不确定性原理制约:窗长越短,时间分辨率越高但频率分辨率越低。小波变换(WT)通过可伸缩平移的母小波对信号进行多分辨率分解,在低频段获得高频率分辨率,在高频段获得高时间分辨率,更适合捕捉瞬态冲击。
适用场景对比:
- STFT:适用于转速缓慢变化的设备(如变频驱动泵在加减速过程),可观察频率随时间漂移的趋势。计算量可控(每次FFT仅需256-1024点),可在MCU上分帧处理。
- 小波变换:适用于快速启停、负载突变或间歇性冲击(如往复式压缩机阀片故障)。但连续小波变换(CWT)计算量巨大,离散小波变换(DWT)虽可降低计算量,但频率分辨率不均匀,对非整数倍频程的故障特征提取效果有限。
操作流程(以STFT为例):
- 确定窗长:窗长=fs/f_r×k(k取4-8),确保每个窗内包含足够周期。
- 窗重叠率:50%-75%重叠,避免时间分辨率损失。
- 对每个窗计算FFT,存储幅值矩阵。
- 在TinyML中,可仅保留感兴趣频带(如0-2kHz)的谱线,降低存储需求。
小型场景化说明:某变频驱动风扇在30Hz→50Hz加速过程中出现异响。稳态FFT无法分析,因为频率随时间变化。采用STFT(窗长512点,fs=4kHz,重叠50%),在时频谱图上清晰看到:当转速经过38Hz时,出现一条持续0.3s的横向亮带,频率为152Hz(4×f_r)。结合风扇叶片数(4片),判断为叶片共振。调整变频器跳跃频率(Skip Frequency)避开38Hz后,异响消失。此案例说明:时频分析是变速工况下故障定位的必备工具。
常见误区:时频分析并非“万能药”。在MCU上直接运行CWT会导致内存溢出,通常需要将数据分段传输至云端处理,这违背了TinyML的本地推理原则。实际工程中,建议采用“时域粗筛→频域定位→时频确认”的三级策略:时域特征持续监测,异常时触发FFT,若FFT无法判断(如变速工况)再启用STFT。此外,小波基函数的选择(Daubechies、Symlet等)对结果影响显著,需根据冲击波形特征进行预实验。
4.4 特征选型决策矩阵与工程实践总结
为帮助你在实际项目中快速决策,下表总结了不同工况下的推荐特征组合:
| 设备类型 | 典型工况 | 推荐特征 | MCU资源需求 | 预期效果 |
|---|---|---|---|---|
| 电机(3000 RPM) | 稳态 | RMS + 峭度 + 1×/2×谱线 | 低(FFT 512点) | 检测不平衡/轴承早期 |
| 泵(变频) | 变速 | STFT(仅关注0-500Hz) | 中(需帧缓存) | 识别气蚀/共振 |
| 风扇(轴流) | 稳态/低负载 | 峰值 + 频谱包络 | 中(需Hilbert) | 检测叶片裂纹/轴承 |
| 压缩机(往复) | 强冲击 | 峭度 + 小波DWT | 高(需DSP指令) | 阀片故障/液击 |
总结复盘:在TinyML预测性维护中,没有“最好”的特征,只有“最合适”的特征。时域特征提供低成本的异常检测基线,频域特征提供故障类型的判别能力,时频分析则在复杂工况下提供补充信息。建议在项目初期,先在PC端用Python/Matlab对历史数据进行特征对比实验,确定最优特征集后再移植到MCU。同时,务必考虑特征计算的时间一致性——不同特征应在同一时间窗口内计算,避免因窗口错位导致误判。
经验提醒:在MCU上实现FFT时,优先使用定点数运算(Q15格式)而非浮点数,可提升2-3倍速度。对于频谱包络中的Hilbert变换,可采用FIR滤波器近似实现,阶数控制在32-64阶即可满足轴承故障诊断需求。若MCU资源极度紧张(如Cortex-M0),可仅计算BPFO/BPFI对应的单条谱线幅值(Goertzel算法),而非完整FFT。