3、异常检测概述:异常检测定义、分类(点异常、上下文异常、集合异常)及在工业场景中的应用价值
在工业物联网与边缘计算快速普及的今天,旋转机械、传送带、电机、泵机等关键设备上部署的电流传感器每秒钟都在产生大量时序数据。然而,真正有价值的往往不是“正常数据”,而是那些隐藏在噪声中的“异常信号”——轴承早期磨损引起的微小电流波动、电压暂降导致的电流尖峰、负载突变引发的暂态过流等。异常检测(Anomaly Detection)正是从海量数据中识别出这些“不寻常模式”的技术体系。本章作为《TFLite Micro电流传感器异常检测部署教程》的概念基石,将系统阐述异常检测的定义、三种核心分类(点异常、上下文异常、集合异常),并结合工业场景剖析其应用价值与部署约束,为后续在微控制器上实现轻量化异常检测模型奠定理论基础。
3.1 异常检测的核心定义与数学本质
异常检测(Anomaly Detection)是指从数据集中识别出不符合预期行为模式的数据样本或模式的过程。在电流传感器场景中,这些数据样本通常是按固定采样率(如 1kHz、2kHz)采集的电流瞬时值序列。从数学角度看,异常检测可以形式化描述为:给定一个时间序列 \( X = \{x_1, x_2, ..., x_n\} \),其中 \( x_t \) 表示时刻 \( t \) 的电流采样值,异常检测的目标是找到一个判定函数 \( f(x_t) \) 或 \( f(X_{window}) \),使得当输入数据不符合正常行为模型 \( M_{normal} \) 时,输出为“异常”标签。
这里需要特别强调的是,异常检测与传统的分类或回归任务有本质区别:异常检测通常是在无监督或半监督条件下进行的,因为我们很难获得覆盖所有异常类型的标注数据。在实际工业部署中,我们往往只能获得“正常工况”下的电流数据来训练模型,而异常数据是稀疏且不可预见的。这一特性直接影响了后续章节中模型架构的选择——例如在 TFLite Micro 上部署自编码器(Autoencoder)或 One-Class SVM 时,我们只使用正常数据进行训练。
3.2 异常检测的三种基本分类
根据异常数据的存在形式与上下文关系,学术界和工业界普遍将异常分为三类:点异常(Point Anomaly)、上下文异常(Contextual Anomaly)和集合异常(Collective Anomaly)。理解这三者的区别,对于选择特征提取方法和模型架构至关重要。
3.2.1 点异常(Point Anomaly)
点异常是指单个数据点相对于整体数据分布呈现出显著偏离。这是最直观、最容易检测的异常类型。在电流信号中,典型的点异常包括:由于电网电压骤降引起的瞬时电流尖峰、传感器受到电磁干扰产生的脉冲噪声、电机启动瞬间的浪涌电流等。
点异常的检测通常基于阈值判断或统计检验。例如,若正常工况下电流均值为 4A,标准差为 0.5A,则超过 \( \mu + 6\sigma = 7A \) 的采样点可判定为点异常。然而,在实际工业环境中,简单的固定阈值往往不够鲁棒——因为负载波动会导致正常电流范围本身就在变化。因此,更实用的做法是使用滑动窗口内的局部统计量(如局部 z-score)或基于小波变换的奇异点检测。
3.2.2 上下文异常(Contextual Anomaly)
上下文异常是指某个数据点在全局范围内看似正常,但在特定的上下文条件(如时间、季节、工况阶段)下却显得异常。对于电流传感器而言,上下文通常包括:设备运行阶段(启动、稳态、停机)、生产节拍(加工/待机)、环境温度等。
举一个典型的工业案例:一台注塑机的电流在白天生产时段为 12A 属于正常,但在夜间待机时段若检测到 12A 的电流,则说明设备可能存在异常——例如加热圈短路导致待机功耗异常升高。这种异常无法通过全局阈值检测出来,必须结合时间上下文或工况标签进行判断。
在 TFLite Micro 部署场景中,上下文异常检测通常需要引入额外的上下文变量作为模型输入。例如,将“当前设备状态”(运行/待机/停机)编码为 one-hot 向量,与电流特征拼接后送入模型。这要求我们在数据采集阶段同步记录设备状态信号,或者通过电流本身的低频特征(如基波幅值)来推断工况。
3.2.3 集合异常(Collective Anomaly)
集合异常是指一组连续的数据点作为一个整体呈现出异常模式,但其中每个单独的点都在正常范围内。这类异常在电流信号中尤为常见,也是最难检测的类型。典型场景包括:轴承磨损导致的周期性微弱冲击(每个冲击峰值仍在正常范围内,但冲击频率和幅值调制模式异常)、传动皮带打滑引起的电流缓慢漂移、齿轮箱齿面点蚀引发的谐波成分变化等。
集合异常的检测必须依赖时序上下文信息,通常需要对一段窗口内的数据进行特征提取,例如:
- 时域特征:窗口内的均方根值(RMS)、峰值因子、波形因子、峭度(Kurtosis)
- 频域特征:特定频带的能量占比、边频带幅值、谐波畸变率(THD)
- 时频特征:小波包分解后各子带的能量分布
在微控制器资源受限的条件下,集合异常检测通常采用轻量级方案:在 MCU 上实时计算滑动窗口的 RMS 和峭度,当这两个指标的变化趋势超过自适应阈值时触发异常告警。更复杂的频域分析(如 FFT)可以在边缘网关或上位机完成,但本章聚焦于 TFLite Micro 的端侧部署,因此后续章节会重点介绍如何在 Cortex-M 系列芯片上高效实现这些特征计算。
| 异常类型 | 定义 | 电流信号示例 | 检测难度 | 典型方法 |
|---|---|---|---|---|
| 点异常 | 单个数据点显著偏离全局分布 | 电磁干扰脉冲、电压暂降尖峰 | 低 | 固定阈值、z-score、Hampel 滤波 |
| 上下文异常 | 在特定上下文中偏离正常行为 | 待机时段电流异常升高 | 中 | 条件阈值、工况条件模型 |
| 集合异常 | 一组数据点整体模式异常 | 轴承磨损引起的周期性冲击序列 | 高 | 窗口特征提取、时序模型(LSTM/GRU) |
3.3 工业场景中的应用价值与部署约束
异常检测在工业电流监测中的价值可以归纳为四个维度:预测性维护、质量管控、安全保护、节能优化。但需要清醒认识到,在 TFLite Micro 平台上部署异常检测模型,面临着与云端完全不同的约束条件。
3.3.1 预测性维护:从“定期检修”到“按需维护”
传统的工业设备维护采用定期检修策略,例如每 3 个月更换一次轴承。这种策略存在两个问题:一是过度维护造成备件浪费和停机损失;二是维护不足导致突发故障。电流异常检测可以实现预测性维护——通过监测电机电流的细微变化(如谐波成分增加、电流方差增大),提前 1~2 周预测轴承故障,从而将维护计划优化为“按需维护”。
以某工厂的离心泵为例,其驱动电机额定电流为 30A。在正常运行阶段,电流的 RMS 值稳定在 28~32A 之间,且频谱中 50Hz 基波占主导。当轴承开始磨损时,电流频谱中会出现明显的 2 倍频(100Hz)和 3 倍频(150Hz)分量,同时电流 RMS 值出现缓慢上升趋势。通过部署基于 TFLite Micro 的轻量级异常检测模型,可以在 MCU 上实时计算电流的频域特征,当 2 倍频分量幅值超过基波的 5% 时触发预警。
3.3.2 质量管控:从“事后抽检”到“在线全检”
在数控机床加工场景中,刀具磨损会导致切削力变化,进而引起主轴电机电流的波动。通过监测电流的集合异常模式(如每个加工循环中电流波形的形状变化),可以在线判断刀具状态,实现加工质量的 100% 全检,避免不合格品流入下一道工序。这种应用对异常检测的实时性要求较高,通常需要在 100ms 内完成一个加工循环的电流特征提取与判断。
3.3.3 安全保护:从“被动停机”到“主动预警”
电流异常检测还可以用于设备安全保护。例如,当传送带发生卡料时,电机电流会迅速上升至堵转电流(通常为额定电流的 5~7 倍)。传统的热继电器需要数秒才能动作,而基于电流异常检测的电子保护可以在 50ms 内识别出电流的异常上升趋势并触发急停,从而避免设备损坏。此外,对于电缆老化引起的漏电流、绝缘损坏引起的电弧故障,电流波形中会出现特有的高频噪声和零休现象,这些都可以通过集合异常检测来识别。
3.3.4 部署约束:MCU 上的资源预算
在 TFLite Micro 上部署异常检测模型,必须严格考虑以下资源约束:
- Flash 存储:模型权重和代码通常限制在 100KB~500KB 以内。例如,一个包含 3 层全连接的自编码器(输入维度 64,隐藏层 32,输出 64)大约需要 8KB 的权重存储。
- RAM 占用:MCU 的 RAM 通常只有 16KB~256KB。需要为输入缓冲区、中间特征图、输出层预留足够空间。对于实时电流采样(1kHz),若窗口长度为 256 点,则输入缓冲区需要 512B(16 位 ADC 值)。
- 计算能力:Cortex-M4 或 M7 内核的 MCU 主频通常在 80MHz~240MHz 之间,且没有硬件浮点单元(FPU)或只有单精度 FPU。因此,模型中的乘加运算需要控制在每次推理 10 万次以内,以保证 10ms 级别的实时性。
- 功耗预算:对于电池供电的无线传感器节点,MCU 的平均功耗需要控制在 10mW 以下。这意味着异常检测模型不能持续全速运行,需要采用“低功耗模式 + 定时唤醒”的策略。
3.4 案例拆解:电机轴承磨损的集合异常检测
为了更直观地理解三类异常在工业场景中的实际表现,我们以一个完整的案例来拆解集合异常检测的工程实现路径。
背景与约束:某化工厂的循环水泵电机(额定功率 22kW,额定电流 42A)频繁发生轴承故障,平均每 4 个月就需要更换一次轴承。每次故障都会导致非计划停机 8~12 小时,造成约 5 万元的生产损失。工厂希望部署一套基于电流分析的预测性维护系统,要求在不增加额外传感器(如振动传感器)的前提下,利用现有电流互感器信号实现轴承故障预警。
初始现象与目标:在轴承故障发生前 1~2 周,电机电流的 RMS 值仅从 40A 缓慢上升到 41.5A,变化幅度不到 4%,难以通过简单阈值判断。但通过频谱分析发现,电流信号中 100Hz(2 倍频)分量的幅值从正常的 0.3A 逐渐上升到 1.2A,同时 150Hz(3 倍频)分量从 0.1A 上升到 0.5A。目标是在 MCU 上实时计算这两个频带分量的幅值,当 2 倍频幅值超过基波幅值的 3% 时触发预警。
关键输入数据与参数:
- 采样率:2kHz(满足 100Hz 和 150Hz 分量的 Nyquist 采样要求)
- 窗口长度:1024 点(对应 0.512 秒,频率分辨率约 2Hz)
- FFT 计算量:1024 点 FFT 需要约 1024×10 = 10240 次复数乘法,在 100MHz 主频的 Cortex-M4 上耗时约 2ms
- 特征提取:仅提取 50Hz、100Hz、150Hz 三个频点的幅值,无需完整频谱
分析判断过程:在正常工况下,电机电流的基波(50Hz)幅值约为 40A,2 倍频(100Hz)幅值约为 0.3A,3 倍频(150Hz)幅值约为 0.1A。当轴承磨损加剧时,转子与定子之间的气隙不均匀度增加,导致电流中谐波分量显著上升。通过连续监测 2 倍频与基波的幅值比(Ratio_2f),可以建立如下判断逻辑:
// 伪代码:基于谐波比值的异常判断
float ratio_2f = amplitude_100Hz / amplitude_50Hz;
float ratio_3f = amplitude_150Hz / amplitude_50Hz;
if (ratio_2f > 0.03 || ratio_3f > 0.015) {
// 触发预警:轴承磨损风险
alert_level = WARNING;
} else if (ratio_2f > 0.05 || ratio_3f > 0.03) {
// 触发严重告警:建议立即停机检修
alert_level = CRITICAL;
} else {
alert_level = NORMAL;
}
实际操作步骤:
- 在 MCU 上配置 ADC 以 2kHz 采样率连续采集电流信号,每次采集 1024 个点存入 DMA 缓冲区。
- 使用 CMSIS-DSP 库中的
arm_cfft_f32函数执行 1024 点 FFT,计算耗时约 2.3ms。 - 从 FFT 结果中提取 50Hz、100Hz、150Hz 对应的幅值(分别对应 FFT 索引 25、51、76)。
- 计算谐波比值并执行阈值判断,输出预警等级。
- 将预警结果通过 UART 或无线模块发送至边缘网关,同时本地 LED 指示。
结果对比与复盘:部署该系统后,工厂在 3 个月内成功提前 5 天预警了一次轴承故障,避免了非计划停机。实际更换轴承时发现,轴承滚道已出现明显点蚀。相比之前的定期更换策略,备件成本降低了 40%,非计划停机时间减少了 80%。
风险与代价:该方案的主要风险在于 FFT 计算对 MCU 资源的占用。在 2kHz 采样率下,每 0.512 秒需要执行一次 FFT,MCU 的 CPU 占用率约为 15%。如果同时需要处理其他任务(如通信协议栈),可能需要优化为每 1 秒执行一次 FFT,或者改用 Goertzel 算法只计算特定频点,将计算量降低一个数量级。
3.5 常见误区与总结复盘
在异常检测的工程实践中,初学者常犯以下几类错误,需要特别警惕:
误区一:将异常检测等同于分类问题。很多开发者试图收集所有异常类型的样本,训练一个多分类器。但在工业场景中,异常类型是无穷无尽的——今天可能是轴承磨损,明天可能是电缆老化,后天可能是电网谐波污染。正确的做法是只对“正常”建模,任何偏离正常模型的行为都视为异常。这也是自编码器、One-Class SVM 等单类模型在异常检测中流行的原因。
误区二:忽视时间上下文。电流信号是典型的时序数据,同一个电流值在不同工况下意义完全不同。例如,5A 的电流在待机时是异常,但在轻载运行时完全正常。如果模型没有引入工况信息,必然会产生大量误报。解决方法是:在特征工程阶段加入“工况标签”作为辅助输入,或者采用条件异常检测模型。
误区三:阈值设置过于静态。工业设备的正常电流范围会随着老化、环境温度变化、负载波动而缓慢漂移。固定阈值在部署初期可能有效,但运行数月后误报率会逐渐升高。建议采用自适应阈值策略——例如使用指数加权移动平均(EWMA)在线更新正常基线,或者定期用最近 24 小时的数据重新校准阈值。
误区四:忽略数据质量与采样同步。电流传感器本身可能存在漂移、噪声、饱和等问题。如果 ADC 参考电压不稳定,或者采样时钟存在抖动,都会引入虚假异常。在部署前,务必对传感器链路进行校准,并在算法中增加数据有效性检查(如检测 ADC 饱和、信号丢失等)。