99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

3天內(nèi)不再提示

CN0549狀態(tài)監(jiān)測平臺(tái)及如何利用進(jìn)行應(yīng)用程序開發(fā)

星星科技指導(dǎo)員 ? 來源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Travis Collins ? 2022-06-20 16:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在本文中,我們將重點(diǎn)介紹可用于CN0549不同組件的軟件生態(tài)系統(tǒng)、數(shù)據(jù)分析工具和軟件集成,以及工程師和數(shù)據(jù)科學(xué)家如何利用它們進(jìn)行應(yīng)用程序開發(fā)。這是關(guān)于使用 CN0549 開發(fā)平臺(tái)的基于狀態(tài)的監(jiān)控 (CbM) 和預(yù)測性維護(hù) (PdM) 應(yīng)用程序的兩部分系列文章中的第二篇。新平臺(tái)旨在加速定制 CbM 解決方案從原型到生產(chǎn)的開發(fā)流程。第 1 部分側(cè)重于 MEMS 振動(dòng)技術(shù)和捕獲用于 CbM 應(yīng)用的高質(zhì)量振動(dòng)數(shù)據(jù)。

生產(chǎn)之旅以及如何更快地做到這一點(diǎn)!

在構(gòu)建狀態(tài)監(jiān)測解決方案時(shí),它們必須包含傳感器、本地處理、連接以及某種形式的軟件或固件,以使其全部發(fā)揮作用。CN0549 通過為硬件和軟件方面提供可定制的選項(xiàng)來應(yīng)對所有這些挑戰(zhàn),因此工程師和軟件開發(fā)人員可以在使用通用工具和基礎(chǔ)設(shè)施的同時(shí)在其應(yīng)用程序中進(jìn)行設(shè)計(jì)權(quán)衡。例如,如果您想選擇一個(gè)特定的微控制器FPGA 進(jìn)行處理,更喜歡使用 Python 編碼,或者有一個(gè)您想要重用的最喜歡的傳感器。這使得 CN0549 成為那些希望構(gòu)建優(yōu)化的 CbM 解決方案的強(qiáng)大平臺(tái),可以根據(jù)他們的需求定制處理、功率、性能、軟件和數(shù)據(jù)分析。

嵌入式系統(tǒng)開發(fā)流程

讓我們考慮一個(gè)嵌入式系統(tǒng)從概念到生產(chǎn)的通用開發(fā)流程。圖 1 提供了抽象流的頂層概覽。

圖 1 所示設(shè)計(jì)過程的第一步是數(shù)據(jù)研究階段。在這個(gè)階段,用戶將他們的需求映射到他們的應(yīng)用程序所需的不同硬件和軟件需求。從硬件角度來看,這些參數(shù)可能是沖擊容限、模擬信號(hào)帶寬或測量范圍等參數(shù)。在考慮軟件要求時(shí),樣本數(shù)量、采樣率、頻譜、過采樣和數(shù)字濾波是 CbM 應(yīng)用的重要參數(shù)。該平臺(tái)非常有用且靈活,允許研究人員使用不同的傳感器組合并根據(jù)自己的應(yīng)用需求調(diào)整數(shù)據(jù)采集參數(shù)。

數(shù)據(jù)研究階段之后是算法開發(fā)階段,在此階段證明了系統(tǒng)的應(yīng)用或使用。這通常需要在最終移植到嵌入式系統(tǒng)的高級工具中開發(fā)模型或設(shè)計(jì)算法。然而,在優(yōu)化設(shè)計(jì)之前,必須使用真實(shí)數(shù)據(jù)和硬件在環(huán)進(jìn)行驗(yàn)證,而這正是 CN0549 真正擅長的地方,因?yàn)樗粌H提供與流行的高級分析工具的直接集成,而且還允許硬件在循環(huán)驗(yàn)證。

一旦設(shè)計(jì)得到驗(yàn)證,優(yōu)化和嵌入必要的軟件組件的工作就開始了。在嵌入式設(shè)計(jì)細(xì)化階段,這可能需要重新實(shí)現(xiàn)某些算法或軟件層才能在 FPGA 或資源受限的微控制器中工作。在將設(shè)計(jì)移植到原型或接近生產(chǎn)硬件以進(jìn)行最終驗(yàn)證時(shí),必須非常小心地持續(xù)驗(yàn)證設(shè)計(jì)。

pYYBAGKwNO6AK-JWAACmaHIjkmI044.png

圖 1. 嵌入式系統(tǒng)開發(fā)流程。

最后,我們到達(dá)了生產(chǎn)階段,這可能與設(shè)計(jì)開始使用的原始開發(fā)環(huán)境幾乎沒有相似之處,但仍然需要滿足相同的要求。由于最終系統(tǒng)可能已經(jīng)遠(yuǎn)離原始研究系統(tǒng),因此運(yùn)行相同的代碼或測試可能是不可能的或極其困難的。這可能會(huì)導(dǎo)致生產(chǎn)測試問題和單元故障,并且可能需要額外的時(shí)間和金錢投資來進(jìn)行補(bǔ)救。

通過最大限度地重復(fù)使用來降低風(fēng)險(xiǎn)

