?

在單片機中應用卷積神經網絡實現故障診斷

2024-03-21 05:54張岷濤廖文豪卿朝進
機械科學與技術 2024年2期
關鍵詞:故障診斷軸承卷積

張岷濤,廖文豪,卿朝進

(西華大學 電氣與電子信息學院,成都 610039)

智能故障診斷(Intelligent fault diagnosis,IFD)是指將機器學習應用于故障診斷。近年來,隨著機器學習的理論發展取得巨大成就,IFD 被更多專家學者所關注[1-4]。這對以信號處理和人工提取特征為主的傳統故障診斷方法提出了挑戰。

時域、頻域及時頻域分析是基于振動信號的傳統故障診斷方法[5]。為表征局部特征,通常采用短時傅里葉變換[6]、小波變換[7]、經驗模態分解[8]、局部均值分解[9]等時頻處理方法提取故障特征,再通過工程師的人工經驗進行故障判定,這需要大量的數據統計。智能化的故障診斷方法則利用支持向量機[10]、k-means[11]、人工神經網絡[12]等機器學習方法自動分類特征,降低了對專家經驗的依賴,但準確率仍取決于人工提取的特征能否準確描述故障信息,具有較大局限性。而深度學習等方式是基于數據驅動的方式,只需要精確的原始數據和合適的網絡結構就可以實現端到端的自動故障診斷。

隨著信息技術的飛速發展,現代檢測技術已經能很容易實現對于復雜設備的多點全覆蓋的數據采集,使得深度學習這種基于數據驅動的方式更能發揮其長處,取得更高精度的診斷效果。Hinton 應用深度置信網絡(Deep belief network,DBN)[13],AlexNet[14]和ResNet[15]等應用卷積神經網絡(Convolutional neural network,CNN),使IFD 取得了相當大的進步。

然而,這些深度學習的神經網絡架構中都有神經元的設計。從某種程度上說,神經元的數量越多網絡的學習能力就越強,但同時大量神經元的設計也會消耗相當多的計算資源,使得其在計算能力有限的嵌入式設備中的應用受到很大的局限。而機械設備運行狀態具有體量大、真實度高、生成速度快、數據類型多和價值密度低等特點[16],要求現場進行快速且低成本的應用。很多場景需要嵌入式設備承擔起更多的任務。所以TinyML(小型設備的機器學習)領域開始逐漸的發展起來。一種解決方案是在CPU 中內置神經單元,如某些手機或穿戴設備。一種是簡化神經網絡的架構,使其能夠適應單片機的有限資源。

本文在Jupyter notebook 工具內使用Scipy、Numpy 等科學計算庫對原始的數據進行預處理,使用Tensorflow、Pytorch 等深度學習框架訓練網絡參數,并對不同的網絡結構和參數進行測試準確度、參數量、運行時間等進行方面進行比較。利用CubeAI等工具將網絡結構與權重轉化為單片機環境所需的C 語言結構和權重形式,然后將其部署至STM32H743VI 內。實現了基于CNN2D 神經網絡的軸承故障振動信號的識別。

本文網絡的訓練和驗證使用凱斯西儲大學(CWRU)滾動數據中心的軸承故障數據集。CWRU數據集是世界公認的軸承故障診斷標準數據集。截止到 2015 年,僅機械故障診斷領域頂級期刊《Mechanical Systems and Signal Processing》就發表過 41 篇使用CWRU 軸承數據進行故障診斷的文章[17]。在基于深度學習的軸承故障診斷領域,目前被引用數最高的兩篇文章[18-19]的試驗數據也均來自 CWRU軸承數據庫。為了評價被提出算法的優越性,最客觀的方式就是使用第三方標準數據庫與當下主流算法比較。因此,本文的所有試驗均采用 CWRU 軸承數據。獲得其中的包含10 種故障類型的數據,優化后的最優模型的故障識別準確度可以達到98.90%。每次診斷運行時間為19 ms。

1 神經網絡架構

