080 STM32Cube.AI的预测维护案例
从一次产线停机说起
去年帮一家电机厂做预测维护方案,现场调试时遇到一个诡异现象:模型在开发板上推理结果完全正确,一挂到产线振动传感器上,连续三天误报率飙到40%。排查到最后,发现是Cube.AI生成的代码里,输入数据的归一化参数写死了float32,而传感器采集的原始数据是int16——每次转换时精度丢失导致特征偏移。这个坑让我意识到,预测维护的落地难点往往不在模型本身,而在数据链路的每个环节。
预测维护的典型场景:电机轴承退化检测
我们以最常见的旋转机械预测维护为例。目标是通过加速度传感器采集的振动信号,判断轴承是否进入早期故障阶段。传统做法是提取时域特征(RMS、峰值因子、峭度)和频域特征(包络谱),但手工特征工程对微弱故障信号不敏感。这里我们用STM32Cube.AI部署一个轻量级1D-CNN,直接处理原始振动波形。
数据准备:别忽略采样率匹配
现场采集的振动数据通常是连续流,但模型输入需要固定长度窗口。我踩过的坑是:窗口长度必须对应至少一个旋转周期的采样点数。比如电机转速3000rpm(50Hz),采样率10kHz,一个周期200个点。窗口取1024点(约5个周期)比较稳妥。别为了省内存把窗口压到256点,那会丢失低频故障特征。
数据预处理阶段,Cube.AI要求输入是量化后的int8或uint8。这里有个关键点:振动信号是交流耦合的,均值接近0,直接量化会浪费大量动态范围。正确做法是先做高通滤波(截止频率1Hz)去除直流分量,再根据信号