在設(shè)計(jì)過程中降低風(fēng)險(xiǎn)的最簡單方法之一是在每個(gè)階段重復(fù)使用盡可能多的硬件和軟件組件,CN0549 提供了許多開箱即用的資源,供開發(fā)人員在開發(fā)流程的所有階段直接利用。CN0549 解決方案提供原理圖和電路板布局文件、用于優(yōu)化和全功能環(huán)境的開放軟件堆棧,以及用于 MATLAB? 和 Python 等高級工具的集成選項(xiàng)。最終用戶可以利用 ADI 的經(jīng)過驗(yàn)證的組件,并在從研究到生產(chǎn)的過程中選擇他們想要維護(hù)或更改的組件。這也使最終用戶能夠?qū)W⒂谒惴ㄩ_發(fā)和系統(tǒng)集成,而不是使用 ADI 零件的原理圖輸入或基礎(chǔ)軟件開發(fā)。利用硬件模塊和重用軟件層,

軟件開發(fā)流程和過程

CN0549 在開發(fā)過程中為工程師提供了多種選擇,允許他們使用常用語言(包括 C 或 C++)工作,同時(shí)使用他們熟悉的數(shù)據(jù)分析工具,例如 MATLAB 或 Python。這主要是通過利用和構(gòu)建開放標(biāo)準(zhǔn)以及支持來自不同制造商的多個(gè)嵌入式平臺(tái)的現(xiàn)有解決方案來完成的。

CN0549 系統(tǒng)堆棧

圖 2 所示的系統(tǒng)堆棧提供了構(gòu)成 CN0549 系統(tǒng)的不同組件的基本概覽。左上角的深藍(lán)色方框是傳感器和數(shù)據(jù)采集 (DAQ) 板,而淺藍(lán)色和紫色方框勾勒出用于數(shù)據(jù)處理的 FPGA 分區(qū)。該平臺(tái)直接支持英特爾 DE10-Nano 和 Xilinx? CoraZ7-07s,涵蓋兩大主要 FPGA 供應(yīng)商。綠色框表示與主機(jī) PC 的連接。這提供了從硬件到用于算法開發(fā)的高級數(shù)據(jù)分析工具的直接數(shù)據(jù)訪問。

所有的 HDL 代碼都是開源的,它允許開發(fā)人員進(jìn)行修改以將數(shù)字信號(hào)處理 (DSP) 插入可編程邏輯 (PL) 內(nèi)的數(shù)據(jù)流中,如圖 2 所示。這可以是從濾波器到狀態(tài)機(jī)的任何東西,甚至是機(jī)器學(xué)習(xí),根據(jù)你的系統(tǒng)劃分,這一步也可以在用戶空間或者應(yīng)用層完成。由于代碼是公開可用的,它可以移植到來自不同制造商的其他 FPGA 或移植到不同的處理器系列,具體取決于您的最終應(yīng)用需求。

pYYBAGKwNPaAMF1yAAG_cP_7dfk405.png

圖 2. CN0549 平臺(tái)的系統(tǒng)堆棧。

Arm? 處理器內(nèi)部有兩個(gè)軟件選項(xiàng)。它們的使用將取決于用例,并且大多數(shù)開發(fā)人員都可能會(huì)使用它們:

Linux?:為內(nèi)核中的輸入輸出工業(yè) (IIO) 框架內(nèi)構(gòu)建的 DAQ shield 提供內(nèi)核驅(qū)動(dòng)程序。這與一個(gè)名為 Kuiper Linux 的完整嵌入式 Linux 發(fā)行版相結(jié)合,該發(fā)行版在 Arm 核心用戶空間中運(yùn)行并基于 Raspberry Pi OS。

操作系統(tǒng):裸機(jī)項(xiàng)目提供了與 Linux 內(nèi)核中使用的相同驅(qū)動(dòng)程序,可與 Xilinx 或 IntelSDK 一起使用。這也可以作為替代實(shí)現(xiàn)方式實(shí)現(xiàn)到實(shí)時(shí)操作系統(tǒng) (RTOS) 環(huán)境中。

建議開發(fā)人員從 Linux 開始學(xué)習(xí)并開始使用他們的系統(tǒng)進(jìn)行開發(fā),因?yàn)樗峁┝俗疃嗟墓ぞ?。Linux 還提供了大量的軟件包和驅(qū)動(dòng)程序,為理想的開發(fā)環(huán)境創(chuàng)造了條件。一旦系統(tǒng)設(shè)計(jì)穩(wěn)定并準(zhǔn)備好進(jìn)行優(yōu)化,通常會(huì)切換到無操作系統(tǒng)并僅發(fā)布必要的軟件。但是,這高度依賴于應(yīng)用程序,由于它們提供的靈活性,許多人將發(fā)布完整的 Linux 系統(tǒng)。

與可編程邏輯的 HDL 一樣,整個(gè)內(nèi)核源代碼、Kuiper Linux 映像和 No-OS 項(xiàng)目都是完全開源的,最終用戶可以根據(jù)需要修改任何組件。如果需要,這些代碼庫也可以移植到不同的處理器系統(tǒng)或不同的運(yùn)行時(shí)環(huán)境。

圖 2 的最后一個(gè)組件是與主機(jī) PC 的連接,如綠色框所示。在運(yùn)行系統(tǒng)時(shí),可以配置設(shè)備,并將數(shù)據(jù)流式傳輸?shù)街鳈C(jī)系統(tǒng)進(jìn)行分析,開發(fā)人員將在主機(jī)上利用 MATLAB 或 TensorFlow 等標(biāo)準(zhǔn)工具創(chuàng)建算法。然后最終將這些算法轉(zhuǎn)移到嵌入式目標(biāo),允許它們使用本地處理能力進(jìn)行更快的算法開發(fā)迭代。

訪問 CbM 數(shù)據(jù)——入門

