亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>MCU上的TinyML變速箱故障預(yù)測(cè)開(kāi)源分享

MCU上的TinyML變速箱故障預(yù)測(cè)開(kāi)源分享

2022-10-27 | zip | 0.25 MB | 次下載 | 2積分

資料介紹

描述

是否有可能在一個(gè)簡(jiǎn)單的 4 美元 MCU 上制作一個(gè)人工智能驅(qū)動(dòng)的系統(tǒng)來(lái)預(yù)測(cè)變速箱故障?如何自動(dòng)構(gòu)建不需要任何額外壓縮的緊湊模型?非數(shù)據(jù)科學(xué)家能否成功實(shí)施此類(lèi)項(xiàng)目?

我將在我的新項(xiàng)目中回答所有這些問(wèn)題。

介紹和業(yè)務(wù)約束

工業(yè)(例如,風(fēng)力發(fā)電、汽車(chē))中,變速箱通常在隨機(jī)速度變化下運(yùn)行。狀態(tài)監(jiān)測(cè)系統(tǒng)有望檢測(cè)故障、斷齒狀態(tài),并使用在不同速度曲線下收集的振動(dòng)信號(hào)評(píng)估其嚴(yán)重程度。

現(xiàn)代汽車(chē)有數(shù)十萬(wàn)個(gè)細(xì)節(jié)和系統(tǒng),需要預(yù)測(cè)故障、控制溫度、壓力等狀態(tài)。因此,在汽車(chē)行業(yè),創(chuàng)建和嵌入能夠正常運(yùn)行的 TinyML 模型至關(guān)重要在傳感器上開(kāi)辟了一系列技術(shù)優(yōu)勢(shì),例如:

  • 互聯(lián)網(wǎng)獨(dú)立
  • 在數(shù)據(jù)傳輸上不浪費(fèi)能源和金錢(qián)
  • 高級(jí)隱私和安全性

在我的實(shí)驗(yàn)中,我想展示如何輕松創(chuàng)建這樣的技術(shù)原型,以普及 TinyML 方法并將其令人難以置信的功能用于汽車(chē)行業(yè)。

使用的技術(shù)

  • Neuton TinyML:Neuton,我選擇了這個(gè)解決方案,因?yàn)樗梢悦赓M(fèi)使用,并且可以自動(dòng)創(chuàng)建微型機(jī)器學(xué)習(xí)模型,甚至可以部署在 8 位 MCU 上。根據(jù) Neuton 開(kāi)發(fā)人員的說(shuō)法,您可以在一次迭代中創(chuàng)建一個(gè)緊湊的模型,而無(wú)需壓縮。
  • Raspberry Pi Pico:芯片采用兩個(gè) ARM Cortex-M0 + 內(nèi)核,133 兆赫,安裝在芯片上時(shí)還與 256 KB 的 RAM 配對(duì)。該器件支持高達(dá) 16 MB 的片外閃存,具有一個(gè) DMA 控制器,包括兩個(gè) UART 和兩個(gè) SPI,以及兩個(gè) I2C 和一個(gè) USB 1.1 控制器。該器件接收16個(gè)PWM通道和30個(gè)GPIO針,其中4個(gè)適合模擬數(shù)據(jù)輸入。并帶有4 美元的凈價(jià)格標(biāo)簽。
poYBAGNYsgmARSvYAAC8PSS3C88786.png
?

讓我們構(gòu)建它

教程的目標(biāo)是演示如何輕松構(gòu)建緊湊的 ML 模型來(lái)解決多類(lèi)分類(lèi)任務(wù),以檢測(cè)齒輪箱中的斷齒狀況。

數(shù)據(jù)集描述

變速箱故障診斷數(shù)據(jù)集包括使用 SpectraQuest 的變速箱故障診斷模擬器記錄的振動(dòng)數(shù)據(jù)集。

數(shù)據(jù)集已使用 4 個(gè)振動(dòng)傳感器記錄在四個(gè)不同的方向上,并在從“0”到“90”% 的負(fù)載變化下。包括兩種不同的情況:1) 健康狀況2) 斷牙狀況

總共有 20 個(gè)文件,10 個(gè)用于健康的變速箱,10 個(gè)用于損壞的變速箱。每個(gè)文件對(duì)應(yīng)于從 0% 到 90% 的給定負(fù)載,步長(zhǎng)為 10%。

?

該實(shí)驗(yàn)將在 4 美元的 MCU 上進(jìn)行,沒(méi)有云計(jì)算碳足跡 :)

第 1 步:模型訓(xùn)練

對(duì)于模型訓(xùn)練,我將使用免費(fèi)平臺(tái) Neuton TinyML。創(chuàng)建解決方案后,繼續(xù)上傳數(shù)據(jù)集(請(qǐng)記住,當(dāng)前支持的格式僅為 CSV)。

pYYBAGNYsguATTzmAAC8jDillfo045.png
?

是時(shí)候?yàn)槊總€(gè)預(yù)測(cè)選擇目標(biāo)變量或所需的輸出了。在這種情況下,我們將類(lèi)作為輸出變量:'target'

pYYBAGNYsg-AfoUaAADQzll8mGQ643.png
?

由于數(shù)據(jù)集是一個(gè)振動(dòng),我們需要在訓(xùn)練模型之前準(zhǔn)備好數(shù)據(jù)。為此,我選擇設(shè)置數(shù)字信號(hào)處理 (DSP)。

數(shù)字信號(hào)處理 (DSP)選項(xiàng)支持對(duì)來(lái)自陀螺儀、加速度計(jì)、磁力計(jì)、肌電圖 (EMG) 等的數(shù)據(jù)進(jìn)行自動(dòng)預(yù)處理和特征提取。Neuton 將自動(dòng)轉(zhuǎn)換原始數(shù)據(jù)并提取其他特征,以創(chuàng)建用于信號(hào)分類(lèi)的精確模型。

對(duì)于此模型,我們使用準(zhǔn)確度作為指標(biāo)(但您可以試驗(yàn)所有可用指標(biāo))。

poYBAGNYshGALjqXAAD_Je5kbZM030.png
?

在訓(xùn)練模型時(shí),您可以查看數(shù)據(jù)處理完成后生成的探索性數(shù)據(jù)分析,查看以下視頻:

?

我的目標(biāo)指標(biāo)是:準(zhǔn)確度 0.921372 ,訓(xùn)練后的模型具有以下特征:

pYYBAGNYshSALB3FAAF3icjI6wc109.png
?

系數(shù)數(shù) = 397,嵌入文件大小 = 2.52 Kb 太酷了!這是一個(gè)非常小的模型!模型訓(xùn)練完成后,單擊“預(yù)測(cè)”選項(xiàng)卡,然后單擊“嵌入模型”旁邊的“下載”按鈕,下載我們將用于設(shè)備的模型庫(kù)文件。

第 2 步:嵌入 Raspberry Pico

下載模型文件后,就可以添加我們的自定義函數(shù)和操作了。我正在使用 Arduino IDE 對(duì) Raspberry Pico 進(jìn)行編程。

為 Raspberry Pico 設(shè)置 Arduino IDE:

這就是它在 MCU 上的工作方式。指示燈指示變速箱是否損壞。讓我們看看如何一步一步地實(shí)現(xiàn)這個(gè)結(jié)果。
?

我在本教程中使用了 Ubuntu,但相同的說(shuō)明應(yīng)該適用于其他基于 Debian 的發(fā)行版,例如 Raspberry Pi OS。

1. 打開(kāi)終端,使用 wget 下載官方 Pico 設(shè)置腳本

2.在同一終端修改下載的文件,使其可執(zhí)行

$ chmod +x pico_setup.sh

3.運(yùn)行 pico_setup.sh開(kāi)始安裝過(guò)程。如果出現(xiàn)提示,請(qǐng)輸入您的 sudo 密碼。

$ ./pico_setup.sh

4.下載 Arduino IDE并將其安裝在您的機(jī)器上。

5. 打開(kāi)終端并將您的用戶(hù)添加到“撥出”組,然后注銷(xiāo)或重新啟動(dòng)計(jì)算機(jī)以使更改生效。

$ sudo usermod -a -G dialout “$USER

6.打開(kāi) Arduino 應(yīng)用程序轉(zhuǎn)到 File >> Preferences 在附加板的管理器中添加此行并單擊 OK 。

https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
poYBAGNYsheAaLdkAAB7MApdyN8694.png
?

7.轉(zhuǎn)到工具>>板>>板管理器在搜索框中輸入“pico”,然后安裝 Raspberry Pi Pico / RP2040 板這將觸發(fā)另一個(gè)大下載,大小約為 300MB。

poYBAGNYshqAPO0rAACXGwNgzvo032.png
?

注意:由于我們要對(duì)測(cè)試數(shù)據(jù)集進(jìn)行分類(lèi),因此我們將使用 Neuton 提供的 CSV 實(shí)用程序?qū)νㄟ^(guò) USB 發(fā)送到 MCU 的數(shù)據(jù)進(jìn)行推理。

這是我們的項(xiàng)目目錄,

user@desktop:~/Documents/Gearbox$ tree
.
├── application.c
├── application.h
├── checksum.c
├── checksum.h
├── Gearbox.ino
├── model
│   └── model.h
├── neuton.c
├── neuton.h
├── parser.c
├── parser.h
├── protocol.h
├── StatFunctions.c
├── StatFunctions.h

3 directories, 14 files
1 directory, 13 files

校驗(yàn)和、解析器程序文件用于使用 CSV 串行實(shí)用工具生成握手并將列數(shù)據(jù)發(fā)送到 Raspberry Pico 進(jìn)行推理。

了解Gearbox.ino文件中的代碼部分,我們?cè)O(shè)置了不同的回調(diào)來(lái)監(jiān)控 CPU、時(shí)間和推理時(shí)使用的內(nèi)存使用情況。

void setup() {
  Serial.begin(230400);
  while (!Serial);

  pinMode(LED_RED, OUTPUT);
  pinMode(LED_BLUE, OUTPUT);
  pinMode(LED_GREEN, OUTPUT);
  digitalWrite(LED_RED, LOW);
  digitalWrite(LED_BLUE, LOW);
  digitalWrite(LED_GREEN, LOW);
  
  callbacks.send_data = send_data;
  callbacks.on_dataset_sample = on_dataset_sample;
  callbacks.get_cpu_freq = get_cpu_freq;
  callbacks.get_time_report = get_time_report;

  init_failed = app_init(&callbacks);
}

真正的魔法發(fā)生在這里callbacks.on_dataset_sample=on_dataset_sample

static float* on_dataset_sample(float* inputs)
{
if (neuton_model_set_inputs(inputs) == 0)
{
uint16_t index;
float* outputs;
uint64_t start = micros();
if (neuton_model_run_inference(&index, &outputs) == 0)
{
uint64_t stop = micros();
uint64_t inference_time = stop - start;
if (inference_time > max_time)
max_time = inference_time;
if (inference_time < min_time)
min_time = inference_time;
static uint64_t nInferences = 0;
if (nInferences++ == 0)
{
avg_time = inference_time;
}
else
{
avg_time = (avg_time * nInferences + inference_time) / (nInferences + 1);
}
digitalWrite(LED_RED, LOW);
digitalWrite(LED_BLUE, LOW);
digitalWrite(LED_GREEN, LOW);
switch (index)
{
/**
Green Light means Gearbox Broken (10% load), Blue Light means Gearbox Broken (40% load), and Red Light means Gearbox Broken (90% load) based upon the CSV test dataset received via Serial.
**/
case 0:
//Serial.println("0: Healthy 10% load");
break;
case 1:
//Serial.println("1: Broken 10% load");
digitalWrite(LED_GREEN, HIGH);
break;
case 2:
//Serial.println("2: Healthy 40% load");
break;
case 3:
//Serial.println("3: Broken 40% load");
digitalWrite(LED_BLUE, HIGH);
break;
case 4:
//Serial.println("4: Healthy 90% load");
break;
case 5:
//Serial.println("5: Broken 90% load");
digitalWrite(LED_RED, HIGH);
break;
default:
break;
}
return outputs;
}
}
return NULL;
}

一旦輸入變量準(zhǔn)備就緒,就會(huì)調(diào)用 neuton_model_run_inference(&index, &outputs)來(lái)運(yùn)行推理并返回輸出。

安裝 CSV 數(shù)據(jù)集上傳實(shí)用程序(目前僅適用于 Linux 和 macOS)

  • 安裝依賴(lài),
# For Ubuntu
$ sudo apt install libuv1-dev gengetopt
# For macOS
$ brew install libuv gengetopt
  • 克隆這個(gè) repo,
$ git clone https://github.com/Neuton-tinyML/dataset-uploader.git
$ cd dataset-uploader
  • 運(yùn)行 make 構(gòu)建二進(jìn)制文件,
$ make

完成后,您可以嘗試運(yùn)行幫助命令,它應(yīng)該類(lèi)似于下圖所示

user@desktop:~/dataset-uploader$ ./uploader -h

