關 閉

新聞中心

EEPW首頁 > 工控自動化 > 業(yè)界動態(tài) > 電動馬達預測性維護:企業(yè)部署算法集中管理、保護與擴充

電動馬達預測性維護:企業(yè)部署算法集中管理、保護與擴充

作者:Peter Webb 時間:2021-11-29 來源:CTIMES 收藏

為了提升生產(chǎn)力,企業(yè)級規(guī)模的應用架構工程部署項目通常會采用主-從式軟件開發(fā)模型,確認在足夠數(shù)量的機臺上所安裝的函式能滿足使用量。本文以一個估測健康的應用來說明上述所需的功能。
如果你想把MATLAB函式分享給另一位同事,只要簡單地透過Email就可以達成,不過這種方式可能不太適合較大的團隊。舉例來說,你沒有辦法確保每一個人都使用最新版本的函式,你也沒有辦法限制他人存取這些具有所有權的程序代碼。而且如果為了滿足高峰期間的使用量而在足夠數(shù)量的機臺上安裝了函式,離峰期間則會有機臺處在閑置狀態(tài)。為了處理這樣的問題,企業(yè)級規(guī)模的應用架構工程部署項目通常會采用主-從式軟件開發(fā)模型(client-server software development model)來解決。
MATLAB Client for MATLAB Production Server這組支持套件,可為桌上型MATLAB提供了主-從式運算(client-server computing)帶來好處。它的作法是將算法集中在一個位置存放,這可確保所有客戶端使用的版本都相同;由遠程執(zhí)行并加密,則可以保護智慧財產(chǎn)(intellectual property;IP):終端用戶可以呼叫算法,但不能存取源代碼。
為了提升生產(chǎn)力,可以增加用戶端的workers,或者將MATLAB Production Server的范例部署在云端計算,如Microsoft Azure和Amazon Web Services等環(huán)境中。本文將以一個估測健康的應用來說明這些功能。

應用:以方法評估馬達健康狀態(tài)
透過預測性維護系統(tǒng)來監(jiān)測設備的健康狀態(tài)可預防意外的故障。舉例來說,估計馬達的剩余使用壽命(remaining useful life;RUL)以判斷何時該替換馬達,以及偵測異常行為來決定是否需要進行馬達檢驗。
我們的應用范例是把馬達傳感器收集來的時間序列數(shù)據(jù)發(fā)送到預測性維護算法,而該算法則使用機器學習來估計RUL和檢查異常行為(圖1)。

圖片.png 
圖1 : 馬達健康應用范例的架構。

這個應用包含了兩部分:一是MATLAB馬達健康狀態(tài)app,它展示特定馬達的狀態(tài),另一部分是MATLAB Production Server預測性維護的解析應用,內含兩組預測性維護算法。這個主從式架構把功能性的責任歸屬分為:使用者(client)端的app,用來管理數(shù)據(jù)存取與顯示,而服務器(server)端的算法則負責分析這些資料。使用者需仰賴服務器端提供的應用程序編程接口(application programming interface;API)連結,不需要、也不能存取執(zhí)行結果。

服務器端:算法與接口
對馬達傳感器產(chǎn)生的時間序列數(shù)據(jù),每一組算法采用不同的機器學習技術來進行判定。RUL算法是使用一個線性回歸模型來估計故障發(fā)生的時間,此模型是由「預測性維護工具箱」(Predictive Maintenance Toolbox)的predict函式所提供。異常行為偵測算法則使用一個客制的單類(one-class)支援向量機(support vector machine;SVM)和一個線性求解器,將傳感器事件分類為正常或異常,這些函式是來自于「統(tǒng)計與機器學習工具箱」(Statistics and Machine Learning Toolbox)。

這兩組算法都使用漸進式的學習來持續(xù)更新它們的模型,同時也考慮到因為馬達磨損退化導致的傳感器數(shù)據(jù)偏移,因此,兩個模型都不需要在部署之前先經(jīng)過訓練。
由于終端使用者都會把同樣的數(shù)據(jù)流跑在這兩組算法上,服務器就提供一個入口點,所以透過processMotorData函式,針對時間序列數(shù)據(jù)上每一個元素,processMotorData就會送回一個RUL估計結果以及一個是否出現(xiàn)異常的標幟。
在處理數(shù)據(jù)流時使用者端通常會呼叫processMotorData好幾次,然后把數(shù)據(jù)流分割為依時間排序的窗口,并且在每個窗口完成時送出。MATLAB Production Server有一個無狀態(tài)(stateless)的架構:它會在每一次呼叫之后重置執(zhí)行狀態(tài),以避免數(shù)據(jù)在用戶之間泄漏。
由于算法使用漸進式學習,它們會透過處理每一個窗口之后的模型更新來改善。不過,執(zhí)行狀態(tài)的重置功能會從MATLAB Production Server的內存清除掉這些變更。
為了讓變更保留到下一次的呼叫,將它們儲存在透過mps.cache.connect函式所建立的外部數(shù)據(jù)高速緩存中,完成部署的算法就會將數(shù)據(jù)流依馬達編號ID來分組,并且為每一個馬達保留一個數(shù)據(jù)高速緩存和機器學習的模型。