使用 Arm 處理器和 PL 通常發(fā)生在設(shè)計(jì)流程的更進(jìn)一步階段,此時(shí)系統(tǒng)正在針對部署進(jìn)行優(yōu)化。因此,開發(fā)人員最初的一個(gè)常見入口點(diǎn)將涉及從工作站遠(yuǎn)程連接到嵌入式系統(tǒng)。在嵌入式系統(tǒng)上運(yùn)行 Linux 時(shí),由于基礎(chǔ)架構(gòu)的設(shè)計(jì)方式,在工作站上遠(yuǎn)程或本地運(yùn)行代碼是一個(gè)相對透明的過程。這主要是由于一個(gè)名為libIIO的開放庫。 libIIO 是一個(gè)接口庫,它允許對內(nèi)核中 Linux IIO 框架內(nèi)構(gòu)建的不同設(shè)備驅(qū)動(dòng)程序進(jìn)行簡化且一致的訪問模型。該庫是 CbM 平臺(tái)使用如此靈活并提供數(shù)據(jù)流和設(shè)備控制功能的核心。

libIIO 本身分為兩個(gè)主要組件:

libIIO 庫,這是一個(gè)用于訪問不同 IIO 驅(qū)動(dòng)程序?qū)傩曰蚝瘮?shù)的 C 庫。這包括流入和流出 ADC、DAC 和傳感器等設(shè)備的數(shù)據(jù)流。

稱為 iiod 的 IIO 守護(hù)進(jìn)程負(fù)責(zé)管理 libIIO 庫或使用該庫的客戶端與實(shí)際驅(qū)動(dòng)程序的內(nèi)核接口之間的訪問。

libIIO 和 iiod 本身是由不同的組件編寫的,這些組件允許以不同的方法訪問所謂的后端中的驅(qū)動(dòng)程序。后端允許本地和遠(yuǎn)程用戶對 libIIO 進(jìn)行控制和數(shù)據(jù)流,并且由于它們是組件化的,因此可以將新的后端添加到系統(tǒng)中。目前,libIIO 支持四個(gè)后端:

本地:允許訪問連接到同一臺(tái)機(jī)器的硬件的本地可訪問驅(qū)動(dòng)程序。

USB:利用 libusb,此后端允許通過 USB 鏈接遠(yuǎn)程控制驅(qū)動(dòng)程序。

串行:為通過串行連接連接的板提供更通用的接口。UART 是最常見的用途。

網(wǎng)絡(luò):最常用的遠(yuǎn)程后端,它是基于 IP 的,用于跨網(wǎng)絡(luò)訪問驅(qū)動(dòng)程序。

pYYBAGKwNQOAA3CXAAFse2Mvnjo869.png

圖 3. 使用網(wǎng)絡(luò)后端的 libIIO 系統(tǒng)概要。

圖 3 提供了如何使用 libIIO 的組件以及它們?nèi)绾芜m應(yīng)整個(gè)系統(tǒng)的系統(tǒng)級概覽。圖的左側(cè)是嵌入式系統(tǒng),它安裝了 libIIO 庫并運(yùn)行 iiod 守護(hù)進(jìn)程。從嵌入式系統(tǒng),用戶可以訪問本地后端,甚至網(wǎng)絡(luò)后端。在他們的代碼中,他們可以通過單行更改在兩者之間切換以解決任一后端。不需要對目標(biāo)代碼進(jìn)行其他更改。

poYBAGKwNRSAd9ZvAACPzdFEuvk241.png

圖 4. libIIO 遠(yuǎn)程與本地示例。

圖 3 的左側(cè)代表一個(gè)遠(yuǎn)程主機(jī),它可以運(yùn)行任何操作系統(tǒng)。有適用于 Windows、macOS、Linux 和 BSD 的官方軟件包。圖中使用了網(wǎng)絡(luò)或基于 IP 的后端,但這也可以是串行、USB 或 PCIe 連接。從用戶的角度來看,libIIO 可以從 C 庫本身或許多與其他語言的可用綁定中得到利用,包括:Python、C#、Rust、MATLAB 和 Node.js。為需要與其應(yīng)用程序中的不同驅(qū)動(dòng)程序交互的用戶提供大量選擇。

應(yīng)用程序和工具

在開始使用新設(shè)備時(shí),一般不建議直接使用 libIIO。因此,存在許多構(gòu)建在 libIIO 之上的更高級別的應(yīng)用程序,它們?yōu)槿魏?IIO 設(shè)備從命令行和 GUI 格式提供基本的可配置性。這些分別是 IIO 工具和 IIO 示波器。

IIO 工具是一組與 libIIO 一起提供的命令行工具,可用于通過腳本進(jìn)行低級調(diào)試和自動(dòng)任務(wù)。例如,對于實(shí)驗(yàn)室測試,將平臺(tái)設(shè)置為不同的采樣率模式并收集一些數(shù)據(jù)可能很有用。這可以通過幾行 bash 或通過利用 IIO 工具的批處理腳本輕松完成。圖 5 顯示了一個(gè)簡單的示例,可以在本地或遠(yuǎn)程運(yùn)行以修改采樣率和更改 ADC 的輸入共模。該示例使用了一個(gè)名為 iio_attr 的 IIO 工具,它允許用戶輕松更新設(shè)備配置。

poYBAGKwNSCAB-UWAADCA0wgW-A555.png

圖 5. IIO 工具的 iio_attr 部分的示例用法。

