開源、可重複使用的軟件堆棧助力實現實時處理和CbM算法開發
發布時間:2022-04-19 來源:Travis Collins,ADI 責任編輯:wenwei
【導讀】在本文中,我們將重點介紹CN0549的不同組件可用的軟件生態係統、數據分析工具和軟件集成,以及工程師和數據專家如何使用它們進行應用開發。我們分兩部分來介紹使用CN0549開發平台進行狀態監控(CbM)和預測性維護(PdM)應用,這是該係列文章的第二篇。新平台旨在加快定製CbM解決方案從原型製作到生產的整個開發流程。第一部分主要介紹MEMS振動技術,以及為CbM應用捕捉高質量的振動數據。
CN0549狀態監控平台簡介
在本文中,我們將重點介紹CN0549的不同組件可用的軟件生態係統、數據分析工具和軟件集成,以及工程師和數據專家如何使用它們進行應用開發。我們分兩部分來介紹使用CN0549開發平台進行狀態監控(CbM)和預測性維護(PdM)應用,這是該係列文章的第二篇。新平台旨在加快定製CbM解決方案從原型製作到生產的整個開發流程。第一部分主要介紹MEMS振動技術,以及為CbM應用捕捉高質量的振動數據。
從概念到生產的整個過程,以及如何加快這個過程!
在構建狀態監控解決方案時,它們必須包含傳感器、本地處理、連接、某些形式的軟件或硬件,使其能夠正常運行。CN0549提(ti)供(gong)可(ke)自(zi)定(ding)義(yi)的(de)硬(ying)件(jian)和(he)軟(ruan)件(jian)選(xuan)項(xiang),讓(rang)工(gong)程(cheng)師(shi)和(he)軟(ruan)件(jian)開(kai)發(fa)人(ren)員(yuan)能(neng)夠(gou)使(shi)用(yong)常(chang)用(yong)的(de)工(gong)具(ju)和(he)基(ji)礎(chu)設(she)施(shi),並(bing)根(gen)據(ju)應(ying)用(yong)設(she)計(ji)做(zuo)出(chu)權(quan)衡(heng)取(qu)舍(she),以(yi)解(jie)決(jue)所(suo)有(you)這(zhe)些(xie)挑(tiao)戰(zhan)。例(li)如(ru),如(ru)果(guo)您(nin)想(xiang)選(xuan)擇(ze)特(te)定(ding)的(de)微(wei)控(kong)製(zhi)器(qi)或(huo)FPGA進行處理,想要使用Python進行編碼,或有喜歡的、想要重複使用的傳感器。這讓CN0549成為一個強大的平台,讓希望構建優化CbM解決方案的人員能夠根據自己的需求來自定義處理、功率、性能、軟件和數據分析。
嵌入式係統的開發流程
我們來看看嵌入式係統從生成概念到生產的整個開發流程。圖1概要描述這個抽象化的過程。
在圖1所示的設計流程中,第1步是“數據研究”階段。在這個階段,用戶將他們的要求轉化到應用對硬件和軟件的不同要求。從硬件的角度來看,可能涉及抗衝擊性、模擬信號帶寬或測量範圍等參數。在考慮對軟件的要求時,樣本數量、采樣速率、頻譜、過采樣和數字濾波都是CbM應用的重要參數。該平台非常實用靈活,允許研究人員使用不同的傳感器組合,並調節數據采集參數,以滿足其應用需求。
“數據研究”階段之後是“算法開發”jieduan,zhegejieduanzhuyaoshiyanzhengxitongdeyingyonghuoshiyong。zhetongchangxuyaozaigaojigongjuzhongkaifamoxinghuoshejisuanfa,bingzuizhongyizhidaoqianrushixitongzhong。danshi,zaiyouhuashejizhiqian,bixushiyongzhenshishujuheyingjianhuanlujinxingyanzheng,zhezhengshiCN0549的優勢所在,因為它不僅能與熱門的高級分析工具直接集成,還支持硬件環路驗證。
設計得到驗證之後,就開始進行優化和嵌入所需軟件組件的工作。在“嵌入式設計細化”階段,可能需要重新實施某些算法或軟件層,以便在FPGA或資源有限的微控製器中使用。必須小心謹慎地不斷驗證設計,因為我們會將它移植到原型或將要投入生產的硬件中進行最後驗證。
圖1.嵌入式係統的開發流程
最後是到達“生產”階(jie)段(duan),這(zhe)個(ge)階(jie)段(duan)可(ke)能(neng)與(yu)設(she)計(ji)開(kai)始(shi)使(shi)用(yong)的(de)原(yuan)始(shi)開(kai)發(fa)環(huan)境(jing)沒(mei)有(you)什(shen)麼(me)相(xiang)似(si)之(zhi)處(chu),但(dan)仍(reng)然(ran)要(yao)滿(man)足(zu)同(tong)樣(yang)的(de)要(yao)求(qiu)。由(you)於(yu)最(zui)終(zhong)的(de)係(xi)統(tong)可(ke)能(neng)與(yu)原(yuan)始(shi)的(de)研(yan)究(jiu)係(xi)統(tong)相(xiang)去(qu)甚(shen)遠(yuan),所(suo)以(yi)可(ke)能(neng)無(wu)法(fa)或(huo)很(hen)難(nan)運(yun)行(xing)相(xiang)同(tong)的(de)代(dai)碼(ma)或(huo)測(ce)試(shi)。這(zhe)可(ke)能(neng)導(dao)致(zhi)產(chan)生(sheng)生(sheng)產(chan)測(ce)試(shi)問(wen)題(ti)和(he)設(she)備(bei)故(gu)障(zhang),很(hen)可(ke)能(neng)需(xu)要(yao)花(hua)費(fei)額(e)外(wai)的(de)時(shi)間(jian)和(he)資(zi)金(jin)投(tou)入(ru)來(lai)進(jin)行(xing)補(bu)救(jiu)。
通過最大程度的重複使用來降低風險
在設計過程中,降低風險最簡單的方法之一是盡可能在每個階段重複使用更多的硬件和軟件組件,CN0549為開發人員提供許多開箱即用的資源,可以在開發流程的每個階段直接使用。CN0549解決方案提供原理圖和電路板布局文件,提供一個適用於優化和全功能環境的開源軟件堆棧,以及更高等級工具(例如MATLAB®和Python)可用的集成選項。最終用戶可以使用ADIjingguoyanzhengdezujian,bingzaiyanjiujieduandaoshengchanjieduanqijianxuanzexiangyaoweihuhuogenggaidezujian。zheyangzuizhongyonghujiunengjizhongjinglijinxingruanjiankaifahexitongjicheng,bubiquhuizhiADI組件的原理圖或進行基礎的軟件開發。利用硬件模塊和重複使用軟件層,例如ADI提供的設備驅動程序、HDL或應用固件,可以減少構建係統所需的開發時間,並大大加快上市時間。
軟件開發流程和過程
在開發期間,CN0549為工程師們提供多種選項,允許他們使用通用語言,包括C或C++,同時使用他們熟悉的數據分析工具,例如MATLAB或Python。這主要是通過利用和基於開源標準,以及支持不同製造商的多種嵌入式平台的現有解決方案進行構建而實現。
CN0549係統堆棧
圖2所示的係統堆棧概述了構成CN0549係統的不同組件。左上角的深藍色方框表示傳感器和數據采集(DAQ)電路板,淺藍色和紫色方框表示用於數據處理的FPGA分區。該平台直接支持Intel DE10-Nano和Xilinx® CoraZ7-07s,涵蓋兩大FPGA供應商。綠色方框表示與主機PC的連接。這為算法開發提供了從硬件到高級數據分析工具的直接數據訪問。
所有硬件描述語言(HDL)代碼都是開源的,允許開發人員進行修改,將數字信號處理(DSP)插入可編程邏輯(PL)的數據流中,如圖2所(suo)示(shi)。這(zhe)可(ke)以(yi)是(shi)從(cong)濾(lv)波(bo)器(qi)到(dao)狀(zhuang)態(tai)機(ji)甚(shen)至(zhi)機(ji)器(qi)學(xue)習(xi)等(deng)任(ren)何(he)內(nei)容(rong),具(ju)體(ti)由(you)您(nin)的(de)係(xi)統(tong)分(fen)區(qu)決(jue)定(ding),這(zhe)一(yi)步(bu)也(ye)可(ke)以(yi)在(zai)用(yong)戶(hu)空(kong)間(jian)或(huo)應(ying)用(yong)層(ceng)完(wan)成(cheng)。由(you)於(yu)代(dai)碼(ma)是(shi)公(gong)開(kai)提(ti)供(gong)的(de),它(ta)可(ke)以(yi)移(yi)植(zhi)到(dao)不(bu)同(tong)製(zhi)造(zao)商(shang)的(de)其(qi)他(ta)FPGA,或不同處理器係列中,具體取決於終端應用的需求。
圖2.CN0549平台的係統堆棧
Arm®處理器內部提供兩種軟件選項。具體使用哪種,由具體的用例決定,大多數開發人員可能會使用:
● Linux®:內核驅動程序,可用於在內核中的輸入輸出工業(IIO)框架中構建的DAQ屏蔽。它與一個名為Kuiper Linux的完全嵌入式Linux發行版相結合,這個版本在Arm內核用戶空間中運行,基於樹莓派OS。
● 無操作係統(No-OS):裸機項目,使用與Linux內核中同樣的驅動程序,可以在Xilinx或Intel的SDK中使用。它也可以作為替代方案,在實時操作係統(RTOS)環境中實現。
建議開發人員從Linux開始學習並使用其係統進行開發,因為Linux提供的工具最多。Linuxhaitigongdaliangkaifabaohequdongchengxu,gouchenglesuoxudekaifahuanjing。zaixitongshejiwendingbingzhunbeijinxingyouhuashi,tongchanghuizhuanxiangwucaozuoxitonghuanjing,zhitigongbiyaoderuanjian。danshi,zhezhuyaoqujueyuyingyong,xuduozhizaoshanghuijiaofuwanzhengdeLinux係統,以保持他們要提供的靈活性。
與用於可編程邏輯的HDL一樣,整個內核源代碼、Kuiper Linux鏡像和No-OSxiangmudoushiwanquankaiyuande,rangzuizhongyonghunenggouanzhaozijideyiyuangenggaizujian。ruguoxuyao,haikeyijiangzhexiedaimakuyizhidaobutongdechuliqixitonghuobutongdeyunxingshihuanjingzhong。
圖2所示的最後一個組件是與主機PC的連接,如綠色方框所示。在運行該係統時,可以對設備進行配置,並將數據流備份到主機係統進行分析,開發人員將利用MATLAB或TensorFlow等標準工具在主機上創建算法。最終將這些算法轉移到嵌入目標中,讓他們能夠使用本地處理能力來加快算法開發迭代。
訪問CbM數據——使用入門
使用Arm處理器和PL一(yi)般(ban)發(fa)生(sheng)在(zai)設(she)計(ji)流(liu)程(cheng)較(jiao)為(wei)靠(kao)後(hou)的(de)階(jie)段(duan),也(ye)就(jiu)是(shi)要(yao)對(dui)係(xi)統(tong)實(shi)施(shi)優(you)化(hua)進(jin)行(xing)部(bu)署(shu)時(shi)。所(suo)以(yi),對(dui)於(yu)開(kai)發(fa)人(ren)員(yuan)來(lai)說(shuo),最(zui)開(kai)始(shi)常(chang)用(yong)的(de)切(qie)入(ru)點(dian)都(dou)是(shi)從(cong)工(gong)作(zuo)站(zhan)遠(yuan)程(cheng)連(lian)接(jie)至(zhi)嵌(qian)入(ru)式(shi)係(xi)統(tong)。在(zai)嵌(qian)入(ru)式(shi)係(xi)統(tong)上(shang)運(yun)行(xing)Linux時,因為基礎設施的設計方式,在工作站上遠程或本地運行代碼是一個相對透明的過程。這主要是因為名為libIIO的開源庫。libIIO是一個接口庫,允許在內核的Linux IIO框架內構建適用於不同設備驅動程序的簡單、一致的訪問模型。這個庫是能夠靈活使用CbM平台的核心,並提供數據流傳輸和設備控製功能。
libIIO本身主要分成兩個部分:
● libIIO庫,這是一個C語言庫,用於訪問不同的IIO驅動程序屬性或函數。這包括向設備(例如ADC、DAC和傳感器)傳輸數據流或從中輸出數據流。
● IIO daemon(iiod)利用實際的驅動程序的庫和內核接口來管理libIIO庫或客戶端之間的訪問。
libIIO和iiod本身是從不同的組件寫入,可以使用不同的方法來訪問驅動程序,即所謂的後端。後端允許本地和遠程用戶對libII進行控製和提供數據流,而且,由於它們已形成組件,所以可以將新後端添加到係統中。目前,libIIO支持四個後端:
● 本地:允許訪問連接至同一設備的硬件的本地可訪問驅動程序。
● USB:通過使用libusb,此後端允許通過USB鏈接遠程控製驅動程序。
● 串行:為通過串行連接的電路板提供更通用的接口。UART是最常見的用例。
● 網絡:最常用的遠程後端,基於IP來訪問網絡中的驅動程序。
圖3. 使用網絡後端的libIIO係統概述
圖3從係統層麵概述如何使用libIIO組件,以及如何將它們集成到整個係統中。圖中左側是嵌入式係統,它已安裝libIIO庫,運行iiod daemon。在(zai)嵌(qian)入(ru)式(shi)係(xi)統(tong)中(zhong),用(yong)戶(hu)可(ke)以(yi)訪(fang)問(wen)本(ben)地(di)後(hou)端(duan),甚(shen)至(zhi)網(wang)絡(luo)後(hou)端(duan)。他(ta)們(men)可(ke)以(yi)通(tong)過(guo)更(geng)改(gai)一(yi)行(xing)代(dai)碼(ma)來(lai)確(que)認(ren)任(ren)一(yi)後(hou)端(duan)的(de)地(di)址(zhi),在(zai)兩(liang)個(ge)後(hou)端(duan)之(zhi)間(jian)切(qie)換(huan)。無(wu)需(xu)對(dui)目(mu)標(biao)代(dai)碼(ma)進(jin)行(xing)其(qi)他(ta)更(geng)改(gai)。
圖4. libIIO遠程與本地示例
圖3左側顯示的是遠程主機,可以運行任何操作係統。提供Windows、macOS、Linux和BSD等官方軟件包。該圖顯示使用了基於網絡或IP的後端,也可能是使用串行、USB或PCIe連接。從用戶的角度來看,可以從C語言庫本身,或者從其他語言的許多可用綁定來使用libIIO,包括:Python、C#、Rust、MATLAB和Node.js。為需要與應用中的不同驅動程序交互的用戶提供多種選擇。
應用和工具
當開始使用一個新設備時,通常不建議直接使用libIIO。所以,有很多基於libIIO構建的更高等級的應用,它們通過命令行和GUI格式為IIO設備提供基本的配置能力。它們分別是IIO工具和IIO示波器。
IIO工具是一組與libIIOyiqifabudeminglingxinggongju,duiyutongguojiaobenzhixingdedidengjitiaoshihezidonghuarenwulaishuofeichangyouyong。liru,zaizhixingshiyanshiceshishi,takeyizaibutongdecaiyanglvmoshixiashezhipingtai,yijishoujiyixieshuju。liyongjixingbash,或通過使用IIO工具的批處理腳本可輕鬆完成這些操作。圖5顯示了一個簡單示例,可以在本地或遠程運行,以更改采樣速率和ADC的地輸入模式。這個示例使用名為iio_attr的IIO工具,讓用戶能夠輕鬆更新設備的配置。
圖5.IIO工具的iio_attr部分的使用示例
但是,對用戶來說,最常見的切入點是GUI應用IIO示波器,一般被稱為OSC。與IIO工具一樣,OSC是通用的,可以管理任意IIO驅動程序,而且,因為它是基於libIIO構gou建jian,所suo以yi它ta可ke以yi遠yuan程cheng運yun行xing或huo在zai電dian路lu板ban上shang運yun行xing。但dan是shi,它ta也ye包bao含han一yi個ge插cha件jian係xi統tong,可ke以yi為wei特te定ding的de驅qu動dong程cheng序xu或huo驅qu動dong程cheng序xu組zu合he添tian加jia專zhuan用yong選xuan項xiang卡ka。圖tu6顯示自動加載到基於CN0540的電路板上的插件選項卡,包括控製和監控選項卡。這些選項卡提供了一個簡單的界麵,可以訪問CN0540的ADC、DAC和控製引腳的低級功能,以及數據采集板和測試點監控的基本示意圖。如需了解其他可用的默認選項卡和插件信息,可以訪問ADI公司Wiki查看更多OSC文檔。
OSC的最後一個重要方麵是捕獲窗口。捕獲窗口可以根據從ADC或基於libIIO的緩衝區收集的數據進行繪圖。圖7顯示在頻域模式下使用的捕獲窗口,這是基於頻譜數據信息繪製。也可以繪製其他圖,包括時域圖、相關圖和星座圖。這對於抽檢設備、調試或評估非常有用。這些圖提供常用工具,例如標記、峰值檢測、諧波檢測,甚至相位估計。由於OSC也是開源的,任何人都可以添加更多插件或繪圖,甚至更改現有功能,對其進行擴展。
圖6.CN0540 IIO示波器插件選項卡
圖7.頻域模式下的IIO示波器捕獲窗口
算法開發環境集成
至此,我們已經介紹了大部分工程師在首次使用CN0549時(shi)會(hui)采(cai)用(yong)的(de)低(di)等(deng)級(ji)重(zhong)要(yao)工(gong)具(ju)。首(shou)先(xian)理(li)解(jie)這(zhe)些(xie)是(shi)很(hen)重(zhong)要(yao)的(de),這(zhe)樣(yang)開(kai)發(fa)人(ren)員(yuan)才(cai)能(neng)理(li)解(jie)係(xi)統(tong)的(de)靈(ling)活(huo)性(xing)以(yi)及(ji)他(ta)們(men)可(ke)以(yi)使(shi)用(yong)的(de)不(bu)同(tong)選(xuan)擇(ze)或(huo)接(jie)口(kou)。但(dan)是(shi),在(zai)設(she)置(zhi)和(he)運(yun)行(xing)基(ji)線(xian)係(xi)統(tong)後(hou),開(kai)發(fa)人(ren)員(yuan)希(xi)望(wang)使(shi)用(yong)MATLAB或Python等工具將數據快速遷移至算法開發。這些程序可以從硬件導入數據。必要時可以設計附加控製邏輯。
在機器學習開發周期中,開發人員通常會遵循通用的流程,該流程與他們想要用於處理數據的軟件環境無關。圖8簡要顯示了該流程的一個示例,其中涉及數據收集、分割數據用於測試和訓練、開發模型和算法,最後部署模型進行現場推理。在實際服務中,會持續執行這整個流程,將新學習內容集成到生產模型中。TensorFlow、PyTorch,或MATLAB Machine Learning Toolbox等(deng)工(gong)具(ju)都(dou)可(ke)以(yi)采(cai)用(yong)此(ci)流(liu)程(cheng)。這(zhe)個(ge)流(liu)程(cheng)有(you)其(qi)作(zuo)用(yong),但(dan)是(shi),通(tong)常(chang)會(hui)忽(hu)視(shi)或(huo)完(wan)全(quan)忽(hu)略(lve)收(shou)集(ji)和(he)整(zheng)理(li)數(shu)據(ju),以(yi)及(ji)管(guan)理(li)數(shu)據(ju)這(zhe)種(zhong)複(fu)雜(za)任(ren)務(wu)。為(wei)了(le)簡(jian)化(hua)這(zhe)項(xiang)任(ren)務(wu),我(wo)們(men)使(shi)用(yong)這(zhe)些(xie)相(xiang)關(guan)工(gong)具(ju)和(he)軟(ruan)件(jian)包(bao)設(she)計(ji)出(chu)相(xiang)關(guan)的(de)軟(ruan)件(jian)生(sheng)態(tai)係(xi)統(tong)。
Python集成——連接到Python分析工具
首先,從Python開始,可以通過模塊PyADI-IIO獲得CN0549的設備特定類別。圖6顯示了一個通過以太網配置設備的采樣速率和提取緩衝區的簡單示例。這裏沒有複雜的寄存器序列、模糊的存儲器控製調用,或要記憶的隨機位。而是由板上運行的驅動程序、libIIO和PyADI-IIO在工作站,甚至在雲中進行遠程管理。
PyADI-IIO可以通過pip和conda進行安裝,將控製按鈕表現為易於使用和歸檔記錄的屬性。它還按易於理解的形式(例如NumPy陣列或原生形式)提供數據,在必要時,還會處理設備的數據流轉換。這使PyADI-IIO易於添加到Jupyter Notebook之zhi類lei的de環huan境jing中zhong,無wu需xu通tong過guo不bu同tong的de工gong具ju或huo複fu雜za的de數shu據ju轉zhuan換huan即ji可ke輕qing鬆song將jiang數shu據ju傳chuan輸shu到dao機ji器qi學xue習xi管guan道dao中zhong,讓rang開kai發fa人ren員yuan可ke以yi集ji中zhong精jing力li開kai發fa算suan法fa,而er不bu是shi處chu理li某mou些xie困kun難nan的deAPI或數據轉換。
圖8.機器學習模型開發流程
圖9.PyADI-IIO示例
MATLAB集成——連接到MATLAB
在MATLAB方麵,通過Analog Devices Sensor Toolbox提供對CN0549及其組件的支持。這個工具箱與PyADI-IIO類似,提供針對不同組件的特性類別,將它們實施為MATLAB係統對象(MSO)。MSO是MathWorks開發人員可以用來連接硬件和不同軟件組件的一種標準化方式,提供先進功能,幫助執行代碼生成、Simulink支持和一般狀態管理。許多MATLAB用戶能夠在不了解的情況下,使用實施為MSO的MATLAB的各種功能,例如示波器或信號生成器。在圖10中,我們使用CN0532接口和DSP頻譜分析儀示波器,兩者都實施為MSO。同樣,和PyADI-IIO一樣,提供一個易於使用的接口供傳統的MATLAB用戶使用。
除了硬件連接之外,Sensor Toolbox還集成適用於HDL和C/C++的代碼生成工具。這些工具適用於開發、模擬和部署IP,甚至不熟悉HDL設計或工具,但了解MATLAB和Simulink的人員也可以使用。
圖10.使用示波器的Sensor Toolbox流傳輸示例
使用TensorFlow的分類示例
CN0549套件提供幾個示例,從基本數據流傳輸到機器學習分類示例。關於時間序列數據的機器學習,例如來自CN0532的振動數據,可以從幾個不同角度進行理解。這可能包括支持向量機(SVM)、長短時記憶網絡(LSTM)模mo型xing,如ru果guo將jiang數shu據ju直zhi接jie解jie譯yi為wei時shi間jian序xu列lie的de話hua,甚shen至zhi包bao括kuo自zi動dong編bian碼ma器qi。但dan是shi,在zai許xu多duo情qing況kuang下xia,將jiang時shi間jian序xu列lie問wen題ti轉zhuan換huan為wei成cheng像xiang處chu理li問wen題ti,並bing利li用yong在zai該gai應ying用yong領ling域yu開kai發fa的de工gong具ju和he豐feng富fu知zhi識shi可ke能neng更geng為wei方fang便bian。
我們在Python中看看這種方法。在隨PyADI-IIO提供的一個示例中,將CN0532安裝到振蕩風扇上,然後進行了一些測量。這些測量在不同的風扇設置(Sleep、General、Allergen)下進行,在每種模式下都會捕捉409,600個樣本。在圖11中查看這個數據時,可以輕鬆確定Allergen用(yong)例(li)的(de)時(shi)域(yu),但(dan)其(qi)他(ta)兩(liang)個(ge)用(yong)例(li)則(ze)比(bi)較(jiao)難(nan)以(yi)區(qu)分(fen)。雖(sui)然(ran)可(ke)以(yi)通(tong)過(guo)檢(jian)測(ce)來(lai)確(que)認(ren)這(zhe)些(xie)用(yong)例(li),但(dan)在(zai)時(shi)域(yu)中(zhong)使(shi)用(yong)算(suan)法(fa)來(lai)確(que)認(ren)這(zhe)些(xie)用(yong)例(li)會(hui)很(hen)容(rong)易(yi)出(chu)錯(cuo)。
為了幫助更好地區分這些用例,會將數據轉化為頻域,並使用頻譜圖來描繪不同頻率隨時間變化的濃度。與圖11相比,圖12suoshidepinputuzaishujushangyougengmingxiandechayi,danzaishijianweidushangshiyizhide。zhexiepinputushiyouxiaodetuxiang,xianzaikeyishiyongchuantongdetuxiangfenleijishujinxingchuli。
將數據集拆分為訓練集和測試集,將頻譜圖分別輸入僅由神經網絡(NN)構成的模型(包含三個致密層)和更小一些的卷積神經網絡(CNN)模型。這兩種方法都是在TensorFlow中實現的,可以在不到100次的周期內輕鬆收斂到接近100%測試驗證。CNN使用大約1%的可調參數在大約一半的時間內收斂,是目前最高效的設計。圖13提供關於精度和周期的培訓收斂圖,以概述CNN的快速收斂。
圖11.時間序列中的風扇振蕩數據
圖12.捕捉的振動數據的頻譜圖
圖13.隨時間變化的CNN訓練精度(用於繪製振動頻譜圖)
在GitHub的PyADI-IIO源代碼樹下提供了此示例的所有Python腳本、手冊和數據集。由於提供了數據集,甚至可以在不使用CN0549硬件的情況下使用TensorFlow來展示示例。但是,使用硬件時,可以將訓練模型用於實時推理。
邊緣到雲:轉向嵌入式解決方案
創建模型後,可將其部署用於推理或決策。采用CN0549時,它可以安裝在遠程PC上,從CN0540傳chuan輸shu數shu據ju流liu,或huo是shi直zhi接jie在zai嵌qian入ru式shi處chu理li器qi上shang運yun行xing。根gen據ju實shi施shi方fang案an,將jiang模mo型xing放fang到dao處chu理li器qi中zhong需xu要yao更geng多duo的de工gong程cheng工gong作zuo,但dan可ke以yi將jiang功gong效xiao提ti高gao一yi個ge數shu量liang級ji,且qie能neng夠gou實shi時shi運yun行xing。幸xing運yun的de是shi,在zai過guo去qu幾ji年nian裏li,用yong於yu部bu署shu機ji器qi學xue習xi模mo型xing的de工gong具ju和he軟ruan件jian都dou取qu得de了le很hen大da的de發fa展zhan。
使用FPGA
賽靈思公司和英特爾都提供高階合成(HLS)工具,將高階語言轉化成在FPGA上運行的HDL代碼。它們通常會與TensorFlow、PyTorch或Caffe等Python框架集成,以幫助將模型轉換為IP內核,從而允許工程師將IP部署到DE10-Nano、Cora Z7-07S或自定義係統上。然後,可以將這些IP內核集成到ADI提供的開源HDL參考設計中。圖14顯示Vivado提供的Cora Z7-07S CN0540的屏幕截圖,其中包含注釋,其中側重顯示數據路徑。在該設計中,來自CN0540的數據通過SPI引腳讀取,24位樣本由SPI引擎解譯,傳輸到DMA控製器,再進入存儲器。任何DSP或機器學習模型都可以直接插入數據路徑中這個管道。
圖14.Vivado(2019年1月)顯示的Cora Z7-07S HDL參考設計數據路徑
使用微處理器
它們無需將算法轉化為HDL層,而是可以直接在Arm內核中運行。根據數據速率和算法的複雜性,這個開發流程很合理,也更加簡單。相比HDL,為Arm內核開發C代碼甚至Python所耗費的開發資源和時間都更少,通常也更易於維護。
MATLAB Embedded Coder這樣的工具甚至可以簡化此流程,自動將MATLAB轉化為可嵌入且優化的C代碼,供Arm內核使用。或者,TensorFlow提供TensorFlow Lite等工具,它們是Python代碼庫的可嵌入的C版本,能夠更輕鬆地轉換為嵌入式目標。
智能決策拓撲
狀態監控並非適用於所有硬件和軟件配置,所以CN0549采用了靈活的設計。我們在考慮CbM異常檢測之類的問題時,通常可以從兩個時間量程角度來解決:zaiyigeshijianliangcheng,womenxuyaolijizuochufanying,liruzaianquanxiangguandechangjingzhong,zaichangqishijianliangcheng,gengduodeshiguanyuweihuhuoshebeigenghuan。liangzhexuyaoshiyongbutongdesuanfa、處理能力和方法。
zailixiangqingkuangxia,jiqicaozuoyuanjianghuiyongyouhendadeshujuhulaixunlianmoxing,keyiwuxuganraoshijianlaichuliduanqijiance,yekeyichixucongyunxingshebeichuanshushujuliu,yibianjinxingweilaideweihuyuce。danshi,duidaduoshucaozuoyuanlaishuo,qingkuangbingfeiruci,shujuhuyanzhongganhe。youyuanquankaoliang、地理位置、網絡或拓撲等要求,有些現成的解決方案也很難執行數據收集。麵對這些困難,我們需要自定義程度更高的解決方案。
圖15.CbM網絡拓撲
CN0549是一個獨立係統,提供多種連接選項。它運行標準的Linux,所以傳統的網絡堆棧(例如以太網和Wi-Fi)可以開箱即用,甚至能在必要時連接蜂窩調製解調器。在實際應用中,可以使用幾種出色的典型拓撲,如圖15所示。
圖15zuizuocedepeizhishituojishoujishujushili,yibanfashengzaipianyuanweizhihuowufalianwangdedifang。zaizhezhongqingkuangxia,pingtaihuipeibeidaxingcunchumeijie,binganzhaojihualaishoujishuju。huozhe,qitalianggexuanxiangshijiangshujuliuchuanshuzhitongyigeduandian。tu15中(zhong)間(jian)的(de)配(pei)置(zhi)是(shi)隔(ge)離(li)網(wang)絡(luo),可(ke)能(neng)僅(jin)供(gong)組(zu)織(zhi)內(nei)部(bu)使(shi)用(yong),或(huo)者(zhe)是(shi)偏(pian)遠(yuan)位(wei)置(zhi)的(de)一(yi)組(zu)用(yong)於(yu)集(ji)中(zhong)收(shou)集(ji)數(shu)據(ju)的(de)平(ping)台(tai)。出(chu)於(yu)安(an)全(quan)考(kao)慮(lv),或(huo)者(zhe)在(zai)無(wu)法(fa)聯(lian)網(wang)時(shi),可(ke)能(neng)需(xu)要(yao)這(zhe)種(zhong)配(pei)置(zhi)。在(zai)這(zhe)些(xie)配(pei)置(zhi)下(xia),CN0549易於設置,且能夠根據終端部署的特定需求來自定義。
最後一個配置是直接雲選項,每個平台直接訪問互聯網,並將測量數據推送至雲。CN0549在Linux上運行,所以該平台可以通過Python等語言輕鬆使用不同的雲供應商(例如Microsoft Azure IoT或Amazon IoT Greengrass)的API,提供一種為新連接的設備構建數據湖的簡單方式。
yunhebendiliuchengzhijianbaochiwendinglianjieshi,ruwomenzhiqiansuotantaodenayang,keyiduibutongsuanfajinxinghuafen,naxieshixuyaohuokeyizaibendiyunxingde,naxieshikeyizaiyunzhongyunxingde。ranhouzirandizhenduisuanfafuzaxingchulinengli、事件延遲和雲傳輸帶寬限製等的要求進行權衡和取舍。但是,由於非常靈活,因此這些因素很容易考慮決斷。
結論
CN0549 CbM平台為設計人員開發應用提供了係統靈活性和大量軟件資源。本文深入探討軟件堆棧,並圍繞如何使用不同組件來實施CbM和預測性維護(PdM)開發展開討論。由於軟件、HDL、原(yuan)理(li)圖(tu)以(yi)及(ji)與(yu)數(shu)據(ju)科(ke)學(xue)工(gong)具(ju)集(ji)成(cheng)的(de)開(kai)放(fang)性(xing),設(she)計(ji)人(ren)員(yuan)可(ke)以(yi)在(zai)整(zheng)個(ge)堆(dui)棧(zhan)中(zhong)充(chong)分(fen)利(li)用(yong)其(qi)終(zhong)端(duan)係(xi)統(tong)所(suo)需(xu)的(de)組(zu)件(jian)。總(zong)之(zhi),這(zhe)種(zhong)狀(zhuang)態(tai)監(jian)控(kong)設(she)計(ji)提(ti)供(gong)了(le)一(yi)款(kuan)易(yi)於(yu)使(shi)用(yong)的(de)開(kai)箱(xiang)即(ji)用(yong)解(jie)決(jue)方(fang)案(an),包(bao)括(kuo)開(kai)源(yuan)軟(ruan)件(jian)和(he)硬(ying)件(jian),以(yi)提(ti)供(gong)靈(ling)活(huo)性(xing),讓(rang)設(she)計(ji)人(ren)員(yuan)能(neng)夠(gou)在(zai)更(geng)短(duan)時(shi)間(jian)內(nei)實(shi)現(xian)更(geng)好(hao)的(de)自(zi)定(ding)義(yi)設(she)計(ji)。
免責聲明:本文為轉載文章,轉載此文目的在於傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯係小編進行處理。
推薦閱讀:
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
- 築基AI4S:摩爾線程全功能GPU加速中國生命科學自主生態
- 一秒檢測,成本降至萬分之一,光引科技把幾十萬的台式光譜儀“搬”到了手腕上
- AI服務器電源機櫃Power Rack HVDC MW級測試方案
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall




