【導讀】在本文中,我們將重點(diǎn)介紹CN0549的不同組件可用的軟件生態(tài)系統、數據分析工具和軟件集成,以及工程師和數據專(zhuān)家如何使用它們進(jìn)行應用開(kāi)發(fā)。我們分兩部分來(lái)介紹使用CN0549開(kāi)發(fā)平臺進(jìn)行狀態(tài)監控(CbM)和預測性維護(PdM)應用,這是該系列文章的第二篇。新平臺旨在加快定制CbM解決方案從原型制作到生產(chǎn)的整個(gè)開(kāi)發(fā)流程。第一部分主要介紹MEMS振動(dòng)技術(shù),以及為CbM應用捕捉高質(zhì)量的振動(dòng)數據。
CN0549狀態(tài)監控平臺簡(jiǎn)介
在本文中,我們將重點(diǎn)介紹CN0549的不同組件可用的軟件生態(tài)系統、數據分析工具和軟件集成,以及工程師和數據專(zhuān)家如何使用它們進(jìn)行應用開(kāi)發(fā)。我們分兩部分來(lái)介紹使用CN0549開(kāi)發(fā)平臺進(jìn)行狀態(tài)監控(CbM)和預測性維護(PdM)應用,這是該系列文章的第二篇。新平臺旨在加快定制CbM解決方案從原型制作到生產(chǎn)的整個(gè)開(kāi)發(fā)流程。第一部分主要介紹MEMS振動(dòng)技術(shù),以及為CbM應用捕捉高質(zhì)量的振動(dòng)數據。
從概念到生產(chǎn)的整個(gè)過(guò)程,以及如何加快這個(gè)過(guò)程!
在構建狀態(tài)監控解決方案時(shí),它們必須包含傳感器、本地處理、連接、某些形式的軟件或硬件,使其能夠正常運行。CN0549提供可自定義的硬件和軟件選項,讓工程師和軟件開(kāi)發(fā)人員能夠使用常用的工具和基礎設施,并根據應用設計做出權衡取舍,以解決所有這些挑戰。例如,如果您想選擇特定的微控制器或FPGA進(jìn)行處理,想要使用Python進(jìn)行編碼,或有喜歡的、想要重復使用的傳感器。這讓CN0549成為一個(gè)強大的平臺,讓希望構建優(yōu)化CbM解決方案的人員能夠根據自己的需求來(lái)自定義處理、功率、性能、軟件和數據分析。
嵌入式系統的開(kāi)發(fā)流程
我們來(lái)看看嵌入式系統從生成概念到生產(chǎn)的整個(gè)開(kāi)發(fā)流程。圖1概要描述這個(gè)抽象化的過(guò)程。
在圖1所示的設計流程中,第1步是“數據研究”階段。在這個(gè)階段,用戶(hù)將他們的要求轉化到應用對硬件和軟件的不同要求。從硬件的角度來(lái)看,可能涉及抗沖擊性、模擬信號帶寬或測量范圍等參數。在考慮對軟件的要求時(shí),樣本數量、采樣速率、頻譜、過(guò)采樣和數字濾波都是CbM應用的重要參數。該平臺非常實(shí)用靈活,允許研究人員使用不同的傳感器組合,并調節數據采集參數,以滿(mǎn)足其應用需求。
“數據研究”階段之后是“算法開(kāi)發(fā)”階段,這個(gè)階段主要是驗證系統的應用或使用。這通常需要在高級工具中開(kāi)發(fā)模型或設計算法,并最終移植到嵌入式系統中。但是,在優(yōu)化設計之前,必須使用真實(shí)數據和硬件環(huán)路進(jìn)行驗證,這正是CN0549的優(yōu)勢所在,因為它不僅能與熱門(mén)的高級分析工具直接集成,還支持硬件環(huán)路驗證。
設計得到驗證之后,就開(kāi)始進(jìn)行優(yōu)化和嵌入所需軟件組件的工作。在“嵌入式設計細化”階段,可能需要重新實(shí)施某些算法或軟件層,以便在FPGA或資源有限的微控制器中使用。必須小心謹慎地不斷驗證設計,因為我們會(huì )將它移植到原型或將要投入生產(chǎn)的硬件中進(jìn)行最后驗證。
圖1.嵌入式系統的開(kāi)發(fā)流程
最后是到達“生產(chǎn)”階段,這個(gè)階段可能與設計開(kāi)始使用的原始開(kāi)發(fā)環(huán)境沒(méi)有什么相似之處,但仍然要滿(mǎn)足同樣的要求。由于最終的系統可能與原始的研究系統相去甚遠,所以可能無(wú)法或很難運行相同的代碼或測試。這可能導致產(chǎn)生生產(chǎn)測試問(wèn)題和設備故障,很可能需要花費額外的時(shí)間和資金投入來(lái)進(jìn)行補救。
通過(guò)最大程度的重復使用來(lái)降低風(fēng)險
在設計過(guò)程中,降低風(fēng)險最簡(jiǎn)單的方法之一是盡可能在每個(gè)階段重復使用更多的硬件和軟件組件,CN0549為開(kāi)發(fā)人員提供許多開(kāi)箱即用的資源,可以在開(kāi)發(fā)流程的每個(gè)階段直接使用。CN0549解決方案提供原理圖和電路板布局文件,提供一個(gè)適用于優(yōu)化和全功能環(huán)境的開(kāi)源軟件堆棧,以及更高等級工具(例如MATLAB?和Python)可用的集成選項。最終用戶(hù)可以使用ADI經(jīng)過(guò)驗證的組件,并在研究階段到生產(chǎn)階段期間選擇想要維護或更改的組件。這樣最終用戶(hù)就能集中精力進(jìn)行軟件開(kāi)發(fā)和系統集成,不必去繪制ADI組件的原理圖或進(jìn)行基礎的軟件開(kāi)發(fā)。利用硬件模塊和重復使用軟件層,例如ADI提供的設備驅動(dòng)程序、HDL或應用固件,可以減少構建系統所需的開(kāi)發(fā)時(shí)間,并大大加快上市時(shí)間。
軟件開(kāi)發(fā)流程和過(guò)程
在開(kāi)發(fā)期間,CN0549為工程師們提供多種選項,允許他們使用通用語(yǔ)言,包括C或C++,同時(shí)使用他們熟悉的數據分析工具,例如MATLAB或Python。這主要是通過(guò)利用和基于開(kāi)源標準,以及支持不同制造商的多種嵌入式平臺的現有解決方案進(jìn)行構建而實(shí)現。
CN0549系統堆棧
圖2所示的系統堆棧概述了構成CN0549系統的不同組件。左上角的深藍色方框表示傳感器和數據采集(DAQ)電路板,淺藍色和紫色方框表示用于數據處理的FPGA分區。該平臺直接支持Intel DE10-Nano和Xilinx? CoraZ7-07s,涵蓋兩大FPGA供應商。綠色方框表示與主機PC的連接。這為算法開(kāi)發(fā)提供了從硬件到高級數據分析工具的直接數據訪(fǎng)問(wèn)。
所有硬件描述語(yǔ)言(HDL)代碼都是開(kāi)源的,允許開(kāi)發(fā)人員進(jìn)行修改,將數字信號處理(DSP)插入可編程邏輯(PL)的數據流中,如圖2所示。這可以是從濾波器到狀態(tài)機甚至機器學(xué)習等任何內容,具體由您的系統分區決定,這一步也可以在用戶(hù)空間或應用層完成。由于代碼是公開(kāi)提供的,它可以移植到不同制造商的其他FPGA,或不同處理器系列中,具體取決于終端應用的需求。
圖2.CN0549平臺的系統堆棧
Arm?處理器內部提供兩種軟件選項。具體使用哪種,由具體的用例決定,大多數開(kāi)發(fā)人員可能會(huì )使用:
● Linux?:內核驅動(dòng)程序,可用于在內核中的輸入輸出工業(yè)(IIO)框架中構建的DAQ屏蔽。它與一個(gè)名為Kuiper Linux的完全嵌入式Linux發(fā)行版相結合,這個(gè)版本在A(yíng)rm內核用戶(hù)空間中運行,基于樹(shù)莓派OS。
● 無(wú)操作系統(No-OS):裸機項目,使用與Linux內核中同樣的驅動(dòng)程序,可以在Xilinx或Intel的SDK中使用。它也可以作為替代方案,在實(shí)時(shí)操作系統(RTOS)環(huán)境中實(shí)現。
建議開(kāi)發(fā)人員從Linux開(kāi)始學(xué)習并使用其系統進(jìn)行開(kāi)發(fā),因為L(cháng)inux提供的工具最多。Linux還提供大量開(kāi)發(fā)包和驅動(dòng)程序,構成了所需的開(kāi)發(fā)環(huán)境。在系統設計穩定并準備進(jìn)行優(yōu)化時(shí),通常會(huì )轉向無(wú)操作系統環(huán)境,只提供必要的軟件。但是,這主要取決于應用,許多制造商會(huì )交付完整的Linux系統,以保持他們要提供的靈活性。
與用于可編程邏輯的HDL一樣,整個(gè)內核源代碼、Kuiper Linux鏡像和No-OS項目都是完全開(kāi)源的,讓最終用戶(hù)能夠按照自己的意愿更改組件。如果需要,還可以將這些代碼庫移植到不同的處理器系統或不同的運行時(shí)環(huán)境中。
圖2所示的最后一個(gè)組件是與主機PC的連接,如綠色方框所示。在運行該系統時(shí),可以對設備進(jìn)行配置,并將數據流備份到主機系統進(jìn)行分析,開(kāi)發(fā)人員將利用MATLAB或TensorFlow等標準工具在主機上創(chuàng )建算法。最終將這些算法轉移到嵌入目標中,讓他們能夠使用本地處理能力來(lái)加快算法開(kāi)發(fā)迭代。
訪(fǎng)問(wèn)CbM數據——使用入門(mén)
使用Arm處理器和PL一般發(fā)生在設計流程較為靠后的階段,也就是要對系統實(shí)施優(yōu)化進(jìn)行部署時(shí)。所以,對于開(kāi)發(fā)人員來(lái)說(shuō),最開(kāi)始常用的切入點(diǎn)都是從工作站遠程連接至嵌入式系統。在嵌入式系統上運行Linux時(shí),因為基礎設施的設計方式,在工作站上遠程或本地運行代碼是一個(gè)相對透明的過(guò)程。這主要是因為名為libIIO的開(kāi)源庫。libIIO是一個(gè)接口庫,允許在內核的Linux IIO框架內構建適用于不同設備驅動(dòng)程序的簡(jiǎn)單、一致的訪(fǎng)問(wèn)模型。這個(gè)庫是能夠靈活使用CbM平臺的核心,并提供數據流傳輸和設備控制功能。
libIIO本身主要分成兩個(gè)部分:
● libIIO庫,這是一個(gè)C語(yǔ)言庫,用于訪(fǎng)問(wèn)不同的IIO驅動(dòng)程序屬性或函數。這包括向設備(例如ADC、DAC和傳感器)傳輸數據流或從中輸出數據流。
● IIO daemon(iiod)利用實(shí)際的驅動(dòng)程序的庫和內核接口來(lái)管理libIIO庫或客戶(hù)端之間的訪(fǎng)問(wèn)。
libIIO和iiod本身是從不同的組件寫(xiě)入,可以使用不同的方法來(lái)訪(fǎng)問(wèn)驅動(dòng)程序,即所謂的后端。后端允許本地和遠程用戶(hù)對libII進(jìn)行控制和提供數據流,而且,由于它們已形成組件,所以可以將新后端添加到系統中。目前,libIIO支持四個(gè)后端:
● 本地:允許訪(fǎng)問(wèn)連接至同一設備的硬件的本地可訪(fǎng)問(wèn)驅動(dòng)程序。
● USB:通過(guò)使用libusb,此后端允許通過(guò)USB鏈接遠程控制驅動(dòng)程序。
● 串行:為通過(guò)串行連接的電路板提供更通用的接口。UART是最常見(jiàn)的用例。
● 網(wǎng)絡(luò ):最常用的遠程后端,基于IP來(lái)訪(fǎng)問(wèn)網(wǎng)絡(luò )中的驅動(dòng)程序。
圖3. 使用網(wǎng)絡(luò )后端的libIIO系統概述
圖3從系統層面概述如何使用libIIO組件,以及如何將它們集成到整個(gè)系統中。圖中左側是嵌入式系統,它已安裝libIIO庫,運行iiod daemon。在嵌入式系統中,用戶(hù)可以訪(fǎng)問(wèn)本地后端,甚至網(wǎng)絡(luò )后端。他們可以通過(guò)更改一行代碼來(lái)確認任一后端的地址,在兩個(gè)后端之間切換。無(wú)需對目標代碼進(jìn)行其他更改。
圖4. libIIO遠程與本地示例
圖3左側顯示的是遠程主機,可以運行任何操作系統。提供Windows、macOS、Linux和BSD等官方軟件包。該圖顯示使用了基于網(wǎng)絡(luò )或IP的后端,也可能是使用串行、USB或PCIe連接。從用戶(hù)的角度來(lái)看,可以從C語(yǔ)言庫本身,或者從其他語(yǔ)言的許多可用綁定來(lái)使用libIIO,包括:Python、C#、Rust、MATLAB和Node.js。為需要與應用中的不同驅動(dòng)程序交互的用戶(hù)提供多種選擇。
應用和工具
當開(kāi)始使用一個(gè)新設備時(shí),通常不建議直接使用libIIO。所以,有很多基于libIIO構建的更高等級的應用,它們通過(guò)命令行和GUI格式為IIO設備提供基本的配置能力。它們分別是IIO工具和IIO示波器。
IIO工具是一組與libIIO一起發(fā)布的命令行工具,對于通過(guò)腳本執行的低等級調試和自動(dòng)化任務(wù)來(lái)說(shuō)非常有用。例如,在執行實(shí)驗室測試時(shí),它可以在不同的采樣率模式下設置平臺,以及收集一些數據。利用幾行bash,或通過(guò)使用IIO工具的批處理腳本可輕松完成這些操作。圖5顯示了一個(gè)簡(jiǎn)單示例,可以在本地或遠程運行,以更改采樣速率和ADC的地輸入模式。這個(gè)示例使用名為iio_attr的IIO工具,讓用戶(hù)能夠輕松更新設備的配置。
圖5.IIO工具的iio_attr部分的使用示例
但是,對用戶(hù)來(lái)說(shuō),最常見(jiàn)的切入點(diǎn)是GUI應用IIO示波器,一般被稱(chēng)為OSC。與IIO工具一樣,OSC是通用的,可以管理任意IIO驅動(dòng)程序,而且,因為它是基于libIIO構建,所以它可以遠程運行或在電路板上運行。但是,它也包含一個(gè)插件系統,可以為特定的驅動(dòng)程序或驅動(dòng)程序組合添加專(zhuān)用選項卡。圖6顯示自動(dòng)加載到基于CN0540的電路板上的插件選項卡,包括控制和監控選項卡。這些選項卡提供了一個(gè)簡(jiǎn)單的界面,可以訪(fǎng)問(wèn)CN0540的ADC、DAC和控制引腳的低級功能,以及數據采集板和測試點(diǎn)監控的基本示意圖。如需了解其他可用的默認選項卡和插件信息,可以訪(fǎng)問(wèn)ADI公司W(wǎng)iki查看更多OSC文檔。
OSC的最后一個(gè)重要方面是捕獲窗口。捕獲窗口可以根據從ADC或基于libIIO的緩沖區收集的數據進(jìn)行繪圖。圖7顯示在頻域模式下使用的捕獲窗口,這是基于頻譜數據信息繪制。也可以繪制其他圖,包括時(shí)域圖、相關(guān)圖和星座圖。這對于抽檢設備、調試或評估非常有用。這些圖提供常用工具,例如標記、峰值檢測、諧波檢測,甚至相位估計。由于OSC也是開(kāi)源的,任何人都可以添加更多插件或繪圖,甚至更改現有功能,對其進(jìn)行擴展。
圖6.CN0540 IIO示波器插件選項卡
圖7.頻域模式下的IIO示波器捕獲窗口
算法開(kāi)發(fā)環(huán)境集成
至此,我們已經(jīng)介紹了大部分工程師在首次使用CN0549時(shí)會(huì )采用的低等級重要工具。首先理解這些是很重要的,這樣開(kāi)發(fā)人員才能理解系統的靈活性以及他們可以使用的不同選擇或接口。但是,在設置和運行基線(xiàn)系統后,開(kāi)發(fā)人員希望使用MATLAB或Python等工具將數據快速遷移至算法開(kāi)發(fā)。這些程序可以從硬件導入數據。必要時(shí)可以設計附加控制邏輯。
在機器學(xué)習開(kāi)發(fā)周期中,開(kāi)發(fā)人員通常會(huì )遵循通用的流程,該流程與他們想要用于處理數據的軟件環(huán)境無(wú)關(guān)。圖8簡(jiǎn)要顯示了該流程的一個(gè)示例,其中涉及數據收集、分割數據用于測試和訓練、開(kāi)發(fā)模型和算法,最后部署模型進(jìn)行現場(chǎng)推理。在實(shí)際服務(wù)中,會(huì )持續執行這整個(gè)流程,將新學(xué)習內容集成到生產(chǎn)模型中。TensorFlow、PyTorch,或MATLAB Machine Learning Toolbox等工具都可以采用此流程。這個(gè)流程有其作用,但是,通常會(huì )忽視或完全忽略收集和整理數據,以及管理數據這種復雜任務(wù)。為了簡(jiǎn)化這項任務(wù),我們使用這些相關(guān)工具和軟件包設計出相關(guān)的軟件生態(tài)系統。
Python集成——連接到Python分析工具
首先,從Python開(kāi)始,可以通過(guò)模塊PyADI-IIO獲得CN0549的設備特定類(lèi)別。圖6顯示了一個(gè)通過(guò)以太網(wǎng)配置設備的采樣速率和提取緩沖區的簡(jiǎn)單示例。這里沒(méi)有復雜的寄存器序列、模糊的存儲器控制調用,或要記憶的隨機位。而是由板上運行的驅動(dòng)程序、libIIO和PyADI-IIO在工作站,甚至在云中進(jìn)行遠程管理。
PyADI-IIO可以通過(guò)pip和conda進(jìn)行安裝,將控制按鈕表現為易于使用和歸檔記錄的屬性。它還按易于理解的形式(例如NumPy陣列或原生形式)提供數據,在必要時(shí),還會(huì )處理設備的數據流轉換。這使PyADI-IIO易于添加到Jupyter Notebook之類(lèi)的環(huán)境中,無(wú)需通過(guò)不同的工具或復雜的數據轉換即可輕松將數據傳輸到機器學(xué)習管道中,讓開(kāi)發(fā)人員可以集中精力開(kāi)發(fā)算法,而不是處理某些困難的API或數據轉換。
圖8.機器學(xué)習模型開(kāi)發(fā)流程
圖9.PyADI-IIO示例
MATLAB集成——連接到MATLAB
在MATLAB方面,通過(guò)Analog Devices Sensor Toolbox提供對CN0549及其組件的支持。這個(gè)工具箱與PyADI-IIO類(lèi)似,提供針對不同組件的特性類(lèi)別,將它們實(shí)施為MATLAB系統對象(MSO)。MSO是MathWorks開(kāi)發(fā)人員可以用來(lái)連接硬件和不同軟件組件的一種標準化方式,提供先進(jìn)功能,幫助執行代碼生成、Simulink支持和一般狀態(tài)管理。許多MATLAB用戶(hù)能夠在不了解的情況下,使用實(shí)施為MSO的MATLAB的各種功能,例如示波器或信號生成器。在圖10中,我們使用CN0532接口和DSP頻譜分析儀示波器,兩者都實(shí)施為MSO。同樣,和PyADI-IIO一樣,提供一個(gè)易于使用的接口供傳統的MATLAB用戶(hù)使用。
除了硬件連接之外,Sensor Toolbox還集成適用于HDL和C/C++的代碼生成工具。這些工具適用于開(kāi)發(fā)、模擬和部署IP,甚至不熟悉HDL設計或工具,但了解MATLAB和Simulink的人員也可以使用。
圖10.使用示波器的Sensor Toolbox流傳輸示例
使用TensorFlow的分類(lèi)示例
CN0549套件提供幾個(gè)示例,從基本數據流傳輸到機器學(xué)習分類(lèi)示例。關(guān)于時(shí)間序列數據的機器學(xué)習,例如來(lái)自CN0532的振動(dòng)數據,可以從幾個(gè)不同角度進(jìn)行理解。這可能包括支持向量機(SVM)、長(cháng)短時(shí)記憶網(wǎng)絡(luò )(LSTM)模型,如果將數據直接解譯為時(shí)間序列的話(huà),甚至包括自動(dòng)編碼器。但是,在許多情況下,將時(shí)間序列問(wèn)題轉換為成像處理問(wèn)題,并利用在該應用領(lǐng)域開(kāi)發(fā)的工具和豐富知識可能更為方便。
我們在Python中看看這種方法。在隨PyADI-IIO提供的一個(gè)示例中,將CN0532安裝到振蕩風(fēng)扇上,然后進(jìn)行了一些測量。這些測量在不同的風(fēng)扇設置(Sleep、General、Allergen)下進(jìn)行,在每種模式下都會(huì )捕捉409,600個(gè)樣本。在圖11中查看這個(gè)數據時(shí),可以輕松確定Allergen用例的時(shí)域,但其他兩個(gè)用例則比較難以區分。雖然可以通過(guò)檢測來(lái)確認這些用例,但在時(shí)域中使用算法來(lái)確認這些用例會(huì )很容易出錯。
為了幫助更好地區分這些用例,會(huì )將數據轉化為頻域,并使用頻譜圖來(lái)描繪不同頻率隨時(shí)間變化的濃度。與圖11相比,圖12所示的頻譜圖在數據上有更明顯的差異,但在時(shí)間維度上是一致的。這些頻譜圖是有效的圖像,現在可以使用傳統的圖像分類(lèi)技術(shù)進(jìn)行處理。
將數據集拆分為訓練集和測試集,將頻譜圖分別輸入僅由神經(jīng)網(wǎng)絡(luò )(NN)構成的模型(包含三個(gè)致密層)和更小一些的卷積神經(jīng)網(wǎng)絡(luò )(CNN)模型。這兩種方法都是在TensorFlow中實(shí)現的,可以在不到100次的周期內輕松收斂到接近100%測試驗證。CNN使用大約1%的可調參數在大約一半的時(shí)間內收斂,是目前最高效的設計。圖13提供關(guān)于精度和周期的培訓收斂圖,以概述CNN的快速收斂。
圖11.時(shí)間序列中的風(fēng)扇振蕩數據
圖12.捕捉的振動(dòng)數據的頻譜圖
圖13.隨時(shí)間變化的CNN訓練精度(用于繪制振動(dòng)頻譜圖)
在GitHub的PyADI-IIO源代碼樹(shù)下提供了此示例的所有Python腳本、手冊和數據集。由于提供了數據集,甚至可以在不使用CN0549硬件的情況下使用TensorFlow來(lái)展示示例。但是,使用硬件時(shí),可以將訓練模型用于實(shí)時(shí)推理。
邊緣到云:轉向嵌入式解決方案
創(chuàng )建模型后,可將其部署用于推理或決策。采用CN0549時(shí),它可以安裝在遠程PC上,從CN0540傳輸數據流,或是直接在嵌入式處理器上運行。根據實(shí)施方案,將模型放到處理器中需要更多的工程工作,但可以將功效提高一個(gè)數量級,且能夠實(shí)時(shí)運行。幸運的是,在過(guò)去幾年里,用于部署機器學(xué)習模型的工具和軟件都取得了很大的發(fā)展。
使用FPGA
賽靈思公司和英特爾都提供高階合成(HLS)工具,將高階語(yǔ)言轉化成在FPGA上運行的HDL代碼。它們通常會(huì )與TensorFlow、PyTorch或Caffe等Python框架集成,以幫助將模型轉換為IP內核,從而允許工程師將IP部署到DE10-Nano、Cora Z7-07S或自定義系統上。然后,可以將這些IP內核集成到ADI提供的開(kāi)源HDL參考設計中。圖14顯示Vivado提供的Cora Z7-07S CN0540的屏幕截圖,其中包含注釋?zhuān)渲袀戎仫@示數據路徑。在該設計中,來(lái)自CN0540的數據通過(guò)SPI引腳讀取,24位樣本由SPI引擎解譯,傳輸到DMA控制器,再進(jìn)入存儲器。任何DSP或機器學(xué)習模型都可以直接插入數據路徑中這個(gè)管道。
圖14.Vivado(2019年1月)顯示的Cora Z7-07S HDL參考設計數據路徑
使用微處理器
它們無(wú)需將算法轉化為HDL層,而是可以直接在A(yíng)rm內核中運行。根據數據速率和算法的復雜性,這個(gè)開(kāi)發(fā)流程很合理,也更加簡(jiǎn)單。相比HDL,為Arm內核開(kāi)發(fā)C代碼甚至Python所耗費的開(kāi)發(fā)資源和時(shí)間都更少,通常也更易于維護。
MATLAB Embedded Coder這樣的工具甚至可以簡(jiǎn)化此流程,自動(dòng)將MATLAB轉化為可嵌入且優(yōu)化的C代碼,供Arm內核使用?;蛘?,TensorFlow提供TensorFlow Lite等工具,它們是Python代碼庫的可嵌入的C版本,能夠更輕松地轉換為嵌入式目標。
智能決策拓撲
狀態(tài)監控并非適用于所有硬件和軟件配置,所以CN0549采用了靈活的設計。我們在考慮CbM異常檢測之類(lèi)的問(wèn)題時(shí),通??梢詮膬蓚€(gè)時(shí)間量程角度來(lái)解決:在一個(gè)時(shí)間量程,我們需要立即做出反應,例如在安全相關(guān)的場(chǎng)景中,在長(cháng)期時(shí)間量程,更多的是關(guān)于維護或設備更換。兩者需要使用不同的算法、處理能力和方法。
在理想情況下,機器操作員將會(huì )擁有很大的數據湖來(lái)訓練模型,可以無(wú)需干擾事件來(lái)處理短期檢測,也可以持續從運行設備傳輸數據流,以便進(jìn)行未來(lái)的維護預測。但是,對大多數操作員來(lái)說(shuō),情況并非如此,數據湖嚴重干涸。由于安全考量、地理位置、網(wǎng)絡(luò )或拓撲等要求,有些現成的解決方案也很難執行數據收集。面對這些困難,我們需要自定義程度更高的解決方案。
圖15.CbM網(wǎng)絡(luò )拓撲
CN0549是一個(gè)獨立系統,提供多種連接選項。它運行標準的Linux,所以傳統的網(wǎng)絡(luò )堆棧(例如以太網(wǎng)和Wi-Fi)可以開(kāi)箱即用,甚至能在必要時(shí)連接蜂窩調制解調器。在實(shí)際應用中,可以使用幾種出色的典型拓撲,如圖15所示。
圖15最左側的配置是脫機收集數據示例,一般發(fā)生在偏遠位置或無(wú)法聯(lián)網(wǎng)的地方。在這種情況下,平臺會(huì )配備大型存儲媒介,并按照計劃來(lái)收集數據?;蛘?,其他兩個(gè)選項是將數據流傳輸至同一個(gè)端點(diǎn)。圖15中間的配置是隔離網(wǎng)絡(luò ),可能僅供組織內部使用,或者是偏遠位置的一組用于集中收集數據的平臺。出于安全考慮,或者在無(wú)法聯(lián)網(wǎng)時(shí),可能需要這種配置。在這些配置下,CN0549易于設置,且能夠根據終端部署的特定需求來(lái)自定義。
最后一個(gè)配置是直接云選項,每個(gè)平臺直接訪(fǎng)問(wèn)互聯(lián)網(wǎng),并將測量數據推送至云。CN0549在Linux上運行,所以該平臺可以通過(guò)Python等語(yǔ)言輕松使用不同的云供應商(例如Microsoft Azure IoT或Amazon IoT Greengrass)的API,提供一種為新連接的設備構建數據湖的簡(jiǎn)單方式。
云和本地流程之間保持穩定連接時(shí),如我們之前所探討的那樣,可以對不同算法進(jìn)行劃分,哪些是需要或可以在本地運行的,哪些是可以在云中運行的。然后自然地針對算法復雜性處理能力、事件延遲和云傳輸帶寬限制等的要求進(jìn)行權衡和取舍。但是,由于非常靈活,因此這些因素很容易考慮決斷。
結論
CN0549 CbM平臺為設計人員開(kāi)發(fā)應用提供了系統靈活性和大量軟件資源。本文深入探討軟件堆棧,并圍繞如何使用不同組件來(lái)實(shí)施CbM和預測性維護(PdM)開(kāi)發(fā)展開(kāi)討論。由于軟件、HDL、原理圖以及與數據科學(xué)工具集成的開(kāi)放性,設計人員可以在整個(gè)堆棧中充分利用其終端系統所需的組件??傊?,這種狀態(tài)監控設計提供了一款易于使用的開(kāi)箱即用解決方案,包括開(kāi)源軟件和硬件,以提供靈活性,讓設計人員能夠在更短時(shí)間內實(shí)現更好的自定義設計。
免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問(wèn)題,請聯(lián)系小編進(jìn)行處理。
推薦閱讀: