葉宗真,余凱偉,張佳卿,吳 軍,周錦龍
(1.華中科技大學 船舶與海洋工程學院, 武漢 430074; 2.上海計算機軟件技術開發中心, 上海 201112)
目前應用于船舶海洋、航天航空、風力發電等領域的機械設備越來越復雜,自動化和智能化水平越來越高,其組成的齒輪、軸承等關鍵部件一旦損壞,輕則導致運行異常、整機停機,重則導致人員傷亡[1-4]。因此,迫切需要開展機械設備健康監測。隨著物聯網技術飛速發展,其將信息感知、網絡通信和智能運算結合起來,能夠對設備狀態信息進行采集的同時,進行狀態數據處理并對結果做出反應,有利于開展設備狀態監測[5]。目前,傳統的基于云計算的設備健康監測系統中,邊緣終端本身通常沒有計算能力,需要將采集的數據發給云端,依托云端的計算資源進行計算,得到診斷結果,再通過網絡下發給終端[6]。在該模式下,如果網絡一旦出現中斷,邊緣終端與云端的交互將無法進行,影響到監測系統的正常運行。為了解決此問題,邊緣計算被提出,即把部分的存儲和計算資源從云端下沉到邊緣端,終端獨立地進行數據存儲、分析和應用[7],進而大大的減少時間延遲與通信成本。然而,考慮到成本等因素,部署在邊緣側的智能終端的CPU、內存等硬件資源和算力通常很有限。隨著工業上高頻產生且與時間密切相聯系的工業數據大量涌入,常用的關系型數據庫及非關系型數據庫在資源開銷、時間延遲、運維成本方面逐漸暴露出不足[8],對于邊緣側來說,能否在有限的資源下,實現最高效的數據存儲、分析就顯得尤為重要。
機械設備運行過程中產生的數據有很明顯的特點,通常都是具有時間戳、結構化的時序數據。因此,邊緣側數據存儲的最佳選擇即采用時序數據庫。但如InfluxDB、Cassandra、OpenTSDB等時序數據存儲引擎對于邊緣側來說過于繁重,運行時的硬件資源開銷過高[9]。TDengine是由濤思數據公司自研的一款新型時序大數據處理引擎,其核心功能是一個高性能的時序數據庫。此外,還包含了數據緩存、訂閱、流計算及消息隊列等功能,為時序結構化數據存儲及分析處理提供了個一站式的解決方案,大幅降低開發成本。更重要的是,其整個安裝包只有2M多,極其輕量化。在時序空間大數據處理上,TDengine采用列式存儲及無鎖的設計理念,大大地提高了數據壓縮、存儲和查詢的效率,比現有數據庫提升了十倍的讀寫性能。此外,TDengine還具備先進的集群能力,可以不依賴硬件使數據庫實現水平擴展。
出于其高效、快速的各項優點,許多高校與企業都開展了對TDengine的研究與應用。浙江大學的葉建輝[10]設計了一種基于工業物聯網的水泵產品遠程檢測系統,使用TDengine對水泵參數信息進行實時存讀。國網電力科學研究院的董雪等[11]研究了基于TDengine的智能電網監控系統數據存儲方法,介紹了TDengine在設備建模的設計細節和實現方法并加以驗證實現。中國地震臺網中心使用TDengine數據庫存儲地震時產生的波形數據,驗證了其具備高壓縮率、存儲量大、查詢迅捷的性能。大疆智能車載平臺采用TDengine對車輛傳感器產生的數據進行存儲分析,并且TDengine較好地在響應時間、插入性能、運維成本及服務器負載上滿足了業務需求。
為此,本文中基于TDengine時序大數據處理引擎,采用微服務架構,設計與開發一套機械設備邊云協同健康監測系統,用于監視設備的運行情況,進而可以高效地管理監控資源。該系統采用邊緣智能終端、云計算中心和 Web 客戶端的模式,將傳感設備集成到計算機系統中,允許在現有網絡基礎架構中遠程感知和控制監測對象,克服傳統監控軟件移植性差、無法隨時監控等缺點,工作人員只需在瀏覽器就可以對設備的運行狀況進行監測。
1) 數據采集
數據采集功能是設備健康監測系統進行數據應用、分析和決策的基礎[12]。在大數據技術被廣泛應用的背景下,為了通過各種智能算法進行設備的健康監測,要求系統能夠將采集的數據轉化為統一的格式并在本地進行存儲,進而為設備的健康監測提供及時、詳盡的數據支撐。
2) 邊緣計算
對于設備的長期監測,云平臺和設備之間的網絡通常是不穩定的,邊緣設備可能長時間處于離線狀態[13]。為實現對設備的健康監測以及后續的故障診斷,所設計的系統需要對實時采集的數據在邊緣側進行系列處理,包括去奇異值以排除環境噪聲因素,同時提取信號中的時域、頻域及時頻域特征,根據設備故障特性完成相應數據分析。
3) 邊云協同
目前的應用和算法都是基于現有的技術和實際問題開發而成的,不可避免的會存在一些不足。隨著設備運轉時間的增加,設備會出現老化的現象,表現出來的故障特性也不一樣,從而導致之前所部署的算法診斷效果不佳。因此,系統設計時應當考慮到后期的維護與更新需求,能夠進行遠程管控、遠程升級,具有良好的可擴展性,進而為故障監測、預測與維護做好保障。
如圖1所示,基于TDengine的機械設備邊云協同健康監測系統總體架構從下至上依次分為設備層、傳輸層及云平臺層3層。

