熟女俱乐部五十路二区av,又爽又黄禁片视频1000免费,国产卡一卡二卡三无线乱码新区,中文无码一区二区不卡αv,中文在线中文a

關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 未來(lái)工廠:利用搭載人工智能的傳感器在邊緣做出決策——第2部分

未來(lái)工廠:利用搭載人工智能的傳感器在邊緣做出決策——第2部分

作者:Tom Sharkey,系統(tǒng)應(yīng)用工程師 時(shí)間:2025-09-02 來(lái)源:EEPW 收藏
編者按:提升工業(yè)系統(tǒng)智能化的方法有多種,其中包括將邊緣和云端人工智能(AI)技術(shù)應(yīng)用于配備模擬和數(shù)字器件的傳感器。鑒于AI技術(shù)方法的多樣性,傳感器設(shè)計(jì)人員需要考慮多個(gè)相互沖突的要求,包括決策延遲、網(wǎng)絡(luò)使用、功耗/電池壽命以及適合機(jī)器的AI模型。上一篇文章重點(diǎn)介紹了基于AI的無(wú)線狀態(tài)監(jiān)控傳感器Voyager4的概況和硬件設(shè)計(jì)。本文將重點(diǎn)討論為智能邊緣傳感器創(chuàng)建的軟件架構(gòu)和AI算法,并說(shuō)明在Voyager4上開(kāi)發(fā)AI模型的完整系統(tǒng)級(jí)方法。

狀態(tài)監(jiān)控的軟件設(shè)計(jì)

Voyager4 是由公司開(kāi)發(fā)的無(wú)線狀態(tài)監(jiān)控平臺(tái),開(kāi)發(fā)人員借助它能夠快速將無(wú)線解決方案部署到機(jī)器或測(cè)試設(shè)置并進(jìn)行測(cè)試。Voyager4等電機(jī)健康狀況監(jiān)控解決方案廣泛應(yīng)用于各行各業(yè),例如機(jī)器人以及渦輪機(jī)、風(fēng)扇、泵、電機(jī)等旋轉(zhuǎn)機(jī)械。

為這樣的無(wú)線邊緣設(shè)備開(kāi)發(fā)軟件可能很困難。從設(shè)計(jì)的早期階段開(kāi)始,開(kāi)發(fā)人員就必須考慮整體系統(tǒng)架構(gòu),系統(tǒng)的各個(gè)部分如何運(yùn)行,如何集成不同組件以協(xié)同工作,以及如何應(yīng)用和部署有用的算法與分析工具(如神經(jīng)網(wǎng)絡(luò))來(lái)提升邊緣智能水平。

對(duì)于此類(lèi)項(xiàng)目,主要目標(biāo)就是為邊緣設(shè)備和所連主機(jī)創(chuàng)建易于理解、可修改、可升級(jí)的軟件。Voyager4內(nèi)部有兩個(gè)微控制器和許多外設(shè),包括、電源管理板、閃存和通信接口。開(kāi)發(fā)旨在控制和整合每個(gè)部分的代碼是一項(xiàng)艱巨的任務(wù)。

本文希望通過(guò)展示Voyager4的開(kāi)發(fā)設(shè)計(jì)過(guò)程,重點(diǎn)說(shuō)明所采取的步驟,并提供一些具體的實(shí)現(xiàn)案例,以幫助讀者更好地了解自行開(kāi)發(fā)邊緣傳感器的方法。

這是闡述Voyager4狀態(tài)監(jiān)控平臺(tái)開(kāi)發(fā)的三部分系列文章的第2部分。

■   本系列文章的第1部分介紹了Voyager4無(wú)線狀態(tài)監(jiān)控傳感器,包括傳感器架構(gòu)的關(guān)鍵元素、硬件設(shè)計(jì)、功耗分析和機(jī)械集成。

■   本系列文章的第2部分將重點(diǎn)討論軟件架構(gòu)和AI算法,并說(shuō)明在Voyager4上開(kāi)發(fā)和部署AI模型的完整系統(tǒng)級(jí)方法。

■   本系列文章的第3部分將討論AI算法的實(shí)際實(shí)現(xiàn),以及Voyager4可以檢測(cè)的各種故障,例如不平衡、未對(duì)準(zhǔn)和軸承缺陷。

概述

這里簡(jiǎn)要回顧了Voyager的工作原理。有關(guān)狀態(tài)監(jiān)控傳感器的更多信息,以及關(guān)于Voyager4項(xiàng)目的專(zhuān)有硬件、功耗和安全特性的詳細(xì)信息,請(qǐng)參閱本系列文章的第1部分。

1756783970480557.png

圖1 Voyager4工作模式

圖1顯示了Voyager4的傳感器工作原理。ADXL382 三軸8 kHz數(shù)字微機(jī)電系統(tǒng)(MEMS)加速度計(jì)用于采集振動(dòng)數(shù)據(jù)。采集的數(shù)據(jù)會(huì)依據(jù)工作模式遵循不同的路徑。

路徑A是最初采用的路徑,原始振動(dòng)數(shù)據(jù)直接發(fā)送到MAX32666 低功耗藍(lán)牙?(BLE)處理器。然后,數(shù)據(jù)可以通過(guò)無(wú)線BLE或USB發(fā)送給用戶(hù)。路徑B是一種替代工作模式,可以在利用Voyager采集原始數(shù)據(jù)并通過(guò)MAX78000外部工具訓(xùn)練模型后使用該模式。數(shù)據(jù)不會(huì)發(fā)送給用戶(hù),而是傳遞給邊緣AI算法來(lái)預(yù)測(cè)機(jī)器故障。路徑C和D分別代表檢測(cè)到和未檢測(cè)到電機(jī)故障的用例。如果檢測(cè)到故障,則可以通過(guò)BLE處理器向主機(jī)發(fā)送故障標(biāo)志或用戶(hù)警報(bào)。如果未檢測(cè)到故障,傳感器將返回休眠模式,直到發(fā)生下一次檢測(cè)事件。

該架構(gòu)是Voyager4軟件和AI算法開(kāi)發(fā)的重點(diǎn)。為了從系統(tǒng)層面全面理解該架構(gòu),本文將討論以下幾方面:

■   BLE術(shù)語(yǔ)

■   BLE外圍設(shè)備的實(shí)現(xiàn)

■   BLE中心設(shè)備的實(shí)現(xiàn)

■   AI算法的訓(xùn)練和部署

BLE背景知識(shí)

設(shè)計(jì)工業(yè)邊緣傳感器時(shí),連接是關(guān)鍵設(shè)計(jì)因素之一。根據(jù)可用或所需的功率,連接會(huì)影響覆蓋范圍、可靠性、設(shè)備整體壽命和尺寸等方方面面。如表1所示,與其他連接標(biāo)準(zhǔn)相比,BLE擁有一些特別的優(yōu)勢(shì)。對(duì)于我們的工業(yè)監(jiān)控用例而言,BLE的覆蓋范圍、功率和可靠性尤為重要。要了解BLE邊緣設(shè)備的設(shè)計(jì)和開(kāi)發(fā),首先必須了解所有BLE項(xiàng)目都會(huì)使用的一些基本術(shù)語(yǔ)。

表1 無(wú)線連接標(biāo)準(zhǔn)比較


范圍

功耗

可靠性

穩(wěn)健性

總擁有成本

網(wǎng)格能力

安全性

Wi-Fi

100 m

低/單通道

是,WPA

BLE

20m至100m

低/中

中/高

是,AES

Zigbee、Thread

20m至200m

低/中

是,AES

Smart-MESH

20m至200m

是,AES

LoRa-WAN

500m至3000 m

否 –

星型拓?fù)?/p>

是,AES

全面介紹BLE的所有特性將需要一本書(shū)的篇幅。本文將重點(diǎn)介紹實(shí)現(xiàn)BLE設(shè)備時(shí)需要考慮的一些關(guān)鍵概念,包括:

■   軟件堆棧

■   外圍設(shè)備/中心設(shè)備模型

■   協(xié)議和配置文件

BLE軟件堆棧

BLE軟件堆棧是一系列標(biāo)準(zhǔn)協(xié)議的集合,設(shè)備必須支持這些協(xié)議才能被視為與BLE兼容。為了幫助讀者更輕松地理解這個(gè)術(shù)語(yǔ),圖2展示了堆棧內(nèi)不同協(xié)議的分層方式。對(duì)于用戶(hù)通信和設(shè)備連接等高級(jí)功能,需要負(fù)責(zé)數(shù)據(jù)封裝和解析等基本任務(wù)的較低級(jí)協(xié)議提供支持。

幸運(yùn)的是,開(kāi)發(fā)人員對(duì)堆棧組成部分有基本的了解通常就足夠了,他們可以從一系列已經(jīng)實(shí)現(xiàn)各自版本堆棧的硬件設(shè)備中進(jìn)行選擇。用戶(hù)只需開(kāi)發(fā)應(yīng)用程序中負(fù)責(zé)控制設(shè)備本身的部分,并利用預(yù)構(gòu)建的BLE堆棧即可。

image.png

圖2 BLE堆棧

BLE堆棧通常由三個(gè)不同部分組成:應(yīng)用程序、主機(jī)和控制器。應(yīng)用程序定義用戶(hù)接口和用戶(hù)實(shí)現(xiàn)的具體應(yīng)用代碼(振動(dòng)監(jiān)測(cè))。主機(jī)是指BLE軟件堆棧的上層,它控制配置文件和協(xié)議等高級(jí)功能??刂破魇侵窧LE堆棧的底層,它處理鏈路層和物理層,如2.4 GHz無(wú)線電本身。此項(xiàng)目選擇使用MAX32666 BLE微控制器。這是一款低功耗Arm? Cortex?-M4微控制器,搭載低功耗藍(lán)牙5無(wú)線電,支持遠(yuǎn)距離(4×)通信和高數(shù)據(jù)吞吐速率(2 Mbps)。

外圍設(shè)備/中心設(shè)備模型

根據(jù)BLE設(shè)備的作用,可以將其定義為外圍設(shè)備或中心設(shè)備。數(shù)據(jù)可以雙向流動(dòng),兩者之間最大的區(qū)別之一是其連接方式。在連接之前,外圍設(shè)備會(huì)通告其能否連接,中心設(shè)備則掃描可供連接的外圍設(shè)備并發(fā)起連接。數(shù)據(jù)可以在外圍設(shè)備和中心設(shè)備之間雙向流動(dòng),但中心設(shè)備被視為主機(jī)。舊版BLE文獻(xiàn)也將外圍設(shè)備和中心設(shè)備分別稱(chēng)為服務(wù)器和客戶(hù)端。

1756784049422910.png

圖3 外圍設(shè)備/中心設(shè)備1:1模型

在我們的系統(tǒng)中,將Voyager平臺(tái)定義為外圍設(shè)備,它收集數(shù)據(jù)并將其發(fā)送到中心設(shè)備。對(duì)于這個(gè)項(xiàng)目,為了簡(jiǎn)化開(kāi)發(fā)和便于理解,我們首先研究最簡(jiǎn)單的情形:?jiǎn)蝹€(gè)中心設(shè)備與單個(gè)外圍設(shè)備交互,如圖3所示。

協(xié)議和配置文件

在藍(lán)牙的命名術(shù)語(yǔ)中,協(xié)議和配置文件很容易混淆。簡(jiǎn)單地說(shuō),協(xié)議是定義設(shè)備操作的基本功能塊:數(shù)據(jù)封裝、格式、路由等。配置文件是組合在一起以支持基本工作模式的功能包。它本質(zhì)上是多種協(xié)議的組合,以實(shí)現(xiàn)某種整體功能。例如,電池服務(wù)配置文件可用于查詢(xún)?cè)O(shè)備的剩余電池電量。所有BLE設(shè)備都必須實(shí)現(xiàn)至關(guān)重要的通用訪問(wèn)配置文件(GAP)和通用屬性配置文件(GATT),以便能夠連接到其他BLE設(shè)備。GAP負(fù)責(zé)處理底層各項(xiàng)功能:廣播、設(shè)備發(fā)現(xiàn)和連接管理。GATT負(fù)責(zé)管理設(shè)備之間的高級(jí)數(shù)據(jù)組織和傳輸,使它們能夠通過(guò)已建立的連接執(zhí)行讀寫(xiě)操作。

其他配置文件是可選的附加項(xiàng),用于為設(shè)備提供額外功能,例如接近配置文件(Proximity Profile)。這些配置文件包括由藍(lán)牙技術(shù)聯(lián)盟(SIG)創(chuàng)建的預(yù)定義配置文件。開(kāi)發(fā)智能手表或智能電表等典型設(shè)備時(shí),使用一組預(yù)定義的配置文件可能很有用,但對(duì)于需要實(shí)現(xiàn)大量自定義功能的設(shè)備而言,預(yù)定義配置文件可能會(huì)帶來(lái)限制。

開(kāi)發(fā)人員還可以使用并非由藍(lán)牙SIG創(chuàng)建的自定義配置文件,這樣做可以提升設(shè)計(jì)靈活性,但會(huì)犧牲一定的可移植性。每個(gè)配置文件將其數(shù)據(jù)組織成服務(wù),服務(wù)由多個(gè)特性組成,如圖4所示。

1756784100338238.png

圖4 自定義命令服務(wù)器配置文件

當(dāng)中心設(shè)備和外圍設(shè)備之間形成連接時(shí),中心設(shè)備可以請(qǐng)求與該外圍設(shè)備關(guān)聯(lián)的配置文件和服務(wù)。圖5顯示了中心設(shè)備發(fā)出請(qǐng)求時(shí),Voyager的GAP、GATT和自定義配置文件(及其服務(wù))的結(jié)構(gòu)。

1756784121219882.png

圖5 Voyager配置文件結(jié)構(gòu)

對(duì)于Voyager,除了基本的GAP和GATT配置文件,我們還定義了一個(gè)用作命令服務(wù)器的自定義配置文件,它處理來(lái)自中心設(shè)備的命令,并返回?cái)?shù)據(jù)或更新外圍設(shè)備本身的配置。

固件實(shí)現(xiàn)

BLE微控制器是該系統(tǒng)的核心,它確保所有外圍傳感器和設(shè)備的數(shù)據(jù)都可以由相連的BLE中心設(shè)備檢索或修改。

設(shè)備配置

我們利用MAX32666上預(yù)先構(gòu)建的BLE堆棧,通過(guò)填充相關(guān)配置功能來(lái)構(gòu)建外圍設(shè)備的外觀。例如,在圖6中,我們?yōu)閽呙钄?shù)據(jù)發(fā)現(xiàn)數(shù)組提供了數(shù)據(jù)長(zhǎng)度、廣播類(lèi)型和一系列字符,每次Voyager上電時(shí),外圍設(shè)備設(shè)置函數(shù)都會(huì)調(diào)用該數(shù)組。

