4、数据预处理与清洗:缺失值处理、异常值检测、去噪滤波(低通、高通、小波)、数据标准化与归一化
PHM系统的核心价值在于从海量监测数据中提取能够反映设备健康状态退化的有效特征。然而,工业现场采集的原始数据往往包含噪声、缺失、异常以及量纲差异等问题,若直接用于特征提取与模型训练,轻则降低诊断精度,重则导致误报警或漏报警。数据预处理与清洗是PHM项目落地中承上启下的关键环节,其质量直接决定了后续健康指标构建、剩余寿命预测等环节的可靠性。本章将系统讲解缺失值处理、异常值检测、去噪滤波以及数据标准化与归一化的核心原理、工程方法与实战要点。
上图展示了PHM数据预处理的标准工程链路。从原始监测数据出发,依次经过缺失值处理、异常值检测、去噪滤波和标准化/归一化四个核心环节,最终输出高质量特征数据供后续建模使用。值得注意的是,该流程并非单向流水线,右侧的反馈回路提示我们:数据质量评估应贯穿始终,当发现下游模型效果异常时,需要回溯检查上游清洗策略是否合理。
4.1 缺失值处理:从“丢弃”到“智能填补”
4.1.1 核心原理与缺失机制
工业传感器在长期运行中,因通信中断、存储故障、传感器漂移或维护停机等原因,常产生数据缺失。缺失值处理不当会导致时间序列断裂、统计特征偏差以及模型训练失败。处理前需先理解缺失机制:完全随机缺失(MCAR)指缺失与任何变量无关,如意外断电;随机缺失(MAR)指缺失与其他观测变量相关,如高温导致传感器间歇失效;非随机缺失(MNAR)指缺失与未观测值本身相关,如振动过大导致传感器损坏。不同机制对应不同处理策略,MCAR可安全删除,MAR需借助其他变量填补,MNAR则需谨慎评估是否引入偏差。
| 缺失机制 | 典型场景 | 推荐策略 | 风险提示 |
|---|---|---|---|
| MCAR | 通信瞬时中断 | 列表删除/均值填补 | 缺失率>5%时慎用删除 |
| MAR | 温度过高导致采样丢失 | KNN/多重插补 | 需选择合适的相关变量 |
| MNAR | 振动峰值导致传感器损坏 | 模型法/领域知识填补 | 可能低估真实退化程度 |
4.1.2 操作流程与实战方法
工程实践中,建议按以下步骤操作:第一步,统计缺失率与缺失模式,绘制缺失热力图;第二步,根据缺失机制选择策略;第三步,实施填补并验证分布一致性。常用方法包括:删除法适用于缺失率低且随机的情况;均值/中位数填补简单快速但会降低方差;线性插值适合缓变信号如温度;KNN填补利用相似样本信息,适合多变量相关场景;多重插补通过多次模拟填补反映不确定性,适合科研级分析。
某风场SCADA系统因通信故障,齿轮箱油温传感器在连续3天内缺失了约12%的数据。直接删除会导致时间序列不连续,影响后续趋势分析。项目组采用以下策略:
1. 分析发现缺失时段与风速传感器数据完整,且油温与风速存在强相关性(r=0.78);
2. 采用KNN填补(k=5),以风速、有功功率、环境温度作为特征变量;
3. 填补后对比填补值与前后正常数据的分布,KS检验p值=0.23,无显著差异;
4. 同时保留缺失标记作为额外特征,供模型学习缺失模式。
复盘:KNN填补利用了多变量相关性,比单纯插值更准确;但需注意K值过小易过拟合,过大则平滑过度。
4.2 异常值检测:区分“噪声”与“故障前兆”
4.2.1 核心原理与检测维度
异常值在PHM中具有双重含义:一是传感器故障或干扰产生的伪异常,二是设备退化初期的真实异常信号。检测的核心在于区分二者。异常检测可从三个维度展开:全局异常(偏离整体分布)、上下文异常(在特定工况下偏离正常模式)、集合异常(一组数据联合异常)。工业场景中,设备工况变化(如转速、负载调整)会导致正常数据范围漂移,因此单纯依赖全局阈值往往失效。
4.2.2 检测方法与选择策略
- 统计方法:3σ原则、箱线图(IQR)、Grubbs检验。适用于数据近似正态分布且工况稳定的场景。
- 距离方法:LOF(局部离群因子)、DBSCAN聚类。适合发现局部密度异常,对工况变化有一定鲁棒性。
- 树模型:孤立森林(Isolation Forest)。线性时间复杂度,适合高维数据,工业应用广泛。
- 时序方法:滑动窗口残差分析、STL分解后检测残差异常。适合捕捉趋势变化中的异常点。
某化工厂离心压缩机振动传感器在运行中频繁报警,但现场检查未发现机械故障。项目组分析发现:
1. 振动有效值(RMS)在负载上升时正常增大,但固定阈值报警导致误报;
2. 采用“工况-振动”二维特征空间,以转速和排气压力为工况变量,构建局部异常因子(LOF)模型;
3. 设定LOF阈值1.8,识别出3个真正异常点,经停机检查发现轴承早期点蚀;
4. 同时将误报率从每月15次降至2次。
关键参数:LOF的k邻域设为20,异常比例预设5%,使用标准化后的特征空间计算距离。
4.3 去噪滤波:从频域到时频域的多尺度降噪
4.3.1 核心原理与滤波器选型
工业信号中的噪声来源包括电磁干扰、机械共振、环境振动等。去噪的目标是保留与设备健康状态相关的特征成分,抑制无关噪声。滤波器选择需基于信号特性与故障特征频率:低通滤波保留低频成分,适合轴承故障特征频率较低的场景(如<1kHz);高通滤波去除趋势项和低频漂移,适合齿轮啮合频率较高的场景;带通滤波锁定特定频带,常用于共振解调分析;小波变换通过多分辨率分析,在时频域同时定位瞬态冲击成分,适合非平稳信号。
| 滤波方法 | 适用场景 | 关键参数 | 局限性 |
|---|---|---|---|
| 低通(Butterworth) | 缓慢退化趋势提取 | 截止频率、阶数 | 相位失真 |
| 高通 | 去除基线漂移 | 截止频率 | 放大高频噪声 |
| 带通 | 共振解调、特征频带提取 | 中心频率、带宽 | 需先验知识 |
| 小波 | 瞬态冲击、非平稳信号 | 小波基、分解层数 | 计算量大、参数敏感 |
4.3.2 小波去噪实战流程
小波去噪的工程实现包括三个步骤:分解,选择合适的小波基(如db4、sym8)和分解层数(通常3-5层);阈值处理,对细节系数采用软阈值或硬阈值收缩;重构,利用处理后的系数重建信号。阈值选择常用VisuShrink(全局阈值)或SureShrink(基于Stein无偏风险估计)。
# Python小波去噪示例(PyWavelets)
import pywt
import numpy as np
def wavelet_denoise(signal, wavelet='db4', level=4, mode='soft'):
# 小波分解
coeffs = pywt.wavedec(signal, wavelet, level=level)
# 估计噪声标准差(使用第一层细节系数)
sigma = np.median(np.abs(coeffs[-1])) / 0.6745
# 计算阈值
threshold = sigma * np.sqrt(2 * np.log(len(signal)))
# 软阈值处理细节系数
coeffs_thresh = [coeffs[0]] + [pywt.threshold(c, threshold, mode=mode) for c in coeffs[1:]]
# 重构信号
return pywt.waverec(coeffs_thresh, wavelet)
4.4 数据标准化与归一化:消除量纲差异
4.4.1 核心原理与方法对比
PHM特征往往包含振动幅值(m/s²)、温度(℃)、电流(A)等不同量纲的变量。若不进行尺度变换,基于距离的算法(如KNN、SVM)会偏向大数值特征,神经网络训练也会收敛缓慢。常用方法包括:Z-score标准化,将数据转换为均值为0、标准差为1的分布,适合数据近似正态分布且存在离群点的场景;Min-Max归一化,将数据缩放到[0,1]区间,适合有明确边界且分布均匀的数据;鲁棒缩放,使用中位数和IQR,对异常值不敏感;最大值缩放,适用于稀疏数据。
4.4.2 工程实施要点
- 训练/测试分离:必须在训练集上拟合scaler参数,再应用到测试集,避免数据泄露。
- 在线部署:保存scaler对象,实时数据使用相同参数变换。
- 工况分段:若设备工况差异大,建议按工况分别标准化,或使用工况作为额外特征。
- 异常值影响:Min-Max对异常值敏感,若数据含异常点,优先使用Z-score或鲁棒缩放。
某轨道交通齿轮箱PHM系统融合振动、温度、转速3类传感器共12个特征。初始模型训练时,振动加速度特征(幅值0-50 m/s²)主导了KNN距离计算,导致温度特征(60-80℃)几乎失效。项目组采用以下方案:
1. 对振动特征使用Z-score标准化(因存在冲击峰值);
2. 对温度特征使用Min-Max归一化(温度变化范围已知且稳定);
3. 对转速特征使用鲁棒缩放(存在启停机阶段的极端值);
4. 标准化后模型诊断准确率从78%提升至91%,且训练收敛速度加快30%。
复盘:不同特征应根据分布特性选择不同的缩放方法,而非统一处理。标准化参数的保存与版本管理同样重要,避免模型部署时参数不一致。