功能原型設計系列:算法工程

發(fā)布時(shí)間:2010-3-19 10:22    發(fā)布者:嵌入式公社
關(guān)鍵詞: 工程 , 功能 , 算法 , 系統 , 原型
概覽

功能原型系統系列 是幫助您了解原型開(kāi)發(fā)過(guò)程的一系列文章。通過(guò)閱讀,可以了解關(guān)鍵概念、原型開(kāi)發(fā)的優(yōu)點(diǎn)、產(chǎn)品選擇討論以及其他技術(shù)資源。

算法工程

算法工程是為應用算法設計而造的術(shù)語(yǔ)。它所指的是將紙上的算法草稿轉換為魯棒、經(jīng)過(guò)完整測試、簡(jiǎn)單易用實(shí)現的過(guò)程。在原型系統中實(shí)現算法提供需要的功能可能是整個(gè)產(chǎn)品開(kāi)發(fā)生命周期中最具有挑戰性的部分,但是它也可能是最有回報的部分。通過(guò)應用現實(shí)世界的I/O,您能夠親眼看到算法實(shí)現工作。

本文說(shuō)明了開(kāi)發(fā)員可能會(huì )在設計算法中遇到的問(wèn)題,以及使用圖形化設計來(lái)克服這些挑戰的優(yōu)點(diǎn)。算法工程挑戰少數系統級設計師才能夠熟練掌握的編程知識。為不同平臺編程需要的編程知識通常是少數系統級設計師能精確掌握的。

基本算法實(shí)現


為基本功能實(shí)現底層算法需要時(shí)間。速度在原型開(kāi)發(fā)中是至關(guān)重要的,因為缺少現有代碼而陷入從頭開(kāi)發(fā)的已知算法的困境是開(kāi)發(fā)人員無(wú)法接受的。

為多個(gè)平臺重復實(shí)現算法

隨著(zhù)功能原型的發(fā)展,算法需要多次重復功能以便移植到不同類(lèi)型的系統中。代碼通常無(wú)法在不同的運行環(huán)境中工作,這使得應用程序從原型系統到部署的擴展變得困難起來(lái)。

測試和驗證

通常只有到較晚的時(shí)候才能夠確定系統是否可以真正滿(mǎn)足功能需求,重頭開(kāi)始的代價(jià)是昂貴的。舉例而言,處理器可能無(wú)法足夠快速地執行多個(gè)并行任務(wù)。它可能無(wú)法達到需要的循環(huán)時(shí)間。它還可能無(wú)法實(shí)時(shí)處理處理器密集的分析。

圖形化系統設計為算法工程帶來(lái)的優(yōu)點(diǎn)

圖形化系統設計解決了功能原型系統算法工程中的許多潛在問(wèn)題。圖形化系統設計是將直觀(guān)的圖形化編程與靈活的商用(COTS)硬件結合在一起解決設計挑戰的方法。您可以使用這個(gè)方法,在設計的所有階段中使用同一個(gè)環(huán)境,F在我們來(lái)深入了解一下這個(gè)方法如何解決以上提出的挑戰。

多個(gè)計算模型

圖形化系統設計的優(yōu)點(diǎn)之一是它讓程序員能夠無(wú)需考慮實(shí)現用的計算模型(MoC)創(chuàng )建算法。隨著(zhù)算法的復雜度不斷增加,程序員必須使用不同的計算模型擴展他們的代碼能力。下面是您可以用于圖形化系統設計的幾個(gè)計算模型:

數據流

數據流是與NI LabVIEW軟件緊密關(guān)聯(lián)的計算模型。使用數據流,需要開(kāi)發(fā)員在開(kāi)始執行前,輸入所有輸入的數據。數據流是直觀(guān)的代碼結構,將并行處理等應用的實(shí)現變得十分簡(jiǎn)單。

文本數學(xué)

文本數學(xué)是簡(jiǎn)單創(chuàng )建復雜功能的另一個(gè)工具;谖谋镜臄祵W(xué)是將可以用腳本描述形式編寫(xiě)的復雜算法,用人類(lèi)可以閱讀的形式實(shí)現的方法。文本數學(xué)的實(shí)例包括公式節點(diǎn)和LabVIEW MathScript實(shí)時(shí)模塊。使用LabVIEW MathScript,您可以選擇最有效的語(yǔ)法用于算法開(kāi)發(fā),無(wú)論您是開(kāi)發(fā)算法、探索信號處理概念或是分析結果。


圖1:使用LabVIEW MathScript實(shí)時(shí)模塊重用基于文本的代碼

C 代碼

有時(shí)候您使用的代碼原來(lái)是用C或C++創(chuàng )建的。在這個(gè)情況下,您不必舍棄過(guò)去的工作。您可以在LabVIEW中使用內嵌C節點(diǎn)或調用庫函數節點(diǎn)直接調用您之前的代碼。使用內嵌C節點(diǎn)用于現有的C代碼或編寫(xiě)小型的數字或矩陣算法,使用調用庫函數節點(diǎn)訪(fǎng)問(wèn)DLL或共享庫中的C代碼。

開(kāi)放式軟件體系結構

