第三章:故障诊断基础理论

信号处理基础——FFT与小波变换

做风电故障诊断,说白了就是跟信号打交道。我刚开始接触这个领域时,总觉得传感器数据就是一堆数字,没什么好看的。直到有一次,一台2MW机组的主轴承温度异常,我盯着时域波形看了半天,啥也没看出来。后来用FFT一分析,高频成分明显增多——嗯,轴承早期磨损的典型特征。

信号处理是故障诊断的"耳朵"。你听不到设备内部的声音,但信号能告诉你一切。

快速傅里叶变换(FFT)

FFT是啥?就是把时域信号变成频域信号。时域里你看不出规律,频域里一目了然。

举个例子:一个正常的齿轮箱,振动信号里主要是啮合频率及其倍频。如果出现了边频带,那多半是齿轮有裂纹或者磨损了。

核心公式(理解即可):

X(k) = Σ x(n) · e^(-j2πkn/N)   (n=0,1,...,N-1)

实际应用中,我们直接用现成的库函数。比如Python里的numpy.fft.fft()

我个人习惯,采样频率至少设成故障特征频率的10倍以上。太低的话,高频成分会被混叠,诊断结果就不可靠了。

避坑指南:我曾经遇到过一台机组,FFT分析显示有异常频率,但怎么都找不到故障点。后来发现是传感器安装松动,产生了虚假信号。记住:信号质量比算法更重要。

小波变换

FFT有个硬伤——它只能告诉你信号里有哪些频率,但说不清这些频率出现在什么时间。你想想看,风电设备的故障往往是瞬态的,比如叶片裂纹扩展时的冲击信号。这时候,小波变换就派上用场了。

小波变换的核心思想:用一组可伸缩、可平移的基函数去匹配信号。低频部分用宽窗口,高频部分用窄窗口。说白了,就是"既看森林,又看树木"。

常用小波基函数:

  • db系列(Daubechies):适合处理突变信号,比如齿轮断齿
  • sym系列(Symlet):对称性好,适合分析平稳信号
  • morl(Morlet):常用于振动信号分析

我建议初学者先从db4或db6开始试。为什么?因为db系列小波在工程中应用最广,资料也多,遇到问题好查。

注意:小波变换的分解层数不是越多越好。层数太多,低频分量会被过度分解,反而丢失有用信息。我一般设3-5层,具体看信号长度和采样频率。

特征提取方法

信号处理完了,接下来就是特征提取。这一步很关键——你从信号里提取什么特征,直接决定了后续诊断的准确性。

我把常用特征分成三类:

类别 特征名称 物理意义 适用场景
时域特征 均方根值、峰值、峭度 反映信号能量和冲击程度 轴承磨损、不平衡
频域特征 频谱峰值、边频带间隔 反映旋转部件的状态 齿轮故障、轴弯曲
时频域特征 小波能量谱、瞬时频率 反映非平稳信号的局部特性 叶片裂纹、变桨故障

举个例子:峭度这个特征,正常轴承的峭度值接近3。如果峭度突然飙升到10以上,那基本可以断定轴承有严重损伤了。我在现场遇到过一台机组,峭度值从3.2跳到了15.8,拆开一看,保持架已经碎了。

经验之谈:不要只依赖单一特征。我习惯把时域、频域、时频域特征组合成一个特征向量,这样诊断的鲁棒性会好很多。比如:[RMS, 峭度, 频谱峰值, 小波能量比]

故障模式识别

特征提取完了,最后一步就是模式识别。说白了,就是让机器学会"看"出故障。

常用的方法有:

  • 阈值法:简单粗暴,设定一个阈值,超过就报警。适合单一故障场景。
  • 支持向量机(SVM):小样本下表现不错。我早期做项目时常用,准确率能到90%以上。
  • 神经网络(CNN/RNN):数据量大时效果好,但需要调参。现在深度学习很火,但别盲目上——数据不够,再好的模型也是白搭。

一个简单的SVM分类示例(Python):

from sklearn import svm
import numpy as np

# 假设特征矩阵X,标签y
X = np.array([[0.5, 0.2], [0.8, 0.3], [0.1, 0.9], [0.2, 0.8]])
y = np.array([0, 0, 1, 1])  # 0:正常, 1:故障

clf = svm.SVC(kernel='rbf')
clf.fit(X, y)

# 新样本预测
new_sample = np.array([[0.6, 0.25]])
prediction = clf.predict(new_sample)
print(prediction)  # 输出0或1

为什么会这样?因为SVM的核心是找到一个超平面,把不同类别的样本分开。核函数的选择很关键——我一般先用RBF核,效果不好再换线性核或多项式核。

重要提醒:模式识别模型需要大量标注数据。我曾经吃过亏——用50组数据训练了一个模型,现场一跑,准确率不到60%。后来收集了500组数据重新训练,准确率才提到95%。数据量,永远是第一位的。

知识体系总览

下面这张图,是我自己总结的故障诊断知识体系。你把它记在心里,做项目时就不会乱。

风电故障诊断知识体系 信号采集 信号处理(FFT / 小波变换) 特征提取(时域 / 频域 / 时频域) 模式识别(阈值 / SVM / 神经网络) 诊断结论 传感器 算法 工程经验 机器学习 决策 反馈优化

这张图我用了很多年。每次做新项目,我都会先对照这张图,看看哪个环节薄弱。信号采集不好?先换传感器。特征提取不准?试试小波包分解。模式识别效果差?增加训练数据。

好了,这一章的内容就到这里。记住:信号处理是基础,特征提取是关键,模式识别是手段。三者缺一不可。

专注资料整理