帳號:
密碼:
智動化 / 文章 /

企業部署演算法的集中管理、保護與擴充
以電動馬達預測性維護應用為例
[作者 Peter Webb]   2021年11月25日 星期四 瀏覽人次: [372]

為了提升生產力,企業級規模的應用架構工程部署專案通常會採用主-從式軟體開發模型,確認在足夠數量的機台上所安裝的函式能滿足使用量。本文以一個估測電動馬達健康的預測性維護應用來說明上述所需的功能。


如果你想把MATLAB函式分享給另一位同事,只要簡單地透過Email就可以達成,不過這種方式可能不太適合較大的團隊。舉例來說,你沒有辦法確保每一個人都使用最新版本的函式,你也沒有辦法限制他人存取這些具有所有權的程式碼。而且如果為了滿足高峰期間的使用量而在足夠數量的機台上安裝了函式,離峰期間則會有機台處在閒置狀態。為了處理這樣的問題,企業級規模的應用架構工程部署專案通常會採用主-從式軟體開發模型(client-server software development model)來解決。


MATLAB Client for MATLAB Production Server這組支援套件,可為桌上型MATLAB提供了主-從式運算(client-server computing)帶來好處。它的作法是將演算法集中在一個位置存放,這可確保所有用戶端使用的版本都相同;由遠端執行並加密,則可以保護智慧財產(intellectual property;IP):終端使用者可以呼叫演算法,但不能存取原始程式碼。


為了提升生產力,可以增加使用者端的workers,或者將MATLAB Production Server的範例部署在雲端計算,如Microsoft Azure和Amazon Web Services等環境中。本文將以一個估測電動馬達健康的預測性維護應用來說明這些功能。


應用:以預測性維護方法評估馬達健康狀態

透過預測性維護系統來監測設備的健康狀態可預防意外的故障。舉例來說,估計馬達的剩餘使用壽命(remaining useful life;RUL)以判斷何時該替換馬達,以及偵測異常行為來決定是否需要進行馬達檢驗。


我們的應用範例是把馬達感測器收集來的時間序列資料發送到預測性維護演算法,而該演算法則使用機器學習來估計RUL和檢查異常行為(圖1)。



圖1 : 馬達健康應用範例的架構。
圖1 : 馬達健康應用範例的架構。

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


伺服器端:演算法與介面

對馬達感測器產生的時間序列資料,每一組演算法採用不同的機器學習技術來進行判定。RUL演算法是使用一個線性回歸模型來估計故障發生的時間,此模型是由「預測性維護工具箱」(Predictive Maintenance Toolbox)的predict函式所提供。異常行為偵測演算法則使用一個客製的單類(one-class)支援向量機(support vector machine;SVM)和一個線性求解器,將感測器事件分類為正常或異常,這些函式是來自於「統計與機器學習工具箱」(Statistics and Machine Learning Toolbox)。


這兩組演算法都使用漸進式的學習來持續更新它們的模型,同時也考慮到因為馬達磨損退化導致的感測器資料偏移,因此,兩個模型都不需要在部署之前先經過訓練。


由於終端使用者都會把同樣的資料流跑在這兩組演算法上,伺服器就提供一個入口點,所以透過processMotorData函式,針對時間序列資料上每一個元素,processMotorData就會送回一個RUL估計結果以及一個是否出現異常的標幟。


在處理資料流時使用者端通常會呼叫processMotorData好幾次,然後把資料流分割為依時間排序的視窗,並且在每個視窗完成時送出。MATLAB Production Server有一個無狀態(stateless)的架構:它會在每一次呼叫之後重置執行狀態,以避免資料在使用者之間洩漏。


由於演算法使用漸進式學習,它們會透過處理每一個視窗之後的模型更新來改善。不過,執行狀態的重置功能會從MATLAB Production Server的記憶體清除掉這些變更。


為了讓變更保留到下一次的呼叫,將它們儲存在透過mps.cache.connect函式所建立的外部資料快取記憶體中,完成部署的演算法就會將資料流依馬達編號ID來分組,並且為每一個馬達保留一個資料快取記憶體和機器學習的模型。


使用者端:執行演算法和資料視覺化