Usage: uploader [OPTION]...
Tool for upload CSV file MCU
  -h, --help                Print help and exit
  -V, --version             Print version and exit
  -i, --interface=STRING    interface  (possible values="udp", "serial"
                              default=`serial')
  -d, --dataset=STRING      Dataset file  (default=`./dataset.csv')
  -l, --listen-port=INT     Listen port  (default=`50000')
  -p, --send-port=INT       Send port  (default=`50005')
  -s, --serial-port=STRING  Serial port device  (default=`/dev/ttyACM0')
  -b, --baud-rate=INT       Baud rate  (possible values="9600", "115200",
                              "230400" default=`230400')
      --pause=INT           Pause before start  (default=`0')

第 3 步:在 Raspberry Pico 上運(yùn)行推理

樹(shù)莓派上上傳程序,

pYYBAGNYsh2ABENiAAFI1jiRoGQ648.png
?

上傳并運(yùn)行后,打開(kāi)一個(gè)新終端并運(yùn)行以下命令:

$ ./uploader -s /dev/ttyACM0 -b 230400 -d /home/vil/Desktop/Gearbox_10_40_90_test.csv
poYBAGNYsiGAKhMqAAKcx9eDBnQ486.png
?

推理已開(kāi)始運(yùn)行,一旦完成整個(gè) CSV 數(shù)據(jù)集,它將打印完整的摘要。

>> Request performace report
Resource report:
       CPU freq: 125000000
    Flash usage: 2884
RAM usage total: 2715
      RAM usage: 2715
    UART buffer: 42

Performance report:
Sample calc time, avg: 44172.0 us
Sample calc time, min: 43721.0 us
Sample calc time, max: 44571.0 us

我也嘗試使用 TensorFlow 和 TensorFlow Lite 構(gòu)建相同的模型。我使用 Neuton TinyML 構(gòu)建的模型在準(zhǔn)確性方面比使用TF Lite構(gòu)建的模型要好4.3 % ,在模型大小方面要小 15.3 倍。說(shuō)到系數(shù)個(gè)數(shù),TensorFlow的模型有9個(gè),330個(gè)系數(shù),而Neuton的模型只有397個(gè)系數(shù)(TF小23.5倍?。?/font>。

生成的模型足跡和推理時(shí)間如下:

pYYBAGNYsiWAKcyqAAGjfZBhsRg201.jpg
?

結(jié)論

本教程生動(dòng)地展示了 TinyML 技術(shù)可以為汽車(chē)行業(yè)帶來(lái)的巨大影響。您可以擁有幾乎為零的數(shù)據(jù)科學(xué)知識(shí),但仍然可以快速構(gòu)建超緊湊的 ML 模型以有效解決實(shí)際挑戰(zhàn)。最棒的是,這一切都可以通過(guò)使用完全免費(fèi)的解決方案和超級(jí)便宜的 MCU 來(lái)實(shí)現(xiàn)!


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1PFC電路與BOOST電路設(shè)計(jì)實(shí)例分享
  2. 1.83 MB   |  12次下載  |  4 積分
  3. 2世平基于靈動(dòng)微 SPIN560C 的低壓無(wú)刷電機(jī)應(yīng)用方案
  4. 10.93 MB  |  11次下載  |  免費(fèi)
  5. 3電源測(cè)試報(bào)告-基于 國(guó)民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
  6. 6.47 MB  |  11次下載  |  免費(fèi)
  7. 4PWM控制器的控制方法
  8. 0.39 MB   |  3次下載  |  4 積分
  9. 5電流檢測(cè)芯片F(xiàn)P135應(yīng)用說(shuō)明
  10. 1.24 MB   |  3次下載  |  免費(fèi)
  11. 6全面解讀被動(dòng)式與主動(dòng)式PFC電路
  12. 1.27 MB   |  1次下載  |  4 積分
  13. 7HC88L051F4低功耗芯片規(guī)格書(shū)
  14. 4.76 MB  |  1次下載  |  免費(fèi)
  15. 8CIU32D655x5數(shù)據(jù)手冊(cè)
  16. 2.14 MB   |  1次下載  |  免費(fèi)

本月

  1. 1常用電子元器件使用手冊(cè)
  2. 2.40 MB   |  52次下載  |  免費(fèi)
  3. 2高功率密度碳化硅MOSFET軟開(kāi)關(guān)三相逆變器損耗分析
  4. 2.27 MB   |  33次下載  |  10 積分
  5. 3PFC電路與BOOST電路設(shè)計(jì)實(shí)例分享
  6. 1.83 MB   |  12次下載  |  4 積分
  7. 4世平基于靈動(dòng)微 SPIN560C 的低壓無(wú)刷電機(jī)應(yīng)用方案
  8. 10.93 MB  |  11次下載  |  免費(fèi)
  9. 5電源測(cè)試報(bào)告-基于 國(guó)民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
  10. 6.47 MB  |  11次下載  |  免費(fèi)
  11. 6USB拓展塢PCB圖資料
  12. 0.57 MB   |  11次下載  |  免費(fèi)
  13. 7MS1826 HDMI 多功能視頻處理器數(shù)據(jù)手冊(cè)
  14. 4.51 MB   |  9次下載  |  免費(fèi)
  15. 8HAL9303線性霍爾效應(yīng)傳感器技術(shù)手冊(cè)
  16. 0.70 MB   |  9次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935134次下載  |  10 積分
  3. 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191424次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183352次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81600次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73818次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分