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