但是,用戶最常見的入口點(diǎn)是 GUI 應(yīng)用程序 IIO 示波器,通常稱為 OSC。OSC 與 IIO 工具一樣,被設(shè)計(jì)成通用的,可以控制任何 IIO 驅(qū)動(dòng)程序,并且由于它基于 libIIO,它可以遠(yuǎn)程運(yùn)行或在板上運(yùn)行。但是,它還包含一個(gè)插件系統(tǒng),其中可以為特定驅(qū)動(dòng)程序或驅(qū)動(dòng)程序組合添加專門的選項(xiàng)卡。圖 6 顯示了為基于CN0540的板自動(dòng)加載的插件選項(xiàng)卡,包括控制和監(jiān)控選項(xiàng)卡。這些選項(xiàng)卡提供了一個(gè)簡單的界面來訪問 CN0540 的 ADC、DAC 和控制引腳的低級功能,以及數(shù)據(jù)采集板和測試點(diǎn)監(jiān)控的基本圖。Analog Devices上提供了更多 OSC 文檔 如果您想了解其他可用的默認(rèn)選項(xiàng)卡和插件,請?jiān)L問Wiki 。

OSC 的最后一個(gè)重要方面是捕獲窗口。捕獲窗口為從 ADC 或任何基于 libIIO 的緩沖區(qū)收集的數(shù)據(jù)提供繪圖功能。圖 7 顯示了在頻域模式下使用的捕獲窗口,其中繪制了數(shù)據(jù)的頻譜信息。其他圖,包括時(shí)域圖、相關(guān)圖和星座圖,都是可用的。這對于抽查設(shè)備、調(diào)試或在評估過程中很有用。這些圖包括常見的實(shí)用程序,如標(biāo)記、峰值檢測、諧波檢測,甚至相位估計(jì)。由于 OSC 也是開源的,因此任何人都可以對其進(jìn)行擴(kuò)展以添加更多插件或繪圖,甚至修改現(xiàn)有功能。

poYBAGKwNSeAZGCgAADnBeHc3D4332.png

圖 6. CN0540 IIO 示波器插件選項(xiàng)卡。

poYBAGKwNTSAYDB1AARAtpRzCEk917.png

圖 7. 頻域模式下的 IIO 示波器捕獲窗口。

算法開發(fā)環(huán)境集成

到目前為止,我們已經(jīng)介紹了大多數(shù)工程師在首次使用 CN0549 時(shí)開始使用的核心低級工具。首先了解這些很重要,這樣開發(fā)人員才能了解系統(tǒng)的靈活性以及他們可以使用的不同選擇或接口。然而,在基線系統(tǒng)啟動(dòng)并運(yùn)行后,開發(fā)人員將希望使用 MATLAB 或 Python 等工具快速將數(shù)據(jù)轉(zhuǎn)移到算法開發(fā)中。這些程序可以從硬件導(dǎo)入數(shù)據(jù)。必要時(shí)可以設(shè)計(jì)額外的控制邏輯。

在機(jī)器學(xué)習(xí)開發(fā)周期的上下文中,通常有一個(gè)通用流程,開發(fā)人員將遵循獨(dú)立于他們所需的軟件環(huán)境來處理數(shù)據(jù)。圖 8 中概述了此過程的一個(gè)示例,其中收集數(shù)據(jù),分為測試和訓(xùn)練,開發(fā)模型或算法,最后部署模型以進(jìn)行現(xiàn)場推理。對于實(shí)際服務(wù),會(huì)不斷執(zhí)行整個(gè)過程,以將新知識(shí)引入生產(chǎn)模型。TensorFlow、PyTorch 或 MATLAB 機(jī)器學(xué)習(xí)工具箱等工具都考慮到了這個(gè)過程。這個(gè)過程是有意義的,但通常可以忽略或完全忽略收集、組織和管理數(shù)據(jù)的復(fù)雜任務(wù)。為了簡化這個(gè)任務(wù),

Python 集成——連接到 Python 分析工具

首先,從 Python 開始,CN0549 的設(shè)備特定類可通過模塊PyADI-IIO獲得。圖 6 提供了一個(gè)配置設(shè)備采樣率和通過以太網(wǎng)提取緩沖區(qū)的簡單示例。沒有復(fù)雜的寄存器序列、晦澀的內(nèi)存控制調(diào)用或需要記憶的隨機(jī)位。這是由驅(qū)動(dòng)程序、libIIO 和 PyADI-IIO 為您管理的,這些驅(qū)動(dòng)程序在電路板上運(yùn)行、在工作站上遠(yuǎn)程運(yùn)行,甚至在云中。

可通過 pip 和 conda 安裝的 PyADI-IIO 將控制旋鈕公開為易于使用和記錄的屬性。它還以通??上念愋停ㄈ?NumPy 數(shù)組或本機(jī)類型)提供數(shù)據(jù),并在可用時(shí)處理數(shù)據(jù)流的單位轉(zhuǎn)換。這使得 PyADI-IIO 可以輕松添加到 Jupyter Notebook 等環(huán)境中,并且可以輕松地將數(shù)據(jù)輸入機(jī)器學(xué)習(xí)管道,而無需求助于不同的工具或復(fù)雜的數(shù)據(jù)轉(zhuǎn)換——允許開發(fā)人員專注于他們的算法,而不是一些困難的 API 或數(shù)據(jù)對話。

pYYBAGKwNwWAHkvRAACTKg0I0UU819.png

圖 8. 機(jī)器學(xué)習(xí)模型開發(fā)流程。

pYYBAGKwNw6AWCYnAAEX6BHSpvc582.png

圖 9. PyADI-IIO 示例。

MATLAB 集成 - 連接到 MATLAB

