terasoft

如何利用數位分身(Digital Twin)進行預測性維護

By Steve Miller, MathWorks

工業設備損壞所導致的損失,除了替換設備的花費之外,最大費用還來自於強制停機所衍生的問題,一條生產線的停擺可能造成每分鐘幾千美元的損失。以固定週期執行例行性的維護雖然可預防意外停機,不過並不能保證完全不會發生設備損壞。

因此如果讓機器可以自動辨識其中某個零件即將故障,甚至告訴你哪一個零件需要更換的話,便能有效地減少意外停機的情形。計畫性的維護保養,並不是以固定的間隔時間進行維護,而是只在需要的時候才執行,因此預測性維護(predictive maintenance)的目標:即在於利用感測器資料來預測機台何時需要保養,以避免發生停機。

任何一種預測性維護演算法的開發核心關鍵—都在感測器資料上,因其可用來訓練故障偵測的分類演算法。在前處理(preprocessing)的階段,從感測器資料中擷取出有意義的特徵,並利用這些特徵訓練一個預測性維護的機器學習演算法,接著,這個演算法被匯出至Simulink®等模擬軟體來進行驗證,之後再經過轉碼,以程式碼佈署到機器的控制單元。

不過,要從實體設備取得現場特定故障條件的資料,不是隨時都可以做得的,允許現場瑕疵情況的發生,可能導致災難性的故障並且造成設備破壞。而刻意地在可控制的環境下產生故障也可能非常耗費時間、金錢,或者難以執行。

解決上述挑戰的一種方式是建立一個設備的數位分身(digital twin),並透過模擬來產生各種故障條件的感測器資料,這個方法讓工程師可以產生所有預測性維護工作流程中所需要的感測器資料,包含測試所有可能發生的故障條件組合和各種嚴重程度的故障。

本篇文章將討論如何利用MATLAB®、Simulink、和Simscape™來設計一個三缸泵(triplex pump)的預測性維護演算法(圖1)。首先,我們利用Simscape為實際泵浦建立一個數位分身,並調校出完全符合的度量資料;然後再利用MATLAB的機器學習來建立預測性維護的演算法,該演算法只需要出口泵壓(outlet pump pressure)就可以辨認是否有某一個零件,或一整組零件即將發生故障。

如何利用數位分身(Digital Twin)進行預測性維護
圖1. 預測性維護工作流程

建立數位分身

三缸泵內含三個由曲柄軸(crankshaft)驅動的活塞(plungers)(圖2)。這些活塞經過特殊的配置,使得有一個氣室(chamber)會一直處於排放的狀態,讓流動更為順暢,並減少壓力變化,因此較單一活塞泵更能降低物質形變。常見的故障情況包含泵浦曲柄軸軸承磨損、活塞的密封處出現洩漏、以及入口阻塞等等情形。

如何利用數位分身(Digital Twin)進行預測性維護
圖2. 三缸泵圖示以及體積流量(volumetric flow rate)圖表。

泵浦CAD模型通常可以從製造商之處取得, Simulink能匯入CAD模型,匯入之後,在其中我們可建立一個泵浦機構模型並進行3D多體機構模擬,為了建立系統的動態行為模型,泵浦需要與液壓和電氣元件補償。

建立數位分身時需要用到一些參數。像是口徑(bore)、衝程(stroke)、軸徑(shaft diameter)等等參數,這些可以從製造商的產品資料表找到,但其他資料可能已遺失或僅在某些特定範圍可得。在這個範例,我們需要會讓輸送流體至出口的三個止回閥(check valves)開啟或關閉的偏高與偏低的壓力值,因為精確的壓力值的收集取決於所輸送流體的溫度,我們手上還沒有這樣的壓力值資料。

圖3中的圖表顯示以粗略的估計值來模擬泵浦的結果(藍色線條)與現場資料(紅色線條)並不完全相符。藍色線條在某些範圍程度與實際量測的曲線相似,但在相異的部分有著很明顯的差距。

