?

LabVIEW與MATLAB的混合編程技術淺析

2014-10-21 20:07宋凡峰吳廣祥
數字化用戶 2014年20期
關鍵詞:虛擬儀器

宋凡峰 吳廣祥

【摘 要】MATLAB是一種高效率的工程計算軟件,LabVIEW是一種高性能的圖形化虛擬儀器編程軟件,本文首先分析了幾種LabVIEW與MATLAB混合編程技術的優缺點,然后在LabVIEW中通過MATLAB Script節點調用MATLAB,利用MATLAB圖像處理工具箱中的函數進行圖像處理。

【關鍵詞】虛擬儀器;LabVIEW;MATLAB Script

MATLAB是一款強大的科學計算軟件,它集數值分析、矩陣運算、信號處理和圖形顯示于一體,針對不同領域的應用,具有信號處理、圖像處理、神經網絡等幾十個專用工具箱;MATLAB缺點在于界面開發能力較差,并且數據輸入、網絡通信、硬件控制等方面都比較繁瑣。

虛擬儀器是是一個按照儀器需求組織的數據采集系統,LabVIEW是開發虛擬儀器的、基于圖形化編程G語言的高效軟件,它圖形界面豐富,可以容易地制作各種界面。但在對各種算法的支持方面,LabVIEW的工具箱非常有限,這就限制了大型應用程序的快速開發。

如果能把二者的優點想整合,利用混合編程技術在LabVIEW中調用和操作MATLAB,就可以相互補充,充分發揮兩者的優勢,開發出高效率的虛擬儀器。

一、LabVIEW中調用和操作MATLAB的方法

LabVIEW和MATLAB混合編程的實現主要有以下幾種方法。

(一)利用MATLAB Script節點調用MATLAB算法

在MATLAB Script節點中,用戶可以編輯MATLAB程序,也可以直接調入已經存在的MATLAB程序,并在LabVIEW環境下運行。用戶可以很方便地在自己的LabVIEW應用程序中使用MATLAB編寫的算法和功能豐富的工具箱。

MATLAB Script節點對輸入、輸出數據的類型有明確的要求。目前兩者之間的數據通信僅支持Real、Real Vector、Real Matrix、Complex、Vector Complex、Matrix六種格式的數據,而且還必須根據具體情況進行選擇。

用該方法實現LabVIEW與MATLAB的混合編程簡單、實用,其缺點是沒有脫離MATLAB的環境,而只是將它在后臺執行,所以這種方法必須在計算機中安裝有MATLAB。

(二)利用COM組件調用MATLAB算法

COM技術的核心就是二進制接口規范,此規范獨立于編程語言和操作系統。從MATLAB6.5開始增加MATLAB COM Builder功能,它可以幫助用戶將用M語言開發的算法自動、快速地轉變為獨立的COM組件對象。通過COM組件,可以同其他用戶共享已經開發的算法,并且可以免費地隨同COM應用程序發布MATLAB算法。

LabVIEW在其Function》Communication》ActiveX模塊中提供了一組與組件操作相關的子VI,其中Automation Open節點打開一個與COM對象相連的Refnum,然后該Refnum 能夠被傳遞給模塊中的其他函數節點,從而實現具體的COM對象操作,最后Close Automation節點關閉Refnum。

利用COM技術,MATLAB Builder for COM能夠將低速執行的M文件編譯成二進制的COM組件,嵌入到LabVIEW程序中。這種方法對于規模較大,性能、速度、內存管理要求較高的LabVIEW應用程序來說,是非常有利的。

(三)利用動態鏈接庫技術

動態鏈接庫(DLL)是基于Windows程序設計的一個重要的組成部分。在LabVIEW下利用DLL技術調用MATLAB,首先是用m文件翻譯器Matcom將MATLAB的,源文件翻譯為cpp代碼,并編譯為dll文件;然后用LabVIEW提供的調用庫函數(Call Library Function,CLF)節點,在LabVIEW中實現DLL函數的調用。

該方法必須安裝Matcom,但是Matcom對class類和圖形窗口的支持不夠,使得圖像處理的一些功能不能使用,無法畫出像MATLAB中那樣精細的圖像。

比較以上三種方法可知,利用動態鏈接庫的方法不適合調用MATLAB進行圖像處理;利用COM組件可以完成調用MATLAB圖像處理的功能,但比較繁瑣,適合于大型系統設計;利用MATLAB Script節點可以方便地完成MATLAB圖像處理功能,滿足一般需求,開發出小型高效的虛擬儀器系統。

二、LabVIEW與MATLAB混合編程圖像處理的實現

LabVIEW的每個程序就是一個VI,它包括前面板和框圖程序窗口兩部分。在LabVIEW中利用MATLAB Script實現MATLAB圖像處理方法為:在框圖程序窗口中,通過Functions Palette- Mathematics-Formula-MATLAB Script,打開MATLAB Script節點,可以直接在其框圖中寫入MATLAB圖像處理程序,也可以在框圖中點擊右鍵,在彈出菜單中選擇“import”,在對話框中選擇要導入的圖像處理M程序文件即完成了節點程序的寫入。一般情況下推薦使用后者,在MATLAB環境下編譯通過的M文件導入節點可以節省調試時間,提高開發效率。在框圖內書寫或調用文件時要保證每一條語句的完整性,或者完整寫在一行,或者分行要有連接符,否則,程序運行會產生錯誤。MATLAB Script節點的參數傳遞可通過添加輸入輸出完成。在節點邊框上單擊鼠標右鍵,在彈出式菜單中選擇“Add Input”或“Add Output”,注意數字圖像是以矩陣格式存儲的,所以輸入輸出圖像的數據格式選擇為Real Matrix。

三、結束語

通過LabVIEW與MATLAB混合編程,二者揚長避短,優秀的LabVIEW圖形化編程語言與強大的MATLAB工程計算語言結合,必將大大提高虛擬儀器的開發效率。

參考文獻:

[1]楊樂平,李海濤,楊磊.LabVIEW程序設計與應用[M].北京:電子工業出版社,2005.

[2]裴鋒,汪翠英,李資榮.基于LabVIEW的虛擬儀器算法解決方案[J].自動化儀表,2005,26(8):63-65.

作者簡介:

宋凡峰(1981-),男,山東濟寧人,山東水利職業學院教師,主要從事電氣工程、自動檢測等方面的教學與研究。

猜你喜歡
虛擬儀器
案例探究式教學在傳感器與儀表課程中的應用
高職院校應用虛擬儀器技術的研究與實踐①
織機送經機構的性能測試與評價
基于虛擬儀器的心率監測系統設計
虛擬儀器及小波分析在軋機振動測試中的應用
組合梁橋模型動應變測試系統的設計與應用
基于LabVIEW的虛擬實驗平臺設計
虛擬儀器在電力系統諧波測量中的應用分析
基于LabVIEW與USB的虛擬儀器接口設計
基于虛擬儀器技術測控人才培養模式的研究與探索
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合