陳帝旭 鄭 湃 王曉峰
(①中國(guó)科學(xué)院沈陽(yáng)計(jì)算技術(shù)研究所,遼寧 沈陽(yáng) 110168;②中國(guó)科學(xué)院大學(xué),北京 101408)
隨著2015 年國(guó)務(wù)院出臺(tái)《中國(guó)制造2025》等一系列指導(dǎo)性文件[1],我國(guó)開(kāi)始全面部署推進(jìn)制造強(qiáng)國(guó)戰(zhàn)略。提升我國(guó)高鐵吊弦預(yù)配的智能制造水平,符合《中國(guó)制造2025》的智能制造發(fā)展方向,常州數(shù)控技術(shù)研究所發(fā)揮其在數(shù)控技術(shù)和自動(dòng)化方面的技術(shù)優(yōu)勢(shì),聯(lián)合中鐵建電氣化局集團(tuán)軌道交通器材有限公司,于2021 年成功開(kāi)發(fā)融合了可以生產(chǎn)鋁腕臂、鋼腕臂和簡(jiǎn)統(tǒng)化腕臂的高鐵智能化接觸網(wǎng)腕臂柔性預(yù)配平臺(tái)[2]。但目前高鐵接觸網(wǎng)吊弦預(yù)配的自動(dòng)化和智能化水平發(fā)展依然不對(duì)稱,該高鐵接觸網(wǎng)整體吊弦壓接檢一體化智造單元還是以人工輔助平臺(tái)和半自動(dòng)化為主,智能判斷故障、生產(chǎn)數(shù)據(jù)信息化等智能制造技術(shù)的融入程度不高。究其原因是高鐵接觸網(wǎng)腕臂柔性預(yù)配生產(chǎn)線多設(shè)備多工藝的環(huán)境下,設(shè)備數(shù)據(jù)結(jié)構(gòu)復(fù)雜和協(xié)議多樣[3],僅伺服電機(jī)就有20 余個(gè),嚴(yán)重阻礙了設(shè)備數(shù)據(jù)的及時(shí)采集。包含電機(jī)振動(dòng)數(shù)據(jù)等大量復(fù)雜的設(shè)備高頻數(shù)據(jù)未經(jīng)處理就直接傳輸?shù)皆贫诉M(jìn)行故障分析[4],將導(dǎo)致數(shù)據(jù)傳輸帶寬占用極高,不僅阻礙設(shè)備數(shù)據(jù)網(wǎng)絡(luò)共享,還會(huì)使設(shè)備故障發(fā)現(xiàn)不及時(shí),嚴(yán)重時(shí)會(huì)給制造企業(yè)帶來(lái)巨大的經(jīng)濟(jì)損失。因此,有必要設(shè)計(jì)一種基于邊云協(xié)同服務(wù)框架,靠近車間現(xiàn)場(chǎng)高效采集和預(yù)處理數(shù)據(jù),并對(duì)設(shè)備故障實(shí)時(shí)預(yù)測(cè)的完整架構(gòu),以達(dá)到制造車間生產(chǎn)數(shù)據(jù)標(biāo)準(zhǔn)化、統(tǒng)一化的目的,推動(dòng)高鐵接觸網(wǎng)整體吊弦壓接檢智造單元加速邁向智能化。
綜上所述,數(shù)據(jù)是智造車間的核心[5],實(shí)現(xiàn)對(duì)設(shè)備數(shù)據(jù)的高效采集和實(shí)時(shí)處理是完成設(shè)備工作狀態(tài)監(jiān)控和數(shù)據(jù)分析的首要條件。但目前為止,大部分設(shè)備數(shù)據(jù)采集與振動(dòng)故障分析方法沒(méi)有兼顧數(shù)據(jù)采集效率、采集準(zhǔn)確性和設(shè)備業(yè)務(wù)執(zhí)行實(shí)時(shí)性的要求[6-10]。因此本文提出基于邊云協(xié)同的設(shè)備數(shù)據(jù)統(tǒng)一采集與故障分析應(yīng)用方法。邊緣設(shè)備與云平臺(tái)協(xié)同運(yùn)行,既利用邊緣計(jì)算的數(shù)據(jù)采集和局部數(shù)據(jù)處理能力,又利用云平臺(tái)的數(shù)據(jù)分析和數(shù)據(jù)共享能力[11],邊云協(xié)同運(yùn)行極大釋放網(wǎng)絡(luò)的帶寬,從而實(shí)現(xiàn)設(shè)備業(yè)務(wù)的快速響應(yīng)。同時(shí),運(yùn)用OPC UA(OPC unified architecture,OPC UA)設(shè)備建模對(duì)采集項(xiàng)進(jìn)行靈活定義,能兼容多種協(xié)議數(shù)據(jù)格式進(jìn)行采集,使邊緣設(shè)備數(shù)據(jù)采集的內(nèi)容和時(shí)間可控,從而滿足不同的需求。
當(dāng)前智造單元設(shè)備網(wǎng)絡(luò)中存在大量協(xié)議繁雜且智能化程度不同的感知設(shè)備[12],傳統(tǒng)數(shù)據(jù)采集方法堆砌各種協(xié)議進(jìn)行采集,難以采集到實(shí)時(shí)、完整和準(zhǔn)確的數(shù)據(jù)。針對(duì)這個(gè)問(wèn)題,本文設(shè)計(jì)基于邊云協(xié)同的數(shù)據(jù)采集架構(gòu),采用可兼容、可擴(kuò)展的分層設(shè)計(jì)。如圖1 所示,設(shè)計(jì)為設(shè)備網(wǎng)絡(luò)、邊緣數(shù)據(jù)中心和云中心3 層,包括異構(gòu)設(shè)備數(shù)據(jù)采集、時(shí)序數(shù)據(jù)存儲(chǔ)與預(yù)處理、邊云數(shù)據(jù)協(xié)同3 個(gè)功能,負(fù)責(zé)將底層設(shè)備的原始協(xié)議數(shù)據(jù)采集并轉(zhuǎn)換為OPC UA 格式協(xié)議數(shù)據(jù),傳輸至?xí)r序數(shù)據(jù)庫(kù)高效存儲(chǔ)和實(shí)時(shí)處理,然后制定數(shù)據(jù)同步策略,將預(yù)處理后的數(shù)據(jù)協(xié)同到云端。接下來(lái)對(duì)以上功能進(jìn)行實(shí)現(xiàn)。
圖1 邊云協(xié)同數(shù)據(jù)采集架構(gòu)圖
本文基于OPC UA 技術(shù),通過(guò)設(shè)計(jì)協(xié)議轉(zhuǎn)換中間件,采集、解析和封裝原始設(shè)備數(shù)據(jù)協(xié)議,并映射到OPC UA 服務(wù)器地址空間對(duì)應(yīng)節(jié)點(diǎn),實(shí)現(xiàn)使用標(biāo)準(zhǔn)OPC UA 協(xié)議信息在車間網(wǎng)絡(luò)進(jìn)行通信,以完成統(tǒng)一采集各類智造單元設(shè)備數(shù)據(jù)。
1.1.1 OPC UA 服務(wù)器搭建
設(shè)計(jì)良好的數(shù)據(jù)模型是搭建OPC UA 服務(wù)器的基礎(chǔ),也是將生產(chǎn)現(xiàn)場(chǎng)數(shù)據(jù)統(tǒng)一進(jìn)行管理的關(guān)鍵[13]。根據(jù)數(shù)據(jù)采集需求,本文對(duì)智造單元設(shè)備的機(jī)械運(yùn)動(dòng)數(shù)據(jù)、伺服參數(shù)、傳感器數(shù)據(jù)等,使用可視化信息建模工具UaModeler,根據(jù)設(shè)備實(shí)際情況描述設(shè)備對(duì)象和抽象建模,分別對(duì)設(shè)備創(chuàng)建各自的對(duì)象節(jié)點(diǎn)類型。建模后的智造單元某數(shù)控設(shè)備信息模型部分變量節(jié)點(diǎn)見(jiàn)表1。
表1 設(shè)備部分信息模型節(jié)點(diǎn)表
最后通過(guò)UaModeler 工具,將建模好的設(shè)備信息,導(dǎo)出為XML 格式的模型定義節(jié)點(diǎn)集文件保存待用。
設(shè)備信息模型配置好后,本文選擇成熟的SDK 快速開(kāi)發(fā)OPC UA 服務(wù)器,open62541 是開(kāi)源的OPC UA 協(xié)議棧,使用C 語(yǔ)言開(kāi)發(fā),在實(shí)時(shí)性、嵌入式開(kāi)發(fā)方面更具優(yōu)勢(shì)[14]。使用open62541 的開(kāi)發(fā)工具節(jié)點(diǎn)集編譯器加載XML 格式的設(shè)備信息模型,將節(jié)點(diǎn)信息轉(zhuǎn)換為OPC UA 服務(wù)器可識(shí)別的類文件代碼,并提供.c 和.h 庫(kù)文件形式的調(diào)用接口,通過(guò)調(diào)用該接口方法,OPC UA 服務(wù)器將信息模型節(jié)點(diǎn)集實(shí)例化為OPC UA 節(jié)點(diǎn),為服務(wù)器生成設(shè)備地址空間。
圖2 所示為服務(wù)器的運(yùn)行邏輯,首先通過(guò)UA_Server_new()方法創(chuàng)建OPC UA 服務(wù)器對(duì)象,在UA_Server_setConfig(server)方法中為OPC UA 服務(wù)器配置安全證書(shū)、名稱、端口號(hào)等參數(shù),再啟動(dòng)服務(wù)器監(jiān)聽(tīng)程序,方法是UA_Server_run(server,&running),開(kāi)啟服務(wù)器對(duì)象實(shí)例,OPC UA 服務(wù)器啟動(dòng)并運(yùn)行后,OPC UA 客戶端連接服務(wù)器即可開(kāi)始通信。
圖2 OPCUA 服務(wù)器搭建流程圖
底層設(shè)備使用OPC UA 通信,可以最大程度保證數(shù)據(jù)的可靠性。OPC UA 定義了一套統(tǒng)一的數(shù)據(jù)模型并使用強(qiáng)類型定義,用于描述和表示設(shè)備數(shù)據(jù)。統(tǒng)一的數(shù)據(jù)模型和明確定義的數(shù)據(jù)類型,確保了數(shù)據(jù)的格式和語(yǔ)義在不同系統(tǒng)和設(shè)備之間的一致性和完整性。同時(shí),OPC UA 使用基于規(guī)范的TCP/IP 通信協(xié)議,避免了數(shù)據(jù)丟失、重復(fù)或損壞的情況,確保了數(shù)據(jù)在傳輸過(guò)程中的正確性和可靠性。
1.1.2 底層設(shè)備協(xié)議轉(zhuǎn)換
本節(jié)設(shè)計(jì)一種具備擴(kuò)展性和通用性的協(xié)議轉(zhuǎn)換中間件實(shí)現(xiàn)協(xié)議轉(zhuǎn)換功能,完成連接底層設(shè)備采集原始數(shù)據(jù),再按對(duì)應(yīng)設(shè)備的通信協(xié)議格式解析封裝為OPC UA 格式的數(shù)據(jù)供OPC UA 服務(wù)器讀取。實(shí)現(xiàn)數(shù)控設(shè)備原始數(shù)據(jù)的兼容采集。
協(xié)議轉(zhuǎn)換中間件的設(shè)計(jì)包含通信配置模塊、協(xié)議庫(kù)模塊、數(shù)據(jù)請(qǐng)求模塊和解析封裝模塊。通信配置模塊為各設(shè)備的通信提供初始化配置參數(shù),包括連接設(shè)備所需的接口參數(shù)和數(shù)據(jù)項(xiàng)請(qǐng)求參數(shù)。如針對(duì)Modbus RTU 協(xié)議進(jìn)行通信,數(shù)據(jù)請(qǐng)求配置需要知道一次讀取請(qǐng)求的字節(jié)數(shù)、數(shù)據(jù)的起始寄存器地址等關(guān)鍵參數(shù)。協(xié)議庫(kù)模塊集成多種協(xié)議的通用操作函數(shù)和各設(shè)備廠家提供的專用設(shè)備通信函數(shù),并提供統(tǒng)一調(diào)用接口。數(shù)據(jù)請(qǐng)求模塊調(diào)用協(xié)議庫(kù)中對(duì)應(yīng)設(shè)備通信函數(shù),加載通信配置中的參數(shù)信息,建立設(shè)備連接,并請(qǐng)求設(shè)備原始協(xié)議格式的字節(jié)碼數(shù)據(jù),實(shí)現(xiàn)對(duì)原始數(shù)據(jù)的采集。解析封裝模塊把每次數(shù)據(jù)請(qǐng)求返回的原始字節(jié)流數(shù)據(jù)分割為獨(dú)立的數(shù)據(jù)片段,如圖3 所示。
圖3 數(shù)據(jù)片段分割示意圖
最后將各個(gè)數(shù)據(jù)片段轉(zhuǎn)換為可理解的數(shù)據(jù)后,按語(yǔ)義取出此次傳輸需要對(duì)OPC UA 服務(wù)器進(jìn)行數(shù)據(jù)填充的設(shè)備數(shù)據(jù),封裝為OPC UA 數(shù)據(jù)格式由OPC UA 服務(wù)器進(jìn)行讀取。車間不同設(shè)備使用的通信協(xié)議和官方SDK 大都不同,故分別開(kāi)發(fā)對(duì)應(yīng)的協(xié)議轉(zhuǎn)換驅(qū)動(dòng)程序,通過(guò)接口的方式為OPC UA 服務(wù)器提供規(guī)范的調(diào)用,使OPC UA 服務(wù)器能同步讀取設(shè)備最新的OPC UA 格式數(shù)據(jù)。
車間設(shè)備的運(yùn)行狀態(tài)數(shù)據(jù)大多是帶時(shí)間戳,并按順序產(chǎn)生的高頻時(shí)序數(shù)據(jù)[15]。傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)數(shù)據(jù)存儲(chǔ)和查詢低效,難以滿足車間實(shí)時(shí)性的要求,所以本文選型時(shí)序數(shù)據(jù)庫(kù)存儲(chǔ)時(shí)序數(shù)據(jù)。TDengine開(kāi)源時(shí)序數(shù)據(jù)庫(kù)具有低成本、部署快和讀寫(xiě)性能遠(yuǎn)高于其他時(shí)序數(shù)據(jù)庫(kù)的特點(diǎn),所以本文在離車間現(xiàn)場(chǎng)較近的邊緣數(shù)據(jù)中心服務(wù)器部署TDengine 時(shí)序數(shù)據(jù)庫(kù)集群,通過(guò)TDengine 數(shù)據(jù)庫(kù)的接口與TDengine 建立連接,發(fā)送數(shù)據(jù)寫(xiě)入請(qǐng)求,完成OPC UA 格式設(shè)備信息數(shù)據(jù)到TDengine 設(shè)備數(shù)據(jù)表的持久性存入。
時(shí)序數(shù)據(jù)是按時(shí)間順序密集分布并存儲(chǔ)的。在邊緣層對(duì)數(shù)據(jù)進(jìn)行清洗、預(yù)處理,讓絕大部分?jǐn)?shù)據(jù)靠近數(shù)據(jù)源高效處理,可以保障車間任務(wù)執(zhí)行的實(shí)時(shí)性。相比于批處理,本文選擇更高效、實(shí)時(shí)的流式計(jì)算作為數(shù)據(jù)預(yù)處理方式。TDengine 提供流式計(jì)算功能,用戶可以通過(guò)設(shè)置聚合函數(shù)、表名、滑動(dòng)窗口等參數(shù)定義1 個(gè)流處理事件,持續(xù)對(duì)流入窗口的數(shù)據(jù)進(jìn)行預(yù)處理。以需要預(yù)處理的數(shù)據(jù)表作為流計(jì)算的源表,數(shù)據(jù)會(huì)被以定義的方式自動(dòng)處理,并根據(jù)定義的觸發(fā)模式將計(jì)算結(jié)果推送到目的表保存。
邊云數(shù)據(jù)協(xié)同是指在邊緣計(jì)算和云計(jì)算結(jié)合的環(huán)境中,實(shí)現(xiàn)數(shù)據(jù)的協(xié)同和共享。通過(guò)將云端計(jì)算和存儲(chǔ)能力推進(jìn)至邊緣數(shù)據(jù)源頭,以提高數(shù)據(jù)處理和響應(yīng)的效率。首先,在邊緣端統(tǒng)一采集設(shè)備數(shù)據(jù)并在本地存儲(chǔ)后,經(jīng)過(guò)分析,邊緣數(shù)據(jù)庫(kù)中的數(shù)據(jù)包含3 個(gè)階段:①M(fèi)-data,結(jié)構(gòu)化數(shù)據(jù)類型的數(shù)據(jù)源元數(shù)據(jù);②C-data,對(duì)海量的M-data 數(shù)據(jù)進(jìn)行清洗和預(yù)處理后的精煉數(shù)據(jù);③K-data,將邊緣存儲(chǔ)的預(yù)處理數(shù)據(jù)匯聚進(jìn)行融合和分析的云端數(shù)據(jù)。因此,僅將必要的經(jīng)過(guò)預(yù)處理后的C-data 類型數(shù)據(jù),通過(guò)以太網(wǎng)協(xié)同到云端,云端匯集C-data 整理為Kdata 數(shù)據(jù)進(jìn)行深入分析,邊云共享數(shù)據(jù)存儲(chǔ)資源,減少了數(shù)據(jù)傳輸?shù)难舆t和帶寬消耗。本文選擇以從TDengine 數(shù)據(jù)庫(kù)導(dǎo)出CSV 格式數(shù)據(jù)文件的方式,與云端通過(guò)HTTP 傳輸同步數(shù)據(jù),云端TDengine 數(shù)據(jù)庫(kù)將表導(dǎo)入進(jìn)行持久化存儲(chǔ),邊云在數(shù)據(jù)層面進(jìn)行協(xié)同,減輕數(shù)據(jù)上傳至云端的帶寬壓力,數(shù)據(jù)同步過(guò)程如圖4 所示。
圖4 邊云數(shù)據(jù)協(xié)同示意圖
電機(jī)振動(dòng)故障預(yù)測(cè)性維護(hù)對(duì)腕臂預(yù)配生產(chǎn)線設(shè)備健康十分重要,然而云端網(wǎng)絡(luò)通信面臨巨大的流量壓力,電機(jī)端采集的振動(dòng)信號(hào)很難實(shí)時(shí)上傳至云端進(jìn)行故障診斷應(yīng)用,且傳統(tǒng)故障診斷方法通過(guò)單時(shí)頻分析的方式,人工提取時(shí)頻圖中的顯著特征進(jìn)行故障診斷的做法費(fèi)時(shí)費(fèi)力,不利于在邊緣端實(shí)時(shí)自動(dòng)化推理[16]。本文基于預(yù)處理后同步至云端的振動(dòng)數(shù)據(jù),設(shè)計(jì)一款邊云智能協(xié)同的端到端電機(jī)振動(dòng)故障識(shí)別算法。利用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)[17]能從大規(guī)模數(shù)據(jù)中自動(dòng)學(xué)習(xí)特征的特點(diǎn),結(jié)合CNN 與二維時(shí)頻圖,實(shí)現(xiàn)在邊緣資源受限設(shè)備智能實(shí)時(shí)診斷電機(jī)故障的神經(jīng)網(wǎng)絡(luò)。
從智造單元設(shè)備的伺服電機(jī)采集到的原始電機(jī)振動(dòng)信號(hào)數(shù)據(jù)需要經(jīng)過(guò)樣本集切割和時(shí)頻圖轉(zhuǎn)換處理才能作為卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練輸入。本文的電機(jī)振動(dòng)數(shù)據(jù)集是由1 臺(tái)數(shù)控機(jī)床電機(jī)模擬正常工作狀態(tài)、電機(jī)轉(zhuǎn)子受阻故障以及電機(jī)基座松動(dòng)故障3 種電機(jī)運(yùn)行狀態(tài)的實(shí)驗(yàn)采集到的。在負(fù)載1 HP、轉(zhuǎn)速600 r/min 的工況下,采樣頻率設(shè)為100 Hz,每次采集不少于720 000 個(gè)采樣點(diǎn),選擇512 個(gè)采樣點(diǎn)作為數(shù)據(jù)樣本長(zhǎng)度,使用步長(zhǎng)500 的重疊采樣法對(duì)振動(dòng)信號(hào)數(shù)據(jù)集進(jìn)行切割,以增強(qiáng)訓(xùn)練數(shù)據(jù)數(shù)量,最后得到正常狀態(tài)和兩種故障狀態(tài)下的樣本各1 200 個(gè)。
接著采用cmor3-3 小波基函數(shù)對(duì)電機(jī)樣本數(shù)據(jù)集中的信號(hào)進(jìn)行連續(xù)小波變換,通過(guò)不同尺度變換將一維時(shí)序信號(hào)轉(zhuǎn)化為二維時(shí)頻信號(hào)。以3 種類型信號(hào)時(shí)頻圖為例,圖5 和圖6 所示為一組相互對(duì)應(yīng)的電機(jī)振動(dòng)數(shù)據(jù)的時(shí)域圖和轉(zhuǎn)換后的時(shí)頻圖。
圖5 3 種信號(hào)的時(shí)域波形圖
圖6 3 種信號(hào)的時(shí)頻變換結(jié)果圖
最終,得到電機(jī)不同狀態(tài)的特征圖樣本各1 200 個(gè),選取其中的720 個(gè)作為訓(xùn)練樣本,剩余的480 個(gè)作為測(cè)試樣本。不同故障樣本數(shù)量及標(biāo)簽配置見(jiàn)表2。
表2 不同故障樣本的數(shù)量及標(biāo)簽配置表
時(shí)頻變換讓故障信號(hào)轉(zhuǎn)換為具有不同紋理及細(xì)節(jié)特征的時(shí)頻圖,而相較于其他淺層神經(jīng)網(wǎng)絡(luò),CNN 具有充分學(xué)習(xí)和表達(dá)小波時(shí)頻圖復(fù)雜特征的能力,同時(shí)具備更快的運(yùn)算速度,并避免了訓(xùn)練陷入局部極值等問(wèn)題。故本文選擇CNN 自動(dòng)提取時(shí)頻圖像中的輪廓及差異信息,從而實(shí)現(xiàn)不同故障類型的準(zhǔn)確識(shí)別。時(shí)頻圖轉(zhuǎn)換方法主要采用了連續(xù)小波變換(continuous wavelet transform,CWT)方法。在上一節(jié)中,采用連續(xù)小波變換成功將一維振動(dòng)信號(hào)轉(zhuǎn)換為到二維時(shí)頻特征圖后,將其作為深度神經(jīng)網(wǎng)絡(luò)的輸入,建立CNN 模型進(jìn)行測(cè)試,完成基于時(shí)頻圖結(jié)合卷積神經(jīng)網(wǎng)絡(luò)的故障診斷方法,實(shí)現(xiàn)對(duì)電機(jī)故障的準(zhǔn)確、智能診斷,故障診斷方法總體過(guò)程如圖7 所示。
圖7 時(shí)頻圖結(jié)合神經(jīng)網(wǎng)絡(luò)的故障診斷方法
主要流程包括:①對(duì)采集到的振動(dòng)信號(hào)數(shù)據(jù)集進(jìn)行故障分類,獲得不同故障類型的原始振動(dòng)信號(hào);②對(duì)原始時(shí)域信號(hào)進(jìn)行連續(xù)小波變換,以得到二維時(shí)頻圖,并調(diào)整時(shí)頻圖尺寸;③將生成的二維時(shí)頻圖按一定比例隨機(jī)分為訓(xùn)練集、測(cè)試集和驗(yàn)證集;④建立CNN 模型,并初始化網(wǎng)絡(luò)參數(shù);⑤利用訓(xùn)練集訓(xùn)練CNN,直到損失函數(shù)收斂;⑥利用測(cè)試集驗(yàn)證訓(xùn)練好的CNN 模型的性能;⑦得到CNN 模型的識(shí)別結(jié)果。
云端接收邊緣數(shù)據(jù)訓(xùn)練模型再下放邊緣端部署,以邊云智能協(xié)同推理的方式將模型部署應(yīng)用于邊緣生產(chǎn)線故障預(yù)測(cè)場(chǎng)景,減小帶寬波動(dòng)帶來(lái)的影響,協(xié)同過(guò)程如圖8 所示。
圖8 邊云智能協(xié)同示意圖
針對(duì)邊緣設(shè)備在資源不足的邊云智能協(xié)同應(yīng)用場(chǎng)景下,執(zhí)行大參數(shù)模型低效的問(wèn)題,本文采取模型壓縮策略,使用8 位模型量化方法,使其變得更加輕量化。TensorFlow 模型優(yōu)化工具包提供了模型量化的工具,本文使用該工具量化經(jīng)訓(xùn)練并已轉(zhuǎn)換為 TensorFlow Lite 模型的電機(jī)故障診斷模型。量化前的.h 模型文件大小為1 074 kB,量化后的.tflite 模型壓縮到了347 kB,減少了75 %的存儲(chǔ)空間。
最后,壓縮后的故障預(yù)測(cè)模型通過(guò)以太網(wǎng)傳輸?shù)竭吘墧?shù)據(jù)中心存儲(chǔ),在邊緣樹(shù)莓派服務(wù)器部署Tensorflow Lite 框架,以實(shí)現(xiàn)模型的遷移協(xié)同推理,并在其中運(yùn)行輕量化后的模型進(jìn)行故障預(yù)測(cè)。
本文依托于高鐵吊弦預(yù)配智造單元某條生產(chǎn)線,在設(shè)備運(yùn)行加工期間,連續(xù)采集10 天的設(shè)備狀態(tài)數(shù)據(jù)進(jìn)行試驗(yàn)。各實(shí)驗(yàn)設(shè)備使用C 語(yǔ)言和Python語(yǔ)言的協(xié)議轉(zhuǎn)換驅(qū)動(dòng)程序、故障定時(shí)診斷程序已安裝在樹(shù)莓派armhf 系統(tǒng),OPC UA 服務(wù)器監(jiān)聽(tīng)進(jìn)程也已配置啟動(dòng),且設(shè)備都已處于同一個(gè)局域網(wǎng)中。使用開(kāi)源OPC UA 客戶端輸入服務(wù)器的URL 地址連接到OPC UA 服務(wù)器。本實(shí)驗(yàn)中,測(cè)試服務(wù)器URL 訪問(wèn)地址配置為opc.tcp://10.0.0.6:4 840。
3.1.1 數(shù)據(jù)采集準(zhǔn)確性測(cè)試
以使用OPC UA 客戶端瀏覽生產(chǎn)線某臺(tái)西門(mén)子數(shù)控設(shè)備信息為例,為其設(shè)置的命名空間為2,進(jìn)入該設(shè)備地址空間監(jiān)控實(shí)時(shí)更新的節(jié)點(diǎn)變量數(shù)據(jù)。如圖9 所示,可以看到數(shù)控系統(tǒng)的編程坐標(biāo)、切削和主軸倍率等設(shè)備節(jié)點(diǎn)值,將本文方法讀取到的編程坐標(biāo)值,與西門(mén)子數(shù)控系統(tǒng)面板上的數(shù)值在同一時(shí)刻進(jìn)行比較,二者得到的數(shù)據(jù)一致且完整。此外,本實(shí)驗(yàn)還測(cè)試了數(shù)控設(shè)備緊急停機(jī)時(shí),對(duì)應(yīng)OPC UA 節(jié)點(diǎn)值的變化,結(jié)果表明,從客戶端讀取的數(shù)據(jù)項(xiàng)的值,與急停時(shí)數(shù)控系統(tǒng)面板觀察到的數(shù)據(jù)值一致。
圖9 OPCUA 客戶端節(jié)點(diǎn)通信圖
3.1.2 數(shù)據(jù)采集時(shí)延測(cè)試
由于OPC UA 協(xié)議格式數(shù)據(jù)帶時(shí)間戳,可以借此測(cè)試數(shù)據(jù)從請(qǐng)求開(kāi)始,再到傳輸至?xí)r序數(shù)據(jù)庫(kù)存儲(chǔ)所消耗的數(shù)據(jù)采集總時(shí)延。本實(shí)驗(yàn)針對(duì)生產(chǎn)線上包含不同協(xié)議的3 臺(tái)智能數(shù)控裝備分別采集X軸編程坐標(biāo)數(shù)據(jù)項(xiàng),得到3 臺(tái)設(shè)備采集該數(shù)據(jù)項(xiàng)的平均時(shí)延。如表3 所示,與傳統(tǒng)數(shù)據(jù)采集方式對(duì)比,本文所用的數(shù)據(jù)采集方法時(shí)延更低,平均在1.31 ms左右,比傳統(tǒng)方法快了約2.5 ms。
表3 邊云協(xié)同設(shè)備數(shù)據(jù)采集時(shí)延測(cè)試表
采用YDAT501 型壓電加速度傳感器垂直于數(shù)控機(jī)床電機(jī)驅(qū)動(dòng)端上側(cè)磁吸安裝。分別采用拆卸基座螺絲、轉(zhuǎn)子人為增阻的方式引入損傷。在云平臺(tái)上,本文使用了Windows 10 的64 位操作系統(tǒng)、i5-11300H@ 3.10 GHz 的CPU 以及Pycharm 作為模型訓(xùn)練環(huán)境。在訓(xùn)練神經(jīng)網(wǎng)絡(luò)過(guò)程中,得到了誤差收斂曲線和準(zhǔn)確率曲線,如圖10 所示。
圖10 accuracy 準(zhǔn)確率與Loss 損失值圖
將訓(xùn)練好的模型經(jīng)壓縮后傳輸?shù)竭吘壎耍渴鹪谶吘墭?shù)莓派ARM 處理器上,定義一個(gè)定時(shí)任務(wù),每隔一段時(shí)間執(zhí)行故障分析程序,從時(shí)序數(shù)據(jù)庫(kù)中讀取電機(jī)振動(dòng)信號(hào)數(shù)據(jù),通過(guò)set_tensor()函數(shù)輸入,調(diào)用invoke()運(yùn)行模型得到故障分類,輸出診斷結(jié)果。診斷結(jié)果顯示,CNN 表現(xiàn)出了較強(qiáng)的泛化能力和聚類能力,成功將具有較大時(shí)頻圖差異的同類故障樣本識(shí)別為一類。同時(shí),CNN 也展現(xiàn)了較強(qiáng)的特征提取和識(shí)別能力,成功地區(qū)分了具有相似時(shí)頻圖的異類故障樣本。測(cè)試結(jié)果見(jiàn)表4 所示,與傳統(tǒng)集中式云中心故障分析方法相比,本文應(yīng)用在邊云智能協(xié)同場(chǎng)景,基于小波時(shí)頻圖的CNN 的電機(jī)振動(dòng)故障方法在準(zhǔn)確率不受影響的情況下,故障分析響應(yīng)時(shí)間明顯變得更短。
表4 邊云協(xié)同振動(dòng)故障分析應(yīng)用性能測(cè)試表
本文對(duì)高鐵吊弦預(yù)配智造單元傳統(tǒng)數(shù)據(jù)采集技術(shù)的研究進(jìn)行了創(chuàng)新,提出基于邊云數(shù)據(jù)協(xié)同的異構(gòu)數(shù)控設(shè)備數(shù)據(jù)統(tǒng)一采集和預(yù)處理方法,兼容異構(gòu)設(shè)備協(xié)議實(shí)現(xiàn)到OPC UA 標(biāo)準(zhǔn)數(shù)據(jù)協(xié)議的轉(zhuǎn)換,以時(shí)序存儲(chǔ)服務(wù)器為核心,高效存入OPC UA 時(shí)序數(shù)據(jù)實(shí)時(shí)進(jìn)行預(yù)處理。隨后改進(jìn)傳統(tǒng)人工故障檢測(cè)方法,提出結(jié)合卷積神經(jīng)網(wǎng)絡(luò)與小波變換時(shí)頻圖的電機(jī)振動(dòng)故障診斷方法,訓(xùn)練并輕量化壓縮模型,便于下放到邊緣端進(jìn)行部署,邊云協(xié)同完成邊緣電機(jī)故障的實(shí)時(shí)智能推理。最后將所提方法在現(xiàn)實(shí)智造單元生產(chǎn)線中驗(yàn)證,實(shí)驗(yàn)結(jié)果表示,本文提出的基于邊云協(xié)同框架下的設(shè)備數(shù)據(jù)統(tǒng)一采集架構(gòu)與故障分析應(yīng)用,以較低成本,提升了數(shù)據(jù)采集和傳輸效率,不僅減少該智造單元中數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)帶寬占用,也滿足了設(shè)備故障分析響應(yīng)的實(shí)時(shí)需求,具有通用性和高效性。