目前應用于智能診斷領域的典型的深度學習方案主要包括有堆棧自動編碼器(SAE)、深度置信網絡(DBN)、卷積神經網絡(CNN)、深度殘差收縮網絡(ResNet)等。其中卷積神經網絡(CNN)比較成功的兩種架構分別是一維卷積神經網絡(CNN1D)和二維卷積神經網絡(CNN2D)。CNN1D 和CNN2D的最大區別就是CNN1D 的卷積核為一維向量,網絡輸入的數據也同樣的為一維向量,其對于一維的時間序列數據或周期性數據都有較大的應用范圍。二維神經網絡的卷積核為二維向量,網絡輸入的數據為二維數據,CNN2D 由于其強大的特征提取能力,在近年的圖像處理領域包括定位、目標識別等有廣泛的應用。本文通過對數據進行預處理,將一維輸入數據轉換為二維,采用二維卷積神經網絡的架構實現滾動軸承故障診斷。

1.1 數據集

CWRU 軸承數據集為美國凱斯西楚大學數據中心發布的一個有關于故障軸承的數據集,其目的是用來檢測和驗證電機性能,近年來由于故障診斷領域的興起,其多用作故障信號診斷的基準數據。其測量數據的實驗平臺如圖1 所示。

圖1 CNN2D 主要調試與優化流程Fig.1 Main debugging and optimization process of CNN2D

其實驗平臺包括一個電機(左側),一個轉矩傳感器(中間),一個功率計(右側)和電子控制設備(沒有顯示)。實驗中使用加速度采集振動信號,通過使用磁性底座將傳感器安放在電機殼體上。加速度傳感器分別安裝在電機殼體的驅動端12 點鐘的位置,在其他一些實驗中,傳感器也被安放在電機支承底盤上。數字信號的大部分采樣頻率為12 000 Hz,部分正常軸承數據也以48 000 Hz 的采樣速率采集。外圈的故障是固定不變的,因此故障相對于軸承受載區域的位置對電機/軸承系統的振動響應由直接的影響,為了對這個影響進行定量研究,實驗中分別對驅動和風扇端的軸承外圈布置3 點鐘、6 點鐘、12 點鐘方向的故障。除此之外,實驗對每種情況,還分別統計了在1 797、1 772、1 750 和1 730 r/min轉速下數據。

實驗中使用的軸承為滾動軸承,其結構如圖2所示。

圖2 CWRU 實驗中使用的滾動軸承結構Fig.2 Rolling bearing structure used in CWRU experiments

被測試軸承支承電機軸,使用電火花加工技術在軸承上布置了單點故障,故障直徑分別為0.177 8 mm、0.355 6 mm、0.533 4 mm、0.711 2 mm 和1.016 0 mm,其中前3 種故障直徑的軸承使用的是SKF 軸承,后兩種故障直徑的軸承使用的是相較差距不大的NTN 軸承。而單點故障的位置則設在滾珠、外圈、內圈3 個地方。

對于數據科學來說,對于數據的分析與預處理是一個十分重要的,其可以極大的減小數據錯誤以及數據的偏好對于后續實驗的影響,透徹的了解所得到的數據可以對后續實驗出現的問題,使用更加有針對性的手段進行解決和分析。

根據Smith 等[17]對于CWRU 故障軸承數據集所做的基礎性分析,以及其最后總結的數據圖表可以清楚的了解到,對于整個CWRU 故障軸承數據集來說,其中12 kHz 采樣率的驅動端的數據最為完整且明顯的人為錯誤最少。而對于不同轉速下的數據,1 797 r/min 的轉速數據最接近于1 800 r/min,此時對于使用12 kHz 的采樣率來說,400 的采樣點的數據正好接近于一個轉動周期,可以在信號里觀察到一個完整的故障信號波形。所以后續將使用12 kHz采樣率下1 797 r/min 的驅動端數據,來進行網絡結構的訓練以及之后的驗證,至此可以得到如表1 中的10 種不同的故障分類。

表1 CWRU 數據集中獲取的10 種不同故障分類Tab.1 10 different fault classifications obtained in the CWRU data set

