資料介紹
描述
概述
在這個項目中,我使用 Quickfeather 開發(fā)板和 SensiML Toolkit 構建了一個機器學習應用程序的概念驗證。目前正在進行許多關于智能電網技術的研究和分析,這些技術有望有效緩解氣候變化。非侵入式負載監(jiān)控 (NILM) 被視為實現(xiàn)創(chuàng)新智能電網服務的關鍵技術。在這個項目中,我的目標是家庭能源消耗分析,但它同樣適用于工業(yè)能源消耗。NILM 技術將能源消耗分解為其組件,并提供有關當前設備的信息,并可用于執(zhí)行診斷。為什么我們需要 NILM?因為我們不想給每個家用電器都加一個傳感器來監(jiān)控。NILM 技術具有良好的可擴展性并提供積極的解決方案,沒有任何電力危害,并且作為單點控制,可以方便地升級應用程序并與其他在線服務連接以提供有用和及時的信息。它還提高了對用戶能源使用模式的認識,以便我們可以節(jié)省能源來拯救地球。
硬件和軟件設置
我們將使用 QuickFeather 開發(fā)板。
QuickFeather 開發(fā)板有許多板載傳感器,如上圖所示,但對于當前項目,我們需要一個可以為我們提供有關電力特性信息的傳感器。為此,我們使用了 M5Stack Atom Socket Kit,它具有 HL8032 電能表集成電路,可通過 UART 連接以 4800 bps 的速度提供數(shù)據(jù)。
M5Stack Atom 插座套件可安全使用高達 10A 的電流。它有一個連接到主電源的 3 針輸入電源插座,它具有可用于從 HLW8032 IC 獲取數(shù)據(jù)的針連接器。它還有一個內置繼電器,可以使用 Grove 連接器來控制打開/關閉主電源。有兩個輸出插座。(2 針/3 針)連接到電源板,最多可為 4 臺設備供電。對于這個項目,我只使用了兩個電器;風扇(30W)和燈(90W)。對于數(shù)據(jù)收集,我們使用了 SensiML Data Capture Lab這是一個 Windows 應用程序,我們需要一臺 Windows PC 來安裝它。因為我有一臺 Macbook,所以我使用 VirtualBox 來安裝 Windows VM 和另一個用于 Linux 的 VM 來使用 QORK-SDK 構建固件。請按照此處的說明https://github.com/QuickLogic-Corp/qorc-sdk安裝 QORK-SDK。此外,如果我們想使用 Wi-Fi 連接在 Data Capture Lab 中捕獲數(shù)據(jù),我們需要安裝 SensiML Open Gateway應用程序。假設樹莓派 4 安裝了最新的樹莓派操作系統(tǒng)。
我們需要許多 UART 連接才能使用。我們需要一個 UART 連接來將 QuickFeather 連接到 M5Stack Atom Socket Kit。我們需要另一個 UART 來向 Raspberry Pi 4 發(fā)送數(shù)據(jù)。我們還需要一個 UART 來查看也連接到 Raspberry Pi 4 的調試消息。由于 QuickFeather 只有一個硬件 UART,我們需要使用 eFPGA 來啟用另外兩個硬件UART。對于這個項目,我們使用來自 QORK-SDK 存儲庫的兩個示例應用程序的混合:
1. qf_apps/qf_fpgauart_app (加載FPGA UART網關,啟動FPGA時鐘)
2. qf_apps/qf_ssi_ai_app (使用Simple Streaming Interface或識別的數(shù)據(jù)收集)
至少對我來說,將兩個應用程序合并在一起是一項相當大的工作。最終應用程序可以在這里找到:https ://github.com/metanav/Challenge_Climate_Change
Atom Socket Kit 中有一個繼電器和開關引腳連接,連接到 QuickFeather 以控制繼電器。我們需要在 src/pincfg_table.c 中添加以下配置來初始化引腳。
{ // setup GPIO for External Button
.ucPin = PAD_24,
.ucFunc = PAD24_FUNC_SEL_GPIO_0,
.ucMode = PAD_MODE_INPUT_EN,
.ucPull = PAD_PULLUP,
.ucDrv = PAD_DRV_STRENGTH_4MA,
.ucSpeed = PAD_SLEW_RATE_SLOW,
.ucSmtTrg = PAD_SMT_TRIG_DIS
},
{ // setup GPIO for Relay Switch
.ucPin = PAD_23,
.ucFunc = PAD23_FUNC_SEL_GPIO_7,
.ucMode = PAD_MODE_OUTPUT_EN,
.ucPull = PAD_NOPULL,
.ucDrv = PAD_DRV_STRENGTH_4MA,
.ucSpeed = PAD_SLEW_RATE_SLOW,
.ucSmtTrg = PAD_SMT_TRIG_DIS
},
連接所有設備的原理圖可以在原理圖部分找到。我們可以在下面看到物理連接。
Atom Socket Kit (HLW8032) 使用低波特率 (4800) 甚至奇偶校驗,因此我們需要相應地配置 FPGA UART。此外,另一個 FPGA UART 配置為 115200 波特率,無奇偶校驗。main.c 中有一個“init_fpga_uart”函數(shù)調用來處理它。
void init_fpga_uart()
{
UartBaudRateType brate;
UartHandler uartObj;
memset( (void *)&(uartObj), 0, sizeof(uartObj) );
uartObj.baud = BAUD_4800;
uartObj.wl = WORDLEN_8B;
uartObj.parity = PARITY_EVEN;
uartObj.stop = STOPBITS_1;
uartObj.mode = TX_RX_MODE;
uartObj.hwCtrl = HW_FLOW_CTRL_DISABLE;
uartObj.intrMode = UART_INTR_ENABLE;
uartHandlerUpdate(UART_ID_FPGA, &uartObj);
// wait
for (volatile int i = 0; i != 4000000; i++) ;
uart_init(UART_ID_FPGA, NULL, NULL, &uartObj);
uint32_t device_id = *(uint32_t *)FPGA_PERIPH_BASE ;
if (device_id == 0xABCD0002)
{
uartObj.baud = BAUD_115200;
uartObj.wl = WORDLEN_8B;
uartObj.parity = PARITY_NONE;
uartObj.stop = STOPBITS_1;
uartObj.mode = TX_RX_MODE;
uartObj.hwCtrl = HW_FLOW_CTRL_DISABLE;
uartObj.intrMode = UART_INTR_ENABLE;
uartHandlerUpdate(UART_ID_FPGA_UART1,&uartObj);
uart_init(UART_ID_FPGA_UART1, NULL, NULL, &uartObj);
}
}
我們將嘗試對以下 4 個類別進行分類。
1. 風扇
2. 燈
3. 燈和風扇
4. 無負載
我們使用 4 個電氣特性:
1.電壓(伏)
2.電流(安培)
3. 真實功率(瓦特)
4. 視在功率(伏安)
在交流電路中,有功功率(也稱為有功功率或有功功率)是設備做有用功所消耗的實際功率。無功功率(僅在負載中吸收和返回的功率)與真實功率的組合稱為視在功率,它是電路電壓和電流的乘積,與相角無關。對于給定的地理區(qū)域,電壓幾乎是恒定的,但傳感器值有一些變化,我們稍后會看到 SensiML Toolkit 的 AutoML 是否會使用此功能。電氣特性對于單個電器或電器組合具有非常具體的特征。正如我們在下圖中所看到的,它描述了當燈關閉和風扇連續(xù)打開時的兩個事件,延遲幾秒鐘。
閃存數(shù)據(jù)采集固件
假設 QORK-SDK 存儲庫已克隆到主目錄中,并且所有構建工具鏈都已設置。
克隆存儲庫:
$ cd ~/qork-sdk
$ source envsetup.sh
$ cd qf_apps
$ git clone https://github.com/metanav/Challenge_Climate_Change.git
$ cd challenge_climate_change
確保在 inc/app_config.h 中將固件模式更改為數(shù)據(jù)收集。
#define S3AI_FIRMWARE_IS_COLLECTION 1
#define S3AI_FIRMWARE_IS_RECOGNITION 0
我們需要 TinyFPGA-Programmer-Application 來刷新固件。請按照此處的說明進行安裝:https ://github.com/QuickLogic-Corp/TinyFPGA-Programmer-Application
$ cd GCC_Project
$ make
$ qfprog --port /dev/ttyACM0 --m4app output/bin/Challenge_Climate_Change.bin --mode m4
設備插件
設備插件是描述數(shù)據(jù)捕獲實驗室 (DCL) 如何從設備收集數(shù)據(jù)的屬性列表。Data Capture Lab 允許我們通過 SSF 文件導入設備插件。以下是用于導入 DCL 的 SSF 文件內容。
{
"name": "QuickFeather Simple Stream [Custom]",
"uuid": "a612edcc-58fe-a534-15d7-1255447308ee",
"collection_methods": [
{
"name": "live",
"display_name": "Live Stream Capture",
"storage_path": null,
"is_default": true
}],
"device_connections": [
{
"display_name": "Serial Port",
"value": 1,
"is_default": true,
"serial_port_configuration": {
"com_port": null,
"baud": 115200,
"stop_bits": 1,
"parity": 0,
"handshake": 0,
"max_live_sample_rate": 3301
}
},
{
"display_name": "Wi-Fi",
"value": 2,
"is_default": true,
"wifi_configuration": {
"use_external_broker": false,
"external_broker_address": "",
"broker_port": 1885,
"device_ip_address": "192.168.3.6",
"device_port": 5555,
"max_live_sample_rate": 1000000
}
}],
"capture_sources": [
{
"max_throughput": 0,
"name": "Energy_Meter",
"part": "HWL8032",
"sample_rates": [
6,
7,
8
],
"is_default": true,
"sensors": [
{
"column_count": 4,
"is_default": true,
"column_suffixes": [
"VA",
"mA",
"W",
"V"
],
"type": "Energy_Meter_IC",
"parameters": [],
"sensor_id": 1529804975,
"can_live_stream": true
}]
}],
"is_little_endian": true
}
建筑知識包
為設備生成的模型稱為知識包。知識包包含用于推理的設備固件代碼。
有標準步驟可以為邊緣設備的每個機器學習項目構建模型。
1. 原始數(shù)據(jù)采集
2. 數(shù)據(jù)標注
3. 模型準備
4.模型訓練
5. 設備上的推理
SensiML Toolkit 有助于自動化上述大部分步驟。
對于每個類,傳感器數(shù)據(jù)被捕獲 4 分鐘。由于電力負荷是給定持續(xù)時間的連續(xù)事件,因此捕獲的數(shù)據(jù)用單段注釋。
數(shù)據(jù)收集演示
使用 SensiML Analytics Studio Demo 創(chuàng)建知識包
閃光識別固件
假設應用程序存儲庫已按照前面的步驟中所述進行了克隆。
$ cd qork-sdk/qf_apps/challenge_climate_change
確保在 inc/app_config.h 中將固件模式更改為識別。
#define S3AI_FIRMWARE_IS_COLLECTION 0
#define S3AI_FIRMWARE_IS_RECOGNITION 1
構建并刷寫固件:
$ cd GCC_Project
$ make
$ qfprog --port /dev/ttyACM0 --m4app output/bin/Challenge_Climate_Change.bin --mode m4
推理演示
演示中顯示的推理速率似乎很慢,因為采樣率為 6,我們使用 4 秒的樣本(總共 24 個樣本)進行推理。此外,應用程序中有一個消息隊列緩沖來自 HLW8032 傳感器的數(shù)據(jù),因此知識包需要一些時間才能在當前事件更改時到達。
使用 SensiML Open Gateway 進行推理演示
結論
我們已經通過線路供電的 QuickFeather 演示了該應用程序。由于 QuickFeather 僅通過 UART 從傳感器獲取數(shù)據(jù),因此可以使用電池供電。雖然我們只使用了 2 個電器使用了 4 個類別,但該應用程序是可擴展的,并且通過捕獲更多數(shù)據(jù)并為許多其他電器訓練模型,它可以輕松地對整個家用電器負載進行分類。另外,將來我想嘗試分層模型來提高縮放版本的模型魯棒性。QuickFeather 開發(fā)板和 SensiML Toolkit 具有為邊緣設備構建和部署機器學習管道的巨大潛力。我希望在不久的將來看到適用于 MacOS 和 Linux 的數(shù)據(jù)采集實驗室。
- 在SensiML的幫助下為人類和地球保護泥炭地
- 使用SensiML AI框架學習水培農業(yè)
- 使用QuickFeather開發(fā)工具包和SensiML
- 碩士學位論文《家庭智能網關的研究與實現(xiàn)》 24次下載
- 民航駕駛艙人機交互腦力負荷預測模型設計 6次下載
- 基于稀疏表示的電力負荷缺失數(shù)據(jù)補全方法 15次下載
- 可動態(tài)判別電網異常負荷的CNN閥值模型 12次下載
- WiFi連接智能家庭信息圖免費下載
- 一種居民配電網負荷諧波電流發(fā)射特性評估 17次下載
- 互聯(lián)電網負荷頻率控制器設計 2次下載
- 基于PR控制器的孤島微網不平衡負荷下控制策略 2次下載
- 電力負荷預測研究 0次下載
- 基于模板濾波的非侵入負荷辨識系統(tǒng) 0次下載
- 非侵入式家居負荷分解方法 19次下載
- 家庭用電負荷計算方式 194次下載
- 用電設備組的計算負荷 1369次閱讀
- 汽車電子基本電氣負荷講解 571次閱讀
- 基于CNN-LSTM網絡的電力負荷預測 3252次閱讀
- 電力負荷的關系分類 2096次閱讀
- 高壓負荷開關的要求_高壓負荷開關的用途 1383次閱讀
- 過負荷的火災原因_過負荷的防火措施 4097次閱讀
- 高壓負荷開關與斷路器的區(qū)別 1.5w次閱讀
- 高壓負荷開關工作原理_高壓負荷開關安裝 9426次閱讀
- 高壓負荷開關選型_高壓負荷開關的主要作用是什么 6917次閱讀
- 戶內高壓負荷開關_戶內高壓負荷開關型號含義 9810次閱讀
- 高壓真空負荷開關安裝_真空高壓負荷開關型號及含義_高壓真空負荷開關選型 1w次閱讀
- 施耐德負荷開關_施耐德負荷開關型號_施耐德開啟式負荷開關使用和維護 1.1w次閱讀
- 什么是高壓負荷開關_高壓負荷開關作用_高壓斷路器與負荷開關的區(qū)別 4347次閱讀
- 油浸式高壓負荷開關_二工位油浸式負荷開關_四工位油浸式負荷開關 1.3w次閱讀
- 智能家庭應用之語音識別系統(tǒng) 4156次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多