1756784158903885.png

圖6 設(shè)置Voyager掃描數(shù)據(jù)

像這樣的BLE設(shè)備將有大量的設(shè)置需要配置,包括無(wú)線電的傳輸功率和返回?cái)?shù)據(jù)類(lèi)型。建議從所使用硬件附帶的預(yù)構(gòu)建示例入手,然后在其基礎(chǔ)上進(jìn)行自定義修改。MAX32666提供了一個(gè)BLE數(shù)據(jù)服務(wù)器(外圍設(shè)備)的示例代碼,名為BLE DATS,Voyager項(xiàng)目就是以此為基礎(chǔ)構(gòu)建的。配置后,當(dāng)中心設(shè)備掃描可用設(shè)備時(shí),外圍設(shè)備的名稱(chēng)顯示為Voyager。這也可以用于過(guò)濾搜索列表,以便中心設(shè)備僅顯示預(yù)期名稱(chēng)的設(shè)備。如圖7所示,設(shè)備名稱(chēng)與設(shè)備MAC地址和接收信號(hào)強(qiáng)度指示(RSSI)一同顯示。

1756784184615618.png

圖7 中心設(shè)備中顯示的Voyager

堆棧內(nèi)的其他配置設(shè)置控制設(shè)備其他模式的預(yù)期名稱(chēng)和行為,例如制造商ID、對(duì)讀/寫(xiě)命令的響應(yīng)等。

1756784212774014.png

圖8 Voyager4硬件框圖,采用了MAX3207E、DS28C40A、ADXL382、ADG1634、MAX32666、ADXL367、MAX78000、MAX17262、MAX20335和MAX38642

命令服務(wù)器

Voyager4應(yīng)用的中心端和外圍端是同步設(shè)計(jì)的,因此可以利用含有單個(gè)BLE服務(wù)的自定義配置文件來(lái)簡(jiǎn)化外圍設(shè)備接口。該配置文件將負(fù)責(zé)接收來(lái)自中心設(shè)備的命令,并以加速度計(jì)數(shù)據(jù)、溫度數(shù)據(jù)和其他設(shè)備信息的形式返回響應(yīng)。

對(duì)于像Voyager這樣復(fù)雜的設(shè)備,采用該單一自定義服務(wù)進(jìn)行BLE通信是不同尋常的做法,但卻帶來(lái)了幾點(diǎn)好處。這種做法不僅支持Voyager版本之間的向后兼容性,而且增強(qiáng)了命令靈活性,因?yàn)橥ㄟ^(guò)將字符串用作Voyager外圍設(shè)備的命令輸入,應(yīng)用可以根據(jù)數(shù)據(jù)的解析方式,靈活支持各種類(lèi)型的命令和值。

一旦外圍設(shè)備和中心設(shè)備之間形成連接,為了建立雙向通信,中心設(shè)備就會(huì)向自定義特性發(fā)出通知命令,如圖11所示。這樣就在外圍端建立了一個(gè)通知系統(tǒng),并在中心端指定了相應(yīng)的回調(diào)函數(shù)。這意味著,每當(dāng)有更新的數(shù)據(jù)分配給該自定義特性時(shí),都會(huì)通知中心設(shè)備,傳輸新數(shù)據(jù),并觸發(fā)中心設(shè)備的回調(diào)函數(shù)。

固件架構(gòu)

圖8中的硬件示意圖顯示了Voyager中包含的各種元器件以及相關(guān)的數(shù)據(jù)路徑和電源。大多數(shù)軟件開(kāi)發(fā)都是在BLE微控制器上進(jìn)行的,因?yàn)樗鳛槊钪行?,?fù)責(zé)協(xié)調(diào)設(shè)備的BLE接口以及傳感器和微控制器數(shù)據(jù)的內(nèi)部管道。為了與系統(tǒng)中的不同傳感器和微控制器進(jìn)行交互,我們必須開(kāi)發(fā)供BLE微控制器和AI部分中討論的AI微控制器使用的設(shè)備驅(qū)動(dòng)程序。實(shí)際上,這些驅(qū)動(dòng)程序的開(kāi)發(fā)和集成占了聯(lián)網(wǎng)邊緣傳感器所需編程工作的很大一部分。

編寫(xiě)可移植代碼

開(kāi)發(fā)固件時(shí),我們將代碼劃分成幾個(gè)抽象層,以將特定微控制器的具體細(xì)節(jié)與應(yīng)用程序和驅(qū)動(dòng)程序代碼區(qū)分開(kāi)來(lái)。這種做法很常見(jiàn),通常會(huì)在應(yīng)用層之外再劃分出三個(gè)明確的層次來(lái)管理不同的代碼功能,即硬件抽象層(HAL)、板支持包(BSP)和驅(qū)動(dòng)程序?qū)?。此架?gòu)如圖9所示。

