terasoft

佈署預測性維護演算法於雲端或邊緣裝置

By Aditya Baru, MathWorks

對於生產製造或操作工業機械的企業來說,預測性維護項目是提升營運效率並且降低維護成本的關鍵。

然而,不論是開發預測性維護演算法,還是要佈署在可能是飛行器、MRI機台、風力渦輪、還是組裝產線等任何資產,都具有相當程度的挑戰性。演算法開發不僅需要廣泛使用機器學習技巧的經驗,還需要對於系統行為的深入了解。兼具這兩項技能的工程師難以求得。同時,佈署也牽涉到一系列複雜的步驟和相互連結。演算法必須實現於多個資產設備(assets)上,那些資產會和多個邊緣裝置相連結,邊緣裝置再連結到基於雲端、機房、或兩者並行的IT/OT系統。單一個演算法可能會分成幾個部分存在於架構中的不同元件,又再增添了複雜度(圖1)。

佈署預測性維護演算法於雲端或邊緣裝置
圖1. 預測性維護系統佈署的要件

本篇文章透過一個包裝機的範例,說明如何利用MATLAB來開發預測性維護演算法並將之佈署在一個生產系統中,協助掌控設計的複雜性。

包裝機的維護系統

這台包裝機包括好幾隻機器手臂(圖2左),這些手臂以高速來回移動,將物體搬運到組裝產線以進行包裝。這些手臂是透過以Microsoft® Azure®為基礎的IT/OT系統相互溝通的可程式化邏輯控制器(programmable logic controller,PLC)互相連結。該IT/OT系統是從連結到機器手臂的邊緣裝置來收集串流資料,並且依據這些資料的分析結果進行預測性維護,以偵測其中的異常與預測手臂可能故障的時間,再將預測結果回報給工程師和操作人員使用的控制儀表(dashboard)工具。

佈署預測性維護演算法於雲端或邊緣裝置
圖2. 包裝機的預測性維護系統。

預測性維護演算法

這個系統的預測性維護演算法有兩個要件。第一個實現在邊緣裝置並利用特徵擷取技巧來執行資料減量。第二個實現在雲端,使用這些特徵值與機器學習模型來預測故障何時會發生並估計機器的剩餘使用壽命(remaining useful life,RUL)。預測演算法產生的結果會接近即時地被串流到我們的控制儀表。

開發資料減量演算法

預測性維護演算法的第一個部分以由機器手臂產生的原始感測器資料來運作。我們追蹤驅動每一隻手臂的馬達的速度和電流。

使用在這類機器的感測器能夠以相當高的頻率來擷取樣本資料。要儲存像這樣大量的感測器資料可能很昂貴,且資料分析起來非常耗時,也因此難以從完整的資料量來辨識出值得注意的部分。我們可以透過特徵擷取來解決這個問題。

特徵擷取技巧接受原始感測器資料的串流,並且傳送回一個捕捉了關鍵動態,卻比較小的特徵資料集,大幅減低資料儲存與傳遞的需求。裝置在機器手臂的感測器以1 KHz的頻率捕捉資料 –也就是說,每秒會有1000筆樣本資料。如果把一秒之內收集到的資料轉換為五個特徵,可以使我們資料儲存與傳遞的需求減少了200倍。

我們使用MATLAB產品預測性維護工具箱(Predictive Maintenance Toolbox™)中的Diagnostic Feature Designer app,匯入感測器資料,且利用以訊號為基礎的動態建模技巧來擷取特徵,再將特徵依照其分辨由健康的機器產生的資料和由故障機器產生的資料的能力好壞來排序(圖3)。

佈署預測性維護演算法於雲端或邊緣裝置
圖3. Diagnostic Feature Designer app。

當希望擷取的特徵已被挑選出來時,我們便準備好在作為邊緣裝置的PLC上實現和測試資料減量演算法了。在真實的機器上測試演算法可能會造成機器的損害,因此我們將PLC連接到執行在Speedgoat即時電腦上的機器手臂Simscape™模型。這台即時的電腦可以藉由傳送和接收資料與我們的PLC溝通,就像是一台真正的機器一樣。我們從利用Simulink-C轉碼器(Simulink Coder™)產生資料減量演算法的C程式碼開始,並將程式碼佈署至PLC。接下來,我們將包裝機模型佈署至Speedgoat系統,且在不同的故障條件下執行模擬,以確保我們的演算法可在真實世界環境正確地運作(圖4)。

佈署預測性維護演算法於雲端或邊緣裝置
圖4. 佈署至PLC並使用Speedgoat硬體進行即時測試

開發預測演算法

現在我們有一個邊緣裝置,它可以從資料擷取出有意義的特徵以縮減傳送出去的資料量。我們可以使用一個執行於Azure雲端的開源串流處理平台-Apache™ Kafka,將這些經過減量的資料集串流至IT/OT系統。我們使用這些串流資料來估計包裝機馬達的RUL。

當馬達的狀態隨著時間退化,擷取的特徵值會以線性或指數型比率穩定地增加或減少(圖5)。依據這樣的趨勢,我們選擇了預測性維護工具箱(Predictive Maintenance Toolbox)的指數退化模型來預測機器未來的健康狀態。

佈署預測性維護演算法於雲端或邊緣裝置
圖5. 串流資料RUL圖表範例。

為了使演算法能夠相容於以雲端為基礎的系統,我們使用MATLAB編譯器增益集SDK(MATLAB Compiler SDK™)來建立一個執行檔,接下來,我們可以再利用MATLAB生產伺服器(MATLAB Production Server™)將這個執行檔整合到IT/OT系統(圖6)。

佈署預測性維護演算法於雲端或邊緣裝置
圖6. 雲端佈署概貌。

我們現在有了可以利用由連接於個別機器手臂的邊緣裝置取得的原始資料擷取的特徵來預測包裝機故障的機器學習演算法,也有一個可提供立即的預測結果、以網路為基礎的控制儀表(圖7)。

佈署預測性維護演算法於雲端或邊緣裝置
圖7. 最終的網路控制儀表。

實際應用案例:IMA Active

IMA Active設計並生產製藥產業的自動處理與包裝機台。這間公司希望開發一個可以監控打錠生產機(tablet press production machine)健康狀態的預測性維護系統。該機器上有相當關鍵的移動零件,使用在這些零件的潤滑劑量必須非常精確。潤滑劑量過少會導致壓力和故障,過多又溢漏到最終產品。

這個預測性維護系統使用從機器上既有的兩個感測器取得的資料,而且會自主學習,不需要外部的干預。

IMA Active的工程師使用預測性維護工具箱(Predictive Maintenance Toolbox)開發此系統的演算法。他們從擷取兩個感測器資料的特徵開始—總共有36組特徵。

佈署預測性維護演算法於雲端或邊緣裝置
佈署預測性維護演算法於雲端或邊緣裝置

“使用MATLAB工具,我們有辦法擷取並選出最適合用來建立分類模型的特徵。最有潛力的演算法使用了五組特徵,可以達到89%的準確度。”Alessandro Ferri, IMA Active