【導讀】在現(xiàn)代工業(yè)智能化轉(zhuǎn)型中,融合人工智能技術(shù)的傳感器正成為關(guān)鍵推動力。其中,將邊緣與云端人工智能(AI)技術(shù)融入配備模擬和數(shù)字器件的傳感器,成為極具潛力的方向。由于AI技術(shù)手段繁多,傳感器設計人員在推進這一融合時,面臨著諸多相互制約的挑戰(zhàn),像決策延遲、網(wǎng)絡帶寬占用、功耗與電池壽命,以及適配機器的AI模型選擇等問題。前文已對基于AI的無線狀態(tài)監(jiān)控傳感器Voyager4的概況與硬件設計做了介紹,本文將深入剖析為智能邊緣傳感器構(gòu)建的軟件架構(gòu)、AI算法,以及在Voyager4上開發(fā)AI模型的全系統(tǒng)級方法。
摘要
在現(xiàn)代工業(yè)智能化轉(zhuǎn)型中,融合人工智能技術(shù)的傳感器正成為關(guān)鍵推動力。其中,將邊緣與云端人工智能(AI)技術(shù)融入配備模擬和數(shù)字器件的傳感器,成為極具潛力的方向。由于AI技術(shù)手段繁多,傳感器設計人員在推進這一融合時,面臨著諸多相互制約的挑戰(zhàn),像決策延遲、網(wǎng)絡帶寬占用、功耗與電池壽命,以及適配機器的AI模型選擇等問題。前文已對基于AI的無線狀態(tài)監(jiān)控傳感器Voyager4的概況與硬件設計做了介紹,本文將深入剖析為智能邊緣傳感器構(gòu)建的軟件架構(gòu)、AI算法,以及在Voyager4上開發(fā)AI模型的全系統(tǒng)級方法。
狀態(tài)監(jiān)控傳感器的軟件設計
Voyager4 是由ADI公司開發(fā)的無線狀態(tài)監(jiān)控平臺,開發(fā)人員借助它能夠快速將無線解決方案部署到機器或測試設置并進行測試。Voyager4等電機健康狀況監(jiān)控解決方案廣泛應用于各行各業(yè),例如機器人以及渦輪機、風扇、泵、電機等旋轉(zhuǎn)機械。
為這樣的無線邊緣設備開發(fā)軟件可能很困難。從傳感器設計的早期階段開始,開發(fā)人員就必須考慮整體系統(tǒng)架構(gòu),系統(tǒng)的各個部分如何運行,如何集成不同組件以協(xié)同工作,以及如何應用和部署有用的算法與分析工具(如神經(jīng)網(wǎng)絡)來提升邊緣智能水平。
對于此類項目,主要目標就是為邊緣設備和所連主機創(chuàng)建易于理解、可修改、可升級的軟件。Voyager4內(nèi)部有兩個微控制器和許多外設,包括傳感器、電源管理板、閃存和通信接口。開發(fā)旨在控制和整合每個部分的代碼是一項艱巨的任務。
本文希望通過展示Voyager4的開發(fā)設計過程,重點說明所采取的步驟,并提供一些具體的實現(xiàn)案例,以幫助讀者更好地了解自行開發(fā)邊緣傳感器的方法。
這是闡述Voyager4狀態(tài)監(jiān)控平臺開發(fā)的三部分系列文章的第2部分。
?本系列文章的第1部分介紹了Voyager4無線狀態(tài)監(jiān)控傳感器,包括傳感器架構(gòu)的關(guān)鍵元素、硬件設計、功耗分析和機械集成。
?本系列文章的第2部分將重點討論軟件架構(gòu)和AI算法,并說明在Voyager4上開發(fā)和部署AI模型的完整系統(tǒng)級方法。
?本系列文章的第3部分將討論AI算法的實際實現(xiàn),以及Voyager4可以檢測的各種故障,例如不平衡、未對準和軸承缺陷。
概述
這里簡要回顧了Voyager的工作原理。有關(guān)狀態(tài)監(jiān)控傳感器的更多信息,以及關(guān)于Voyager4項目的專有硬件、功耗和安全特性的詳細信息,請參閱本系列文章的第1部分。
圖1.Voyager4工作模式。
圖1顯示了Voyager4的傳感器工作原理。ADXL382 三軸8 kHz數(shù)字微機電系統(tǒng)(MEMS)加速度計用于采集振動數(shù)據(jù)。采集的數(shù)據(jù)會依據(jù)工作模式遵循不同的路徑。
路徑A是最初采用的路徑,原始振動數(shù)據(jù)直接發(fā)送到MAX32666 低功耗藍牙?(BLE)處理器。然后,數(shù)據(jù)可以通過無線BLE或USB發(fā)送給用戶。路徑B是一種替代工作模式,可以在利用Voyager采集原始數(shù)據(jù)并通過MAX78000外部工具訓練模型后使用該模式。數(shù)據(jù)不會發(fā)送給用戶,而是傳遞給邊緣AI算法來預測機器故障。路徑C和D分別代表檢測到和未檢測到電機故障的用例。如果檢測到故障,則可以通過BLE處理器向主機發(fā)送故障標志或用戶警報。如果未檢測到故障,傳感器將返回休眠模式,直到發(fā)生下一次檢測事件。
該架構(gòu)是Voyager4軟件和AI算法開發(fā)的重點。為了從系統(tǒng)層面全面理解該架構(gòu),本文將討論以下幾方面:
?BLE術(shù)語
?BLE外圍設備的實現(xiàn)
?BLE中心設備的實現(xiàn)
?AI算法的訓練和部署
BLE背景知識
設計工業(yè)邊緣傳感器時,連接是關(guān)鍵設計因素之一。根據(jù)可用或所需的功率,連接會影響覆蓋范圍、可靠性、設備整體壽命和尺寸等方方面面。如表1所示,與其他連接標準相比,BLE擁有一些特別的優(yōu)勢。對于我們的工業(yè)監(jiān)控用例而言,BLE的覆蓋范圍、功率和可靠性尤為重要。要了解BLE邊緣設備的設計和開發(fā),首先必須了解所有BLE項目都會使用的一些基本術(shù)語。
表1.無線連接標準比較
全面介紹BLE的所有特性將需要一本書的篇幅。本文將重點介紹實現(xiàn)BLE設備時需要考慮的一些關(guān)鍵概念,包括:
?軟件堆棧
?外圍設備/中心設備模型
?協(xié)議和配置文件
BLE軟件堆棧
BLE軟件堆棧是一系列標準協(xié)議的集合,設備必須支持這些協(xié)議才能被視為與BLE兼容。為了幫助讀者更輕松地理解這個術(shù)語,圖2展示了堆棧內(nèi)不同協(xié)議的分層方式。對于用戶通信和設備連接等高級功能,需要負責數(shù)據(jù)封裝和解析等基本任務的較低級協(xié)議提供支持。
幸運的是,開發(fā)人員對堆棧組成部分有基本的了解通常就足夠了,他們可以從一系列已經(jīng)實現(xiàn)各自版本堆棧的硬件設備中進行選擇。用戶只需開發(fā)應用程序中負責控制設備本身的部分,并利用預構(gòu)建的BLE堆棧即可。
圖2.BLE堆棧。
BLE堆棧通常由三個不同部分組成:應用程序、主機和控制器。應用程序定義用戶接口和用戶實現(xiàn)的具體應用代碼(振動監(jiān)測)。主機是指BLE軟件堆棧的上層,它控制配置文件和協(xié)議等高級功能??刂破魇侵窧LE堆棧的底層,它處理鏈路層和物理層,如2.4 GHz無線電本身。此項目選擇使用MAX32666 BLE微控制器。這是一款低功耗Arm? Cortex?-M4微控制器,搭載低功耗藍牙5無線電,支持遠距離(4×)通信和高數(shù)據(jù)吞吐速率(2 Mbps)。
外圍設備/中心設備模型
根據(jù)BLE設備的作用,可以將其定義為外圍設備或中心設備。數(shù)據(jù)可以雙向流動,兩者之間最大的區(qū)別之一是其連接方式。在連接之前,外圍設備會通告其能否連接,中心設備則掃描可供連接的外圍設備并發(fā)起連接。數(shù)據(jù)可以在外圍設備和中心設備之間雙向流動,但中心設備被視為主機。舊版BLE文獻也將外圍設備和中心設備分別稱為服務器和客戶端。
圖3.外圍設備/中心設備1:1模型。
在我們的系統(tǒng)中,將Voyager平臺定義為外圍設備,它收集數(shù)據(jù)并將其發(fā)送到中心設備。對于這個項目,為了簡化開發(fā)和便于理解,我們首先研究最簡單的情形:單個中心設備與單個外圍設備交互,如圖3所示。
協(xié)議和配置文件
在藍牙的命名術(shù)語中,協(xié)議和配置文件很容易混淆。簡單地說,協(xié)議是定義設備操作的基本功能塊:數(shù)據(jù)封裝、格式、路由等。配置文件是組合在一起以支持基本工作模式的功能包。它本質(zhì)上是多種協(xié)議的組合,以實現(xiàn)某種整體功能。例如,電池服務配置文件可用于查詢設備的剩余電池電量。所有BLE設備都必須實現(xiàn)至關(guān)重要的通用訪問配置文件(GAP)和通用屬性配置文件(GATT),以便能夠連接到其他BLE設備。GAP負責處理底層各項功能:廣播、設備發(fā)現(xiàn)和連接管理。GATT負責管理設備之間的高級數(shù)據(jù)組織和傳輸,使它們能夠通過已建立的連接執(zhí)行讀寫操作。
其他配置文件是可選的附加項,用于為設備提供額外功能,例如接近配置文件(Proximity Profile)。這些配置文件包括由藍牙技術(shù)聯(lián)盟(SIG)創(chuàng)建的預定義配置文件。開發(fā)智能手表或智能電表等典型設備時,使用一組預定義的配置文件可能很有用,但對于需要實現(xiàn)大量自定義功能的設備而言,預定義配置文件可能會帶來限制。
開發(fā)人員還可以使用并非由藍牙SIG創(chuàng)建的自定義配置文件,這樣做可以提升設計靈活性,但會犧牲一定的可移植性。每個配置文件將其數(shù)據(jù)組織成服務,服務由多個特性組成,如圖4所示。
圖4.自定義命令服務器配置文件。
當中心設備和外圍設備之間形成連接時,中心設備可以請求與該外圍設備關(guān)聯(lián)的配置文件和服務。圖5顯示了中心設備發(fā)出請求時,Voyager的GAP、GATT和自定義配置文件(及其服務)的結(jié)構(gòu)。
圖5.Voyager配置文件結(jié)構(gòu)。
對于Voyager,除了基本的GAP和GATT配置文件,我們還定義了一個用作命令服務器的自定義配置文件,它處理來自中心設備的命令,并返回數(shù)據(jù)或更新外圍設備本身的配置。
固件實現(xiàn)
BLE微控制器是該系統(tǒng)的核心,它確保所有外圍傳感器和設備的數(shù)據(jù)都可以由相連的BLE中心設備檢索或修改。
設備配置
我們利用MAX32666上預先構(gòu)建的BLE堆棧,通過填充相關(guān)配置功能來構(gòu)建外圍設備的外觀。例如,在圖6中,我們?yōu)閽呙钄?shù)據(jù)發(fā)現(xiàn)數(shù)組提供了數(shù)據(jù)長度、廣播類型和一系列字符,每次Voyager上電時,外圍設備設置函數(shù)都會調(diào)用該數(shù)組。
圖6.設置Voyager掃描數(shù)據(jù)。
像這樣的BLE設備將有大量的設置需要配置,包括無線電的傳輸功率和返回數(shù)據(jù)類型。建議從所使用硬件附帶的預構(gòu)建示例入手,然后在其基礎上進行自定義修改。MAX32666提供了一個BLE數(shù)據(jù)服務器(外圍設備)的示例代碼,名為BLE DATS,Voyager項目就是以此為基礎構(gòu)建的。配置后,當中心設備掃描可用設備時,外圍設備的名稱顯示為Voyager。這也可以用于過濾搜索列表,以便中心設備僅顯示預期名稱的設備。如圖7所示,設備名稱與設備MAC地址和接收信號強度指示(RSSI)一同顯示。
圖7.中心設備中顯示的Voyager。
堆棧內(nèi)的其他配置設置控制設備其他模式的預期名稱和行為,例如制造商ID、對讀/寫命令的響應等。
圖8.Voyager4硬件框圖,采用了MAX3207E、DS28C40A、ADXL382、ADG1634、MAX32666、ADXL367、MAX78000、MAX17262、MAX20335和MAX38642。
命令服務器
Voyager4應用的中心端和外圍端是同步設計的,因此可以利用含有單個BLE服務的自定義配置文件來簡化外圍設備接口。該配置文件將負責接收來自中心設備的命令,并以加速度計數(shù)據(jù)、溫度數(shù)據(jù)和其他設備信息的形式返回響應。
對于像Voyager這樣復雜的設備,采用該單一自定義服務進行BLE通信是不同尋常的做法,但卻帶來了幾點好處。這種做法不僅支持Voyager版本之間的向后兼容性,而且增強了命令靈活性,因為通過將字符串用作Voyager外圍設備的命令輸入,應用可以根據(jù)數(shù)據(jù)的解析方式,靈活支持各種類型的命令和值。
一旦外圍設備和中心設備之間形成連接,為了建立雙向通信,中心設備就會向自定義特性發(fā)出通知命令,如圖11所示。這樣就在外圍端建立了一個通知系統(tǒng),并在中心端指定了相應的回調(diào)函數(shù)。這意味著,每當有更新的數(shù)據(jù)分配給該自定義特性時,都會通知中心設備,傳輸新數(shù)據(jù),并觸發(fā)中心設備的回調(diào)函數(shù)。
固件架構(gòu)
圖8中的硬件示意圖顯示了Voyager中包含的各種元器件以及相關(guān)的數(shù)據(jù)路徑和電源。大多數(shù)軟件開發(fā)都是在BLE微控制器上進行的,因為它作為命令中心,負責協(xié)調(diào)設備的BLE接口以及傳感器和微控制器數(shù)據(jù)的內(nèi)部管道。為了與系統(tǒng)中的不同傳感器和微控制器進行交互,我們必須開發(fā)供BLE微控制器和AI部分中討論的AI微控制器使用的設備驅(qū)動程序。實際上,這些驅(qū)動程序的開發(fā)和集成占了聯(lián)網(wǎng)邊緣傳感器所需編程工作的很大一部分。
編寫可移植代碼
開發(fā)固件時,我們將代碼劃分成幾個抽象層,以將特定微控制器的具體細節(jié)與應用程序和驅(qū)動程序代碼區(qū)分開來。這種做法很常見,通常會在應用層之外再劃分出三個明確的層次來管理不同的代碼功能,即硬件抽象層(HAL)、板支持包(BSP)和驅(qū)動程序?qū)?。此架?gòu)如圖9所示。
圖9.通用BSP-HAL架構(gòu)。
HAL為程序與不同硬件的交互提供了一種統(tǒng)一方法,程序無需知道每個設備的具體細節(jié)。BSP定義了依賴于硬件的軟件,而驅(qū)動程序?qū)佣x了各個設備的更具體細節(jié),如寄存器映射。例如,Voyager有兩個微控制器,MAX32666用于BLE連接,MAX78000 帶有一個板載卷積神經(jīng)網(wǎng)絡(CNN)加速器。如圖10所示,Voyager中的HAL定義了微控制器、SPI和I2C將使用的基本通信命令。舉例來說,任何設備驅(qū)動程序發(fā)出任何SPI通信請求時,此任務最初都會被委托給HAL中的SPI函數(shù),然后HAL查找BSP的具體信息,以便針對該微控制器使用正確的SPI命令。
對于系統(tǒng)中的每個電路板,HAL保持不變,但對于每個微控制器,BSP會更新。BSP還負責定義系統(tǒng)的通用構(gòu)建模塊,以將應用程序調(diào)用與所使用的具體設備解耦。在圖10中,BSP中的MAIN_ADXL模塊是所使用的底層加速度計的抽象塊。任何加速度計的常用命令(如初始化和讀取)都在BSP層中定義,而低級函數(shù)(如get_raw_xyz_data)則在ADXL382模塊中的驅(qū)動程序級別上定義。將驅(qū)動程序代碼從MAX32666移植到MAX78000微控制器時,加速度計代碼保持不變,因為它僅與加速度計本身有關(guān)。只有BSP層中的文件需要更新,以便能夠與新微控制器通信。
這對于系統(tǒng)中部件的更換或升級來說,也具有明顯的優(yōu)勢。在Voyager中,一個真實例子是我們決定升級所用的主加速度計。升級僅需更新驅(qū)動程序?qū)又械拇a,維護、修改和測試工作都得以簡化。
圖10.Voyager BSP HAL架構(gòu)。
數(shù)據(jù)管道和BLE中心設備
雖然溫度和電池信息可根據(jù)要求提供給BLE中心設備應用程序,但Voyager的主要作用是作為狀態(tài)監(jiān)控器和振動傳感器。關(guān)于數(shù)據(jù)吞吐速率和數(shù)據(jù)發(fā)送頻率,我們重點考慮振動傳感器和典型狀態(tài)監(jiān)控場景,比如每天進行一次短暫測量。BLE不支持高數(shù)據(jù)吞吐速率。ADXL382是一款高帶寬、3軸加速度計,在高性能模式下每秒每軸采集16,000個樣本。根據(jù)系統(tǒng)所包含的元器件,有幾種數(shù)據(jù)發(fā)送方式可供選擇。
發(fā)送實時數(shù)據(jù)
沒有任何形式的緩沖,當中心設備請求數(shù)據(jù)時,只要數(shù)據(jù)可用,便立即發(fā)送。這種方式在演示模式下很有用,可以實時展示高性能加速度計數(shù)據(jù),但是電池電量很快就會耗盡,并且由于生成數(shù)據(jù)的速度超過發(fā)送的速度,數(shù)據(jù)包會被丟棄或損壞。
從存儲器發(fā)送數(shù)據(jù)
另一種方式是將數(shù)據(jù)保存到閃存中。這樣,我們就可以安全地記錄加速度計數(shù)據(jù),而不必擔心覆蓋以前的值。保存的數(shù)據(jù)隨后會直接發(fā)送到中心設備,或在收到中心設備的命令后進行報告。該系統(tǒng)不再是實時的(數(shù)據(jù)可能是幾分鐘甚至幾天前的),因此我們還可以利用BLE對數(shù)據(jù)包的應答系統(tǒng),確保數(shù)據(jù)完整無缺地到達中心設備,如有任何數(shù)據(jù)丟失則重新發(fā)送。
對于典型的工業(yè)狀態(tài)監(jiān)控場景而言,這種方案更為實用,但設備的電池壽命大部分浪費在發(fā)送每天變化不大的振動信息上。
在邊緣執(zhí)行分析
為了延長電池續(xù)航時間,在邊緣執(zhí)行一些分析會更好,確保僅相關(guān)數(shù)據(jù)才通過無線電鏈路傳輸。當然,這只有在邊緣產(chǎn)生有意義洞察所需的功耗明顯低于通過BLE發(fā)送數(shù)據(jù)所需的功耗時才是可行的(有關(guān)這方面的更多信息,請參閱本系列文章的第1部分)。
在圖8中可以看到,加速度計與兩個微控制器都有直接數(shù)據(jù)路徑。在我們于邊緣執(zhí)行某些分析的用例中,AI微控制器可以直接從加速度計讀取振動數(shù)據(jù),并使用板載AI模型進行分析。
圖11.Voyager中心/外圍設備架構(gòu)。
設計中心設備用戶界面
BLE外圍設備與Voyager外圍設備同步設計,因此兩者的交互方式存在非常大的靈活性。一般來說,中心設備需要掃描并連接Voyager外圍設備,然后發(fā)送字符串命令并處理其返回值。初次連接后,所有BLE命令都直接發(fā)送到外圍設備的自定義服務進行解析。在本例中,中心設備是Windows PC上的圖形用戶界面(GUI),用Python編寫,并利用BLE外圍設備庫(BLEak)發(fā)出標準BLE命令。BLEak建立在Python的asyncio標準庫之上,允許BLE命令異步運行,確保用戶界面保持可交互狀態(tài)且不會凍結(jié)。
當GUI成功連接到外圍設備時,系統(tǒng)會自動向Voyager的單個自定義特性發(fā)出通知命令,如圖11所示。這樣可確保對此特性的任何更新都會報告給中心設備。這一點很重要,因為Voyager會對后續(xù)命令給出應答或響應,表明這些命令是否已成功執(zhí)行。
如何請求數(shù)據(jù)?
始終使用簡單的字符串命令來請求數(shù)據(jù)。例如,中心設備可以發(fā)出setphy 2命令,指示Voyager使用其2M無線電。這會提升數(shù)據(jù)通信速度,但覆蓋范圍和可靠性會受到一定的影響。外圍設備會解析此命令以確保其有效,然后以輸入值2調(diào)用自己的內(nèi)部setphy函數(shù),從而切換所用的無線電。如果Voyager成功執(zhí)行了此函數(shù),則Return: OK命令會被發(fā)回中心設備并顯示給用戶。
解譯加速度計數(shù)據(jù)
接收數(shù)據(jù)之前,GUI用戶可以選擇使用setadxlcfg命令配置所連Voyager的加速度計。一旦外圍設備發(fā)出啟動命令,加速度計數(shù)據(jù)就會從外圍設備流向中心設備。默認情況下,中心設備和外圍設備以實時數(shù)據(jù)模式運行,這對于演示目的很有用。
在外圍設備端,內(nèi)部先進先出(FIFO)緩沖區(qū)按照用戶指定的采樣速率填充新數(shù)據(jù)。一旦FIFO填滿,系統(tǒng)就會在Voyager自定義服務上設置一個標志,通知外圍設備有新數(shù)據(jù)可用。然后,數(shù)據(jù)被發(fā)送到外圍設備并進行解析,轉(zhuǎn)化為x、y、z三個軸的加速度數(shù)據(jù)的格式化數(shù)組。數(shù)據(jù)始終以圖形方式顯示,用戶可以選擇“保存數(shù)據(jù)”選項,以將數(shù)據(jù)保存到csv文件供以后分析。
圖12.Voyager4中心設備GUI繪圖數(shù)據(jù)。
AI算法設計
本項目的目標是檢測電機的健康狀況何時開始下降。邊緣AI分析旨在通過分析音頻、溫度、振動等一種或多種輸入數(shù)據(jù),生成電機健康狀況的指標或特征,從而取代或補充人類數(shù)據(jù)分析。振動分析是當今狀態(tài)監(jiān)控應用中常用的技術(shù)手段。
輸入
許多邊緣AI處理器往往非常耗電,這與無線狀態(tài)監(jiān)控解決方案的目標之一(即延長續(xù)航時間)背道而馳。MAX78000(如前所述)能夠快速、低功耗地進行AI推理,其總功耗比使用無線BLE還要低。但是,在使用低功耗邊緣AI處理器時,應注意神經(jīng)網(wǎng)絡的規(guī)模不能超出電路板的規(guī)格。該板搭載一個512 kB數(shù)據(jù)內(nèi)存的CNN加速器。它主要用于目標檢測、音頻處理和時間序列數(shù)據(jù)處理。
我們解決方案可用的數(shù)據(jù)是加速度時間序列。為了盡量提高所訓練算法的性能,我們嘗試了幾種預處理方法,以確定哪種方法對準確度影響最大。本系列文章的第3部分將對此加以詳細討論。
訓練
在線資源“Analog Devices AI”GitHub詳細說明了訓練神經(jīng)網(wǎng)絡并將其部署到MAX78000的過程。一般來說,首先使用PyTorch?或TensorFlow?等常規(guī)工具集在主機PC上創(chuàng)建模型。此模型需要訓練數(shù)據(jù),這些數(shù)據(jù)必須由目標設備保存并傳輸?shù)絇C。輸入的一部分成為訓練集,專門用于訓練模型。還有一部分成為驗證集,用于觀察損失函數(shù)(網(wǎng)絡性能的衡量標準)在訓練期間如何變化。
根據(jù)所用的模型類型,可能需要不同類型和數(shù)量的數(shù)據(jù)。要識別特定的電機故障,您需要使用標注好的數(shù)據(jù)訓練模型。這些數(shù)據(jù)不僅要包含各種故障狀態(tài)下的振動信息,還要包含無故障的正常狀態(tài)下的振動數(shù)據(jù)作為對比。
圖13.Voyager健康狀況訓練數(shù)據(jù)。
Voyager最初采用自動編碼器類型的神經(jīng)網(wǎng)絡開發(fā)。自動編碼器無需借助數(shù)據(jù)標簽就能學會如何對數(shù)據(jù)進行分類。雖然這種類型的模型不適合復雜的故障分類,但它可以快速完成訓練,并且僅需使用客戶已有的數(shù)據(jù),例如正常運行電機數(shù)據(jù)。
訓練所需的理想數(shù)據(jù)量因具體情況而異。關(guān)鍵在于擁有足夠的數(shù)據(jù)來學習正常運行電機數(shù)據(jù)的一般趨勢,同時避免過擬合。Voyager部署的默認示例僅使用了30秒的正常運行加速度計數(shù)據(jù)進行訓練。同時保存了同樣數(shù)量的存在不平衡故障的數(shù)據(jù)以供驗證。兩個數(shù)據(jù)集均通過Python GUI直接保存到訓練PC中。
圖14.Voyager故障測試數(shù)據(jù)。
輸入數(shù)據(jù)用于訓練模型之前,經(jīng)過了預處理。然后,訓練腳本按順序運行幾次訓練迭代,并挑選出表現(xiàn)突出的模型。為了測試目的,需要一些故障輸入數(shù)據(jù)?;谡_\行數(shù)據(jù)訓練模型后,務必先用故障數(shù)據(jù)進行測試,這樣才能確保結(jié)果的可靠性。
如何部署算法?
模型訓練完成后,必須使用ADI公司的在線工具集進行量化和合成。量化步驟通過舍入或截斷,將所生成模型的權(quán)重映射到更小的數(shù)值區(qū)間集合,從而減少模型存儲所需的內(nèi)存。這是將神經(jīng)網(wǎng)絡部署到較小邊緣設備的標準步驟。合成步驟將量化模型轉(zhuǎn)換成微控制器可理解的C文件。
此步驟生成三個文件,隨后必須將這些文件復制到微控制器的活動項目中,并在下次固件更新時加載。其中兩個文件(cnn.h和cnn.c)包含用于CNN配置的寄存器寫入操作,以及所加載模型的其他有用功能。第三個文件(weights.h)包含訓練(和量化)得到的模型權(quán)重。
通過有線更新(借助調(diào)試端口)或無線(OTA)更新加載新固件后,就完成了模型部署,BLE微控制器就能按需查詢模型,執(zhí)行AI推理。
部署后如何使用?
一旦部署新固件,AI微控制器就會作為有限狀態(tài)機運行,通過SPI接受并響應來自BLE控制器的命令。
圖15.微控制器SPI通信。
收到推理請求時,AI微控制器會喚醒,并向加速度計請求數(shù)據(jù)。重要的一點是,它隨后會對該時間序列數(shù)據(jù)執(zhí)行與訓練時相同的預處理步驟。最后,此預處理的輸出會送到已部署的神經(jīng)網(wǎng)絡,由其報告分類結(jié)果。
圖16.AI推理狀態(tài)機。
出于省電考慮,AI微控制器被設計成在喚醒時自動執(zhí)行推理。因此,BLE微控制器可以僅在需要進行分析時才啟動AI微控制器。
在典型設置中,BLE微控制器可以每天短暫地從低功耗休眠模式喚醒,請求對現(xiàn)有加速度計數(shù)據(jù)進行AI推理,如果數(shù)據(jù)不滿足用戶設定的條件,比如模型以99%的置信度判斷數(shù)據(jù)正常,則返回休眠模式。反之,如果數(shù)據(jù)看起來異?;驘o法判斷是否正常時,則BLE微控制器可以連接到附近的BLE主機并共享數(shù)據(jù)。通過這種方式,在邊緣進行分析就無需主機系統(tǒng)理解數(shù)據(jù),從而節(jié)省了電池電量。
結(jié)語
本文介紹了無線振動監(jiān)測系統(tǒng)Voyager4,它采用邊緣AI分析來提升其作為狀態(tài)監(jiān)控工具的智能水平和電池續(xù)航時間。設計有效的狀態(tài)監(jiān)控傳感器需要考慮多個方面。我們討論了Voyager4的硬件信號鏈、用于將不同系統(tǒng)元素集成在一起的固件,以及該設備作為BLE外圍設備的外觀。我們還探討了AI在Voyager中的應用,并提供了有關(guān)如何開發(fā)和部署邊緣AI模型的一些見解。
推薦閱讀:
超越傳統(tǒng):空心線圈如何重塑RF與自動化領(lǐng)域——工程師必備選型指南
貿(mào)澤電子攜手英飛凌:海量元器件助力工程師“加速跑”
深度解析通訊變壓器的核心優(yōu)勢、應用生態(tài)與原廠選型成本戰(zhàn)略