在 MATLAB 方面,通過 Analog Devices 傳感器工具箱提供對 CN0549 及其組件的支持。該工具箱與 PyADI-IIO 一樣,具有針對不同部件的設(shè)備特定類,并將它們實(shí)現(xiàn)為 MATLAB 系統(tǒng)對象 (MSO)。MSO 是 MathWorks 作者可以與硬件和不同軟件組件接口的標(biāo)準(zhǔn)化方式,并提供高級功能來協(xié)助代碼生成、Simulink 支持和一般狀態(tài)管理。許多 MATLAB 用戶可能會(huì)在不知情的情況下利用作為 MSO 實(shí)現(xiàn)的 MATLAB 功能,例如示波器或信號(hào)發(fā)生器。在圖 10 中,我們使用 CN0532 接口和 DSP 頻譜分析儀示波器,兩者均作為 MSO 實(shí)現(xiàn)。同樣,像 PyADI-IIO 一樣,有一個(gè)對傳統(tǒng) MATLAB 用戶友好的界面。

除了硬件連接之外,傳感器工具箱還集成了用于 HDL 和 C/C++ 的代碼生成工具。這些是用于開發(fā)、仿真和部署 IP 的絕佳工具,即使對于那些不熟悉 HDL 設(shè)計(jì)或工具但了解 MATLAB 和 Simulink 的人來說也是如此。

poYBAGKwNxaANaygAAI-cmy60II732.png

圖 10. 帶有示波器的 Sensor Toolbox 流式傳輸示例。

使用 TensorFlow 的分類示例

CN0549 套件提供了幾個(gè)示例,從基本數(shù)據(jù)流到機(jī)器學(xué)習(xí)分類示例。時(shí)間序列數(shù)據(jù)的機(jī)器學(xué)習(xí),例如來自CN0532的振動(dòng)數(shù)據(jù),可以從幾個(gè)不同的角度進(jìn)行處理。這可以包括支持向量機(jī) (SVM)、長短期記憶 (LSTM) 模型,如果數(shù)據(jù)被直接解釋為時(shí)間序列,甚至可以包括自動(dòng)編碼器。但是,在許多情況下,將時(shí)間序列問題轉(zhuǎn)換為圖像處理問題并利用在該應(yīng)用領(lǐng)域開發(fā)的豐富知識(shí)和工具會(huì)更方便。

讓我們看看 Python 中的這種方法。在 PyADI-IIO 提供的一個(gè)示例中,通過將 CN0532 安裝到擺動(dòng)風(fēng)扇上進(jìn)行了多次測量。這是在風(fēng)扇的不同設(shè)置(睡眠、常規(guī)、過敏原)下完成的,在每種模式下,捕獲了 409,600 個(gè)樣本。在檢查圖 11 中的數(shù)據(jù)時(shí),很容易識(shí)別過敏原病例的時(shí)域,但其他兩種情況更難區(qū)分。這些可能可以通過檢查來識(shí)別,但是讓算法識(shí)別這些情況可能在時(shí)域中容易出錯(cuò)。

為了幫助更好地區(qū)分用例,將數(shù)據(jù)轉(zhuǎn)換為頻域,并使用頻譜圖繪制不同頻率隨時(shí)間的濃度。與圖 11 相比,圖 12 中顯示的頻譜圖在數(shù)據(jù)上的差異更加明顯,并且在時(shí)間維度上保持一致。這些頻譜圖是有效的圖像,現(xiàn)在可以使用傳統(tǒng)的圖像分類技術(shù)進(jìn)行處理。

將數(shù)據(jù)集拆分為訓(xùn)練集和測試集,將頻譜圖輸入到具有三個(gè)密集層的僅中性網(wǎng)絡(luò) (NN) 模型和較小的卷積神經(jīng)網(wǎng)絡(luò) (CNN) 模型中。兩者都是在 TensorFlow 中實(shí)現(xiàn)的,并且能夠在不到 100 個(gè) epoch 內(nèi)輕松收斂到接近 100% 的測試驗(yàn)證。CNN 在大約一半的時(shí)間內(nèi)以大約 1% 的可調(diào)參數(shù)收斂,使其成為迄今為止更高效的設(shè)計(jì)。圖 13 中提供了精度與 epoch 的訓(xùn)練收斂圖,以概述 CNN 的快速收斂。

poYBAGKwNx-AE54-AAGPDnG1kUY180.png

圖 11. 時(shí)間序列中的風(fēng)扇振動(dòng)數(shù)據(jù)。

poYBAGKwNyaAC2r2AAFSE1tNSq8205.png

圖 12. 捕獲的振動(dòng)數(shù)據(jù)的頻譜圖。

pYYBAGKwNzGAZJ8MAADpPpl2SHA995.png

圖 13. CNN 訓(xùn)練精度隨時(shí)間變化的振動(dòng)頻譜圖。

GitHub 上 PyADI-IIO 源代碼樹下的所有 Python 腳本、筆記本和數(shù)據(jù)集都可用于此示例。由于提供了數(shù)據(jù)集,TensorFlow 的示例演示甚至可以在沒有 CN0549 硬件的情況下使用。然而,通過硬件,訓(xùn)練后的模型可以用于實(shí)時(shí)推理。

邊緣到云:轉(zhuǎn)向嵌入式解決方案

創(chuàng)建模型后,可以將其部署用于推理目的或決策制定。使用 CN0549,它可以放置在遠(yuǎn)程 PC 上,數(shù)據(jù)從 CN0540 流式傳輸或直接在嵌入式處理器上運(yùn)行。根據(jù)實(shí)現(xiàn)的不同,將模型放置在處理器中需要更多的工程設(shè)計(jì)工作,但可以提高一個(gè)數(shù)量級的功率效率,并且能夠?qū)崟r(shí)運(yùn)行。幸運(yùn)的是,在過去幾年中,用于部署機(jī)器學(xué)習(xí)模型的工具和軟件取得了巨大的發(fā)展增長。

利用 FPGA

Xilinx 和 Intel 都擁有高級綜合 (HLS) 工具,可將高級語言轉(zhuǎn)換為在 FPGA 上運(yùn)行的 HDL 代碼。這些通常會(huì)與 TensorFlow、PyTorch 或 Caffe 等 Python 框架集成,以幫助將模型轉(zhuǎn)換為 IP 內(nèi)核——允許工程師將 IP 部署到 DE10-Nano、Cora Z7-07S 或自定義系統(tǒng)。然后將這些 IP 內(nèi)核拼接到 ADI 提供的開放式 HDL 參考設(shè)計(jì)中。圖 14 顯示了 Vivado 的 Cora Z7-07S CN0540 的帶注釋屏幕截圖,重點(diǎn)關(guān)注數(shù)據(jù)路徑。在設(shè)計(jì)中,來自 CN0540 的數(shù)據(jù)通過 SPI 引腳讀取,24 位樣本由 SPI 引擎解釋并傳遞到 DMA 控制器到內(nèi)存中。任何 DSP 或機(jī)器學(xué)習(xí)模型都可以直接在數(shù)據(jù)路徑中插入到此管道中。

pYYBAGKwNzqAOvaoAADdtI6oRjA055.png

圖 14. Vivado 2019.1 中顯示的 Cora Z7-07S HDL 參考設(shè)計(jì)數(shù)據(jù)路徑。

利用微處理器

與其將算法轉(zhuǎn)換為 HDL 層,不如直接在 Arm 內(nèi)核中運(yùn)行。根據(jù)算法的數(shù)據(jù)速率和復(fù)雜性,這是一條合理的開發(fā)路徑,通常更直接。為 Arm 內(nèi)核開發(fā) C 代碼甚至可能是 Python 將比 HDL 花費(fèi)更少的開發(fā)資源和時(shí)間,并且通常更易于維護(hù)。

MATLAB Embedded Coder 等工具甚至可以簡化這一過程,并自動(dòng)將 MATLAB 轉(zhuǎn)換為針對 Arm 內(nèi)核的可嵌入和優(yōu)化的 C 代碼?;蛘撸琓ensorFlow 擁有諸如 TensorFlow Lite 之類的工具,它們是其 Python 庫的可嵌入 C 版本,以允許更簡單地過渡到嵌入式目標(biāo)。

智能決策拓?fù)?/p>

基于狀態(tài)的監(jiān)控并不是一刀切的適用于硬件和軟件的所有空間,這就是 CN0549 設(shè)計(jì)靈活的原因。當(dāng)我們考慮諸如 CbM 異常檢測之類的問題時(shí),通??梢詮膬蓚€(gè)時(shí)間尺度來處理:一個(gè)是我們需要立即做出反應(yīng),例如在與安全相關(guān)的場景中,或者在與維護(hù)或維護(hù)更相關(guān)的長期時(shí)間尺度上。設(shè)備更換。兩者都需要不同的算法、處理能力和方法。

作為理想情況下的機(jī)器操作員,我們將擁有一個(gè)大型數(shù)據(jù)湖來訓(xùn)練我們的模型,并且既可以處理沒有干擾事件的短期檢測,又可以從正在運(yùn)行的設(shè)備連續(xù)傳輸數(shù)據(jù)以用于未來的維護(hù)預(yù)測。然而,對于大多數(shù)運(yùn)營商而言,情況可能并非如此,數(shù)據(jù)湖更像是干涸的河床??紤]到安全問題、物理位置、網(wǎng)絡(luò)或拓?fù)湟螅恍┈F(xiàn)成的解決方案也可能難以執(zhí)行數(shù)據(jù)收集。這些困難推動(dòng)了對更多定制解決方案的需求。

poYBAGKwN0GABzISAAEmBOubZj4584.png

圖 15. CbM 網(wǎng)絡(luò)拓?fù)洹?/p>

CN0549 是具有多種連接選項(xiàng)的獨(dú)立系統(tǒng)。由于它運(yùn)行標(biāo)準(zhǔn) Linux,以太網(wǎng)和 Wi-Fi 等傳統(tǒng)網(wǎng)絡(luò)堆棧開箱即用,如果需要,甚至可以連接蜂窩調(diào)制解調(diào)器。在實(shí)際應(yīng)用中,有幾個(gè)典型的拓?fù)浔容^突出,如圖 15 所示。

圖 15 中顯示的最左側(cè)配置是離線收集案例,它可能發(fā)生在遠(yuǎn)程站點(diǎn)或無法連接到 Internet 的地方。在這種情況下,大型存儲(chǔ)介質(zhì)將與平臺(tái)共存,并按計(jì)劃手動(dòng)收集。或者,其他兩個(gè)選項(xiàng)將數(shù)據(jù)流式傳輸?shù)焦捕它c(diǎn)。圖 15 的中間配置是一個(gè)孤立的網(wǎng)絡(luò),它可能僅位于組織內(nèi)部,也可能只是位于遠(yuǎn)程位置的一組平臺(tái),用于集中收集數(shù)據(jù)。這可能是出于安全考慮或只是缺乏連接性而需要的。CN0549 的設(shè)置對于任何這些配置都很容易,并且可以針對最終部署的特定需求進(jìn)行定制。