圖1 設備邊云協同健康監測系統總體架構
1) 設備層
設備層主要是指監測對象以及安裝在設備上的傳感器等現場設備。負責對設備運轉過程中產生的各種數據進行采集,為后續數據傳輸及存儲做好第一步技術儲備。
2) 傳輸層
傳輸層即為邊緣智能終端,其主要作用是進行數據傳輸、協議轉化、數據存儲以及接收云端下發的模型。在靠近設備的地方運行一些數據采集、協議轉化以及數據處理的應用,并在設備發生異常時將告警信息傳輸至云平臺。
3) 云平臺層
云平臺層即云計算中心,擁有大量的計算及存儲資源。負責運行數據備份、算法模型訓練、模型下發、應用更新以及數據可視化等不需要快速響應的應用程序。用戶通過瀏覽器登錄設備健康監測系統,不受時間空間限制,即可實現對設備的狀態監測與故障診斷。
機械設備邊云協同健康監測系統的功能模塊如圖2所示,主要包括用戶管理、設備管理、數據管理、數據處理、模型管理和模型應用等模塊。

圖2 設備邊云協同健康監測系統功能模塊
1) 用戶管理模塊:包括用戶注冊、登陸以及密碼找回3個操作。用戶可以通過點擊注冊按鈕,設置用戶名和密碼來實現用戶注冊。用戶登陸是通過輸入用戶名和密碼進入系統界面。當用戶忘記登陸密碼時,可通過密碼找回操作,重新設定密碼。
2) 設備管理模塊:包括設備認證、設備刪除以及設備控制3個操作。其中設備認證是通過邊緣智能終端向云平臺發送經加密過的用戶名和密碼,云端解密之后,判斷用戶名與密碼是否符合預設好的認證規則來實現設備接入[14]。設備成功接入之后,用戶可以從云端向邊緣設備發送指令,實現遠程管控。設備刪除是通過點擊刪除將設備移出系統。
3) 數據管理模塊:包括數據收集、數據查看以及數據導出3個操作。其中數據收集是將所采集的原始數據以及健康狀態信息保存至系統數據庫。數據導出操作是從系統導出數據至本地計算機以供后續進一步分析,支持導出的數據格式為csv和excel兩種文件格式。
4) 數據處理模塊:包括數據預處理、數據切分、特征提取3個操作。數據預處理操作可對采集的數據集進行異常值剔除、降噪、平滑等處理。數據切分是對數據集進行取樣。特征提取操作是對數據樣本進行時域、頻域、時頻域特征的提取。
5) 模型管理模塊:包括模型上傳、下發和更新操作。模型上傳是將機器學習、深度學習模型的文件上傳至云端數據庫。模型下發是將模型文件下發至邊緣智能終端。模型更新是在云端對部署在智能終端上的模型進行遠程更新。
6) 模型應用模塊:包括故障診斷和查看結果2個操作。故障診斷操作可以利用訓練好的故障診斷模型對設備層產生的實時監測數據進行在線診斷。查看結果操作可以顯示實時監測數據及在線故障診斷結果。
邊緣智能終端采用樹莓派4B(Raspberry Pi 4 Model B)開發板作為基礎硬件平臺。該型號的開發板搭載了1.5 GHz的ARM處理器、藍牙5.0模塊以及無線網絡模塊等,同時擁有1個MicroSD卡槽位、1個Type-C電源接口、4個USB 接口、1個千兆級網口,運行內存為8 GB。除此之外,樹莓派還需要操作系統的支持才能進行基本的使用與開發,本文中選用的操作系統為Ubuntu mate 20.04 for Raspberry-Pi。為了實現資源的管理,在智能終端軟件部署時采用Docker容器虛擬化技術,讓邊緣智能終端的資源得到更充分、合理的應用[15]。基于Docker容器虛擬化技術搭建的邊緣智能終端的架構圖如圖3所示,能夠為設備健康監測系統提供容器化的邊緣計算平臺,進行容器化應用的部署,進而利用邊緣計算的相關技術對設備進行智能化監測。