在過(guò)去的幾年中,LabVIEW平臺在眾多設計學(xué)科中得到了廣泛應用,因此需要將數據與不同的設計與仿真工具整合在一起。LabVIEW使用多種整合工具、庫和文件格式實(shí)現這種交互兼容性。LabVIEW還提供了與其他軟件工具和測量資源的眾多標準集成,其中包括:

    * DLLs, 共享庫
    * ActiveX, COM, 以及 .NET (Microsoft)
    * DDE, TCP/IP, UDP, 以太網(wǎng)、藍牙
    * CAN, DeviceNet, Modbus, OPC
    * USB, IEEE 1394, RS232/485, GPIB
    * 數據庫(ADO、SQL等等)

使用這些工具,來(lái)自幾乎任何測量和控制設備的數據集成都是可能的。通過(guò)將LabVIEW與硬件通信的通用標準整合在一起,開(kāi)發(fā)者可以確保未來(lái)多年的兼容性和可擴展性。

LabVIEW方法

LabVIEW中的數百個(gè)函數涵蓋了數學(xué)、信號處理、概率、控制中的許多傳統算法,是構造任何定制算法的基礎。這些函數減輕了編寫(xiě)底層代碼的負擔,為工程師提供了關(guān)注解決方案而不是關(guān)注實(shí)現細節的時(shí)間。

因為使用LabVIEW將采集現實(shí)世界的數據變得十分簡(jiǎn)單,用戶(hù)認為能夠使用實(shí)際數據對算法進(jìn)行測試,從而使用重復的方法進(jìn)行微調是十分有價(jià)值的。采用這種交互式的測試方法,您可以用不同函數進(jìn)行實(shí)驗,檢查它們是否給出了期望的結果。舉例而言,在使用濾波器處理信號時(shí),您可以從不同解決方案中進(jìn)行選擇,采集您所需要的實(shí)際信號,然后在圖或文件中查看結果。如果結果并不適用于應用程序,您可以選擇其他濾波器。通常采集實(shí)際信號應用算法比花時(shí)間用軟件仿真更加簡(jiǎn)單。

商業(yè)硬件

商業(yè)硬件步進(jìn)提供了快速開(kāi)始原型開(kāi)發(fā)的簡(jiǎn)單方法,而且使用圖形化系統設計幫助您在許多帶有集成I/O的目標上實(shí)現本地算法。使用在NI CompactRIO和PXI平臺中的實(shí)時(shí)處理器,集成帶有確定性控制的I/O,得到更多可靠性。這對于硬件在環(huán)應用是很重要的,因為需要將硬件和軟件緊密整合在一起,動(dòng)態(tài)仿真控制算法設法控制的環(huán)境。

處理使用帶有FPGA的實(shí)時(shí)處理器,您可以將LabVIEW集成到您的應用中,將代碼從一個(gè)類(lèi)型的商用硬件移植到另一個(gè)硬件上。舉例而言,您可以移植在臺式機上對實(shí)際世界I/O信號進(jìn)行分析的代碼,無(wú)需大量重寫(xiě)就可以將它用于PXI、PDA以及嵌入式處理器等平臺上。實(shí)際上,先在臺式機上設計并驗證原型,然后將它轉換到32位處理器上,進(jìn)行嵌入式系統部署可以大大節省因為忽略設計限制而增加的開(kāi)發(fā)時(shí)間和重復編碼。


圖2:LabVIEW目標

用于仿真和控制設計的工具

由于LabVIEW是一個(gè)開(kāi)放式平臺,您可以將您的測量數據映射到仿真結果上。您可以將用于行為建模的仿真數據與實(shí)時(shí)數據進(jìn)行互換。此外,您可以使用仿真激勵驅動(dòng)物理測量,提供魯棒的測試環(huán)境。

使用LabVIEW仿真驗證并估計設計準則的性能。您可以將設計導入到不同的仿真工具中,進(jìn)行早期設計評估。下一步包括自動(dòng)化布局或模型建立工具,對構造過(guò)程進(jìn)行自動(dòng)化。保存可用的系統狀態(tài)信息和輸出信號幫助您調試應用程序以及建立應用程序性能規范。

使用例如LabVIEW控制設計和仿真模塊中的控制方塊圖設計線(xiàn)性、非線(xiàn)性、離散或連續控制系統。使用這個(gè)抽象編程風(fēng)格,您可以使用例如傳遞函數模塊、積分器、微分器和反饋循環(huán)等傳統控制概念進(jìn)行編程。使用高級方塊圖,您可以在概念級開(kāi)發(fā)解決方案,從而可以利用過(guò)去的系統經(jīng)驗和知識。


圖3:使用控制設計與仿真的PID控制

下一步

對算法進(jìn)行工程設計,實(shí)現原型系統的功能是個(gè)具有挑戰性的過(guò)程。圖形化系統設計是利用直觀(guān)的圖形化軟件與商業(yè)硬件之間緊密整合優(yōu)點(diǎn)幫助您克服與算法工程相關(guān)挑戰的方法,從而讓您可以用更低的成本更快地完成原型系統開(kāi)發(fā)。

要學(xué)習從紙面設計轉換到軟件設計的技術(shù)細節,請參閱下面的相關(guān)資源。要繼續原型開(kāi)發(fā)過(guò)程的后續步驟,請返回功能原型系統系列。

NI公司供稿
本文地址:http://selenalain.com/thread-9582-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页