使用者端:執(zhí)行算法和數(shù)據(jù)可視化
我們將processMotorData 部署到一個MATLAB Production Server范例、命名為 MotorAnalytics檔案的中,讓使用者端的開發(fā)人員可以使用它。如果要從MATLAB呼叫processMotorData ,可以使用MATLAB Client for MATLAB Production Server里,從MotorAnalytics安裝MATLAB add-on套件。
安裝這個add-on套件時,把processMotorData函式放置到MATLAB的路徑中。呼叫processMotorData時,會有一條需求被傳送給MATLAB Production Server主機上去執(zhí)行預測性維護算法內的processMotorData函式,每一個安裝了add-on的使用者端就能去執(zhí)行這個相同的預測性維護算法,如圖2所示。

圖片.png
 
圖2 : MATLAB桌上型使用者透過MATLAB Production Server存取processMotorDat。

使用者開發(fā)
當add-on套件被安裝之后,這些終端使用者就可以從他們桌面端的MATLAB來跟 processMotorData函式進行互動。舉例來說,MATLAB的help指令顯示了來自原始函式的協(xié)助文字訊息,后記則標明processMotorData是在MATLAB Production Server上執(zhí)行。
add-on套件上人類都可以讀懂的全部內容,任何執(zhí)行 processMotorData算法的IP智財會在MATLAB Production Server主機上以AES加密來確保安全性。
接著我們透過MATLAB App Designer來建立帶有兩個內嵌儀表板的MATLAB app應用程序,讓用戶可以選擇一個馬達數(shù)據(jù)集,并檢視該數(shù)據(jù)執(zhí)行預測性維護算法后所產(chǎn)生的結果。這個馬達數(shù)據(jù)集是由48小時、一分鐘取樣一次的傳感器讀數(shù)所構成。該馬達在這48小時期間內的RUL,會以距離到故障發(fā)生的估計分鐘數(shù)的線性圖表來呈現(xiàn);當偵測到異常時,會以紅色圓點標示在線性圖表上。
圖3呈現(xiàn)了第8號馬達的狀態(tài)。圖表上標出了幾個異常與一個估計RUL在跌入零之前的一段暫時性下降,這個在大約12小時內機器余命從72小時快速的下降到零,顯示出有替換馬達的急迫性。


圖片.png 
圖3 : 可視化呈現(xiàn)第8號馬達的健康狀態(tài)。

水平方向的擴充
接下來,把算法部署至MATLAB Production Server進行規(guī)模擴充:MATLAB Production Server可自動地加入容載量(在條件內)來響應增加的需求。每單一個MATLAB Production Server容納案例可以最多有24個workers,每一個worker可獨立地處理需求?如果主機有足夠的CPU資源的話,還可以同時間進行。我們會建議每個worker分配一個核心。

為了說明需求導向的擴充,我們從三個分開的桌上型MATLAB單元開啟predictive analytics app,先執(zhí)行其中一個app副本,并等待它完成,接著讓三個app全部同時執(zhí)行。

圖4為執(zhí)行結果。在左邊的圖表可以看到每一個app副本的解析結果。右邊的MATLAB Production Server儀表板展示了現(xiàn)行worker處理程序數(shù)量以及需求的處理量。在實時的截圖上,儀表板顯示有三個現(xiàn)行worker處理程序,以及每秒大約18筆訊息的處理量。
圖片.png
 
圖4 : 需求導向的水平擴充結果。

儀表板上的柱形圖繪制了處理量的歷史。每一組直條代表一段時間的活動。較短的直條捕捉到的是只有一個app傳送需求至MATLAB Production Server的那段時間,當時的處理量大約為每秒6筆需求。較長的直條代表三組桌上型app都在傳送需求的時候。在第二段時間,MATLAB Production Server自動地啟動兩個額外的workers,藉由需求來帶動擴充,并且讓處理量增加到每秒18筆訊息。

集中化管理、保護與擴充
藉由開發(fā)之后,processMotorData這個算法范例已經(jīng)具備了安裝于網(wǎng)絡的一個位置、以AES加密機制保護、并且可動態(tài)擴展性的特點,已經(jīng)是一項企業(yè)層級的服務。因此,可以利用MATLAB Compiler SDK和MATLAB Production Server即可建立如同本文所示范的MotorAnalytics可部署檔案一樣。不過,如果是要安裝或使用 processMotorData等函式,只需要MATLAB和MATLAB Client for MATLAB Production Server支持套件就足夠了。
(本文由鈦思科技提供;作者Peter Webb任職于MathWorks公司)

本文引用地址:http://www.butianyuan.cn/article/202111/429976.htm


評論


相關推薦

技術專區(qū)

關閉