劉恩雨 ,蔣 強
(沈陽理工大學,遼寧 沈陽 110168)
機器學習是一種通過數據對神經網絡進行優化與自動改進的人工智能科學,其由于具有速度快、準確率高、應用領域廣的特點,受到了學者們的廣泛關注,如今機器學習在電子商務、醫療、金融等領域被廣泛應用[1]。
隨著人工智能(Artificial Intelligence, AI)研究的深入,近年來機器學習方法在故障診斷領域中的應用也越來越多。Soltani等[2]使用機器學習對制冷系統進行故障診斷;Dangut等[3]使用機器學習模型對飛機部件進行故障預測;Liu等[4]使用深度學習對機床進行故障診斷與健康管理工作。參考前人的研究成果,本文將ResNet網絡應用于UR5機械臂的故障診斷中。
為了進行故障診斷研究,本文對UR5機械臂進行運動仿真建模。其中,UR5機械臂的DH參數如表1所示,α表示連桿扭轉角,a表示連桿長度,d表示連桿偏距,θ表示關節轉角。基于以上參數對UR5機械臂進行運動學仿真,其過程如公式(1)與公式(2)所示。

表1 DH參數
利用公式(1)與公式(2),將機械臂DH參數代入可得相鄰坐標系的變換矩陣,從而可求得末端坐標在極坐標系的變換矩陣T。[x,y,z,rx,ry,rz]表示UR5機械臂的末端點的坐標,前三個值[x,y,z]為三維笛卡爾坐標,表示機械臂的空間位置;后三個值[rx,ry,rz]為坐標旋轉向量,表示空間姿態。如公式(3)所示,旋轉矩陣和旋轉向量之間可以通過羅德里格斯(Rodrigues)變換進行轉換,并求得六值坐標,完成正解。
本文機械臂仿真利用MATLAB中機器人工具箱實現,其中,x、y、z表示機械臂在工作空間中的位置,R、P、Y表示機械臂位姿。其仿真效果圖如圖1所示。

圖1 UR5機械臂MATLAB仿真圖
本文ResNet網絡中含有卷積模塊、批量歸一化模塊(BatchNorm)、最大池化模塊、激活函數模塊與全連接模塊。其中,卷積模塊即互相關運算模塊(Cross-Correlation),其通過卷積核在數據上滑動的方式,使其與數據進行互相關運算,達到提取數據信息的目的。批量歸一化模塊將每層的梯度規范到一個固定值,可以使模型的收斂速度更快。最大池化模塊可以對卷積層所提取的信息進行進一步采樣,從而去除冗余信息。激活函數模塊為網絡中加入了非線性元素,本文使用的激活函數為ReLU,該函數可以去除卷積結果中的負值且正值保留不變。全連接模塊可以對以上模塊所提取到的信息進行分類,最終分辨出輸入數據是否正常。
圖2(a)為本文ResNet網絡中的殘差塊,其由兩個3×3卷積層[5]、兩個BatchNorm層[6]、兩個ReLU層組成。圖2(b)為本文ResNet網絡結構圖,本文對UR5機械臂電機故障進行檢測,即將正常數據標號為0,故障數據標號為1,對其進行二分類故障診斷實驗。將數據送入網絡后,輸入數據首先經過7×7的卷積層,經過BatchNorm層與最大池化層后進入殘差塊,最終將提取到的信息送入全連接層進行分類。其數學公式表達如式(4),其中,H(x)為系統殘差單元輸出,F(x,{WI})為殘差單元所學習到的內容,x為網絡輸出。與普通網絡不同,殘差網絡引入了跳躍鏈接使網絡學習到的特征變成殘差,使網絡可以訓練得更深,避免了梯度爆炸或梯度消失現象。

圖2 ResNet網絡模型
本文所有實驗均采用同一臺硬件設備進行,其中操作系統為Windows 10,GPU為NVIDIA GeForce GTX1080Ti。機器學習訓練使用的是Pytorch框架,編程語言使用的是Python。在訓練中采用的優化器為Adam,學習率為0.001;Batchsize為5;epoch為200;損失函數為交叉熵損失;將數據集按8∶1∶1分為訓練集、驗證集和測試集。實驗結果如表2所示,在訓練200個epoch后,模型的訓練集與測試集的準確率最終收斂到98%,損失值最終穩定在0.015。

表2 實驗結果
除此之外,通過對比實驗來驗證方法的有效性,本文利用Python分別對LeNet[7]、AlexNet[8]、VGG[9]網絡進行建模,按上文所述方法對UR5機械臂進行故障診斷實驗,最后與ResNet與進行對比。其對比結果如表3所示,結果表明:ResNet網絡準確率比其他模型高1%~2%,損失值也較小,表明ResNet在本實驗中與真實標號之間的差距最小,故障診斷效果最佳。

表3 對比實驗結果
為了驗證ResNet各部分在網絡模型中的必要性,本文進行了消融實驗,將各網絡模塊逐一去除并進行對比,消融實驗結果如表4所示。表4中分別將7×7卷積層、殘差塊去除,可以明顯觀察到在去除各部分后,由于沒有跳躍鏈接,ResNet的準確率均有下降,其損失值也均有提升,該現象表明去掉對應部分后,模型得出的結論與真實標號之間的差距均有擴大,實驗證明本文網絡結構為最優結構[10]。

表4 消融實驗結果
本文提出了一種基于ResNet網絡的UR5機械臂故障診斷方法。利用MATLAB機器人工具箱對UR5機械臂進行仿真建模,并采用ResNet網絡對數據進行故障診斷實驗。實驗表明:在對UR5機械臂進行電機故障檢測時,本文所提出的模型具有更高的精度與更低的損失值,該故障診斷方法有效。