技術頻道

      利用熟悉的計算模型進行設計

      概覽

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

      目錄

        引言

        數據流

        數學文本公式

        ODE建模

        狀態圖

        中斷驅動式編程

        C 代碼

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

        如欲了解更多

      引言

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

      數據流

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


      圖1。數據流執行——在乘法操作前實現加法操作。

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

      數學文本公式

        在設計階段,描述一項算法的最佳工具經常是高層次的數學函數。該數學模型的優勢在于非常易于人們解讀,以及利用定義的復雜函數通過腳本來解釋執行的順序。

        
      圖2。采用數學文本公式實現巴特沃思濾波器

        開發人員可以通過新推出的LabVIEW 2009數學腳本RT模塊(該模塊同時與Windows和實時目標平臺相兼容),在LabVIEW平臺內實現數學文本公式。

      ODE建模

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


      圖3。通過ODE構建組塊表示的彈簧-質量阻尼系統

      狀態圖

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


      圖4。LabVIEW狀態圖開發環境

        狀態與狀態轉移為開發人員實現了抽象的底層細節,從而為他們提供了一個用于創建自述文件與可擴展設計的系統層次視角。利用該LabVIEW狀態圖模塊,開發人員可以構建基于UML規范的狀態圖,以運行于臺式機、FPGA和嵌入式目標平臺之上。

      中斷驅動式編程

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

        在中斷驅動式編程模式下,開發人員可以實現利用最少的處理器開銷快速響應同步事件或異步事件的高效率代碼。

        利用LabVIEW,開發人員可以編程實現基于其系統內所發生事件的響應和定時循環的執行。LabVIEW FPGA中斷可以通過響應該中斷的LabVIEW實時模塊進行觸發。

        在LabVIEW中創建中斷的另一個方法便是通過面向ARM微控制器的NI LabVIEW嵌入式模塊使用中斷管理器。開發人員可以利用VI和定時循環,響應定時器和數字輸入等中斷。


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

      C 代碼

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

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

        調用庫節點——節點可與一個C函數庫相連接,呈現其C接口以供與LabVIEW協同使用

        與LabVIEW FPGA的C接口——開發人員可以利用C在臺式機、PXI和NI CompactRIO系統上實現與LabVIEW FPGA的通信

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


      圖6。通過聯機C節點將C代碼集成入LabVIEW

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

        MoC并不是互斥的,所以開發人員可以將其組合以有效描述一個問題或實現一個解決方案。例如,考慮下面的帶刷直流電機控制應用,其中,一個PWM信號控制該電機的旋轉速率。

        圖7展示了該系統的最終實現。C代碼與ODE建模的組合描述了該直流電機的動態特性,而數據流則表示了驅動該PWM電壓信號對該電機進行控制的邏輯。然后,它們被利用ODE再次組合,以驗證控制性能并進行必要的調節。


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

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 精品国产免费一区二区三区| 日韩一区二区精品观看| 国产成人av一区二区三区在线观看 | 免费观看一区二区三区| 亚洲综合一区二区国产精品| 国产福利电影一区二区三区,亚洲国模精品一区| 亚洲第一区二区快射影院| 国产一区二区三区免费| 国产精品一区二区电影| 99在线精品一区二区三区| 一区二区乱子伦在线播放| 国产亚洲福利精品一区| 日韩一区二区a片免费观看| 亚洲国产激情在线一区| 日韩AV无码一区二区三区不卡| 亚洲国产AV无码一区二区三区| 亚洲狠狠狠一区二区三区| 亚洲综合色一区二区三区| 日韩一区二区免费视频| 国模丽丽啪啪一区二区| 中文字幕一区二区三区在线观看| 激情啪啪精品一区二区| 手机福利视频一区二区| 色多多免费视频观看区一区| 无码人妻品一区二区三区精99| 成人精品视频一区二区三区| 中文字幕AV一区二区三区| 亚洲一区二区三区四区视频| 无码人妻精品一区二区三区99仓本| 精品无码一区二区三区电影| 嫩B人妻精品一区二区三区| 日韩在线观看一区二区三区| 一区高清大胆人体| 中文字幕一区二区三区有限公司| 麻豆aⅴ精品无码一区二区| 精品国产不卡一区二区三区 | 国产剧情一区二区| 日美欧韩一区二去三区| 国产精品无码一区二区在线观| 精品无码一区二区三区电影| 国产凹凸在线一区二区|