1756784234164783.png

圖9 通用BSP-HAL架構(gòu)

HAL為程序與不同硬件的交互提供了一種統(tǒng)一方法,程序無(wú)需知道每個(gè)設(shè)備的具體細(xì)節(jié)。BSP定義了依賴(lài)于硬件的軟件,而驅(qū)動(dòng)程序?qū)佣x了各個(gè)設(shè)備的更具體細(xì)節(jié),如寄存器映射。例如,Voyager有兩個(gè)微控制器,MAX32666用于BLE連接,MAX78000 帶有一個(gè)板載卷積神經(jīng)網(wǎng)絡(luò)(CNN)加速器。如圖10所示,Voyager中的HAL定義了微控制器、SPI和I2C將使用的基本通信命令。舉例來(lái)說(shuō),任何設(shè)備驅(qū)動(dòng)程序發(fā)出任何SPI通信請(qǐng)求時(shí),此任務(wù)最初都會(huì)被委托給HAL中的SPI函數(shù),然后HAL查找BSP的具體信息,以便針對(duì)該微控制器使用正確的SPI命令。

對(duì)于系統(tǒng)中的每個(gè)電路板,HAL保持不變,但對(duì)于每個(gè)微控制器,BSP會(huì)更新。BSP還負(fù)責(zé)定義系統(tǒng)的通用構(gòu)建模塊,以將應(yīng)用程序調(diào)用與所使用的具體設(shè)備解耦。在圖10中,BSP中的MAIN_ADXL模塊是所使用的底層加速度計(jì)的抽象塊。任何加速度計(jì)的常用命令(如初始化和讀取)都在BSP層中定義,而低級(jí)函數(shù)(如get_raw_xyz_data)則在ADXL382模塊中的驅(qū)動(dòng)程序級(jí)別上定義。將驅(qū)動(dòng)程序代碼從MAX32666移植到MAX78000微控制器時(shí),加速度計(jì)代碼保持不變,因?yàn)樗鼉H與加速度計(jì)本身有關(guān)。只有BSP層中的文件需要更新,以便能夠與新微控制器通信。

這對(duì)于系統(tǒng)中部件的更換或升級(jí)來(lái)說(shuō),也具有明顯的優(yōu)勢(shì)。在Voyager中,一個(gè)真實(shí)例子是我們決定升級(jí)所用的主加速度計(jì)。升級(jí)僅需更新驅(qū)動(dòng)程序?qū)又械拇a,維護(hù)、修改和測(cè)試工作都得以簡(jiǎn)化。

image.png

圖10 Voyager BSP HAL架構(gòu)

數(shù)據(jù)管道和BLE中心設(shè)備

雖然溫度和電池信息可根據(jù)要求提供給BLE中心設(shè)備應(yīng)用程序,但Voyager的主要作用是作為狀態(tài)監(jiān)控器和振動(dòng)傳感器。關(guān)于數(shù)據(jù)吞吐速率和數(shù)據(jù)發(fā)送頻率,我們重點(diǎn)考慮振動(dòng)傳感器和典型狀態(tài)監(jiān)控場(chǎng)景,比如每天進(jìn)行一次短暫測(cè)量。BLE不支持高數(shù)據(jù)吞吐速率。ADXL382是一款高帶寬、3軸加速度計(jì),在高性能模式下每秒每軸采集16,000個(gè)樣本。根據(jù)系統(tǒng)所包含的元器件,有幾種數(shù)據(jù)發(fā)送方式可供選擇。

發(fā)送實(shí)時(shí)數(shù)據(jù)

沒(méi)有任何形式的緩沖,當(dāng)中心設(shè)備請(qǐng)求數(shù)據(jù)時(shí),只要數(shù)據(jù)可用,便立即發(fā)送。這種方式在演示模式下很有用,可以實(shí)時(shí)展示高性能加速度計(jì)數(shù)據(jù),但是電池電量很快就會(huì)耗盡,并且由于生成數(shù)據(jù)的速度超過(guò)發(fā)送的速度,數(shù)據(jù)包會(huì)被丟棄或損壞。

從存儲(chǔ)器發(fā)送數(shù)據(jù)

另一種方式是將數(shù)據(jù)保存到閃存中。這樣,我們就可以安全地記錄加速度計(jì)數(shù)據(jù),而不必?fù)?dān)心覆蓋以前的值。保存的數(shù)據(jù)隨后會(huì)直接發(fā)送到中心設(shè)備,或在收到中心設(shè)備的命令后進(jìn)行報(bào)告。該系統(tǒng)不再是實(shí)時(shí)的(數(shù)據(jù)可能是幾分鐘甚至幾天前的),因此我們還可以利用BLE對(duì)數(shù)據(jù)包的應(yīng)答系統(tǒng),確保數(shù)據(jù)完整無(wú)缺地到達(dá)中心設(shè)備,如有任何數(shù)據(jù)丟失則重新發(fā)送。

對(duì)于典型的工業(yè)狀態(tài)監(jiān)控場(chǎng)景而言,這種方案更為實(shí)用,但設(shè)備的電池壽命大部分浪費(fèi)在發(fā)送每天變化不大的振動(dòng)信息上。

在邊緣執(zhí)行分析

為了延長(zhǎng)電池續(xù)航時(shí)間,在邊緣執(zhí)行一些分析會(huì)更好,確保僅相關(guān)數(shù)據(jù)才通過(guò)無(wú)線電鏈路傳輸。當(dāng)然,這只有在邊緣產(chǎn)生有意義洞察所需的功耗明顯低于通過(guò)BLE發(fā)送數(shù)據(jù)所需的功耗時(shí)才是可行的(有關(guān)這方面的更多信息,請(qǐng)參閱本系列文章的第1部分)。

在圖8中可以看到,加速度計(jì)與兩個(gè)微控制器都有直接數(shù)據(jù)路徑。在我們于邊緣執(zhí)行某些分析的用例中,AI微控制器可以直接從加速度計(jì)讀取振動(dòng)數(shù)據(jù),并使用板載AI模型進(jìn)行分析。

1756784269723728.png

圖11 Voyager中心/外圍設(shè)備架構(gòu)

設(shè)計(jì)中心設(shè)備用戶(hù)界面

BLE外圍設(shè)備與Voyager外圍設(shè)備同步設(shè)計(jì),因此兩者的交互方式存在非常大的靈活性。一般來(lái)說(shuō),中心設(shè)備需要掃描并連接Voyager外圍設(shè)備,然后發(fā)送字符串命令并處理其返回值。初次連接后,所有BLE命令都直接發(fā)送到外圍設(shè)備的自定義服務(wù)進(jìn)行解析。在本例中,中心設(shè)備是Windows PC上的圖形用戶(hù)界面(GUI),用Python編寫(xiě),并利用BLE外圍設(shè)備庫(kù)(BLEak)發(fā)出標(biāo)準(zhǔn)BLE命令。BLEak建立在Python的asyncio標(biāo)準(zhǔn)庫(kù)之上,允許BLE命令異步運(yùn)行,確保用戶(hù)界面保持可交互狀態(tài)且不會(huì)凍結(jié)。

當(dāng)GUI成功連接到外圍設(shè)備時(shí),系統(tǒng)會(huì)自動(dòng)向Voyager的單個(gè)自定義特性發(fā)出通知命令,如圖11所示。這樣可確保對(duì)此特性的任何更新都會(huì)報(bào)告給中心設(shè)備。這一點(diǎn)很重要,因?yàn)閂oyager會(huì)對(duì)后續(xù)命令給出應(yīng)答或響應(yīng),表明這些命令是否已成功執(zhí)行。

如何請(qǐng)求數(shù)據(jù)?

始終使用簡(jiǎn)單的字符串命令來(lái)請(qǐng)求數(shù)據(jù)。例如,中心設(shè)備可以發(fā)出setphy 2命令,指示Voyager使用其2M無(wú)線電。這會(huì)提升數(shù)據(jù)通信速度,但覆蓋范圍和可靠性會(huì)受到一定的影響。外圍設(shè)備會(huì)解析此命令以確保其有效,然后以輸入值2調(diào)用自己的內(nèi)部setphy函數(shù),從而切換所用的無(wú)線電。如果Voyager成功執(zhí)行了此函數(shù),則Return: OK命令會(huì)被發(fā)回中心設(shè)備并顯示給用戶(hù)。

解譯加速度計(jì)數(shù)據(jù)

接收數(shù)據(jù)之前,GUI用戶(hù)可以選擇使用setadxlcfg命令配置所連Voyager的加速度計(jì)。一旦外圍設(shè)備發(fā)出啟動(dòng)命令,加速度計(jì)數(shù)據(jù)就會(huì)從外圍設(shè)備流向中心設(shè)備。默認(rèn)情況下,中心設(shè)備和外圍設(shè)備以實(shí)時(shí)數(shù)據(jù)模式運(yùn)行,這對(duì)于演示目的很有用。

在外圍設(shè)備端,內(nèi)部先進(jìn)先出(FIFO)緩沖區(qū)按照用戶(hù)指定的采樣速率填充新數(shù)據(jù)。一旦FIFO填滿(mǎn),系統(tǒng)就會(huì)在Voyager自定義服務(wù)上設(shè)置一個(gè)標(biāo)志,通知外圍設(shè)備有新數(shù)據(jù)可用。然后,數(shù)據(jù)被發(fā)送到外圍設(shè)備并進(jìn)行解析,轉(zhuǎn)化為x、y、z三個(gè)軸的加速度數(shù)據(jù)的格式化數(shù)組。數(shù)據(jù)始終以圖形方式顯示,用戶(hù)可以選擇“保存數(shù)據(jù)”選項(xiàng),以將數(shù)據(jù)保存到csv文件供以后分析。

1756784318445964.png

圖12 Voyager4中心設(shè)備GUI繪圖數(shù)據(jù)