圖3 基于Docker容器技術的邊緣智能終端架構
云端平臺采用B/S架構來進行開發,Web平臺的整體架構如圖4所示。技術上使用主流的Vue.js+Springboot框架來實現Web應用的前后端分離,使得項目前后端分工明確,降低系統耦合,方便后續進行系統維護和升級。數據源上使用Mybatis持久層框架來整合TDengine與MySQL雙數據源。其中,TDengine作為主數據源用來存儲邊緣智能終端上傳的設備監測數據及健康狀態信息,其他數據信息比如用戶、設備等信息等采用關系數據庫MySQL作為從數據源來進行存儲。

圖4 云端Web平臺整體架構
通常來說,云端擁有更多的計算資源,而邊緣端擁有更低的時間延遲。由于機器學習、深度學習在模型訓練過程中需要大量的計算和存儲資源,不適合在邊緣端進行模型訓練。因此,本系統采用“云上訓練,邊緣推理”的邊云協同策略,充分發揮云端與邊緣端各自的優勢。
圖5為云邊協同過程中的數據流轉過程。通過布置在設備待檢測處的傳感器采集設備運行數據,數據首先通過Modbus協議傳輸至網關處進行從Modbus編碼格式至MQTT編碼格式的協議轉換。之后,到達邊緣MQTT消息服務器EMQX,數據傳輸至EMQX之后分為兩路:一路通過EMQX的規則引擎功能發送至TDengine實現原始數據的存儲,TDengine會根據所設置的數據保存天數定期清除舊的數據。另一路發送到邊緣計算單元經數據預處理之后進行故障診斷,得到診斷結果,并將結果上報至云平臺。此外,由于邊緣智能終端資源有限,所能存儲的數據量也有限,因此還是需要向云端上傳數據,做數據備份和協同。云端利用這些數據進行算法模型的迭代訓練與更新,訓練完成的模型再下發至邊緣智能終端進行模型的遠程升級,至此完成一個學習閉環。

圖5 云邊協同數據的流轉過程
本文中以船舶推進軸系為對象開展健康監測,所選取的采集對象為軸系的振動信號。如圖6所示,軸系試驗平臺由驅動電機、傳動軸、磁粉制動器、滑動軸承、推進軸承和聯軸器等組成。其中驅動電機用來提供軸系驅動力,磁粉制動器用來模擬軸系運行過程中的阻力。驅動電機型號為YS7124的異步電動機,額定功率為0.37 kW,額定轉速為1 400 r/min。磁粉制動器型號為FZ50J,額定轉矩為50 N·m。

圖6 船舶推進軸系實驗臺簡圖
試驗平臺上一共設置了3個狀態數據監測點,分別在軸系左側、中間及右側軸承處,所采集的方位點分別是左側X、Y、Z三相以及中間與右側的Z相。試驗過程中,振動傳感器的采樣頻率為1 500 Hz,軸系試驗臺的轉速為300 r/min,每次試驗的運行時長為2 min。運行狀態包括正常、軸系不對中和軸系不平衡及支撐松動。
1) TDengine數據表創建
TDengine數據表的設計思想是針對每個產生數據的設備,都建立與之相對應的關系表,因此每張表只有一個數據寫入者,實現了無鎖設計。同時TDengine 要求表的首個字段為時間戳數據,并將其作為數據的唯一標識符建立索引,這樣表的數據為時序數據,數據寫入時就可以采用追加方法進行,提高寫入速度。該系統推進軸系實驗臺的表結構如表1所示。

表1 實驗臺數據表結構
2) EMQX資源創建
如圖7所示,進入EMQX規則引擎板塊,選擇資源,創建連接TDengine數據庫的一個Webhook資源,填寫TDengine的URL地址及連接池大小、請求超時時間、請求內容格式、請求頭等信息。配置完成之后,點擊測試連接,顯示連接可用后完成資源創建。

圖7 EMQX資源創建
3) EMQX規則創建
資源創建完畢后,進入規則板塊,進行規則的創建,如圖8(a)所示,首先使用規則SQL語句定義數據篩選方式,圖8中的SQL語句代表從“neuron/zhouxi/upload”MQTT主題中篩選出payload.values數據,即所采集的軸系振動信號的各個參數,數據格式為Json。接著,添加響應動作,如圖8(b)所示,選擇動作為“發送數據到Web服務”,關聯到之前所創建的EMQX資源,在消息內容模板中,使用${}語法來提取上文所設置的條件SQL語句所篩選出來的數據,與TDengine表數據寫入語句相結合,即為響應動作。

圖8 EMQX規則創建
最后,開啟實驗臺,使船舶推進軸系處于轉動狀態,在采集的同時用Grafana連接邊緣智能終端上的TDengine對軸系數據進行監控,依靠SQL語句分別將各通道收集的數據展示在圖表中,直觀展示軸承各處振動情況。圖9即為采集過程中振動信號的實時展示情況,由圖9可見,通過Grafana的圖表展示,能夠在故障發生時通過振動信號的明顯對比及時發現與排除,驗證了系統具備數據采集功能。

圖9 振動信號實時展示情況
在云平臺的Web客戶端中,首先根據歷史采集數據進行模型的迭代訓練,本文中采用深度殘差收縮網絡(deep residual shrinkage network,DRSN)進行模型訓練。深度殘差收縮網絡是由趙明航等[16]提出的一種新型深度學習算法,在機械傳動設備的故障診斷中具有良好的應用效果。DRSN通過在深度殘差網絡(ResNet)之上引入軟閾值函數和軟注意力機制,將軟閾值作為非線性變換層嵌入到深層結構中,突出重要特征同時可以抑制非重要特征的影響,在高噪聲、高冗余數據的場景下非常適用。
DRSN所引入的軟閾值函數為

(1)
式中:x為輸入特征;y為輸出特征;τ為閾值。軟閾值函數將接近于零值的特征置零,而并未在ReLU激活函數中將負值特征直接置零,這樣可以保留有用的負值特征,其導數為:

(2)
訓練完成后,用測試集對模型進行精確度測試,預測故障并計算準確率。模型的預測混淆矩陣如圖10所示,可見該模型的故障分類準確率可達99.54%,滿足實際應用需求。

圖10 模型預測混淆矩陣
接著,進入模型管理模塊,選擇所要下發的模型文件以及邊緣智能終端(見圖11),同時指定其版本號點擊確定即可實現下發。其中,版本號是后續進行遠程模型更新的依據。

圖11 云端模型下發界面
然后,開始采集船舶推進軸系振動信號,利用部署在邊緣智能終端的AI應用進行故障診斷。智能終端每次采集到一定的數據量之后就會調用RESTful API接口進行故障診斷,并定期的將診斷的結果通過TDengine數據告警功能TDengine-alert上報至云端平臺。如圖12所示,使用遠程連接工具XShell連接邊緣智能終端查看運行日志,可以直觀地看到軸系的實時故障診斷結果,驗證了該系統具有邊緣計算的能力。

圖12 邊緣智能終端實時診斷結果
進入云平臺的設備管理模塊,如圖13所示,選擇船舶推進軸系所對應的邊緣智能終端,在云端的Web界面通過下發MQTT指令即可對船舶推進軸系進行開關狀態的切換及運行擋位的控制。

圖13 設備管理模塊
點擊設備詳情,如圖14所示,在設備運行狀態面板與監測統計面板可以直觀地看到邊緣智能終端回傳的船舶推進軸系健康狀態信息、標簽信息以及振動信號,驗證了該系統具有邊云協同的能力。
1) 為提高機械設備時序監測數據的處理能力與效率,降低設備運維成本與難度,本文中基于物聯網通訊、嵌入式、云計算、邊緣計算以及 Web 應用開發等,設計并開發了一套基于TDengine的設備邊云協同健康監測系統,系統包括邊緣智能終端和云端APP應用。
2) 以船舶推進軸系為對象,驗證了該系統的主要功能。測試結果表明,該系統可對采集的軸系監測數據在邊緣側進行實時分析處理,及時有效地檢測軸系故障,并將軸系運行數據及健康狀態信息推送到云端APP應用,實現了對船舶推進軸系的健康監測與診斷。