labview與matlab混合編程
㈠ 在LabVIEW中調用MATLAB來進行圖像處理應該如何實現
這個問題我曾經在項目中做過,印象中是一個難點,不太容易實現。
首先,LV調用MTLAB有兩種方式,第一,直接調用MATLAB,在後台進行計算;第二,使用matlab
script,按照幫助中的修改數據類型,這種方式實際並沒有啟動MATLAB,這樣會快一些,也簡單一些。
兩種方式各有利弊,如果你的工程很大,那麼第二種方式顯然不太合適,我當初用的也是第一種方式。
你可以看看網路文庫中的這3篇文檔,當時我是按這幾篇的內容來實現調用的,希望幫助到你。
LabVIEW中MATLAB的調用
LabVIEW與Matlab的混合編程
在LabView中使用MATLAB腳本節點
㈡ labview和matlab是如何結合的
1 基本原理
ActiveX自動化是基於組件對象模型COM(Component Object Model)的技術,允許應用程序或組件控制另一
個應用程序或組件的運行,它包括自動化伺服器和自動化控制器。MATLAB支持ActiveX自動化技術。通過使用
MATLAB自動化伺服器功能,可以在其它應用程序中執行MATLAB命令,並與MATLAB的工作空間進行數據交換。因此
可以藉助這一特性,把LabVIEW與MATLAB結合,充分利用MATLAB提供的大量高效可靠的演算法和LabVIEW的圖形化編
程能力,混合開發出功能強大的應用軟體。
2 應用舉例
在混合編程中,通常用LabVIEW設計用戶圖形界面,負責數據採集和網路通信;MATLAB在後台提供大型演算法供
LabVIEW調用。
2.1 方法一:使用MATLAB Script節點
為了簡化調用過程,LabVIEW提供了MATLAB Script節點。LabVIEW使用ActiveX技術執行該節點,啟動一個
MATLAB進程。這樣用戶就可以很方便地在自己的LabVIEW應用程序中使用MATLAB,包括執行MATLAB命令、使用功能
豐富的各種工具箱,如神經網路工具箱(Neural Network Toolbox)、優化工具箱(Optimization Toolbox)。
值得注意的是:LabVIEWgn MATLAB之間的數據通信僅支持Real、RealVector、RealMatrix、Complex、
VectorComplex、Matrix六種格式的數據,且必須根據具體情況進行選擇。
當開發涉及工業控制的應用程序時,常常由於控制參數的非線性變化,而無法建立合適的模型。由於此類問
題,神經網路提供了一條有效的解決途徑。
在LabVIEW開發環境下新建一個三層BP神經網路的VI程序,程序框圖見圖1。網路結構部分主要設置隱層
(Hidelay)神經元的個數、傳遞函數(Transfer Function)以及網路訓練演算法(Algorithm)。經過樣本數據
(Training Data)訓練過的網路,即可進行模擬測試了。MATLAB腳本程序可以在MATLAB環境下調試,再使用
MATLAB Script節點導入MATLAB腳本;也可以直接在MATLAB Script節點中編寫。位於
Function>>Mathematics>>Formula模板中的MATLAB Script節點可以導入MATLAB腳本。圖1中的腳本程序使用CASE
語句進行傳遞函數和訓練演算法的選擇。MATLAB Script節點中神經網路的輸入層和隱層之間的權值矩陣inweight應
指定為RealMatrix,在LabVIEW中對應的數據類型是二維實數據組Net.I-Weight。各變數數據類型見表1。
表1 MATLAB Script節點輸入、輸出變數的數據類型
變數名 LabVIEW數據類型 MATLAB數據類型
size of algorithm Double floating point numeric Real
t outweight hideb outb result 1D array double floating numeric Real Vector
p data inweight Multidimensional array double floating point numeric Real Matrix
在此程序中,得到的BP網路各層的權值矩 陣、閾值向量和傳遞函數三類參非常有用的,它們決定了神經網路
的結構與特性。因此當神經網路訓練好後,可以直接使用這些參數處理新的數據,得到預測值,而不必重新調用
MATLAB。這樣程序的運行效率會更高。另一方面,將調試好的神經網路VI創建成一個子VI,作為模塊保存,當需
要更新網路時,可以隨時調用。
雖然通過MATLAB Script節點進行通信比較易於實現,但以這種方式調用MATLAB時,在任務欄中將出現一個
MATLAB圖標,單擊該圖形會打開MATLAB窗口,在其中可以任意輸入。通常,這會干擾前台程序的運行,甚至造成
程序的崩潰。另一方面,當MATLAB Script節點中的腳本執行完後,MATLAB也不能自動關閉。