AI算法設(shè)計(jì)

本項(xiàng)目的目標(biāo)是檢測(cè)電機(jī)的健康狀況何時(shí)開(kāi)始下降。邊緣AI分析旨在通過(guò)分析音頻、溫度、振動(dòng)等一種或多種輸入數(shù)據(jù),生成電機(jī)健康狀況的指標(biāo)或特征,從而取代或補(bǔ)充人類(lèi)數(shù)據(jù)分析。振動(dòng)分析是當(dāng)今狀態(tài)監(jiān)控應(yīng)用中常用的技術(shù)手段。

輸入

許多邊緣AI處理器往往非常耗電,這與無(wú)線狀態(tài)監(jiān)控解決方案的目標(biāo)之一(即延長(zhǎng)續(xù)航時(shí)間)背道而馳。MAX78000(如前所述)能夠快速、低功耗地進(jìn)行AI推理,其總功耗比使用無(wú)線BLE還要低。但是,在使用低功耗邊緣AI處理器時(shí),應(yīng)注意神經(jīng)網(wǎng)絡(luò)的規(guī)模不能超出電路板的規(guī)格。該板搭載一個(gè)512 kB數(shù)據(jù)內(nèi)存的CNN加速器。它主要用于目標(biāo)檢測(cè)、音頻處理和時(shí)間序列數(shù)據(jù)處理。

我們解決方案可用的數(shù)據(jù)是加速度時(shí)間序列。為了盡量提高所訓(xùn)練算法的性能,我們嘗試了幾種預(yù)處理方法,以確定哪種方法對(duì)準(zhǔn)確度影響最大。本系列文章的第3部分將對(duì)此加以詳細(xì)討論。

訓(xùn)練

在線資源“Analog Devices AI”GitHub詳細(xì)說(shuō)明了訓(xùn)練神經(jīng)網(wǎng)絡(luò)并將其部署到MAX78000的過(guò)程。一般來(lái)說(shuō),首先使用PyTorch?或TensorFlow?等常規(guī)工具集在主機(jī)PC上創(chuàng)建模型。此模型需要訓(xùn)練數(shù)據(jù),這些數(shù)據(jù)必須由目標(biāo)設(shè)備保存并傳輸?shù)絇C。輸入的一部分成為訓(xùn)練集,專(zhuān)門(mén)用于訓(xùn)練模型。還有一部分成為驗(yàn)證集,用于觀察損失函數(shù)(網(wǎng)絡(luò)性能的衡量標(biāo)準(zhǔn))在訓(xùn)練期間如何變化。

根據(jù)所用的模型類(lèi)型,可能需要不同類(lèi)型和數(shù)量的數(shù)據(jù)。要識(shí)別特定的電機(jī)故障,您需要使用標(biāo)注好的數(shù)據(jù)訓(xùn)練模型。這些數(shù)據(jù)不僅要包含各種故障狀態(tài)下的振動(dòng)信息,還要包含無(wú)故障的正常狀態(tài)下的振動(dòng)數(shù)據(jù)作為對(duì)比。

1756784354595418.png

圖13 Voyager健康狀況訓(xùn)練數(shù)據(jù)

Voyager最初采用自動(dòng)編碼器類(lèi)型的神經(jīng)網(wǎng)絡(luò)開(kāi)發(fā)。自動(dòng)編碼器無(wú)需借助數(shù)據(jù)標(biāo)簽就能學(xué)會(huì)如何對(duì)數(shù)據(jù)進(jìn)行分類(lèi)。雖然這種類(lèi)型的模型不適合復(fù)雜的故障分類(lèi),但它可以快速完成訓(xùn)練,并且僅需使用客戶(hù)已有的數(shù)據(jù),例如正常運(yùn)行電機(jī)數(shù)據(jù)。

訓(xùn)練所需的理想數(shù)據(jù)量因具體情況而異。關(guān)鍵在于擁有足夠的數(shù)據(jù)來(lái)學(xué)習(xí)正常運(yùn)行電機(jī)數(shù)據(jù)的一般趨勢(shì),同時(shí)避免過(guò)擬合。Voyager部署的默認(rèn)示例僅使用了30秒的正常運(yùn)行加速度計(jì)數(shù)據(jù)進(jìn)行訓(xùn)練。同時(shí)保存了同樣數(shù)量的存在不平衡故障的數(shù)據(jù)以供驗(yàn)證。兩個(gè)數(shù)據(jù)集均通過(guò)Python GUI直接保存到訓(xùn)練PC中。

1756784374753031.png

圖14 Voyager故障測(cè)試數(shù)據(jù)

輸入數(shù)據(jù)用于訓(xùn)練模型之前,經(jīng)過(guò)了預(yù)處理。然后,訓(xùn)練腳本按順序運(yùn)行幾次訓(xùn)練迭代,并挑選出表現(xiàn)突出的模型。為了測(cè)試目的,需要一些故障輸入數(shù)據(jù)。基于正常運(yùn)行數(shù)據(jù)訓(xùn)練模型后,務(wù)必先用故障數(shù)據(jù)進(jìn)行測(cè)試,這樣才能確保結(jié)果的可靠性。