其中,前面的數字為故障的直徑大小,后面的英文表示故障的位置,比如14-Ball 就代表軸承滾珠直徑為35.56 cm(14 英寸) 大小的故障。特別說明的是OuterRace6 后面的數字6 代表的時候6 點鐘方向,其余的兩個3 點鐘方向與12 點鐘方向的故障,由于其數據量較少這里將其丟棄不考慮。

而對于整個數據集的文件結構來說,大致可以總結為單一故障情況下的數據為一個獨立文件,一個獨立文件為.mat 格式。文件結構主要里面包括DE 和FE 兩種不同的向量數據,其對應的便是驅動端數據和風扇端數據,而部分文件內還包括正常的BA 基準數據。具體文件結構內容如表2 所示。

表2 CWRU 數據集單個文件內部結構Tab.2 Internal structure of a single file of a CWRU data set

利用基于Python 的Scipy 和Numpy 等科學計算和數據分析庫,將所需要的信號數據提取出來并且保存到本地文件以便后續的分析與處理。將一段信號數據轉化到時間序列后如圖3 所示。

圖3 時間序列下的部分CWRU 數據集數據Fig.3 Part of the CWRU data set under the time series

1.2 數據預處理

由于軸承故障信號為一維時間序列的數據,要使用CNN2D 網絡進行訓練就必須將數據轉化為二維矩陣形式。而轉化的方式主要有3 種:直接轉化法[20];時頻圖轉化法[21];GAF 轉化法[21]。這里考慮到單片機資源限制,采用算法最為簡單的,資源占用最少的直接轉化法。

直接轉化法十分簡單,其直接將采集到的一維數據通過滑動窗口的方式截取特定長度的數據,然后將多次截取的數據進行堆疊就可以得到一個二維矩陣數據。具體的轉化方法如圖4 所示。

圖4 直接轉化法過程Fig.4 Direct conversion process

將一段長度為400 數據轉化為20*20 的二維數據圖像如圖5 所示。

圖5 直接轉化法后生成的二維圖像Fig.5 Two-dimensional image generated by direct transformation method

這種方法有轉化簡單,計算量小等優點,不過當其振動信號的峰值數據轉化為一行的時候可能會造成轉化后的圖像較為接近,增加了網絡對于不同類型數據的特征提取的難度。

在文獻[17]中指出由于CWRU 數據集是人工電火花打點模擬故障,所以其噪聲程度較低,而且對于某些情況下,有噪聲也可以加強對于網絡的訓練。而對信號進行時頻的基礎分析,對于使用深度學習這種基于數據驅動的方式來說作用并不大。對于數據的采樣方式這里使用隨機采樣方式,可以盡可能的避免輸入網絡訓練的數據存在數據相關性太強的情況。

此外為了優化不同故障情況下的數據分布,提升網絡模型的準確度和訓練的擬合速度,所以還需要將數據特征進行無量綱處理,即對數據進行歸一化處理,這里使用的歸一化方法為Min-Max 法,即

1.3 卷積網絡的結構設計

將一維輸入數據處理為CNN2D 網絡可以處理的二維數據后,便可以進行架構網絡結構然后進行網絡的訓練了。這里的模型基于Keras 官方例子中對于MINIST 手寫識別的CNN2D 的網絡結構進行改進。由輸入層(InputLayer)、卷積神經網絡層(Conv2D)、二維最大池化層(MaxPooling2D)、平坦層(Flatten)、全連接層(Dense)、分類器(Softmax)組成。其完整的網絡結構以及數據結構的變化如圖6所示。

圖6 CNN2D 驗證模型完整結構Fig.6 The complete structure of the CNN2D verification model

卷積神經網絡層(Conv2D)的作用是自適應提取軸承故障信號的特征。選擇合適的卷積核對軸承信號進行卷積,卷積核即一個權重矩陣。不同的卷積核實際就代表著軸承信號中不同的故障特征,卷積神經網絡往往通過增加卷積核來提高提取故障特征的能力。卷積核為

式中:Mj為輸入特征矩陣的集合;l網絡層數;為第j個輸入特征矩陣;為權重矩陣;blj為偏置系;f(·)為激活函數。這里的激活函數為

