记一只小风扇的升级之路:
之前为大家带来了两篇关于SVM的介绍与基于python的使用方法。相信大家都已经上手体验,尝鲜了鸢尾花数据集了吧。这里想问下大家,当看到模型训练出来的时候,大家是不是都惊诧于模型训练的速度,以及所需要的数据之少吧?毫不骄傲的说啊,干相似的事情使用传统机器学习需要更少的资源。
本期小编就继续给大家带来一个真正的上手项目,基于SVM的电机异常检测系统。首先,请允许小编先将时间轴拨回到那个无风的夏天:
天气渐热,相信大家一定和小编一样被炎热的天气搞得生无可恋了。然而,就在小编打算原地躺平,突然一道光出现了。小编遇到了人类历史上最重要的发明-电风扇。正可谓一扇在手,汗也不流了,敲键盘的手速也变快了,可以说,脑子转的都快了~那接下来要研究的问题-怎样能使电扇悄无声息的吹风呢?
小风扇简直是给我们加了buff,脑子立马超频运转了。温度降低了,智商也就占领高地了。那我们何不做一个小风扇的demo呢?我们让吹风扇这个事情,变得更加官方呢。说干就干,先来看下硬件平台:
硬件平台包括我们的主控板:MCX-N9XX-BRK板,一颗三色LED灯(异常闪红,正常绿色),主角小风扇,外加贴在上面的MPU6050,用来采集电机运行状态。还有显示单元LCD屏幕,屏上曲线显示的是当前系统健康值:所谓健康值是评判系统异常的指标。同时还有一个旋转的变色小风扇,颜色同LED变化方式一致。系统框图:
MCX-N9XX-BRK通过I2C采集3轴加速度计的数值,处理后将结果显示到LCD模块。程序流程图如下:
程序分为三个task:
1. sensor task负责采集传感器数据
2. ALGO task负责将采集到的数据进行处理得到特征值,并送到推理引擎进行判断,此处的推理引擎所用到的就是我们的SVM
3. GUI task负责显示整个推理和训练页面 程序分为两个状态,训练和推理。训练阶段,和python上写的测试代码逻辑一致,将采集到的数据送至SVM进行模型训练。这里需要特别指出的是,我们这里要训练的实际上是一个单分类模型,即训练前需要首先确定一个运转状态,例如:小风扇正常运转没有外界干扰。训练结束后,即进入推理阶段。此时,如果通过外部干扰,改变了风扇运行状态,比如有堵转,遮挡进风口的情况,此时系统就会判定状态改变,发出报警信号。以上就是完整的程序执行流。 最后,我们来看下程序一些参数:
可以看到,数据都非常诱人,程序大小、ram占用、推理时间上,相较于深度学习都有明显的优势。同时,最为诱人的是,我们的SVM是支持在线训练的,这样就意味着,我们可以根据实际工况进行训练,以满足实际需求。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !