在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

開源、可重用的軟件堆棧支持CbM的實(shí)時(shí)處理和算法開發(fā)

星星科技指導(dǎo)員 ? 來源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Travis Collins ? 2022-08-16 09:40 ? 次閱讀

在本文中,我們將重點(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ù)測(cè)性維護(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)測(cè)解決方案時(shí),它們必須包含傳感器、本地處理、連接以及某種形式的軟件或固件,以使其全部發(fā)揮作用。CN0549 通過為硬件和軟件方面提供可定制的選項(xià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ù)研究階段。在此階段,用戶將他們的需求映射到其應(yīng)用程序所需的不同硬件和軟件需求。從硬件角度來看,這些參數(shù)可能是沖擊容限、模擬信號(hào)帶寬或測(cè)量范圍等參數(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)的高級(jí)工具中開發(fā)模型或設(shè)計(jì)算法。然而,在優(yōu)化設(shè)計(jì)之前,必須使用真實(shí)數(shù)據(jù)和硬件在環(huán)進(jìn)行驗(yàn)證,而這正是 CN0549 真正擅長(zhǎng)的地方,因?yàn)樗粌H提供與流行的高級(jí)分析工具的直接集成,而且還允許硬件在循環(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ì)。

poYBAGL69cqANuxFAACHlfKyrys584.png

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

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

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

在設(shè)計(jì)過程中降低風(fēng)險(xiǎn)的最簡(jiǎn)單方法之一是在每個(gè)階段重復(fù)使用盡可能多的硬件和軟件組件,CN0549 為開發(fā)人員提供了許多開箱即用的資源,以便在開發(fā)流程的所有階段直接利用。CN0549 解決方案提供原理圖和電路板布局文件、用于優(yōu)化和全功能環(huán)境的開放軟件堆棧,以及用于 MATLAB? 和 Python 等高級(jí)工具的集成選項(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ā)的高級(jí)數(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)用需求。

poYBAGL69dCATOeBAAFsaRqqcw4717.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)正在針對(duì)部署進(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è)相對(duì)透明的過程。這主要是由于一個(gè)名為libIIO的開放庫。 libIIO 是一個(gè)接口庫,它允許對(duì)內(nèi)核中 Linux IIO 框架內(nèi)構(gòu)建的不同設(shè)備驅(qū)動(dòng)程序進(jìn)行簡(jiǎ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)程用戶對(duì) 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)程序。

poYBAGL69deAWUl2AAEnHGg2pY0374.png

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

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

poYBAGL69eSAHCADAAB2cn4DgxY888.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 之上的更高級(jí)別的應(yīng)用程序,它們?yōu)槿魏?IIO 設(shè)備從命令行和 GUI 格式提供基本的可配置性。這些分別是 IIO 工具和 IIO 示波器。

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

poYBAGL69euAST9cAACaHyZgMhw729.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è)簡(jiǎn)單的界面來訪問 CN0540 的 ADC、DAC 和控制引腳的低級(jí)功能,以及數(shù)據(jù)采集板和測(cè)試點(diǎn)監(jiān)控的基本圖。Analog Devices上提供了更多 OSC 文檔 如果您想了解其他可用的默認(rèn)選項(xiàng)卡和插件,請(qǐng)?jiān)L問Wiki 。

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

pYYBAGL69fGAc-GBAAQzRKji1OU789.png

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

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

到目前為止,我們已經(jīng)介紹了大多數(shù)工程師在首次使用 CN0549 時(shí)開始使用的核心低級(jí)工具。首先了解這些很重要,這樣開發(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ù),分為測(cè)試和訓(xùn)練,開發(fā)模型或算法,最后部署模型以進(jìn)行現(xiàn)場(chǎng)推理。對(duì)于實(shí)際服務(wù),會(huì)不斷執(zhí)行整個(gè)過程,以將新知識(shí)引入生產(chǎn)模型。TensorFlow、PyTorch 或 MATLAB 機(jī)器學(xué)習(xí)工具箱等工具都考慮到了這個(gè)過程。這個(gè)過程是有意義的,但通??梢院雎曰蛲耆雎允占?、組織和管理數(shù)據(jù)的復(fù)雜任務(wù)。為了簡(jiǎn)化這項(xiàng)任務(wù),

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

首先,從 Python 開始,CN0549 的設(shè)備特定類可通過模塊PyADI-IIO獲得。圖 6 提供了一個(gè)配置設(shè)備采樣率和通過以太網(wǎng)提取緩沖區(qū)的簡(jiǎn)單示例。沒有復(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ù)對(duì)話。

poYBAGL69gWAV8nyAAF9L_1CHZc448.png

MATLAB 集成 - 連接到 MATLAB

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

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

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

pYYBAGL69hqAKKbYAAFIXrFeuOQ100.png

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

pYYBAGL69iGAWj0gAAEa5BonIF8075.png

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

poYBAGL69iiAKBOGAAC9SUwR274500.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)的不同,將模型放置在處理器中將需要更多的工程努力,但可以提高一個(gè)數(shù)量級(jí)的功率效率,并且能夠?qū)崟r(shí)運(yùn)行。幸運(yùn)的是,在過去幾年中,用于部署機(jī)器學(xué)習(xí)模型的工具和軟件取得了巨大的發(fā)展增長(zhǎng)。

利用 FPGA

Xilinx 和 Intel 都擁有高級(jí)綜合 (HLS) 工具,可將高級(jí)語言轉(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ù)路徑中插入到此管道中。

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

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

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

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

pYYBAGL69jWAElWLAADs3l5Ao74468.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è)置對(duì)于任何這些配置都很容易,并且可以針對(duì)最終部署的特定需求進(jìn)行定制。

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

當(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ù)測(cè)性維護(hù) (PdM) 開發(fā)進(jìn)行了對(duì)軟件堆棧的深入探討。由于軟件、HDL、原理圖的開放性以及與數(shù)據(jù)科學(xué)工具的集成,設(shè)計(jì)人員可以在整個(gè)堆棧中利用其終端系統(tǒng)所需的組件??傊?,這種狀態(tài)監(jiān)測(cè)設(shè)計(jì)提供了一種易于使用的開箱即用解決方案,并配有開源軟件和硬件,以提供靈活性并允許設(shè)計(jì)人員在更短的時(shí)間內(nèi)實(shí)現(xiàn)更好的定制結(jié)果。

審核編輯:郭婷

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

    關(guān)注

    87

    文章

    11342

    瀏覽量

    210216
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4807

    瀏覽量

    84973
  • IOT
    IOT
    +關(guān)注

    關(guān)注

    187

    文章

    4230

    瀏覽量

    197427
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    開源、重復(fù)使用的軟件堆棧助力實(shí)現(xiàn)實(shí)時(shí)處理CbM算法開發(fā)

    CN0549狀態(tài)監(jiān)控平臺(tái)簡(jiǎn)介 在本文中,我們將重點(diǎn)介紹CN0549的不同組件可用的軟件生態(tài)系統(tǒng)、數(shù)據(jù)分析工具和軟件集成,以及工程師和數(shù)據(jù)專家如何使用它們進(jìn)行應(yīng)用開發(fā)。我們分兩部分來介紹
    的頭像 發(fā)表于 04-08 14:29 ?1.6w次閱讀
    <b class='flag-5'>開源</b>、<b class='flag-5'>可</b>重復(fù)使用的<b class='flag-5'>軟件</b><b class='flag-5'>堆棧</b>助力實(shí)現(xiàn)<b class='flag-5'>實(shí)時(shí)處理</b>和<b class='flag-5'>CbM</b><b class='flag-5'>算法</b><b class='flag-5'>開發(fā)</b>

    重用機(jī)床編碼技術(shù)及重構(gòu)算法研究

    重用機(jī)床編碼技術(shù)及重構(gòu)算法研究摘要:在產(chǎn)品開發(fā)過程中80%的設(shè)計(jì)工作是在重用的基礎(chǔ)上進(jìn)行的。設(shè)計(jì)重用
    發(fā)表于 05-17 11:58

    請(qǐng)問Labview如何能夠實(shí)時(shí)處理

    在做FX-LMS算法中,Labview如何能夠實(shí)時(shí)處理。
    發(fā)表于 11-20 17:00

    如何使用XC4VLXl5實(shí)現(xiàn)紅外圖像的實(shí)時(shí)處理?

    本文基于這種算法理論基礎(chǔ),使用xilinx公司規(guī)模較大的XC4VLXl5系列FPGA,實(shí)現(xiàn)了紅外圖像的實(shí)時(shí)處理。
    發(fā)表于 04-29 06:54

    請(qǐng)問怎樣去設(shè)計(jì)一種音/視頻實(shí)時(shí)處理系統(tǒng)?

    怎樣去設(shè)計(jì)音/視頻實(shí)時(shí)處理系統(tǒng)的硬件部分?怎樣去設(shè)計(jì)音/視頻實(shí)時(shí)處理系統(tǒng)的軟件部分?
    發(fā)表于 06-02 07:22

    經(jīng)典C語言接口與實(shí)現(xiàn):創(chuàng)建重用軟件的技術(shù)

    C語言接口與實(shí)現(xiàn)(創(chuàng)建重用軟件的技術(shù))概念清晰、內(nèi)容新穎、實(shí)例詳盡,是一本有關(guān)設(shè)計(jì)、實(shí)現(xiàn)和有效使用C語言庫函數(shù),掌握創(chuàng)建重用C語言
    發(fā)表于 09-25 06:42

    重用機(jī)床編碼技術(shù)及重構(gòu)算法研究

    重用機(jī)床編碼技術(shù)及重構(gòu)算法研究:摘要:在產(chǎn)品開發(fā)過程中80%的設(shè)計(jì)工作是在重用的基礎(chǔ)上進(jìn)行的。設(shè)計(jì)重用
    發(fā)表于 05-16 15:31 ?14次下載

    一種基于實(shí)時(shí)處理的數(shù)字濾波器快速算法

    本文介紹了一種基于實(shí)時(shí)處理的數(shù)字信號(hào)處理算法。該算法首先將長(zhǎng)序列分成一個(gè)個(gè)較短序列,然后通過循環(huán)卷積求線性卷積,并且對(duì)最后的循環(huán)卷積作了有效改進(jìn),使數(shù)字濾波器
    發(fā)表于 08-05 11:15 ?16次下載

    基于DSP人工混響算法實(shí)時(shí)處理系統(tǒng)

    提出了基于定點(diǎn)DSP 的人工混響算法實(shí)時(shí)處理系統(tǒng)。討論了DSP芯片TMS320VC5509與音頻編解碼芯片TLV320AIC23的硬件接口和軟件設(shè)計(jì),并在此基礎(chǔ)上論述人工混響算法
    發(fā)表于 07-27 16:22 ?46次下載

    基于FPGA的小波圖像實(shí)時(shí)處理方法

    基于FPGA的小波圖像實(shí)時(shí)處理方法,下來看看
    發(fā)表于 09-22 13:06 ?33次下載

    AN-304:?jiǎn)涡酒盎摺?b class='flag-5'>可處理日志、反日志進(jìn)行實(shí)時(shí)處理

    AN-304:?jiǎn)涡酒盎摺?b class='flag-5'>可處理日志、反日志進(jìn)行實(shí)時(shí)處理
    發(fā)表于 04-28 14:13 ?9次下載
    AN-304:?jiǎn)涡酒盎摺?b class='flag-5'>可</b><b class='flag-5'>處理</b>日志、反日志進(jìn)行<b class='flag-5'>實(shí)時(shí)處理</b>

    支持CN0549 CbM平臺(tái)的實(shí)時(shí)處理算法開發(fā)

      CN0549 CbM 平臺(tái)在開發(fā)應(yīng)用程序時(shí)為設(shè)計(jì)人員提供系統(tǒng)靈活性和大量軟件資源。圍繞如何利用不同的組件進(jìn)行 CbM 和預(yù)測(cè)性維護(hù) (PdM)
    的頭像 發(fā)表于 07-01 15:05 ?1077次閱讀
    <b class='flag-5'>支持</b>CN0549 <b class='flag-5'>CbM</b>平臺(tái)的<b class='flag-5'>實(shí)時(shí)處理</b>和<b class='flag-5'>算法</b><b class='flag-5'>開發(fā)</b>

    開源、重用軟件堆棧支持CbM實(shí)時(shí)處理算法開發(fā)

      當(dāng)云和本地進(jìn)程之間存在一致的連接時(shí),可以將不同的算法拆分為我們已經(jīng)討論過的需要或可以在本地運(yùn)行的內(nèi)容以及可以在云中運(yùn)行的內(nèi)容。這將在算法復(fù)雜性的處理能力要求、事件延遲以及可以發(fā)送到云的帶寬限制之間進(jìn)行自然權(quán)衡。但是,由于它非
    的頭像 發(fā)表于 07-10 14:31 ?1228次閱讀
    <b class='flag-5'>開源</b>、<b class='flag-5'>可</b><b class='flag-5'>重用</b>的<b class='flag-5'>軟件</b><b class='flag-5'>堆棧</b><b class='flag-5'>支持</b><b class='flag-5'>CbM</b>的<b class='flag-5'>實(shí)時(shí)處理</b>和<b class='flag-5'>算法</b><b class='flag-5'>開發(fā)</b>

    開源重用軟件堆棧支持CbM實(shí)時(shí)處理算法開發(fā)

    在本文中,我們將重點(diǎn)介紹軟件生態(tài)系統(tǒng)、數(shù)據(jù)分析工具和 軟件集成可用于CN0549的不同組件和 工程師和數(shù)據(jù)科學(xué)家如何利用它們進(jìn)行應(yīng)用程序開發(fā)。這是關(guān)于基于條件的兩部分系列文章中的第二篇
    的頭像 發(fā)表于 12-15 13:59 ?1145次閱讀
    <b class='flag-5'>開源</b>、<b class='flag-5'>可</b><b class='flag-5'>重用</b>的<b class='flag-5'>軟件</b><b class='flag-5'>堆棧</b><b class='flag-5'>支持</b><b class='flag-5'>CbM</b>的<b class='flag-5'>實(shí)時(shí)處理</b>和<b class='flag-5'>算法</b><b class='flag-5'>開發(fā)</b>

    實(shí)時(shí)處理如何驅(qū)動(dòng)高性能電源系統(tǒng)?

    實(shí)時(shí)處理如何驅(qū)動(dòng)高性能電源系統(tǒng)? 實(shí)時(shí)處理是一種在實(shí)時(shí)環(huán)境中對(duì)來自外部傳感器和設(shè)備的數(shù)據(jù)進(jìn)行即時(shí)處理和響應(yīng)的技術(shù)。在電源系統(tǒng)中,實(shí)時(shí)處理可以
    的頭像 發(fā)表于 11-24 14:26 ?540次閱讀
    主站蜘蛛池模板: 久久精品国产精品亚洲毛片 | 久操视频在线免费观看 | 亚洲图片欧美色图 | 国产性片在线 | 国内精品手机在线观看视频 | 天天操天天插 | 国产香蕉75在线播放 | 欧美性白人极品1819hd高清 | 久久福利免费视频 | 欧美日韩一区二区不卡 | 国产一区二区高清在线 | 性欧美视频 | 国产一级做a爰片久久毛片男 | www.狠狠操.com| 亚洲卡一卡2卡三卡4卡国色 | 天天综合色天天综合 | 国产欧美一级片 | 香港三澳门三日本三级 | 色cccwww在线播放 | 精品国产乱子伦一区 | 天天插天天插天天插 | 国产www色 | 性做久久久久久网站 | 黄色地址 | 182tv免费视视频线路一二三 | 六月丁香啪啪六月激情 | 欧美伦理一区 | 黄视频网站免费观看 | 欧美午夜精品一区二区三区 | 久久综合九色综合98一99久久99久 | 无人码一区二区三区视频 | 午夜色网站 | 久久婷婷五综合一区二区 | 国产区一区二区三 | 天天色天天综合网 | 国产免费午夜高清 | 淫www| 狠狠色丁香久久综合五月 | 五月天六月丁香 | 日韩免费精品视频 | 欧美日韩亚洲色图 |