如何使用Psoc6 AI驅(qū)動完成預(yù)測性工業(yè)機器維護
在這個項目中,我將開發(fā)一個使用IMU傳感器來預(yù)測機器維護和潛在故障的系統(tǒng)
1. 介紹
該項目旨在使用英飛凌PSoC6 AI Kit和DeepCraft Studio為工業(yè)機器開發(fā)基于AI的預(yù)測性維護系統(tǒng)。系統(tǒng)將:
?從內(nèi)置的IMU傳感器(加速度計和陀螺儀)收集實時振動數(shù)據(jù)。
?將這些數(shù)據(jù)流式傳輸?shù)紻eepCraft Studio進行人工智能模型訓(xùn)練。
?訓(xùn)練人工智能模型來檢測異常并預(yù)測機器故障。
?使用ModusToolbox將訓(xùn)練好的模型部署到PSoC6 AI Kit。
?向用戶提供早期維護提醒。
2. 硬件和軟件要求
硬件:
?英飛凌PSoC6 AI套件(帶IMU傳感器)
?工業(yè)機械(用于振動數(shù)據(jù)采集)
?USB/UART連接數(shù)據(jù)流
軟件:
?DeepCraft Studio (AI模型訓(xùn)練)
?ModusToolbox (PSoC6固件開發(fā))
我很驚訝地發(fā)現(xiàn)一個現(xiàn)成的例子在DeepCraft工作室異常振動檢測
這個項目將分為兩個部分
第一節(jié)
首先,我將開始測試現(xiàn)成的模型。
第二節(jié)
然后我將制作我的模型,并使用我的流IMU數(shù)據(jù)集訓(xùn)練它。
這兩種模型都將在PSOC 6 AI KIT上進行部署和測試。
3. 第一節(jié)
使用現(xiàn)成模型實施項目的步驟。
在本節(jié)中,我將使用DeepCraft Studio生成現(xiàn)成模型的代碼
a-生成Model.c和.h文件
在架構(gòu)中選擇英飛凌PSOC,在目標(biāo)設(shè)備中選擇PSOC6,輸出文件夾并按“生成代碼”
在生成model.c和model.h文件之后,您可以在infineon文件夾中找到模型文件,復(fù)制Both files model.c和model.h,然后我們將使用modulebox進行部署
b-創(chuàng)建模塊工具箱部署模型:
1-打開模塊工具箱軟件,選擇你的工作空間
2-使用新建應(yīng)用程序向?qū)?chuàng)建新項目
3 .選擇CY8CKIT-062S2-AI PSOC作為您的BSP
4-在機器學(xué)習(xí)部分,只需選擇DEEPCRAFT部署模型運動,并按您喜歡的重命名項目并按創(chuàng)建
5-創(chuàng)建Modus項目后,打開models文件夾,用DeepCraft Studio生成的文件替換model.c和model.h
你可以將你的自定義代碼添加到main, c文件中,當(dāng)模型成功運行時,在這個項目中,紅色LED將在異常檢測時打開
現(xiàn)在我想只運行準(zhǔn)備好的模型來測試它的工作,只是構(gòu)建項目并等待完成,沒有錯誤
6-編程您的工具包,并從modstoolbox或putty或Tera Term打開串行控制臺,您喜歡(波特:115200,8,none, 1)
Ready振動模型部署
正如在視頻中注意到的,試劑盒必須與原始訓(xùn)練模型處于相同的方向,如下面的截圖所示,所以這個模型只在這個方向上訓(xùn)練;任何其他方向的工具包將給我們一個異常的振動,即使沒有振動。所以我將以不同的方向訓(xùn)練我的模型來避免這種情況。
4. 第二節(jié)
使用我自己的模型實現(xiàn)項目的步驟。
a-步驟1:收集和流IMU傳感器數(shù)據(jù)到DeepCraft工作室
1. -配置IMU傳感器(加速度計和陀螺儀)
?使用PSoC6的SPI接口讀取IMU數(shù)據(jù)。
?樣本振動數(shù)據(jù)在100赫茲(根據(jù)機器振動調(diào)整)。
?應(yīng)用FFT(快速傅立葉變換)提取頻域特征。
2 -。流數(shù)據(jù)到DeepCraft工作室
?使用流媒體協(xié)議V2。
3 -。培訓(xùn)標(biāo)簽數(shù)據(jù)
?收集正常和異常的振動模式。
?使用時間戳標(biāo)記故障條件。
?為這個模型創(chuàng)建的標(biāo)簽是(正常、需要維護、嚴(yán)重故障)。
b-步驟2:在DeepCraft Studio中構(gòu)建和訓(xùn)練AI模型
1.導(dǎo)入數(shù)據(jù)到DeepCraft工作室
使用流協(xié)議V2流IMU數(shù)據(jù)到DEEPCRAFT STUDIO的圖形UX項目。
創(chuàng)建一個新的GRAPH UX項目
如果需要,對數(shù)據(jù)進行預(yù)處理(歸一化,噪聲濾波)。
設(shè)置IMU輸入數(shù)據(jù)頻率為100hz,以獲得更好的高速振動數(shù)據(jù)采集
添加預(yù)定義的標(biāo)簽(正常、需要維護、嚴(yán)重故障)
之后,我將開始為不同的情況構(gòu)建我的數(shù)據(jù)集,以確保模型將有一個好的訓(xùn)練數(shù)據(jù)集
所以對于normal,我將從不同位置的IMU獲得流數(shù)據(jù)(水平位置-不同垂直位置)
在完成收集數(shù)據(jù)會話之后,我們將創(chuàng)建我們的分類項目
2-創(chuàng)建空分類項目
3-添加數(shù)據(jù)
在我們分類項目的數(shù)據(jù)部分,我們將使用---- b>添加數(shù)據(jù)按鈕將收集到的振動數(shù)據(jù)添加到數(shù)據(jù)的文件夾位置
將數(shù)據(jù)分成訓(xùn)練(70%)、驗證(20%)和測試(10%)。
4. 預(yù)定義的標(biāo)簽
添加預(yù)定義標(biāo)簽(正常-需要維護,嚴(yán)重故障)
5. 預(yù)處理器
在預(yù)處理器選項卡中創(chuàng)建一個滑動窗口大小=[128*3]。數(shù)據(jù)點數(shù)步幅= 6緩沖乘數(shù)= (1)
-從預(yù)處理器創(chuàng)建軌道(等待完成)
然后構(gòu)建預(yù)處理器。
6. 設(shè)計AI模型
使用1D CNN或LSTM(適用于時間序列振動數(shù)據(jù))。
示例模型結(jié)構(gòu):
輸入:6個功能(3軸加速+ 3軸陀螺)
隱藏層:Conv1D→LSTM→Dense
輸出:二分類(正常/異常)。
7. 訓(xùn)練模型
設(shè)置好模型參數(shù)后,開始新的訓(xùn)練作業(yè)
等待Job完成
然后下載最好的訓(xùn)練模型
C-步驟3:將模型部署到PSoC6 AI工具包
1. 從模型生成C代碼
2. 重復(fù)第1節(jié)中的步驟來部署我們的模型
3 .整合AI模型
將model.h model.c復(fù)制到modulestoolbox項目中。
在main.c中加載模型
步驟4:測試和驗證系統(tǒng)
1. 臺架測試
?用吸塵器或馬達模擬振動。
?驗證AI模型是否檢測到異常。
2.真實的測試
?將PSoC6連接到工業(yè)機器上。
?監(jiān)控
?我的訓(xùn)練模型部署
?預(yù)測vs.實際失敗。
3.優(yōu)化
?調(diào)整采樣率。
?微調(diào)AI模型閾值。
4. 預(yù)期的輸出
?PSoC6將持續(xù)監(jiān)測振動。
?如果檢測到異常模式,它將觸發(fā)警報(LED/UART消息)。
用戶可以收到早期的維護預(yù)警。
5. 結(jié)論
本項目演示如何:
?流實時IMU數(shù)據(jù)到DeepCraft Studio。
?為預(yù)測性維護訓(xùn)練人工智能模型。
?使用ModusToolbox將模型部署到PSoC6上。
?及早發(fā)現(xiàn)機器故障并提醒用戶。
本文編譯自hackster.io