最終配置是直接云選項(xiàng),每個(gè)平臺(tái)直接訪問互聯(lián)網(wǎng)并將測量推送到云端。由于 CN0549 在 Linux 上運(yùn)行,因此該平臺(tái)可以通過 Python 等語言輕松利用 Microsoft Azure IoT 或 Amazon IoT Greengrass 等不同云供應(yīng)商的 API,從而為開始為新連接的設(shè)備構(gòu)建數(shù)據(jù)湖創(chuàng)造了一條簡單的途徑。

當(dāng)云和本地進(jìn)程之間存在一致的連接時(shí),可以將不同的算法拆分為我們已經(jīng)討論過的需要或可以在本地運(yùn)行的內(nèi)容以及可以在云中運(yùn)行的內(nèi)容。這將在算法復(fù)雜性的處理能力要求、事件延遲以及可以發(fā)送到云的帶寬限制之間進(jìn)行自然權(quán)衡。但是,由于它非常靈活,因此可以輕松探索這些因素。

結(jié)論

CN0549 CbM 平臺(tái)在開發(fā)應(yīng)用程序時(shí)為設(shè)計(jì)人員提供系統(tǒng)靈活性和大量軟件資源。圍繞如何利用不同的組件進(jìn)行 CbM 和預(yù)測性維護(hù) (PdM) 開發(fā)進(jìn)行了對軟件堆棧的深入探討。由于軟件、HDL、原理圖的開放性以及與數(shù)據(jù)科學(xué)工具的集成,設(shè)計(jì)人員可以在整個(gè)堆棧中利用其終端系統(tǒng)所需的組件??偠灾?,這種狀態(tài)監(jiān)測設(shè)計(jì)提供了一種易于使用的開箱即用解決方案,并配有開源軟件和硬件,以提供靈活性并允許設(shè)計(jì)人員在更短的時(shí)間內(nèi)實(shí)現(xiàn)更好的定制結(jié)果。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 互聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    55

    文章

    11251

    瀏覽量

    106502
  • 調(diào)制解調(diào)器

    關(guān)注

    3

    文章

    874

    瀏覽量

    39632
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11511

    瀏覽量

    213891
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    請問是否可以在通用Windows平臺(tái)中構(gòu)建OpenVINO? GenAI C++ 應(yīng)用程序?

    無法在通用 Windows 平臺(tái)中構(gòu)建OpenVINO? GenAI C++ 應(yīng)用程序
    發(fā)表于 06-24 07:35

    Analog Devices Inc. EVAL-CN0575-RPIZ開發(fā)板特性/應(yīng)用/框圖

    )的10BASE-T1L現(xiàn)場設(shè)備開發(fā)平臺(tái)。Analog Devices Inc. EVAL-CN0575-RPIZ設(shè)計(jì)用于Raspberry Pi平臺(tái),可與其40引腳GPIO接頭無縫集
    的頭像 發(fā)表于 06-15 13:58 ?319次閱讀
    Analog Devices Inc. EVAL-<b class='flag-5'>CN</b>0575-RPIZ<b class='flag-5'>開發(fā)</b>板特性/應(yīng)用/框圖

    10kV站所柜內(nèi)運(yùn)行狀態(tài)及環(huán)境指標(biāo)監(jiān)測管理平臺(tái)分析

    的可靠性與穩(wěn)定性直接影響著變壓器等設(shè)備的正常運(yùn)行。對此,主要對10kV站所柜內(nèi)運(yùn)行狀態(tài)及環(huán)境指標(biāo)監(jiān)測管理平臺(tái)進(jìn)行了探討。 關(guān)鍵詞: 配電室;監(jiān)測
    的頭像 發(fā)表于 05-27 16:42 ?187次閱讀
    10kV站所柜內(nèi)運(yùn)行<b class='flag-5'>狀態(tài)</b>及環(huán)境指標(biāo)<b class='flag-5'>監(jiān)測</b>管理<b class='flag-5'>平臺(tái)</b>分析

    如何實(shí)施狀態(tài)監(jiān)測

    隨著工業(yè)生產(chǎn)使用更多、更復(fù)雜的機(jī)器,狀態(tài)監(jiān)測的可靠性變得越來越重要。狀態(tài)監(jiān)測為有效的預(yù)測性維護(hù)鋪平了道路。通過這種方式,制造過程可以在實(shí)現(xiàn)高性能的同時(shí)降低生產(chǎn)設(shè)備的整體成本,并且可以減
    的頭像 發(fā)表于 04-17 11:35 ?561次閱讀

    AWTK-WEB 快速入門(5) - C 語言 WebSocket 應(yīng)用程序

    導(dǎo)讀WebSocket可以實(shí)現(xiàn)雙向通信,適合實(shí)時(shí)通信場景。本文介紹一下使用C語言開發(fā)AWTK-WEB應(yīng)用程序,并用WebSocket與服務(wù)器通訊。用AWTKDesigner新建一個(gè)應(yīng)用程序先安裝
    的頭像 發(fā)表于 02-19 11:49 ?458次閱讀
    AWTK-WEB 快速入門(5) - C 語言 WebSocket <b class='flag-5'>應(yīng)用程序</b>

    基于HPM_SDK_ENV開發(fā)應(yīng)用程序的升級處理

    基于HPM_SDK_ENV開發(fā)應(yīng)用程序的方式HPM_SDK_ENV是先楫半導(dǎo)體MCU的Windows集成開發(fā)環(huán)境,其包含HPM_SDK,工具鏈,依賴工具(cmake,ninja,openocd等
    的頭像 發(fā)表于 02-08 13:38 ?1024次閱讀
    基于HPM_SDK_ENV<b class='flag-5'>開發(fā)</b><b class='flag-5'>應(yīng)用程序</b>的升級處理

    基于QT開發(fā)國產(chǎn)主板終端桌面程序 高效、穩(wěn)定、跨平臺(tái)的解決方案

    開發(fā)者們面臨的一個(gè)重要挑戰(zhàn)。本文將介紹如何基于QT框架,開發(fā)適用于國產(chǎn)主板的終端桌面程序,并探討其優(yōu)勢和應(yīng)用場景。 QT是一個(gè)跨平臺(tái)的C++圖形用戶界面
    的頭像 發(fā)表于 01-08 15:34 ?874次閱讀

    SSM框架在Java開發(fā)中的應(yīng)用 如何使用SSM進(jìn)行web開發(fā)

    (full-stack)的應(yīng)用程序框架,它提供了全面的基礎(chǔ)設(shè)施建設(shè)支持,能夠幫助開發(fā)者構(gòu)建出企業(yè)級的應(yīng)用程序。Spring的核心是控制反轉(zhuǎn)(I
    的頭像 發(fā)表于 12-16 17:28 ?1599次閱讀

    android手機(jī)上emulate應(yīng)用程序的方法

    在Android手機(jī)上模擬(emulate)應(yīng)用程序的方法通常涉及到使用Android模擬器(Emulator)或類似的工具來模擬Android環(huán)境,以便在沒有實(shí)際物理設(shè)備的情況下運(yùn)行和測試應(yīng)用程序
    的頭像 發(fā)表于 12-05 15:33 ?1228次閱讀

    AWTK-WEB 快速入門(2) - JS 應(yīng)用程序

    導(dǎo)讀AWTK可以使用相同的技術(shù)棧開發(fā)各種平臺(tái)應(yīng)用程序。有時(shí)我們需要使用Web界面與設(shè)備進(jìn)行交互,本文介紹一下如何使用JS語言開發(fā)AWTK-
    的頭像 發(fā)表于 12-05 01:04 ?505次閱讀
    AWTK-WEB 快速入門(2) - JS <b class='flag-5'>應(yīng)用程序</b>

    AWTK-WEB 快速入門(1) - C 語言應(yīng)用程序

    導(dǎo)讀AWTK可以使用相同的技術(shù)棧開發(fā)各種平臺(tái)應(yīng)用程序。有時(shí)我們需要使用Web界面與設(shè)備進(jìn)行交互,本文介紹一下如何使用C語言開發(fā)AWTK-W
    的頭像 發(fā)表于 11-27 11:46 ?727次閱讀
    AWTK-WEB 快速入門(1) - C 語言<b class='flag-5'>應(yīng)用程序</b>

    轉(zhuǎn)動(dòng)設(shè)備狀態(tài)監(jiān)測應(yīng)用方案(聲發(fā)射監(jiān)測應(yīng)用)

    轉(zhuǎn)動(dòng)設(shè)備狀態(tài)監(jiān)測應(yīng)用方案
    的頭像 發(fā)表于 11-23 17:17 ?763次閱讀
    轉(zhuǎn)動(dòng)設(shè)備<b class='flag-5'>狀態(tài)</b><b class='flag-5'>監(jiān)測</b>應(yīng)用方案(聲發(fā)射<b class='flag-5'>監(jiān)測</b>應(yīng)用)

    基于物聯(lián)網(wǎng)的能耗在線監(jiān)測平臺(tái)研究與應(yīng)用

    能耗在線監(jiān)測平臺(tái)對企業(yè)的用電、用水、能耗等多個(gè)環(huán)節(jié)進(jìn)行實(shí)時(shí)監(jiān)測,及時(shí)發(fā)現(xiàn)問題,提高用能效率。本平臺(tái)實(shí)現(xiàn)了能耗在線
    的頭像 發(fā)表于 11-06 16:50 ?715次閱讀
    基于物聯(lián)網(wǎng)的能耗在線<b class='flag-5'>監(jiān)測</b><b class='flag-5'>平臺(tái)</b>研究與應(yīng)用

    環(huán)保用電監(jiān)管平臺(tái)可以對工廠環(huán)保設(shè)備運(yùn)轉(zhuǎn)狀態(tài)進(jìn)行監(jiān)測,實(shí)時(shí)上傳

    等異常情況,同時(shí)通過數(shù)據(jù)分析還可以實(shí)時(shí)監(jiān)控限產(chǎn)和停產(chǎn)整治企業(yè)運(yùn)行狀態(tài),用戶可以利用PC、手機(jī)、平板電腦等多種終端實(shí)現(xiàn)對平臺(tái)的訪問。
    的頭像 發(fā)表于 09-19 11:05 ?749次閱讀
    環(huán)保用電監(jiān)管<b class='flag-5'>平臺(tái)</b>可以對工廠環(huán)保設(shè)備運(yùn)轉(zhuǎn)<b class='flag-5'>狀態(tài)</b><b class='flag-5'>進(jìn)行</b><b class='flag-5'>監(jiān)測</b>,實(shí)時(shí)上傳

    在TM4C MCU上用FreeRTOS開發(fā)通用應(yīng)用程序應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《在TM4C MCU上用FreeRTOS開發(fā)通用應(yīng)用程序應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 09-11 14:15 ?0次下載
    在TM4C MCU上用FreeRTOS<b class='flag-5'>開發(fā)</b>通用<b class='flag-5'>應(yīng)用程序</b>應(yīng)用說明