本发明涉及故障诊断,具体涉及一种基于群学习算法的工业机器人关节故障诊断方法。
背景技术:
1、近年来,随着机械工业的快速发展,工业机器人在各种机械设备中得到了广泛应用。尤其是工业机器人关节的精密零部件—谐波减速器,也可以应用于轴承等其他零部件。谐波减速器目前常发生的故障形式有:柔轮输出端传动轴错位、柔轮轮齿点蚀、波发生器错位。所以包括正常减速器,健康状态一共有4种。
2、目前存在训练方式如下:(1)本地学习:数据放在本地进行训练而不与其他工厂交流,在数据充足且高质量的情况下会训练出一个高精度的模型。(2)集中学习:将所有节点的数据集中在一起训练一个集中的模型。由于数据量大,可以满足各个故障的数据要求,能够训练一个完好的模型,但是违背了数据隐私保护的要求。(3)联邦学习:联邦学习是设置一个云端,存在一个初始模型,将模型分发给每一个成员节点,成员节点训练完后,由云端服务器整合模型后再进行分发。在数据隐私没有泄露的情况下集成所有节点的数据信息。
3、现有技术存在的缺点:(1)本地学习:虽然在数据充足的条件下可以训练出一个完好的模型,但是大部分工厂不具备这个条件。所以本地学习只适用于一些具有大量数据的大厂。(2)集中学习:在数据不足的情况下,可以集成数据,但是仅仅适用于一个工厂中的多台设备之间数据的集成。而不能将不同工厂的数据进行集中,这存在着数据隐私保护的问题。(3)联邦学习:可以解决本地学习和集中学习中出现的问题,它既解决了数据量不足的问题,又解决了数据隐私保护的问题。但是联邦学习也具有一定的问题,联邦学习的结构是“一对多”和“多对一”,这个结构的中央服务器的权利过大,且中央服务器中的最初模型保留着一部分无用的信息。除此之外,联邦学习最大的问题是通信的问题。联邦学习的参数传递具有两种方式。第一种是传递模型参数,这个过程中通讯的次数会相对较少,但是第二种方式是传递梯度,这个过程中每一个小batch都需要进行沟通,这使得沟通成本大大增加。
4、因此,上述的3种方式都具有相应的优点和缺点,也都是根据前面的方法进行改良得到,具有为后续发展提供思路的作用。
技术实现思路
1、为了解决现有模型学习方法中存在的问题,本发明的目的在于提供一种基于群学习算法的工业机器人关节故障诊断方法,该方法主要利用群学习框架来进行模型参数的交流和融合,无需中央服务器的交流,各个节点独自交流,降低了沟通的成本。
2、本发明通过以下技术方案来实现上述目的:
3、一种基于群学习算法的工业机器人关节故障诊断方法,该方法包括以下步骤:
4、步骤s1,采集工业机器人关节的原始振动数据;
5、步骤s2,对采集到的原始振动数据进行平方包络谱分析,划分训练数据集和测试数据集;
6、步骤s3,基于训练数据集在本地的多个节点分别建立卷积神经网络作为本地训练的iid模型;
7、步骤s4,将多个iid模型分别进行本地训练;
8、步骤s5,在本地训练结束后,加入域对抗神经网络来减小各个数据集所在域之间的差距;
9、步骤s6,在多个节点中随机选择一个决策者,该决策者作为临时中央服务器来负责收取和分发模型参数;
10、步骤s7,其他参与者将模型参数传递给决策者,由决策者将模型参数整合后分发给每一个参与者,参与者进行模型更新;
11、步骤s8,判断是否达到训练停止的标准,如是,则执行步骤s9,否则返回执行步骤s4;
12、步骤s9,利用步骤s3得到的测试数据集进行模型的验证,输出模型诊断的精度。
13、根据本发明提供的一种基于群学习算法的工业机器人关节故障诊断方法,在所述步骤s2中,对采集到的原始振动数据进行hilbert变换之后,得到解析信号;
14、求解解析信号的模,得到包络信号,对包络信号做傅立叶变换得到hilbert包络谱;
15、设置一连续时间信号为x(t),则信号的hilbert变换表示为公式(1):
16、
17、其中,相当于是信号x(t)经过一系列正交滤波器的输出;
18、构造解析信号,将实信号变成复信号,令x(t)作为实部,作为虚部,得到公式(2):
19、
20、其中,信号的a(t)即为x(t)的hilbert包络,对a(t)做傅立叶得到包络谱。
21、根据本发明提供的一种基于群学习算法的工业机器人关节故障诊断方法,通过将采集到的原始振动数据划分成子信号404*2400,通过平方包络谱分析后得到的数据为404*1200,其中每一种标签的数据是101*1200,对数据进行归一化处理,表示为公式(3):
22、
23、其中,将信号段转化为均值为0,标准差为1的标准化信号样本。
24、根据本发明提供的一种基于群学习算法的工业机器人关节故障诊断方法,在所述步骤s3中,设置有k个节点,k个节点之间两两相连,每一个节点接收来自于其它2个节点的模型参数,并将整合后的模型参数分发给其它2个节点。
25、根据本发明提供的一种基于群学习算法的工业机器人关节故障诊断方法,在所述步骤s4中,在进行本地训练时,利用基于卷积神经网络的iid模型作为本地训练的模型,iid模型结构包括卷积层、池化层和全连接层,其中,池化层选用最大池化层,激活函数选用relu,表示为公式(4):
26、f(x)=max{0,x}(4)
27、根据本发明提供的一种基于群学习算法的工业机器人关节故障诊断方法,使用1dcnn来对数据进行特征提取,卷积层的公式表示为公式(5):
28、
29、其中,是第l层中第j个特征映射的激活值,f是非线性激活函数,mj是选择后的输入特征,是第l层中的第j个局部感觉域,*是卷积运算,是权重矩阵,是偏置。
30、根据本发明提供的一种基于群学习算法的工业机器人关节故障诊断方法,在所述步骤s5中,在本地训练结束后,引入域对抗神经网络来降低各个数据集之间的差距;
31、在不引入域对抗神经网络的情况下,模型本地训练的损失函数为公式(6):
32、
33、其中,ns是所有标记数据的数量,yi是与数据对应的标签,nc是轴承状态类型的数量,是标记分类器中全连接层的第j个神经元,ly是节点在本地训练cnn网络过程中的损失函数;
34、在引入域对抗神经网络后,在特征提取器和域鉴别器之间存在一个梯度反转层,在原cnn损失函数的基础上添加这部分的损失函数,表示为公式(7):
35、
36、其中,di表示域的标签,表示域鉴别器中全连接层的第j个神经元,nd表示域类型,将公式(6)和(7)的两个损失函数相加,并引入一个系数λ,取值为0.01,整体的损失函数为公式(8):
37、min lobj=ly+λld (8)。
38、根据本发明提供的一种基于群学习算法的工业机器人关节故障诊断方法,在进行模型整合时,将每一个节点训练完一个小轮后,将训练完的模型参数做一个整合,在做模型的整合之前,需要在k个节点中选出一个决策者;
39、在进行模型分发时,当达到训练停止的标准之后,由最后一轮的决策者将整合后的模型分发给各个参与者。
40、根据本发明提供的一种基于群学习算法的工业机器人关节故障诊断方法,在模型整合的过程中,将k个节点cnn网络中的对应层的参数相加求平均,表示为公式(9):
41、
42、其中,mj+1为整合后模型参数,i为节点数,mj,i为第j轮训练后获得的节点模型参数。
43、根据本发明提供的一种基于群学习算法的工业机器人关节故障诊断方法,在模型整合的过程中,收集每个节点在训练过程中的损失函数,将一个小轮回的损失函数求和,再乘以模型的参数,再做平均,表示为公式(10):
44、
45、其中,mj+1为综合模型参数,mj,i是指第j轮训练后获得的第i个节点的模型参数,是指第i个节点在第j轮培训的第k个batch获得的损失函数。
46、由此可见,相对于现有技术,本发明在群学习的框架下,每一个节点在本地进行模型的训练,在训练完一个epoch之后,利用这个群学习的框架来进行模型参数的交流和融合,本发明提供的多机故障诊断模型,不仅可以保护数据隐私,同时训练时间较短,诊断精度较高,可以实现在多工况或者多设备的情况下实现诊断,通过设置一系列对比实验验证所提出的方法的可行性。
47、进一步的,本发明利用sl作为数据信息集成的框架,解决数据隐私保护和“数据孤岛”的问题。
48、进一步的,由于谐波减速器是工业机器人关节零部件,数据较少难以诊断,本发明利用sl可以解决这一问题。
49、进一步的,本发明随机选择决策者让每一个节点的权利相同。
50、进一步的,本发明来自谐波减速器的实验结果表明,所提出的方法可以进一步应用到其他工业零部件中。
51、本发明还提供一种电子设备,包括:
52、存储器,存储有计算机可执行指令;
53、处理器,配置为运行所述计算机可执行指令,
54、其中,所述计算机可执行指令被所述处理器运行时实现上述任意一种的基于群学习算法的工业机器人关节故障诊断方法的步骤。
55、本发明还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现上述任意一种的基于群学习算法的工业机器人关节故障诊断方法的步骤。
56、由此可见,本发明还提供了一种基于群学习算法的工业机器人关节故障诊断方法的电子设备以及存储介质,其包括:一个或多个存储器,一个或多个处理器。存储器用于存储程序代码和程序运行过程中产生的中间数据、模型输出结果的储存和模型及模型参数的储存;处理器用于代码运行所占用的处理器资源和训练模型时占用的多个处理器资源。
57、下面结合附图和具体实施方式对本发明作进一步详细说明。