tanh 函數圖像如圖7 所示。

圖7 Tanh 函數圖像Fig.7 Tanh Function image

最大池化層(MaxPooling2D)又稱為降采樣層,與卷積層類似,池化層常用的有最大池化與均值池化兩種,卷積核依次掃描目標數據取目標區域的最大值或平均值。其作用是提取卷積層輸出的數據的主要特征,同時降低數據維度,這里采用的是最大池化函數。

式中: βlj為權重矩陣;blj為偏置矩陣; down(·)為降采樣函數;fmax(·)為最大池化函數。

全連接層(Dense)將池化層提取的故障特征進行分類,則

式中:l為網絡層序號;wl為權重向量;xl為一維特征向量;bl為偏置向量。

分類器(Softmax)的數學模型為

式中:wj為權重向量,表示第i個樣本屬于j類故障模式的概率。取最大值進行分類。

該模型的具體參數設置如表3 所示。

表3 CNN2D 模型參數Tab.3 CNN2D model's parameters

1.4 網絡結構的驗證

網絡模型的訓練使用專業深度學習工作站,硬件配置為64g 內存;CPU 為Inter(R) Xeon(R) E5-2620 v4 雙核2.1 GHz;GPU 配置為雙卡Tesla P100 250 W 16 GB。使用基于Tensorflow 深度學習框架的Keras 工具進行網絡架構和網絡訓練。Kearas 是由Python 語言編寫的開源神經網絡學習庫。Keras提供了強大的神經網絡的API 庫,采用模塊化編程,代碼編寫量小,是深度學習中使用較多的模型之一。訓練與驗證的準確度如圖8 所示。

圖8 CNN2D 改進模型訓練與驗證的準確度Fig.8 The CNN2D improved model’s accuracy of training and verification

為驗證該CNN2D 模型的有效性,對比了CNN1D的基準模型[22];CNN2D 基準模型,激活函數采用Relu 函數[23],CNN2D 基準模型,激活函數采用Tanh 函數[24];與改進后的該模型。對這些模型進行對比訓練和驗證。性能比較如表4 所示。

表4 CNN2D 改進模型與其余驗證模型性能比較Tab.4 Performance comparison between CNN2D improved model and other validated models

2 神經網絡架構在單片機平臺上的部署

為了使IFD 在生產過程中大量使用,就必須尋找低成本小型化的解決方案。能夠將智能神經網絡部署到單片機中無疑是非常有吸引力的方案。這里將前面設計的CNN2D 改進模型通過CubeAI 網絡結構部署工具部署到STM32H743VI 單片機上。

2.1 單片機硬件平臺

單片機硬件平臺選用WeAct Studio 開發的STM32H743VI 核心板。STM32H743VI 為帶DSP和DP-FPU 的高性能ARM Cortex-M7 MCU,具有2 MB Flash、1 MB RAM、480 MHz CPU、ART 加速器、一級緩存、外部存儲器接口和大量外設。還提供3 個ADC,兩個DAC,兩個超低功耗比較器,一個低功耗RTC,一個高分辨率計時器,12 個通用16 位計時器,兩個用于電機控制的PWM 計時器,5 個低功耗計時器。

WeAct Studio 的STM32H743VI 核心板主要的接口有4 Pin 2.54mm SW、USB C (type C)、MicroSD TF、8Bit DCMI、User Key K1 (PC13)、NRST Key、BOOT0 Key 等。核心板上有8MB SPI Flash, 8MB QSPI Flash 作為單片機的外存。

2.2 單片機軟件配置與網絡部署

通過CubeMX 完成對單片機的配置。CubeMX為ST 官方推出的一款圖形化的STM32 配置工具,可以非常輕松地配置STM32 微控制器和微處理器。配置STM32 的時鐘樹、配置外圍設備(例如GPIO 或USART)和中間件堆棧(例如USB 或TCP /IP)等,其直觀的GPIO 配置。CubeMX 帶有功耗計算器功能,并且可以十分方便的導出為各種主流的工程文件,包括初始化代碼工程,包含:EWARM、MDK-ARM、 TureSTUDIO 、 SW4STM32 等。STM32H743VI 的管腳圖如圖9 所示。

