馬達故障診斷之AI 建模實作

作者:

劉祖閔、李俊耀、黃冠瑜、林正軒

刊登日期:2019/04/30

摘要:工本文介紹馬達故障診斷程序,包括小波轉換、FFT與監督式機器學習。也介紹近年來蓬勃發展的人工智慧(Artificial Intelligence, AI)套件軟體-Python語言,是多數跨平台與嵌入式系統之AI整合首選的語言。進一步以感應馬達為案例說明如何在本體以人工製作故障工件,採集機電訊號資料、整理與建構AI模型,最後以Python實現訊號萃取特徵,及以MATLAB為輔的快速選定AI演算法的方式,達到馬達故障偵測之目的。
Abstract:In this article, the motor fault diagnosis process has been introduced, including the wavelet conversion, FFT and import supervised machine learning. Python language, a popular commercial software, is the best choice of the cross-platform and embedded systems for AI model.  Furthermore, the induction motor (IM) is used here in the motor fault diagnosis process, which can explain the details of partial parts manufacturing, harvesting of mechatronic signals data, filtering and constructing AI model. Finally, the verification has been achieved by MATLAB tools and Python language.

關鍵詞:馬達故障診斷、機器學習、Python
Keywords:Motor fault diagnosis, Machine learning, Python

前言
IEK指出,智慧製造領域應用人工智慧技術市場產值將由 2017年3.9億美元達到2023年的48.8億美元,單以亞洲市場估算其複合成長率56.53%[1],足以得見AI與物聯網是未來市場推升的成長引擎。中國大陸國務院於2017年7月20日印發《新一代人工智能發展規劃》,將於2030年前佈署人工智慧至重點任務中,並預期投入1,500億美元,由此觀察到中國政府對於人工智慧的佈局力道強勁。隨著網路時代的來臨,IoT (Internet of Things)之需求效應也開始擴散,雲端系統開發平台選擇性越來越多。Gartner提出在2018~2023年期間,智慧聯網需具備十大特點,其中提及人工智慧、邊緣運算(Intelligent Edge)、物聯網治理(IoT Governance)、感測器創新(Sensor Innovation)等議題,在在顯示未來智慧聯網之重要性[2]。
雖然雲端平台能處理的速度越來越快,但“物”應該擷取哪些資訊,哪些資訊又必須傳至雲端是必須考量與拿捏的重要課題,因為網路流量就是成本,所以不適合將全部資料都上傳雲端。因此,本地端的智能化處理並如何有效的監測目標物之狀態就顯得非常重要。
本文章將介紹馬達故障診斷之AI建模實作過程,本過程以Python套件為主,搭配MATLAB商用套件進行故障徵兆診斷。相較於以Windows搭配MATLAB為基礎進行分析,再將運行程序轉移至Linux Base嵌入式系統時需投入時間與人力成本去解決系統轉移問題,Python的優勢在於跨平台支援,可讓專案開發不用煩惱許多系統移植問題,隨著Python社群近年來的活躍,在相關技術資源與支援方面能獲得長足進展。本文將說明使用MATLAB快速驗證方式選擇合適的AI演算法,並於Python進行驗證,可大幅縮減演算法選用的摸索時間。
馬達故障診斷程序
本文章嘗試在四組馬達樣態進行診斷驗測,其中一組正常馬達做為對照組,其餘三組則以人工加工方式產生包括軸承磨損、定子繞組短路,與轉子斷條等四種樣態,將其運轉下的電流訊號特徵進行AI模型建模並驗證其正確性。本研究之馬達故障診斷於實作規劃上分為4個階段:第1階段為故障樣品之設計;第2階段為故障樣品組裝與測試;第3階段為馬達動力平台加載測試;最後一個階段為AI模型建立。本文著重在第4階段,說明馬達機電訊號處理與AI模型建立。圖1所示為模型建立流程,由資料清理、資料標註、小波訊號解析、FFT特徵萃取與AI演算法套用之流程,以下簡述之:

圖 1 AI模型建立流程

1.小波轉換
馬達運轉電流訊號有許多不同頻率的成分存在,不易直接分析訊號,此情況可採用小波轉換處理分離訊號方式,常採用2階模型的方式做分解訊號並使低頻與高頻分離[3]。圖2顯示原始訊號(signal)包含低頻主頻訊號與高頻諧波訊號,經由低通會將主頻訊號保留下來,經過高通會將諧波訊號保存下來,如此將可依據不同的截止頻率得到各頻率區段之訊號。在python中實現小波轉換,可於程式中使用開源小波轉換套件(PyWavelets)進行小波轉換模組。

圖 2 小波轉換架構示意圖

2.FFT特徵值萃取(Feature Extraction):
上述小波轉換共有5層6個分解訊號,再將訊號做FFT轉換,將可得到訊號每個訊號可筆資料可得到30個特徵值,每一筆資料可得到30個特徵值,針對馬達電流訊號提取出包括最大值(Imax)、最小值(Imin)、平均值(Imean)、標準差(Istd)、均方差(Imse)等5個特徵值,如圖3所示。

圖 3 特徵值萃取架構示意圖

上述小波轉換共有5層6個分解訊號,再將訊號做FFT轉換,將可得到各個分解訊號之馬達電流訊號的最大值(Imax)、最小值(Imin)、平均值(Imean)、標準差(Istd)、均方差(Imse)等5個特徵值,因此6個分解訊號共可得到30個特徵值,如圖3所示。如此本文中採用四個樣態馬達,每顆馬達各取2,000筆資料,合計可得總數4x2,000x30的特徵值集合量,最後加入四種樣態標籤(含正常及故障樣態),根據上述資料量進行AI模型訓練。若在python中為實現FFT,需搭配NumPy程式庫,即可使用FFT之相關物件與方法[4]。

…本文未結束

更完整的內容 歡迎訂購 2019年5月號 434期

機械工業雜誌‧每期240元‧一年12期2400元

我要訂購