基于gcCatBoost的扁平振动电机缺陷检测*
2021-11-03杨苗苗黄思思
杨苗苗,方 夏,王 杰,黄思思,王 杨
(四川大学机械工程学院,成都 610065)
0 引言
手机等通讯设备以及智能手表等穿戴设备为了增强与人体之间的交互体验会安装振动电机来提供触觉反馈。扁平振动电机体积较小,且生产成本更低,因此需求量大。目前生产厂家在产品的出厂检测中仍旧通过人工观察示波器上的电压信号来判断产品是否合格,人工成本高,并且准确率与检测标准难以保证。因此,提出一种准确率高的智能缺陷检测方法具有重要的意义。
电机的缺陷检测可以通过采集振动、音频、电信号等方法来进行判别。文献[1]对异步电机的振动信号使用短时傅里叶变换转化为时频图,将其输入卷积神经网络(CNN)实现电机的故障诊断;文献[2]对电机的音频信号使用经验模态分解(EMD),将分解后的参数进行特征融合,使用支持向量机(SVM)对特征向量进行识别;文献[3]利用小波包算法对电机电流信号进行特征提取,将特征输入3层LSTM网络来判断电机缺陷。上述方法虽可以完成对电机缺陷的检测,但应用于扁平振动电机的缺陷检测仍有不足。①电机的生产环境嘈杂且不稳定,振动或音频信号的信噪比较低。②深度神经网络(DNNs)需要大量的数据用于训练,某些缺陷的样本数量却很少。③SVM等简单的机器学习模型在多分类任务中效果不好。④小波包算法的基函数种类多,需要大量实验才能选取合适的基函数与分解的层数。因此电信号更适合扁平振动电机的缺陷检测,并且需要提出一种准确率高,能胜任少样本、不平衡数据的分类任务的算法。
gcForest(multi-Grained Cascade Forest,多粒度级联森林)是文献[4]提出的深度森林算法。文献[5]将gcForest用于彩色眼底图像的质量评估,实验证明其可以在小样本和数据不平衡的场景下完成任务。文献[6]使用gcForest对滚动轴承进行缺陷诊断,实验证明该算法具有良好的缺陷识别精度。文献[7]将gcForest运用于电能质量干扰的分类,实验表明,gcForest可以精确识别不同种类的电信号。然而gcForest也有不足,级联森林只能在CPU中进行训练,速度较慢。
为了提升gcForest的训练效率与缺陷分类的准确率,使用级联CatBoost处理特征向量。文献[8]使用CatBoost识别医疗保险欺诈行为,实验证明CatBoost在处理分类任务中有较好的表现。
综上所述,针对扁平振动电机的少样本、不平衡数据的分类任务和识别准确率不高的问题,本文提出一种基于gcForest与CatBoost(gcCatBoost)的缺陷检测方法。先用gcForest中的多粒度扫描结构来获取电机电压信号的特征向量,然后使用级联CatBoost对特征向量进行分类,实现对扁平振动电机的缺陷检测。
1 电机原理与缺陷分类
本文研究的扁平振动电机如图1所示。
图1 电机实物与三维拆解结构图
扁平振动电机直径为8 mm,厚度为3 mm,输入直流电,额定电压为3 V,负载电流为90 mA,额定转速为13000±3000 rpm,加速度为0.55 Gp(X-Y轴)。
扁平振动电机的生产装配的过程中会产生波形落、波肩倾斜、波肩高低、无波峰、波肩长短等缺陷。
电机的良品电压波形如图2a所示。在装配过程中,若偏振块的晶面粘有异物,电机在转动过程中出现接电不良,在波形上可以看到较大落点,此缺陷称为波形落,如图2b所示;若电机磁铁在充磁的过程中磁极偏移,在波形上会出现波肩同向倾斜,此缺陷称为波肩倾斜,如图2c所示;若电机的线圈的匝数不相同,导致两线圈阻值不一,在波形上会出现两端的波肩不在同一高度,此缺陷称为波肩高低,如图2d所示;若电刷在换向过程中出现故障,在波形上会出现波峰消失,此缺陷称为无波峰,如图2e所示;若电刷的触头不在同一高度,在波形上会出现波肩一端的长度明显大于另一端,此缺陷称为波肩长短,如图2f所示。
(a) 良品
(b) 波形落
(c) 波肩倾斜
(d) 波肩高低
(e) 无波峰
(f) 波肩长短图2 电机电压波形
2 检测方法设计
2.1 gcForest
(1)多粒度扫描
多粒度扫描结构首先采用滑动窗口对输入的原始特征进行分割,其次将得到的特征向量输入到随机森林与完全随机森林中,最后将两个森林得到的类向量拼接作为多粒度扫描的输出。如图3所示,将一个J维的原始数据输入多粒度扫描结构,使用K维的滑动窗口,滑动步长为λ,得到L个特征向量,其中L=(J-K)/λ+1,两种森林分别输出L个x维类向量,拼接后得到2·L·x维向量输出。
图3 多粒度扫描
(1)
其中,I为类别个数,pi为样本属于第i类的概率。
图4 类向量生成
(2)级联森林
级联森林结构由多个随机森林与完全森林分类器组成。级联森林将多粒度扫描结构输出的特征向量作为输入,通过逐层处理,得到最终的类别输出。如图5所示,首先将特征向量输入第一层级联森林得到多个x维类向量,其次将所有类向量与输入的特征向量拼接,作为下一层的输入,以此类推,最后将第N层的类向量平均,取最大值作为最终结果输出。级联森林采用K折交叉验证来减小过拟合[4]。级联森林在一定的层数内没有性能提升,则级联停止扩展,训练终止。因此,gcForest可用于不同规模的数据集。
图5 级联森林
2.2 Catboost
(2)
CatBoost在此方法上做出改进,增加了先验p[8],如式(3)所示:
(3)
其中,c>0。通过这种方式来减少数据中的噪声对分类精度的影响。
2.3 gcCatBoost
文献[13]将级联CatBoost应用于滚动轴承剩余寿命的预测。实验结果表明级联CatBoost相比于单一CatBoost有更高的预测精度。本文将级联CatBoost取代gcForest中的级联森林结构,对电机的不同缺陷进行检测。该方法的检测流程如图6所示。
图6 总体流程图
采集电机在额定电压下的电压信号,提取信号中相邻的200个点作为样本输入多粒度扫描,其次将得到的特征向量输入级联CatBoost进行分类,最后输出故障类别。如图7所示,多粒度扫描结构中设有3个滑动窗口,其大小分别为1×13、1×25、1×50,滑动步长为1,分别对6类电机信号的200维特征进行提取,得到2256、2112、1812维特征向量,将3个滑动窗口得到的特征向量拼接得到6180维特征向量作为级联Catboost的输入,每层设置4个CatBoost分类器共产生4个6维类向量与输入级联层的向量拼接得到6204维向量输入下一层。级联CatBoost中采用5折交叉验证,级联CatBoost扩展3层内性能没有显著提升则停止训练。
图7 gcCatBoost
3 实验与分析
3.1 数据采集
为验证gcCatBoost应用于扁平振动电机缺陷检测的可行性,采用以下平台进行实验。①软件平台:Win10系统,Python 3.7,LabVIEW2018。②硬件平台:intel 9400F,GTX1080Ti显卡,16GB RAM,NI-USB-6351采集卡、供电系统、电机治具。
使用图8所示的数据采集装置与LabVIEW2018软件采集每个电机运行时的电压信号。USB-6351采集卡采样率为40 K,采样点数为100 00,采集时间为0.25 s。电机的一个周期信号约占170个点,取200个点作为一个样本输入,每种缺陷的样本数为:良品2100个,波形落1100个,波肩倾斜600个,波肩高低550个,无波峰1450个,波肩长短1800个。取总样本个数的0.33作为测试集,如表1所示。
图8 实验平台
表1 数据集的划分
3.2 gcCatBoost的训练
多粒度扫描结构中使用3个滑动窗口,大小按2.3节选取。多粒度扫描结构中完全随机森林和随机森林中的决策树的个数为500。
设定每个CatBoost分类器中树的个数为1000,通过增加CatBoost分类器的个数来观察测试集准确率的变化。如图9所示,实验数据表明gcCatBoost的准确率会随着CatBoost分类器数量的增加而增高,同时训练时间会随着CatBoost分类器数量的增加而延长,为平衡训练时间与准确率,使用4个CatBoost分类器构成级联CatBoost。
图9 CatBoost数量
使用4个CatBoost分类器,在一定范围内对每个分类器中树的数量进行改变。如图10所示,实验数据表明gcCatBoost的准确率会随着树的数量增加而增高,在局部位置准确率会有波动。增加树的数量会延长训练时间,因此设定树的数量为1000个。CatBoost中其他超参数设定如下:深度depth=6,学习率learning_rate=0.2。
图10 树的数量
3.3 实验结果
使用3.2节中的参数训练gcCatBoost模型。其中训练集准确率为99.96%,测试集准确率为98.41%。模型的检测结果如表2所示。其中缺陷1:波肩高低,缺陷2:波肩长短,缺陷3:波肩倾斜,缺陷4:波形落,缺陷5:无波峰。
表2 检测结果
其他评价指标如表3所示,其中,Precision表示被预测为正的样本中实际为正的比例,Recall表示正样本被预测为正的比例,F1为综合评价指标。
表3 其他评价指标 (%)
将gcForest与其他机器学习算法进行对比实验,由表4中不同方法的准确率数据可以得知gcForest可以完成小样本、不平衡数据的分类任务,并且在电压信号的缺陷检测中有很高的准确率。
表4 不同方法的准确率
采用不同的GBDT算法作为级联层的分类器进行实验对比,每个级联层4个分类器,每个分类器中包含1000棵树,实验结果如表5所示,由此可得使用CatBoost作为级联层分类器的gcCatBoost的准确率更高。
表5 不同级联层的准确率
使用3.2节中的参数训练gcCatBoost时,训练时间为1501 s,训练自动终止于第6层,平均每层训练时间为250.2 s。训练gcForest时使用随机森林与完全随机森林各两个,每个森林包含1000棵树,训练时间为7887 s,训练自动终止于第7层,平均每层训练时间为1 126.7 s。由此可得gcCatBoost的训练成本低于gcForest。
4 结论
本文提出了一种基于gcCatBoost的扁平振动电机缺陷检测方法。该方法首先使用数据采集卡采集电机的电压信号,其次使用多粒度扫描结构处理电压信号数据点之间的联系得到特征向量,最后使用级联CatBoost对特征向量进行分类,完成对电机的缺陷检测。通过实验可知,该方法适用于小样本、不平衡数据的分类场景。与传统的机器学习算法相比,该方法高达98.41%的准确率具有更大的优势。与gcForest相比,该方法的准确率更高,且训练时长更短。该方法的提出为扁平振动电机的缺陷检测提供了新的选择,可以满足市场对扁平振动电机高效率、高品质检测的需求。