如何部署算法?

模型訓(xùn)練完成后,必須使用公司的在線工具集進(jìn)行量化和合成。量化步驟通過(guò)舍入或截?cái)?,將所生成模型的?quán)重映射到更小的數(shù)值區(qū)間集合,從而減少模型存儲(chǔ)所需的內(nèi)存。這是將神經(jīng)網(wǎng)絡(luò)部署到較小邊緣設(shè)備的標(biāo)準(zhǔn)步驟。合成步驟將量化模型轉(zhuǎn)換成微控制器可理解的C文件。

此步驟生成三個(gè)文件,隨后必須將這些文件復(fù)制到微控制器的活動(dòng)項(xiàng)目中,并在下次固件更新時(shí)加載。其中兩個(gè)文件(cnn.h和cnn.c)包含用于CNN配置的寄存器寫(xiě)入操作,以及所加載模型的其他有用功能。第三個(gè)文件(weights.h)包含訓(xùn)練(和量化)得到的模型權(quán)重。

通過(guò)有線更新(借助調(diào)試端口)或無(wú)線(OTA)更新加載新固件后,就完成了模型部署,BLE微控制器就能按需查詢(xún)模型,執(zhí)行AI推理。

部署后如何使用?

一旦部署新固件,AI微控制器就會(huì)作為有限狀態(tài)機(jī)運(yùn)行,通過(guò)SPI接受并響應(yīng)來(lái)自BLE控制器的命令。

1756784387545553.png

圖15 微控制器SPI通信

收到推理請(qǐng)求時(shí),AI微控制器會(huì)喚醒,并向加速度計(jì)請(qǐng)求數(shù)據(jù)。重要的一點(diǎn)是,它隨后會(huì)對(duì)該時(shí)間序列數(shù)據(jù)執(zhí)行與訓(xùn)練時(shí)相同的預(yù)處理步驟。最后,此預(yù)處理的輸出會(huì)送到已部署的神經(jīng)網(wǎng)絡(luò),由其報(bào)告分類(lèi)結(jié)果。

1756784432971242.png

圖16 AI推理狀態(tài)機(jī)

出于省電考慮,AI微控制器被設(shè)計(jì)成在喚醒時(shí)自動(dòng)執(zhí)行推理。因此,BLE微控制器可以?xún)H在需要進(jìn)行分析時(shí)才啟動(dòng)AI微控制器。

在典型設(shè)置中,BLE微控制器可以每天短暫地從低功耗休眠模式喚醒,請(qǐng)求對(duì)現(xiàn)有加速度計(jì)數(shù)據(jù)進(jìn)行AI推理,如果數(shù)據(jù)不滿(mǎn)足用戶(hù)設(shè)定的條件,比如模型以99%的置信度判斷數(shù)據(jù)正常,則返回休眠模式。反之,如果數(shù)據(jù)看起來(lái)異?;驘o(wú)法判斷是否正常時(shí),則BLE微控制器可以連接到附近的BLE主機(jī)并共享數(shù)據(jù)。通過(guò)這種方式,在邊緣進(jìn)行分析就無(wú)需主機(jī)系統(tǒng)理解數(shù)據(jù),從而節(jié)省了電池電量。

結(jié)語(yǔ)

本文介紹了無(wú)線振動(dòng)監(jiān)測(cè)系統(tǒng)Voyager4,它采用邊緣AI分析來(lái)提升其作為狀態(tài)監(jiān)控工具的智能水平和電池續(xù)航時(shí)間。設(shè)計(jì)有效的狀態(tài)監(jiān)控傳感器需要考慮多個(gè)方面。我們討論了Voyager4的硬件信號(hào)鏈、用于將不同系統(tǒng)元素集成在一起的固件,以及該設(shè)備作為BLE外圍設(shè)備的外觀。我們還探討了AI在Voyager中的應(yīng)用,并提供了有關(guān)如何開(kāi)發(fā)和部署邊緣AI模型的一些見(jiàn)解。

請(qǐng)繼續(xù)閱讀本系列的第3部分,了解有關(guān)Voyager板上AI算法具體實(shí)現(xiàn)的更多信息,包括幾種常見(jiàn)電機(jī)故障的分類(lèi)。

作者簡(jiǎn)介

Tom Sharkey 是公司的一名系統(tǒng)應(yīng)用工程師,在工業(yè)邊緣、運(yùn)動(dòng)和機(jī)器人部門(mén)工作。Tom于2020年獲得利默里克大學(xué)電子與計(jì)算機(jī)工程學(xué)士學(xué)位。他在狀態(tài)監(jiān)控傳感器、固件/軟件設(shè)計(jì)和電機(jī)控制領(lǐng)域有從業(yè)經(jīng)驗(yàn)。


關(guān)鍵詞: 未來(lái)工廠 傳感器 ADI

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