圖9 STM32H743VI 芯片管腳圖Fig.9 Pin diagram of STM32H743VI

首先,進行初級配置。設置核心板上的LED 燈和自定義按鍵,主要是為了方便我們的調試過程。PB14 和PB15 是USART1 串口通信接口。詳細引腳的設定說明如表5 所示。

表5 芯片相關引腳設定說明Tab.5 Chip-related pin setting instructions

其次,由于在代碼編寫過程中對于輸入數據設定的全局變量會占用占用較大的??臻g,所以還需要通過CubeMX 將最小棧分配空間設置為0X1000。

最后,使用CubeMX 工具對芯片的時鐘設置完成。將高速外部時鐘設置為400 MHz,低于芯片最快運行頻率的480 MHz。

網絡部署采用CubeMX 的AI 擴展包CubeAI。通過CubeAI 將預訓練的神經網絡進行轉換生成優化庫集成到項目中。將CWRU 軸承數據集的測試數據通過串口傳入單片機。下載并安裝CubeMX內提供的CubeAI 6.0 插件,然后將改進CNN2D 模型導入插件中,自動處理和量化工作完成后,便得到了一個包含參數和激活函數權重、函數結構文件在內的神經網絡C 語言庫,詳細庫文件結構見表6。

表6 庫文件結構Tab.6 Structure of library file

導入后可以選擇對權重和參數進行壓縮和量化,但是會降低模型精度,可以根據實際情況考慮,本設計由于單片機資源足夠,所以不對網絡模型進行壓縮和量化。

導入模型后,其網絡參數復雜度為1 238 380 MACC,MACC(Multiply-accumulate operations)用以描述神經網絡的模型復雜度,其代表網絡計算中先乘起來再加起來的運算次數。其具體的資源消耗如表7 所示。

表7 網絡模型資源消耗Tab.7 Resource consumption of network model

雖然輸入變量和中間變量的初始化和定義還需要占用系統資源,但是相較于STM32H743VI 芯片的2M FLASH 和1M RAM 來說資源占用完全無太大影響。經過實測,該改進CNN2D 網絡模型可以實現對于數據集中的10 種故障診斷準確率達到98.90%,且網絡參數總量僅為36 390,相較于前面未優化的CNN2D 網絡模型準確率提升了3.8%,而網絡參數總量下降了36.66%。平均每次診斷運行時間為21Tick 換算后則為20 ms 左右,耗時在應用中滿足需求。

3 結束語

本文主要驗證了深度學習對于工業中的軸承故障診斷的可行性,并且可以通過調試網絡結構得到較高的診斷準確度,另外驗證了對于單片機這樣的嵌入式設備中,部署神經網絡進行深度學習的可行性,這是對于現在的TinyML 這個新興領域的初步探索,部署過程中得到的一些數據可以作為之后相關應用的基準參考。

主要存在的問題是,由于條件限制,設計的改進CNN2D 模型對于實際工業應用中的高噪聲環境下的數據訓練是否還能有較高診斷準確度無法驗證。根據相關領域的最新研究方向,對于第一個高噪聲環境的診斷問題,現在有較多的相關研究關注這個問題。論文[25]中提出的使用深度殘差收縮網絡針對于高噪聲環境下的高精度故障診斷,其主要是利用深度殘差收縮網絡的抗噪特性實現。

其次,對于整個流程過程的優化加強其魯棒性,可以自動的處理一些串口傳輸過程中出現的問題。進一步優化流程和優化模型都需要以后的研究中去進一步做實驗驗證各種方案。

猜你喜歡
故障診斷軸承卷積
軸承知識
軸承知識
基于3D-Winograd的快速卷積算法設計及FPGA實現
軸承知識
軸承知識
從濾波器理解卷積
基于傅里葉域卷積表示的目標跟蹤算法
因果圖定性分析法及其在故障診斷中的應用
一種基于卷積神經網絡的性別識別方法
基于LCD和排列熵的滾動軸承故障診斷
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合