LabVIEW和MATLAB區(qū)別有哪些?
在科研以及應(yīng)用軟件領(lǐng)域,LabVIEW和MATLAB作為比較常用的2款工具,相信很多人都用過吧。簡(jiǎn)單的概括一下,LabVIEW側(cè)重測(cè)試測(cè)量和數(shù)據(jù)采集,MATLAB側(cè)重科學(xué)計(jì)算和數(shù)據(jù)分析。那么LabVIEW和MATLAB這兩款軟件之間有哪些細(xì)致區(qū)別呢?下面那么軟件Namisoft小編帶大家一起來看看吧~
一、LabVIEW和MATLAB區(qū)別介紹
LabVIEW通過拖拽圖標(biāo)選擇函數(shù)的方式代替了較為繁瑣的輸入代碼編程,用線條將不同功能模塊連接起來,給用戶提供了簡(jiǎn)單明了直接的圖形編程形式,大大減少了程序開發(fā)時(shí)間,而且運(yùn)行速率幾乎不受到影響。利用LabVIEW,開發(fā)人員可以根據(jù)生產(chǎn)和實(shí)際需要,構(gòu)建自己的儀器系統(tǒng),它在工業(yè)測(cè)量和控制方面有著得天獨(dú)厚的優(yōu)勢(shì)。 LabVIEW和MATLAB的混合編程,通過LabVIEW專有程序接口調(diào)用MATLAB實(shí)現(xiàn)。LabVIEW設(shè)計(jì)用戶圖像界面,負(fù)責(zé)數(shù)據(jù)采集;MATLAB在后臺(tái)提供大型算法供LabVIEW調(diào)用,其程序的調(diào)用方法,可使用MATLABScript節(jié)點(diǎn)或ActiveX函數(shù)模板。
類似于LabVIEW的可用于工業(yè)控制領(lǐng)域的軟件還有ATECLOUD智能云測(cè)試平臺(tái),這是一款自動(dòng)化測(cè)試平臺(tái),與LabVIEW化的圖形化語言不同,無需編程,15分鐘快速搭建自動(dòng)化測(cè)試;自定義報(bào)告模板,可實(shí)現(xiàn)快速建立、快速修改;充分利用大數(shù)據(jù)、云計(jì)算,發(fā)揮數(shù)據(jù)的無限價(jià)值;ATECLOUD-APP在任何時(shí)間任何,地點(diǎn)皆能滿足您的遠(yuǎn)程測(cè)試要求;數(shù)據(jù)可視化為您提供第一手的測(cè)試數(shù)據(jù),實(shí)時(shí)分析實(shí)時(shí)展示。
MATLAB是經(jīng)常使用的圖象處理軟件,它最擅長(zhǎng)處理的數(shù)據(jù)類型是沒有維數(shù)限制的矩陣。對(duì)于一些包含了矩陣向量運(yùn)算的工程設(shè)計(jì)上的問題,用戶能夠使用MATLAB輕松的解決掉,其能夠?qū)崿F(xiàn)圖象處理方面的很多功能。用戶能夠?qū)⑻卣飨蛄亢途仃囃ㄟ^MATLAB命令用圖形表示出來,而且能夠?qū)D形進(jìn)行注解和打印操作。
MATLAB更多的是一種程序語言。他是一種很強(qiáng)大的科學(xué)計(jì)算工具。集成了大量的函數(shù)和工具箱toolbox。而LabVIEW更像一種可視化編程工具,提供大量的模塊,如按鈕,LED等。它是一種虛擬儀器,和硬件接口非常方便。尤其擅長(zhǎng)數(shù)據(jù)采集系統(tǒng)。 LabVIEW的優(yōu)勢(shì)是在于ni是提供軟硬件一體的方案,也就是硬件設(shè)備ni也做,所以包含程序優(yōu)化性能,運(yùn)行平臺(tái),特別是硬件穩(wěn)定性方面,具有很大的優(yōu)勢(shì)。缺點(diǎn)是貴,而且你獨(dú)立做二次開發(fā)實(shí)際比較局限,一者社群小,關(guān)注的人有限,二者其編程語言不是很主流,需要轉(zhuǎn)換算法的邏輯。所以一般二次開發(fā)和需求都需要聯(lián)系ni,其會(huì)提供一些幫助。
但是近年來中美科技之爭(zhēng)愈演愈烈,MATLAB等軟件先后被禁,對(duì)科研等影響之大顯而易見。為避免LABVIEW出現(xiàn)類似情況,近年來國(guó)產(chǎn)測(cè)試測(cè)量軟件持續(xù)發(fā)力,ATECLOUD智能云測(cè)試平臺(tái)作為中國(guó)人自己的“LABVIEW”被國(guó)人廣泛使用。作為新晉測(cè)試測(cè)量行業(yè)的領(lǐng)導(dǎo)者,ATECLOUD智能云測(cè)試平臺(tái)更是優(yōu)化了LABVIEW的圖形化編程,直接用文本指令拖拽連接直接組建測(cè)試過程,平臺(tái)里面內(nèi)置了20000+標(biāo)準(zhǔn)儀器型號(hào)的儀器指令拖拽即用,15分鐘即可搭建一整套測(cè)試方案。 MATLAB的優(yōu)勢(shì)在于其平臺(tái)比較適合算法開發(fā),得益于其早期的發(fā)展策略,MATLAB的算法開發(fā)和編程機(jī)制是非常容易上手而且簡(jiǎn)單的,同時(shí)變量的實(shí)時(shí)可追蹤顯示的特性,對(duì)于算法層面調(diào)試很有幫助。而且現(xiàn)在其轉(zhuǎn)型后,各個(gè)工具箱也很強(qiáng)大,基于MATLAB可以做很多有用的二次開發(fā)。缺點(diǎn)是沒有配套硬件,MATLAB是一個(gè)純軟件,純軟件要商業(yè)化的話,穩(wěn)定性,運(yùn)行效率等等就需要額外的精力去完善,MATLAB做原型設(shè)計(jì)都是不錯(cuò)的,不過就可以當(dāng)做其是個(gè)白盒,你的軟硬件實(shí)力很強(qiáng),白盒就能發(fā)揮非常大的潛力,而如果弱的話,那么可能平均水平都不到。但是ni是追求軟硬件一體的,所以綜合穩(wěn)定性都還行,但是成本會(huì)更高。
無需授權(quán)即可轉(zhuǎn)載
最近因?yàn)轫?xiàng)目需要,又撿起了Labview學(xué)習(xí)了一下,發(fā)現(xiàn)Labview這個(gè)東西真是好,所有的結(jié)果就是一個(gè)快字,這次主要是使用Labview調(diào)用Matlab中的算法文件,實(shí)現(xiàn)多矩陣輸入,解除多矩陣輸出,之前因?yàn)闆]有接觸過這方面的東西,所以搜索了大量的文獻(xiàn)和文檔,大致總結(jié)了一個(gè)調(diào)用流程,就想在這里和大家分享一下,希望大家玩的開心
Matlab與Labview的幾種交互方式
通過網(wǎng)上的文獻(xiàn),其實(shí)Labview和Matlab混合編程的文章很多,但是大多數(shù)的方式都是通過Labview中的Matlab Script直接編寫Matlab腳本,實(shí)現(xiàn)算法的調(diào)用,這種方法的優(yōu)缺點(diǎn)都很明顯,缺點(diǎn)就是算法如果極其復(fù)雜,這套流程根本就沒法走通,也就對(duì)于一些簡(jiǎn)單的Matlab腳本還可以適用。
其他的方法諸如DLL調(diào)用,和COM組件技術(shù)我也沒有更深的研究,主要原因還是網(wǎng)上這些文章的針對(duì)性,特殊性太強(qiáng),換個(gè)其他算法生成的DLL文件,就可能調(diào)用失敗,或者無法解除正確的結(jié)果。
最后,我瞄上了.net技術(shù),主要是C#和Labview混合編程是基于.net技術(shù),而且這類的文章也很多,Labview中也可以調(diào)用基于.net的DLL文件,所以我最終選擇的方法就是基于.net的技術(shù)的DLL文件調(diào)用,結(jié)果證明也確實(shí)是靠譜的。
.NET技術(shù)
.NET Framework 是一個(gè)針對(duì)常見程序需求提供了大量預(yù)編碼解決方案的組件。您可以從 MATLAB 中創(chuàng)建 .NET 類的實(shí)例并與 .NET 應(yīng)用程序交互。MATLAB 僅在 Windows平臺(tái)上支持 .NET Framework
創(chuàng)建了.NET類后,就可以在Labview對(duì).NET進(jìn)行實(shí)例化,使用其中的屬性和方法,但是因?yàn)樵贛atlab中使用的數(shù)據(jù)格式為Matlab特有的MWArray類型,這種類型在Labview中無法直接使用,所以需要通過MWArray.dll文件進(jìn)行數(shù)據(jù)的傳入,這個(gè)文件一般位于[Matlab安裝位置]\Matlab版本號(hào)\toolbox\dotnetbuilder\bin\win64\v4.0文件夾中,我們注意到Matlab 2017b對(duì)應(yīng)的MWArray.dll是2.17.1.0版本的。
創(chuàng)建一個(gè).Net Assembly
先從一個(gè)簡(jiǎn)單的例子來看看Matlab中的程序是如何封裝成.net運(yùn)行庫(kù)的,這里我使用的是matlab官方的例程,可以按照這個(gè)說明一步步的建立一個(gè),net文件
訪問鏈接如下
Matlab Example
這個(gè)例子里面建立了一個(gè)簡(jiǎn)單的一元函數(shù),給一個(gè)輸入就可以獲得一個(gè)輸出,輸出是矩陣的形式,例如
之后我們把這個(gè)函數(shù)打包成.net組件,在APP標(biāo)簽上點(diǎn)擊Library Compiler
for_redistribution — 包含Net文件和Matlab運(yùn)行庫(kù)
for_testing — 用于測(cè)試的文件
for_redistribution_files_only — 只包含Net文件
PackagingLog.txt — 打包記錄文件
LabVIEW應(yīng)用領(lǐng)域:
測(cè)試測(cè)量:LABVIEW最初就是為測(cè)試測(cè)量而設(shè)計(jì)的,因而測(cè)試測(cè)量也就是現(xiàn)在LABVIEW最廣泛的應(yīng)用領(lǐng)域。經(jīng)過多年的發(fā)展,LABVIEW在測(cè)試測(cè)量領(lǐng)域獲得了廣泛的承認(rèn)。至今,大多數(shù)主流的測(cè)試儀器、數(shù)據(jù)采集設(shè)備都擁有專門的LabVIEW驅(qū)動(dòng)程序,使用LabVIEW可以非常便捷的控制這些硬件設(shè)備。同時(shí),用戶也可以十分方便地找到各種適用于測(cè)試測(cè)量領(lǐng)域的LabVIEW工具包。這些工具包幾乎覆蓋了用戶所需的所有功能,用戶在這些工具包的基礎(chǔ)上再開發(fā)程序就容易多了。有時(shí)甚至于只需簡(jiǎn)單地調(diào)用幾個(gè)工具包中的函數(shù),就可以組成一個(gè)完整的測(cè)試測(cè)量應(yīng)用程序。
控制:控制與測(cè)試是兩個(gè)相關(guān)度非常高的領(lǐng)域,從測(cè)試領(lǐng)域起家的LabVIEW自然而然地首先拓展至控制領(lǐng)域。LabVIEW擁有專門用于控制領(lǐng)域的模塊----LabVIEWDSC。除此之外,工業(yè)控制領(lǐng)域常用的設(shè)備、數(shù)據(jù)線等通常也都帶有相應(yīng)的LabVIEW驅(qū)動(dòng)程序。使用LabVIEW可以非常方便的編制各種控制程序。
仿真:LabVIEW包含了多種多樣的數(shù)學(xué)運(yùn)算函數(shù),特別適合進(jìn)行模擬、仿真、原型設(shè)計(jì)等工作。在設(shè)計(jì)機(jī)電設(shè)備之前,可以先在計(jì)算機(jī)上用LabVIEW搭建仿真原型,驗(yàn)證設(shè)計(jì)的合理性,找到潛在的問題。在高等教育領(lǐng)域,有時(shí)如果使用LabVIEW進(jìn)行軟件模擬,就可以達(dá)到同樣的效果,使學(xué)生不致失去實(shí)踐的機(jī)會(huì)。
兒童教育:由于圖形外觀漂亮且容易吸引兒童的注意力,同時(shí)圖形比文本更容易被兒童接受和理解,所以LabVIEW非常受少年兒童的歡迎。對(duì)于沒有任何計(jì)算機(jī)知識(shí)的兒童而言,可以把LabVIEW理解成是一種特殊的“積木”:把不同的原件搭在一起,就可以實(shí)現(xiàn)自己所需的功能。著名的可編程玩具“樂高積木”使用的就是LabVIEW編程語言。兒童經(jīng)過短暫的指導(dǎo)就可以利用樂高積木提供的積木搭建成各種車輛模型、機(jī)器人等,再使用LabVIEW編寫控制其運(yùn)動(dòng)和行為的程序。除了應(yīng)用于玩具,LabVIEW還有專門用于中小學(xué)生教學(xué)使用的版本。
快速開發(fā):根據(jù)筆者參與的一些項(xiàng)目統(tǒng)計(jì),完成一個(gè)功能類似的大型應(yīng)用軟件,熟練的LabVIEW程序員所需的開發(fā)時(shí)間,大概只是熟練的C程序員所需時(shí)間的1/5左右。所以,如果項(xiàng)目開發(fā)時(shí)間緊張,應(yīng)該優(yōu)先考慮使用LabVIEW,以縮短開發(fā)時(shí)間。
跨平臺(tái):如果同一個(gè)程序需要運(yùn)行于多個(gè)硬件設(shè)備之上,也可以優(yōu)先考慮使用LabVIEW。LabVIEW具有良好的平臺(tái)一致性。LabVIEW的代碼不需任何修改就可以運(yùn)行在常見的三大臺(tái)式機(jī)操作系統(tǒng)上:Windows、Mac OS 及 Linux。除此之外,LabVIEW還支持各種實(shí)時(shí)操作系統(tǒng)和嵌入式設(shè)備,比如常見的PDA、FPGA以及運(yùn)行VxWorks和PharLap系統(tǒng)的RT設(shè)備。