如何利用數位分身(Digital Twin)進行預測性維護
圖3. 使用量測資料來估計參數

我們利用Simulink設計最佳化模塊組(Simulink Design Optimization™)來自動調整參數值,讓模型能夠自動產生符合量測資料的結果。從Simscape中的Check Valve Outlet block可以找到被選用來進行最佳化的參數(圖4)。Simulink設計最佳化模塊組選擇參數值、執行模擬、並計算模擬與量測曲線之間的差異。從結果看起來,新的參數值已被挑選出來,並且用來執行新的模擬。接著,計算參數值的梯度(gradient)來判斷哪個方向的參數需要再調整。在這個範例中,只有兩個參數需要調整,因此很快地就可以達到聚合。對於需要調整更多參數的更為複雜的情境,使用可以加快調整過程的功能就顯得十分重要。

如何利用數位分身(Digital Twin)進行預測性維護
圖4. 在Simscape中調整參數值。

建立預測模型

現在,我們已經有了泵浦的數位分身。下一步是要把故障零件的行為加入模型中。

有幾種不同的方法可把故障行為加入模型中。許多Simulink模塊內建有常見故障行為的下拉式選單,像是短路或開路等,只需要改變參數值就可以建立像是摩擦或衰退效果的模型。在這個範例考慮到三種故障類型:軸承磨損造成的摩擦力增加、入口阻塞造成的流通範圍減少、活塞的密封洩漏。前面兩種故障需要調整模塊參數。而若要建立洩漏模型,我們會需要加入一個液壓系統的路徑。

如圖5所示,所選擇的故障條件可以透過使用者介面或MATLAB指令來開啟或關閉。在這裡示範的模型,所有故障條件均透過MATLAB指令來開關。如此一來,可以利用程式腳本來自動完成這整個流程。

如何利用數位分身(Digital Twin)進行預測性維護
圖5. 建立三缸泵的洩漏模型。可以利用泵浦模塊對話框(上)或程式指令(下)來變更參數。

在圖6上半部所顯示的泵浦模擬,啟用了兩種故障行為:入口阻塞與活塞3的密封洩漏。這些故障以紅色圓圈來標示。圖6下方的圖表為出口壓力值的模擬結果,藍色為連續曲線,黃色為雜訊的取樣。由於我們需要盡可能以實際資料來訓練故障偵測演算法,所以透過模擬產生的資料必須包含雜訊的量化效果。

如何利用數位分身(Digital Twin)進行預測性維護
圖6. 上:泵浦入口阻塞與密封洩漏的示意圖。下:出口壓力模擬(藍色)與雜訊取樣(黃色)結果。

圖6的綠色方框內代表出口壓力值的正常範圍。圖中針狀的部分顯然不在正常範圍之內,表示出現了故障。單從這張圖可以讓工程師或操作人員知道泵浦出現問題,但還是無法準確判斷發生了什麼樣的故障。

我們為這一個數位分身建立了大約200種情境,為的是要使用模擬來產生泵浦在所有可能的故障條件組合下的壓力值。每一個情境必須經過無數次的模擬來作為感測器的量化效果。由於這種方法必須進行數千次的模擬,我們希望可以加快資料產生的過程。

其中一個典型的方法是把模擬分配到多核心機器上可利用的排程,或者在數台機器或電腦叢集上同時平行執行。視問題的複雜程度、時間限制、資源等條件,可以透過MATLAB平行運算工具箱(Parallel Computing Toolbox™)和平行運算伺服器(MATLAB Parallel Server™)的支援來進行平行運算方法。

另外一種方法是利用Simulink的Fast Restart功能,這項功能利用了許多系統在所有狀態穩定之前,都需要經過一段時間來設置的這項特性。有了Fast Restart,這部分的測式只需經過一次的模擬。隨後所有的模擬將會從系統達到穩定狀態的時候開始。在現在這個範例,設置時間佔了單一測試所需的模擬時間的70% (圖7)。結果,藉由Fast Restart的使用可以節省大約三分之二的模擬時間。由於Fast Restart可以從MATLAB指令及腳本來配置,非常適合使用於訓練流程的自動化。

如何利用數位分身(Digital Twin)進行預測性維護
圖7. 使用Simulink的Fast Restart功能來縮短模擬時間。

下一步是要利用模擬結果來擷取機器學習演算法的訓練資料。預測性維護工具箱(Predictive Maintenance Toolbox™)提供了幾種選項來擷取訓練資料,我們在這裡關注的訊號屬於週期性訊號,因此看起來適合使用快速傅立葉變換(fast Fourier transform,FFT)。如同圖8所呈現的結果,有幾個屬於個別故障,以及故障組合的強度不同且完全分離的針狀圖形。機器學習演算法對於這種類型的資料可以掌握地很好。

如何利用數位分身(Digital Twin)進行預測性維護
圖8. 利用快速傅立葉變換來擷取訓練資料。

每一種故障情境的FFT結果皆被擷取到一個包含了插入的故障加上觀察到的訊號頻率及強度的表格。因此,相對來說需要考量的參數數目比較少。

現在,訓練故障偵測演算法所需要的資料都已經準備好,即可把資料匯入統計與機器學習工具箱(Statistics and Machine Learning Toolbox™)。我們將使用一個產生出來資料的子集來驗證經過訓練的演算法。

接下來,我們在統計與機器學習工具箱內將訓練過程的結果視覺化,這些圖表的呈現可以幫助我們比較不同演算法的優缺點,並判斷是否還需要額外的訓練資料。我們選擇了準確性最高的演算法來從量測資料判斷泵浦是否發生故障。我們將該演算法匯入數位分身,並利用為了驗證所儲存的七種測試案例來進行驗證(圖9)。如同最終結果顯示,這個分類演算法能夠安全地偵測到所有七種情境,並且已準備好可轉檔佈署到控制單元上了。

如何利用數位分身(Digital Twin)進行預測性維護
圖9. 匯出最準確的模型來進行驗證。

這項工作流程被應用在真實世界中,常見的有工業設備,它在世界各地多樣化的環境條件下運作,例如這些設備可能經常需要變更:可能是換了新的密封墊或閘閥供應商,或者泵浦可能需在各種流體或者每天的溫度範圍都不同的環境下運作。這些因素將影響到感測器量測到的壓力值,也有可能讓故障偵測演算法變得不可靠或甚至無法使用。因此設備被採用於新的市場時,讓演算法具備依新的條件快速更新的能力便顯得相當重要。

我們這裡所討論的工作流程都可以透過MATLAB程式進行自動化,而且大部分的工作都可以重複利用。唯一需要重複進行的步驟,是擷取可比泵浦在現場需面對的條件下資料。

隨著最新且更有智慧的互聯網連結性的發展,使得機器製造商更有可能為客戶提供支援臨時設定的設備、透過遠距方式在真正的實地條件下收集資料、訓練故障偵測演算法、並接著遠距重新把演算法佈署至機器,這將開啟全新的客戶支援機會,包含針對已在特定現場條件下使用一段時間的設備的故障偵測再訓練,這些從無數機台收穫而來的了解將造福客戶及供應商。

摘要

預測性維護可幫助工程師準確判斷何時需要進行設備維修。它不是仰賴預先訂定的維修排程,而是依照實際的需求安排維修時間表,以確實減少停機時間以及避免故障發生。在訓練預測性維護演算法時,在真正機台上建立所需的故障條件通常很昂貴,或有時根本無法做到。對於這類情況的其中一種解決方式,是利用從真正在運作中的機台取得的現場資料來調整一個實體的3D模型,並建立數位分身。這個數位分身接下來可以用來設計能夠佈署於真實設備的控制器的預測性維護偵測演算法。這樣的過程可以被自動化,並且支援多種條件、可用素材、設備架構的快速調整。

更多關於預測性維護