3、异常检测概述:异常检测的定义、常见方法(统计、距离、模型)、在工业设备维护中的应用价值
在工业设备维护场景中,异常检测(Anomaly Detection)是预测性维护体系的第一道关口。它的核心任务是从传感器采集到的振动、温度、电流等时序数据中,识别出与正常工况显著偏离的模式。对于TinyML振动异常检测而言,异常检测的目标并非精确诊断故障类型,而是以极低的计算开销和内存占用,在资源受限的嵌入式设备上尽早发现“不对劲”的信号,为后续的频谱分析和故障分类争取时间窗口。本章将系统梳理异常检测的定义边界、三类主流方法(统计、距离、模型)的适用场景,并结合工业设备维护的实际案例,说明异常检测在降低非计划停机、延长设备寿命方面的具体价值。
3.1 异常检测的定义与问题边界
异常检测在工业振动监测中的定义可以概括为:在无故障或正常退化状态下,从传感器采集的振动信号中识别出统计特性或结构特性发生显著改变的过程。这里的“异常”并不等同于“故障”,而是指数据分布偏离了训练阶段所建立的“正常基线”。例如,滚动轴承在正常运转时,其振动频谱在1倍频、2倍频处有稳定的幅值;当出现早期点蚀时,高频段会出现新的共振峰,但此时设备仍能运转,尚未达到故障阈值。异常检测的目标就是捕捉这种“偏离”的早期信号。
从数学角度看,异常检测可以形式化为:给定正常工况下的特征集合 \(X_{normal}\),对于新采集的特征向量 \(x_{new}\),计算其偏离程度 \(score(x_{new})\),当 \(score\) 超过预设阈值 \(\theta\) 时,判定为异常。在TinyML场景中,这个“特征”通常是FFT频谱的若干频段能量、峰值频率、RMS值等统计量,而非原始波形——因为原始波形的数据量太大,无法在MCU上实时处理。
3.2 三类主流异常检测方法详解
3.2.1 统计方法:基于分布假设的快速判断
统计方法假设正常数据服从某种概率分布(通常是高斯分布),通过计算新样本与分布中心的偏离程度来判断异常。最常用的包括:
- 3σ准则(拉依达准则):若特征值超出均值±3倍标准差,则判定为异常。适用于特征近似正态分布的场景,计算量极小,只需维护均值和方差的递推公式。
- Z-Score标准化:\(Z = (x - \mu)/\sigma\),当|Z|>3时视为异常。在多特征场景下,可对每个特征分别计算Z-Score后取最大值或加权和。
- IQR(四分位距)法:基于中位数和四分位数,对非正态分布更鲁棒。但需要存储排序数据,在MCU上实现成本较高。
在TinyML中,统计方法的最大优势是内存占用极低——只需保存每个特征的均值(4字节浮点)和方差(4字节浮点),且可通过指数移动平均(EMA)在线更新,无需存储历史数据。例如,对振动信号的RMS值,每采集一帧(如1024点)计算一次RMS,然后用EMA公式更新均值:\(\mu_{new} = \alpha \cdot x + (1-\alpha) \cdot \mu_{old}\),其中\(\alpha\)取0.1~0.3。
3.2.2 距离方法:基于相似度的非参数判断
距离方法不假设数据分布,而是直接计算新样本与正常样本集合之间的距离。典型方法包括:
- K近邻(KNN):计算新样本与训练集中K个最近邻的平均距离,若超过阈值则异常。在MCU上,需要存储全部训练样本(或压缩后的代表点),内存开销较大。
- 马氏距离:考虑特征之间的相关性,\(D = \sqrt{(x-\mu)^T \Sigma^{-1} (x-\mu)}\)。对于振动频谱的多频段特征,马氏距离比欧氏距离更准确,但需要计算协方差矩阵的逆,在MCU上需预先离线计算并存储矩阵。
- 基于聚类的方法:如K-Means聚类后,计算新样本到最近簇中心的距离。适合将正常工况划分为多个簇(如不同转速、不同负载),每个簇对应一个中心点。
距离方法在TinyML中的落地策略是特征降维。例如,将128点FFT频谱通过主成分分析(PCA)压缩到3~5维,再计算欧氏距离。这样既保留了主要信息,又大幅减少了存储和计算量。实际部署时,可将PCA变换矩阵预先烧录在Flash中,MCU只需做矩阵乘法即可完成降维。
3.2.3 模型方法:基于学习到的正常模式
模型方法利用机器学习或深度学习模型学习正常数据的潜在模式,然后通过重构误差或决策边界来判断异常。常用方法包括:
- 孤立森林(Isolation Forest):通过随机切分特征空间,异常点更容易被孤立,路径长度更短。在MCU上实现时,可将训练好的树结构转换为查找表,但树深度和数量受内存限制。
- 自编码器(Autoencoder):训练一个输入等于输出的神经网络,正常样本的重构误差小,异常样本重构误差大。在TinyML中,需将网络量化到8位整数,并压缩隐藏层维度。
- 一类支持向量机(1-Class SVM):学习一个超球面或超平面包围正常数据。推理时只需计算核函数,但支持向量的存储量可能较大。
模型方法在TinyML上的挑战是模型体积与推理延迟。以自编码器为例,一个输入为16维(频段能量)、隐藏层为8维、输出为16维的全连接网络,参数量约为(16×8+8)+(8×16+16)=280个参数,量化后仅需280字节,非常适合MCU部署。但训练过程必须在PC或云端完成,MCU只负责前向推理。
| 方法类别 | 代表算法 | 内存占用 | 计算量 | 适用场景 | TinyML可行性 |
|---|---|---|---|---|---|
| 统计 | 3σ / Z-Score | 极低(<1KB) | 极低 | 稳定工况、单特征 | ★★★★★ |
| 统计 | IQR | 中(需存储排序) | 低 | 非正态分布 | ★★★ |
| 距离 | KNN | 高(需存储样本) | 中 | 多特征、非线性 | ★★(需降维) |
| 距离 | 马氏距离 | 中(协方差矩阵) | 中 | 特征相关性强 | ★★★ |
| 模型 | 孤立森林 | 中(树结构) | 中 | 高维稀疏异常 | ★★ |
| 模型 | 自编码器 | 低(量化后) | 中 | 复杂模式、多传感器 | ★★★★ |
3.3 工业设备维护中的应用价值与案例拆解
在工业设备维护中,异常检测的价值体现在三个层面:减少非计划停机、降低维修成本、延长设备寿命。以某工厂的离心泵振动监测为例,传统维护方式是每季度停机检修一次,但实际故障往往发生在检修周期之间。部署TinyML异常检测后,在泵体轴承座安装加速度传感器(采样率12.8kHz),MCU每10秒计算一次FFT,提取4个频段能量(0-1kHz、1-2kHz、2-4kHz、4-6kHz)和RMS值作为特征。
案例背景与约束:该工厂有32台离心泵,若每台泵配备独立网关,成本过高。因此要求MCU(Cortex-M4,主频80MHz,Flash 256KB,RAM 64KB)本地完成异常检测,仅当检测到异常时通过RS485总线上报。初始阶段无故障数据,只能使用正常工况数据训练。
实施过程:
- 数据采集与基线建立:连续运行7天,采集正常工况下的振动数据,每天约86400帧(每10秒一帧),计算每帧的5维特征(4个频段能量+RMS)。
- 统计方法部署:对每个特征计算均值和方差,采用EMA在线更新(\(\alpha=0.2\))。设定异常阈值为均值±4倍标准差(比3σ更保守,减少误报)。
- 距离方法增强:由于不同转速下振动特征差异较大,将转速信号(通过键相传感器获得)作为辅助,按转速区间(如900-1000rpm、1000-1100rpm)分别建立特征基线,每个区间存储一个中心点。
- 模型方法备用:在PC端训练一个自编码器(输入5维→隐藏3维→输出5维),量化到8位后部署到MCU。当统计方法连续3次触发异常时,启动自编码器进行二次确认,降低误报率。
结果对比:部署运行3个月后,共触发异常报警17次,其中15次确认为真实早期故障(轴承磨损、叶轮不平衡),2次为误报(由工况突变引起)。相比传统季度检修,提前发现故障平均时间为11天,避免了2次非计划停机,每次停机损失约8万元。误报率控制在12%以内,且MCU平均功耗仅3.2mW,完全满足电池供电要求。
3.4 常见误区与实施建议
误区一:阈值设置过于激进。为了追求高检出率,将阈值设置得过低(如2σ),导致正常波动被误判为异常。在工业现场,振动信号受负载变化、温度漂移、电磁干扰等影响,正常波动范围往往比实验室环境大。建议初始阈值设为4σ,运行2周后根据实际误报率调整。
误区二:忽略工况变化。设备在不同转速、不同负载下的振动特征差异显著。如果只用单一基线,会导致高转速时频繁误报、低转速时漏报。解决方案是引入工况参数(转速、温度、压力)作为辅助特征,或建立多基线模型。
误区三:在MCU上直接使用原始波形。原始振动波形数据量大(12.8kHz采样率下每秒12.8KB),MCU无法实时处理。必须先在时域或频域提取低维特征。FFT是首选,但要注意FFT点数选择——256点FFT在80MHz MCU上约需0.5ms,可满足实时性要求。
误区四:忽视在线更新机制。设备正常磨损会导致振动特征缓慢漂移,如果基线固定不变,几个月后正常状态也会被判定为异常。必须设计基线更新策略,如EMA滑动窗口更新,或定期(如每周)重新计算基线。