LabVIEW和MATLAB区别有哪些?
扫描二维码
随时随地手机看文章
在科研以及应用软件领域,LabVIEW和MATLAB作为比较常用的2款工具,相信很多人都用过吧。简单的概括一下,LabVIEW侧重测试测量和数据采集,MATLAB侧重科学计算和数据分析。那么LabVIEW和MATLAB这两款软件之间有哪些细致区别呢?下面那么软件Namisoft小编带大家一起来看看吧~
一、LabVIEW和MATLAB区别介绍
LabVIEW通过拖拽图标选择函数的方式代替了较为繁琐的输入代码编程,用线条将不同功能模块连接起来,给用户提供了简单明了直接的图形编程形式,大大减少了程序开发时间,而且运行速率几乎不受到影响。利用LabVIEW,开发人员可以根据生产和实际需要,构建自己的仪器系统,它在工业测量和控制方面有着得天独厚的优势。 LabVIEW和MATLAB的混合编程,通过LabVIEW专有程序接口调用MATLAB实现。LabVIEW设计用户图像界面,负责数据采集;MATLAB在后台提供大型算法供LabVIEW调用,其程序的调用方法,可使用MATLABScript节点或ActiveX函数模板。
类似于LabVIEW的可用于工业控制领域的软件还有ATECLOUD智能云测试平台,这是一款自动化测试平台,与LabVIEW化的图形化语言不同,无需编程,15分钟快速搭建自动化测试;自定义报告模板,可实现快速建立、快速修改;充分利用大数据、云计算,发挥数据的无限价值;ATECLOUD-APP在任何时间任何,地点皆能满足您的远程测试要求;数据可视化为您提供第一手的测试数据,实时分析实时展示。
MATLAB是经常使用的图象处理软件,它最擅长处理的数据类型是没有维数限制的矩阵。对于一些包含了矩阵向量运算的工程设计上的问题,用户能够使用MATLAB轻松的解决掉,其能够实现图象处理方面的很多功能。用户能够将特征向量和矩阵通过MATLAB命令用图形表示出来,而且能够对图形进行注解和打印操作。
MATLAB更多的是一种程序语言。他是一种很强大的科学计算工具。集成了大量的函数和工具箱toolbox。而LabVIEW更像一种可视化编程工具,提供大量的模块,如按钮,LED等。它是一种虚拟仪器,和硬件接口非常方便。尤其擅长数据采集系统。 LabVIEW的优势是在于ni是提供软硬件一体的方案,也就是硬件设备ni也做,所以包含程序优化性能,运行平台,特别是硬件稳定性方面,具有很大的优势。缺点是贵,而且你独立做二次开发实际比较局限,一者社群小,关注的人有限,二者其编程语言不是很主流,需要转换算法的逻辑。所以一般二次开发和需求都需要联系ni,其会提供一些帮助。
但是近年来中美科技之争愈演愈烈,MATLAB等软件先后被禁,对科研等影响之大显而易见。为避免LABVIEW出现类似情况,近年来国产测试测量软件持续发力,ATECLOUD智能云测试平台作为中国人自己的“LABVIEW”被国人广泛使用。作为新晋测试测量行业的领导者,ATECLOUD智能云测试平台更是优化了LABVIEW的图形化编程,直接用文本指令拖拽连接直接组建测试过程,平台里面内置了20000+标准仪器型号的仪器指令拖拽即用,15分钟即可搭建一整套测试方案。 MATLAB的优势在于其平台比较适合算法开发,得益于其早期的发展策略,MATLAB的算法开发和编程机制是非常容易上手而且简单的,同时变量的实时可追踪显示的特性,对于算法层面调试很有帮助。而且现在其转型后,各个工具箱也很强大,基于MATLAB可以做很多有用的二次开发。缺点是没有配套硬件,MATLAB是一个纯软件,纯软件要商业化的话,稳定性,运行效率等等就需要额外的精力去完善,MATLAB做原型设计都是不错的,不过就可以当做其是个白盒,你的软硬件实力很强,白盒就能发挥非常大的潜力,而如果弱的话,那么可能平均水平都不到。但是ni是追求软硬件一体的,所以综合稳定性都还行,但是成本会更高。
无需授权即可转载
最近因为项目需要,又捡起了Labview学习了一下,发现Labview这个东西真是好,所有的结果就是一个快字,这次主要是使用Labview调用Matlab中的算法文件,实现多矩阵输入,解除多矩阵输出,之前因为没有接触过这方面的东西,所以搜索了大量的文献和文档,大致总结了一个调用流程,就想在这里和大家分享一下,希望大家玩的开心
Matlab与Labview的几种交互方式
通过网上的文献,其实Labview和Matlab混合编程的文章很多,但是大多数的方式都是通过Labview中的Matlab Script直接编写Matlab脚本,实现算法的调用,这种方法的优缺点都很明显,缺点就是算法如果极其复杂,这套流程根本就没法走通,也就对于一些简单的Matlab脚本还可以适用。
其他的方法诸如DLL调用,和COM组件技术我也没有更深的研究,主要原因还是网上这些文章的针对性,特殊性太强,换个其他算法生成的DLL文件,就可能调用失败,或者无法解除正确的结果。
最后,我瞄上了.net技术,主要是C#和Labview混合编程是基于.net技术,而且这类的文章也很多,Labview中也可以调用基于.net的DLL文件,所以我最终选择的方法就是基于.net的技术的DLL文件调用,结果证明也确实是靠谱的。
.NET技术
.NET Framework 是一个针对常见程序需求提供了大量预编码解决方案的组件。您可以从 MATLAB 中创建 .NET 类的实例并与 .NET 应用程序交互。MATLAB 仅在 Windows平台上支持 .NET Framework
创建了.NET类后,就可以在Labview对.NET进行实例化,使用其中的属性和方法,但是因为在Matlab中使用的数据格式为Matlab特有的MWArray类型,这种类型在Labview中无法直接使用,所以需要通过MWArray.dll文件进行数据的传入,这个文件一般位于[Matlab安装位置]\Matlab版本号\toolbox\dotnetbuilder\bin\win64\v4.0文件夹中,我们注意到Matlab 2017b对应的MWArray.dll是2.17.1.0版本的。
创建一个.Net Assembly
先从一个简单的例子来看看Matlab中的程序是如何封装成.net运行库的,这里我使用的是matlab官方的例程,可以按照这个说明一步步的建立一个,net文件
访问链接如下
Matlab Example
这个例子里面建立了一个简单的一元函数,给一个输入就可以获得一个输出,输出是矩阵的形式,例如
之后我们把这个函数打包成.net组件,在APP标签上点击Library Compiler
for_redistribution — 包含Net文件和Matlab运行库
for_testing — 用于测试的文件
for_redistribution_files_only — 只包含Net文件
PackagingLog.txt — 打包记录文件
LabVIEW应用领域:
测试测量:LABVIEW最初就是为测试测量而设计的,因而测试测量也就是现在LABVIEW最广泛的应用领域。经过多年的发展,LABVIEW在测试测量领域获得了广泛的承认。至今,大多数主流的测试仪器、数据采集设备都拥有专门的LabVIEW驱动程序,使用LabVIEW可以非常便捷的控制这些硬件设备。同时,用户也可以十分方便地找到各种适用于测试测量领域的LabVIEW工具包。这些工具包几乎覆盖了用户所需的所有功能,用户在这些工具包的基础上再开发程序就容易多了。有时甚至于只需简单地调用几个工具包中的函数,就可以组成一个完整的测试测量应用程序。
控制:控制与测试是两个相关度非常高的领域,从测试领域起家的LabVIEW自然而然地首先拓展至控制领域。LabVIEW拥有专门用于控制领域的模块----LabVIEWDSC。除此之外,工业控制领域常用的设备、数据线等通常也都带有相应的LabVIEW驱动程序。使用LabVIEW可以非常方便的编制各种控制程序。
仿真:LabVIEW包含了多种多样的数学运算函数,特别适合进行模拟、仿真、原型设计等工作。在设计机电设备之前,可以先在计算机上用LabVIEW搭建仿真原型,验证设计的合理性,找到潜在的问题。在高等教育领域,有时如果使用LabVIEW进行软件模拟,就可以达到同样的效果,使学生不致失去实践的机会。
儿童教育:由于图形外观漂亮且容易吸引儿童的注意力,同时图形比文本更容易被儿童接受和理解,所以LabVIEW非常受少年儿童的欢迎。对于没有任何计算机知识的儿童而言,可以把LabVIEW理解成是一种特殊的“积木”:把不同的原件搭在一起,就可以实现自己所需的功能。著名的可编程玩具“乐高积木”使用的就是LabVIEW编程语言。儿童经过短暂的指导就可以利用乐高积木提供的积木搭建成各种车辆模型、机器人等,再使用LabVIEW编写控制其运动和行为的程序。除了应用于玩具,LabVIEW还有专门用于中小学生教学使用的版本。
快速开发:根据笔者参与的一些项目统计,完成一个功能类似的大型应用软件,熟练的LabVIEW程序员所需的开发时间,大概只是熟练的C程序员所需时间的1/5左右。所以,如果项目开发时间紧张,应该优先考虑使用LabVIEW,以缩短开发时间。
跨平台:如果同一个程序需要运行于多个硬件设备之上,也可以优先考虑使用LabVIEW。LabVIEW具有良好的平台一致性。LabVIEW的代码不需任何修改就可以运行在常见的三大台式机操作系统上:Windows、Mac OS 及 Linux。除此之外,LabVIEW还支持各种实时操作系统和嵌入式设备,比如常见的PDA、FPGA以及运行VxWorks和PharLap系统的RT设备。