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