基于BP神经网络的SCARA机器人故障诊断
2022-09-16邵建浩张婷
邵建浩,张婷
(上海工程技术大学机械与汽车工程学院,上海 201620)
0 前言
BP神经网络是一种典型的人工神经网络,具有优越的非线性映射能力,所以在故障诊断领域得到了广泛应用。湖北工业大学将BP神经网络应用在矿用减速箱的故障诊断中,准确预测了矿用减速箱故障。青岛大学用GA-ACO-BP算法更加准确和快速地诊断了行星齿轮箱故障。山东理工大学将GA-BP神经网络用于光伏阵列故障检测。
本文作者在ADAMS软件中导入SCARA机器人模型,测得其运动时大臂前后端、小臂前后端及底座端加速度数据,在MATLAB中运用BP神经网络对其进行故障的智能识别与分类,验证该模型的准确性。
1 SCARA机器人
SCARA机器人结构简图如图1所示,SCARA机器人由大臂、小臂、底座等部件组成,有4个自由度(3个转动和1个移动),1个运动周期为2 s,大臂向左旋转90°,小臂向左旋转180°后回到原位,同时末端执行器螺旋式下降到最低点再回到原位耗时1 s,为前半个周期;大臂向右旋转90°,小臂向右旋转180°后回到原位,同时末端执行器螺旋式下降到最低点再回到原位耗时1 s,为后半个周期。
图1 SCARA机器人结构简图
由于SCARA机器人体积小,减少了生产线所需空间,并具有可在平面搬运、挑拣、装配等特点,特别适用于3C制造业。近年来,由于工业级产品更新速度也出现类似3C类产品的趋势,所以3C行业众多EMS工厂开始大量使用SCARA机器人。随着SCARA机器人应用愈加广泛,其安全性问题也显得越来越重要。因此,为避免因机器人故障带来的安全问题及经济损失,对SCARA机器人的故障诊断更加重要。
2 基于BP神经网络的故障诊断方法
BP神经网络又称为误差反向传播(Back Propagation)神经网络,是一种多层的前向型神经网络。它由输入层、隐含层、输出层组成,以网络误差平方为目标函数,采用梯度下降法来计算目标函数的最小值,结构如图2所示。
在图2中,~为输入层的个输入,隐含层含有个神经元,~为隐含层个神经元与输出层个神经元之间的权值,~为输出层个输出。BP神经网络的学习过程由信号的正向传播与误差的反向传播两个过程组成。
图2 BP神经网络
(1)信号的前向传播
记为隐含层各节点的阈值,为隐含层的激活函数,为输出层各节点的阈值,为输出层的激活函数。
隐含层第个节点的输入为
(1)
将式(1)代入到隐含层的激活函数可得到隐含层第个节点的输出为
(2)
然后,将作为输出层的输入节点,得到输出层的输入为
(3)
将式(3)代入输出层的激活函数可得:
(4)
(2)误差的反向传播
先计算实际输出,然后利用误差梯度下降法修正各层的权值和阈值。输出所产生的误差信号定义为
=-
(5)
其中:为期望输出。单个样本的均方误差函数为
(6)
对个训练样本的总误差函数为
(7)
由误差梯度下降法可得隐含层权值修正值Δ及阈值修正值Δ,以及输出层权值修正值Δ及阈值修正值Δ:
(8)
(9)
(10)
(11)
其中:为网络学习率。
BP神经网络隐含层的激活函数采用Sigmoid正切函数tansig,输出层的激活函数采用线性函数purelin。BP神经网络具有广泛的适应性和有效性,主要应用于模式识别与分类、数据压缩和函数逼近等方面。
3 仿真实验
3.1 单故障诊断
3.1.1 数据来源
将SCARA机器人模型导入ADAMS软件中进行仿真,仿真时间设置为10 s,步数为1 000,采集大臂前后端、小臂前后端及底座加速度数据,共计1 000组,此为无故障模型数据。之后再建立5个模型,分别在大臂前后端、小臂前后端及底座5个部位设置长约3 cm、宽0.1 cm、深约0.9 cm的裂纹,然后进行仿真,采集各部位加速度数据,每个带裂纹的模型测得1 000组数据,加上无故障模型的1 000组数据,共计6 000组数据。正常及单故障分类如表1所示。
表1 正常及单故障分类
3.1.2 BP神经网络故障诊断
BP神经网络计算流程如图3所示。
图3 BP神经网络计算流程
以0.1 s为间隔,将0.1~10 s内的数据作为测试样本,共计600组,其余数据作为训练样本共计5 400组,均用Excel表格存储。在MATLAB中建立BP神经网络算法,读取训练样本Excel表格对BP神经网络进行训练。训练完成后读取测试样本Excel表格对BP神经网络进行测试。
3.1.3 故障诊断结果分析
图4所示为BP神经网络训练误差结果,可知到训练结束时,误差为0.016 929,已不影响最终结果。经BP神经网络诊断分类,600组测试样本中有68组分类错误,正确率为88.7%,由此可以判断BP神经网络故障诊断模型可以较为准确地识别SCARA机器人故障的类别。部分实验结果数据与测试结果分别如表2、表3所示。
图4 BP神经网络训练误差结果
表2 正常及单故障部分实验结果
表3 正常及单故障分类测试结果
3.2 多故障诊断
3.2.1 数据来源
SCARA机器人在实际工作时,有时会同时发生多个部位故障,多故障的诊断也更复杂,所以有必要进行多故障诊断研究。与单故障诊断一样,多故障诊断的加速度数据也来自ADAMS软件的SCARA机器人模型。故障尺寸与单故障诊断故障尺寸一致,每种故障类型各测得1 000组数据,共计6 000组,多故障分类如表4所示。
表4 正常及多故障分类
3.2.2 BP神经网络故障诊断
多故障诊断方法同单故障诊断相同,将训练样本5 400组输入BP神经网络进行训练,测试样本600组用于测试。
3.2.3 故障诊断结果分析
经BP神经网络诊断分类,600组测试样本中有7组分类错误,正确率为98.8%,结果如表5所示。可知:当SCARA机器人存在多个混合故障时,BP神经网络智能识别的准确率明显提高,与期望输出基本一致,可准确地对SCARA机器人的故障进行识别与分类。
表5 正常及多故障分类测试结果
4 结论
在长时间、高强度的工作压力下,SCARA机器人的大、小臂前后端及底座部位有可能出现裂纹等故障,一旦发生故障会带来一系列安全问题和经济损失。本文作者采集SCARA机器人工作过程中上述部位的加速度数据,将数据输入建立好的BP神经网络故障诊断模型中,运用BP神经网络进行故障的智能识别与分类。结果表明:BP神经网络分类结果与实际结果基本一致,BP神经网络能快速且准确地确定故障类型,在机器人故障诊断领域具有广泛应用前景。