我們將processMotorData 部署到一個MATLAB Production Server範例、命名為 MotorAnalytics檔案的中,讓使用者端的開發人員可以使用它。如果要從MATLAB呼叫processMotorData ,可以使用MATLAB Client for MATLAB Production Server裡,從MotorAnalytics安裝MATLAB add-on套件。


安裝這個add-on套件時,把processMotorData函式放置到MATLAB的路徑中。呼叫processMotorData時,會有一條需求被傳送給MATLAB Production Server主機上去執行預測性維護演算法內的processMotorData函式,每一個安裝了add-on的使用者端就能去執行這個相同的預測性維護演算法,如圖2所示。



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

使用者開發

當add-on套件被安裝之後,這些終端使用者就可以從他們桌面端的MATLAB來跟 processMotorData函式進行互動。舉例來說,MATLAB的help指令顯示了來自原始函式的協助文字訊息,後記則標明processMotorData是在MATLAB Production Server上執行。


add-on套件上人類都可以讀懂的全部內容,任何執行 processMotorData演算法的IP智財會在MATLAB Production Server主機上以AES加密來確保安全性。


接著我們透過MATLAB App Designer來建立帶有兩個內嵌儀表板的MATLAB app應用程式,讓使用者可以選擇一個馬達資料集,並檢視該資料執行預測性維護演算法後所產生的結果。這個馬達資料集是由48小時、一分鐘取樣一次的感測器讀數所構成。該馬達在這48小時期間內的RUL,會以距離到故障發生的估計分鐘數的線性圖表來呈現;當偵測到異常時,會以紅色圓點標示在線性圖表上。


圖3呈現了第8號馬達的狀態。圖表上標出了幾個異常與一個估計RUL在跌入零之前的一段暫時性下降,這個在大約12小時內機器餘命從72小時快速的下降到零,顯示出有替換馬達的急迫性。



圖3 : 視覺化呈現第8號馬達的健康狀態。
圖3 : 視覺化呈現第8號馬達的健康狀態。

水平方向的擴充

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


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


圖4為執行結果。在左邊的圖表可以看到每一個app副本的解析結果。右邊的MATLAB Production Server儀表板展示了現行worker處理程序數量以及需求的處理量。在即時的截圖上,儀表板顯示有三個現行worker處理程序,以及每秒大約18筆訊息的處理量。



圖4 : 需求導向的水平擴充結果。
圖4 : 需求導向的水平擴充結果。

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


集中化管理、保護與擴充

藉由開發之後,processMotorData這個演算法範例已經具備了安裝於網路的一個位置、以AES加密機制保護、並且可動態擴展性的特點,已經是一項企業層級的服務。因此,可以利用MATLAB Compiler SDK和MATLAB Production Server即可建立如同本文所示範的MotorAnalytics可部署檔案一樣。不過,如果是要安裝或使用 processMotorData等函式,只需要MATLAB和MATLAB Client for MATLAB Production Server支援套件就足夠了。


(本文由鈦思科技提供;作者Peter Webb任職於MathWorks公司)


相關文章
嵌入式系統部署AI應用加速開發週期
7種常見的電動車模擬案例
優化工廠製造系統能源效率的生態系
4種經過實證的AI演算法應用
使用深度學習網路估算氮氧化物排放
comments powered by Disqus
  相關新聞
» 投注地方社會參與 宏正獲新北市頒發績優企業志工團隊獎
» 施耐德與中國生產力中心合作 推動台灣成為亞洲高階製造中心
» The Imaging Source Asia 兆鎂新遷移新址事宜
» 5D智慧城市防救災平台虛實整合 震前防減災+震後緊急應變
» 台電電力交易平台今正式營運 供電運轉未來商機上看百億
  相關產品
» 艾訊新款1.8吋無風扇嵌入式主機板強化AIoT應用領域
» 凌華推出基於NVIDIA Jetson AGX Xavier之軌道交通專用AI平台
» Basler ace 2再添Gpixel CMOS感光元件
» 施耐德電機全新TeSys Deca Series馬達啟動器更安全、更穩定
» Basler推出新款CXP-12元件 – 相機與介面卡


刊登廣告 新聞信箱 讀者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2021 遠播資訊股份有限公司版權所有 Powered by O3
地址:台北市中山北路三段29號11樓 / 電話 (02)2585-5526 / E-Mail: webmaster@hope.com.tw