技術(shù)頻道

      利用熟悉的計算模型進(jìn)行設(shè)計

      概覽

        本文將概括了在LabVIEW中可用的幾種計算模型,以及何時使用這些模型的指南。

      目錄

        引言

        數(shù)據(jù)流

        數(shù)學(xué)文本公式

        ODE建模

        狀態(tài)圖

        中斷驅(qū)動式編程

        C 代碼

        案例研究——帶刷直流電機控制

        如欲了解更多

      引言

        在可執(zhí)行代碼中實現(xiàn)一個算法的最有效方式是什么?當(dāng)新的項目增加了工程設(shè)計的復(fù)雜度,而這一復(fù)雜度與最終實現(xiàn)所需的工程工作量之間的鴻溝擴(kuò)大時,該問題變得與工程人員更為相關(guān)。加州大學(xué)伯克利分校利用“計算模型(MoC)”概念解答了這一問題。我們將探究NI LabVIEW平臺所提供的一些不同MoC,以及開發(fā)人員如何在不同的執(zhí)行目標(biāo)平臺(包括臺式機PC、實時系統(tǒng)、嵌入式微處理器和現(xiàn)場可編程門陣列(FPGA)上使用這些模型。

      數(shù)據(jù)流

        LabVIEW或許因數(shù)據(jù)流MoC最為著稱。對于數(shù)據(jù)流,一項操作要求開發(fā)人員在其執(zhí)行前在所有的輸入中插入數(shù)據(jù)。必須滿足這一條件以執(zhí)行代碼。


      圖1。數(shù)據(jù)流執(zhí)行——在乘法操作前實現(xiàn)加法操作。

        數(shù)據(jù)流編程本質(zhì)上是直觀的,因為它與人類的思維相仿。其他的優(yōu)勢還包括能夠方便地實現(xiàn)和并行化代碼。該數(shù)據(jù)流MoC是該LabVIEW平臺的基礎(chǔ),它不需要使用任何額外的模塊或工具集。

      數(shù)學(xué)文本公式

        在設(shè)計階段,描述一項算法的最佳工具經(jīng)常是高層次的數(shù)學(xué)函數(shù)。該數(shù)學(xué)模型的優(yōu)勢在于非常易于人們解讀,以及利用定義的復(fù)雜函數(shù)通過腳本來解釋執(zhí)行的順序。

        
      圖2。采用數(shù)學(xué)文本公式實現(xiàn)巴特沃思濾波器

        開發(fā)人員可以通過新推出的LabVIEW 2009數(shù)學(xué)腳本RT模塊(該模塊同時與Windows和實時目標(biāo)平臺相兼容),在LabVIEW平臺內(nèi)實現(xiàn)數(shù)學(xué)文本公式。

      ODE建模

        開發(fā)人員在需要表達(dá)一組耦合的微分方程與代數(shù)方程時,常常使用常微分方程(ODE)建模,也稱為連續(xù)時間建模。為實現(xiàn)該MoC,開發(fā)人員采用ODE解析算子數(shù)值求解微分方程。現(xiàn)今,LabVIEW 2009控制設(shè)計與仿真模塊通過一種成為控制與仿真循環(huán)的結(jié)構(gòu)增加了ODE技術(shù)。


      圖3。通過ODE構(gòu)建組塊表示的彈簧-質(zhì)量阻尼系統(tǒng)

      狀態(tài)圖

        狀態(tài)圖將算法表示為一系列的狀態(tài),這使其在表示具有有限個不同工作狀態(tài)的軟件系統(tǒng)(如一個通信協(xié)議或控制系統(tǒng))時尤為有用。狀態(tài)間的通信通過狀態(tài)轉(zhuǎn)移實現(xiàn)。這些狀態(tài)轉(zhuǎn)移具有控制每個狀態(tài)間執(zhí)行的約束條件。


      圖4。LabVIEW狀態(tài)圖開發(fā)環(huán)境

        狀態(tài)與狀態(tài)轉(zhuǎn)移為開發(fā)人員實現(xiàn)了抽象的底層細(xì)節(jié),從而為他們提供了一個用于創(chuàng)建自述文件與可擴(kuò)展設(shè)計的系統(tǒng)層次視角。利用該LabVIEW狀態(tài)圖模塊,開發(fā)人員可以構(gòu)建基于UML規(guī)范的狀態(tài)圖,以運行于臺式機、FPGA和嵌入式目標(biāo)平臺之上。

      中斷驅(qū)動式編程

        在中斷驅(qū)動式系統(tǒng)中,通過軟件設(shè)計,使得當(dāng)接受到一個注冊事件(如一個定時器)時,激發(fā)一個響應(yīng)以響應(yīng)該事件。任意一個中斷式系統(tǒng)都具有兩個要素:中斷與中斷處理程序。一個中斷是一種由硬件生成的信號,它表明一事件已發(fā)生并應(yīng)當(dāng)中止當(dāng)前正在執(zhí)行的程序。中斷處理程序(也稱為中斷服務(wù)程序)是指通過向處理器注冊以便在某個中斷發(fā)生時被執(zhí)行的一部分代碼。一旦該處理器察覺一個中斷,它掛起當(dāng)前正在執(zhí)行的進(jìn)程,執(zhí)行上下文切換以保存該系統(tǒng)的狀態(tài),并執(zhí)行中斷處理程序。一旦該中斷處理程序的代碼執(zhí)行完成,該處理器將控制權(quán)交還先前在運行的程序。

        在中斷驅(qū)動式編程模式下,開發(fā)人員可以實現(xiàn)利用最少的處理器開銷快速響應(yīng)同步事件或異步事件的高效率代碼。

        利用LabVIEW,開發(fā)人員可以編程實現(xiàn)基于其系統(tǒng)內(nèi)所發(fā)生事件的響應(yīng)和定時循環(huán)的執(zhí)行。LabVIEW FPGA中斷可以通過響應(yīng)該中斷的LabVIEW實時模塊進(jìn)行觸發(fā)。

        在LabVIEW中創(chuàng)建中斷的另一個方法便是通過面向ARM微控制器的NI LabVIEW嵌入式模塊使用中斷管理器。開發(fā)人員可以利用VI和定時循環(huán),響應(yīng)定時器和數(shù)字輸入等中斷。


      圖5。利用面向ARM微控制器的LabVIEW嵌入式模塊進(jìn)行中斷管理

      C 代碼

        C語言是一種程序式編程語言,這意味著一項程序必須采取一組步驟序列才可以到達(dá)一個期望狀態(tài)。編程人員必須定義一定數(shù)量的步驟以達(dá)成一個設(shè)定目標(biāo)。C語言還添加了調(diào)用子程序或函數(shù)的功能,這支持代碼復(fù)用、模塊性和可維護(hù)性。

        C代碼可以多種方式供使用,純文本或編譯后的二進(jìn)制文件。LabVIEW提供了多種將C代碼包含在LabVIEW應(yīng)用中的方式:

        調(diào)用庫節(jié)點——節(jié)點可與一個C函數(shù)庫相連接,呈現(xiàn)其C接口以供與LabVIEW協(xié)同使用

        與LabVIEW FPGA的C接口——開發(fā)人員可以利用C在臺式機、PXI和NI CompactRIO系統(tǒng)上實現(xiàn)與LabVIEW FPGA的通信

        聯(lián)機C節(jié)點——在ARM和Blackfin處理器等LabVIEW微處理器目標(biāo)平臺上,C代碼可以直接集成入LabVIEW,以便開發(fā)人員可以采用已有的以C語言編寫的IP。


      圖6。通過聯(lián)機C節(jié)點將C代碼集成入LabVIEW

      案例研究——帶刷直流電機控制

        MoC并不是互斥的,所以開發(fā)人員可以將其組合以有效描述一個問題或?qū)崿F(xiàn)一個解決方案。例如,考慮下面的帶刷直流電機控制應(yīng)用,其中,一個PWM信號控制該電機的旋轉(zhuǎn)速率。

        圖7展示了該系統(tǒng)的最終實現(xiàn)。C代碼與ODE建模的組合描述了該直流電機的動態(tài)特性,而數(shù)據(jù)流則表示了驅(qū)動該PWM電壓信號對該電機進(jìn)行控制的邏輯。然后,它們被利用ODE再次組合,以驗證控制性能并進(jìn)行必要的調(diào)節(jié)。


      圖7。組合多個MoC以表示帶刷直流電機控制

      文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。

      主站蜘蛛池模板: 亚洲av无码一区二区三区乱子伦| 色视频综合无码一区二区三区| 国产一区二区精品久久91| 亚洲另类无码一区二区三区| 亚洲欧美成人一区二区三区| 亚洲av日韩综合一区久热| 国产一区二区三区免费看| 果冻传媒一区二区天美传媒| 日韩人妻精品一区二区三区视频| 2021国产精品视频一区| 无码毛片一区二区三区中文字幕| 亚洲日韩精品一区二区三区无码| 青青青国产精品一区二区| 国产一区二区在线视频播放| 亚洲一区二区三区影院| 一区二区无码免费视频网站| 国产91精品一区二区麻豆亚洲| 国产激情з∠视频一区二区 | 国产一区二区四区在线观看 | 国产一区二区三区在线看片| 韩日午夜在线资源一区二区 | 中文字幕国产一区| 任你躁国语自产一区在| 国产成人综合亚洲一区| 一本AV高清一区二区三区| 中文字幕人妻AV一区二区| 一区二区精品久久| 国产免费一区二区三区| 日韩视频一区二区在线观看| 无码精品久久一区二区三区 | 午夜爽爽性刺激一区二区视频| 中文字幕在线无码一区| 天堂va视频一区二区| 色窝窝无码一区二区三区成人网站| 在线一区二区三区| 久久久久人妻一区精品色| 精品国产一区二区三区久久蜜臀 | 一区二区三区亚洲视频| 最新欧美精品一区二区三区| 日本一区二区在线| 无码精品人妻一区二区三区免费|