LinxVIEW论坛-斯科道

 找回密码
 立即注册
查看: 8576|回复: 1

LabVIEW MathScript内幕

[复制链接]

535

主题

746

帖子

2597

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2597
发表于 2018-4-25 11:47:02 | 显示全部楼层 |阅读模式
本帖最后由 Scadao 于 2018-4-25 11:51 编辑

LabVIEW MathScript内幕
概览在NI LabVIEW 中无论您要开发算法、分析结果、处理信号或是研究DSP理论,您可以自由选择技术性计算的语法。利用MathScript,您可以将直观的LabVIEW 图形化编程和MathScript结合。MathScript是基于文本、面向数学的编程语言,它利用了.m文件脚本语法,包括用于数学、信号处理和分析的600多个常用函数。

目录
1. NI LabVIEW MathScript的含义
LabVIEW MathScript为LabVIEW 增加了面向数学的文本化编程方式。您在使用LabVIEW 开发软件时,可用MathScript结合图形化编程作为另一种方法来定制软件。使用LabVIEW开发,您可以选择文本化实现、图形化实现或者两者结合。无论您在开发算法、研究处理信号理论或分析结果,都可以为技术性计算选择最有效的语法。正如我们在本文中阐述的,LabVIEW 和MathScript的重要意义在于它们在两个领域的优势和便利。

MathScript的核心是高级文本化编程语言,具有对信号处理、分析和数学计算相关任务的复杂性进行抽象化的语法和功能(表1)。MathScript包含用于上述工作的600多种内置函数,您也可以自行开发新的用户定义函数。

MathScript 语言特性
描述
强大的文本数学
MathScript包括用于数学、信号处理和分析的600多种内置函数;函数范围包括如线性代数、曲线拟和、数字滤波器、微分方程、概率/统计等等
面向数学的数据类型
MathScript采用矩阵和数组作为基本的数据类型,并具有用于生成数据、访问元素和其它操作的内置算子
兼容性
MathScript 通常兼容MathWorks公司的 MATLAB® 软件和及其使用的m文件脚本语法。这种兼容性意味着您可以通过MathScript来使用网上和书上的上千种算法
可扩展性
您可以通过定制您的函数来扩展MathScript
LabVIEW的组成部分
MathScript不需要额外的第三方软件来编译和执行

表1 :MathScript的特性使它成为对于信号处理、分析和数学非常有用的文本化语言。

MathScript通常兼容m文件的脚本语法,这种语法被另一种技术计算软件如MathWorks公司MATLAB®和其它软件广泛采用。这种兼容性使您可以利用很多先前开发的m文件脚本,例如在工程教科书或网站上发布的开源m文件脚本。
参见
利用MathScript进行开发
您可以通过交互式或程序化界面来使用LabVIEW MathScript。对于交互式界面,您可以加载、保存、设计和执行m文件脚本,从而利用MathScript交互式窗口工作。为了把m文件脚本部署为LabVIEW 程序的一部分以及结合图形化和文本化编程,您可以使用MathScript节点。

利用MathScript交互式窗口
LabVIEW MathScript窗口(如图1所示)提供了一个交互式界面,通过它您可以输入m文件脚本命令并能立即看到运行结果、观察变量和命令历史。窗口包括一个命令行界面,您可以逐句输入命令来快速计算、调试脚本或学习。作为选择,您也可以通过脚本编译窗口来输入和执行多组命令。

在您工作时,变量显示窗口会不断更新来显示图形/文本结果以及一个历史命令窗口。这个历史命令窗口可以让您使用剪贴板来重新使用您以前执行的命令来加快算法的开发。

图1 MathScript窗口提供了交互式界面,可以输入/执行命令并立即看到结果。

使用MathScript节点
MathScript节点在LabVIEW 中提供了直观的方式来结合图形化和文本代码。图2显示了在程序框图中的MathScript节点,由蓝色矩形框表示。利用MathScript节点,您可以直接输入m文件脚本语言或从文本文件中导入。

图2 利用MathScript节点,您可以轻松地集成文本化数学命令和图形化编程。

您可以在MathScript节点的边界定义、命名输入和输出,来指定图形化LabVIEW 程序和文本化MathScript节点之间传输的数据。图2显示了在MathScript节点左侧的输入变量:fstoplow, fpasslow和taps,是m文件脚本的输入参数。该MathScript节点还包含了输出变量F和sH,把基于数组的结果传送到LabVIEW 图形化节点中。

通过连接节点的输入和输出,您可以把m文件脚本变量和LabVIEW 图形化编程相结合。然后您就能在图形化LabVIEW 程序和m文件脚本之间传递数据。现在这种文本化.m文件脚本可以访问来自传统LabVIEW 图形化编程的特性。

参见
仪器化您的算法
利用MathScript节点工作的一个优势是您可以使用内置强大的LabVIEW 工具来定制交互式用户界面,从而轻松地“仪器化您的算法”。如图3所示,您可以把文本化m文件脚本代码变量与LabVIEW 输入控件和显示控件相结合,如旋钮、滑块、按钮以及2D/3D图,从而开发出使用m文件脚本算法的定制交互式用户界面。

您可以把MathScript节点与LabVIEW 内置的上百种现成的用户界面组件相连,包括波形图、波形图标、旋钮、转盘和温度计,从而为您的m文件脚本定制用户界面。



图3 您可以利用LabVIEW 中内置的用户界面组件来仪器化您的m文件脚本。

图形化信号处理、分析和数学
利用MathScript节点在LabVIEW 图形化代码中插入.m文件脚本使您能访问大量的图形化工具库,从而进行信号处理、分析和数学计算。LabVIEW 具有600多种图形化虚拟仪器,其功能涵盖的领域有:

  • 信号处理:信号生成、信号调理、监测、数字滤波、窗口和频谱分析
  • 数学:变换、曲线拟合、内插/外推、概率/统计、最优化、常微分方程、几何、多项式函数、1D/2D估计和微积分。

使用测量硬件
使用MathScript节点结合文本化和图形化编程的另一个优势是简化了数据采集、信号生成和仪器控制。在MathScript节点中执行M文件脚本可以使用硬件的控制功能,这个功能是LabVIEW 开发环境的基本部分。图形化环境能很自然地管理连续数据采集操作并为开发人员节省了宝贵的时间。LabVIEW 为集成测量硬件设定了标准,它提供:
  • 超过100种插入式数据采集设备
  • 超过5,000种来自200多个厂商的独立仪器
  • 超过1,000种来自65个厂商的基于PXI的模块化设备
  • 支持来自超过15个第三方即插即用传感器厂商的10,000多种传感器
  • 超过1,000种的运动台和驱动
  • 超过400种的工业和科学级摄像机

集成软件组件
您可以利用MathScript节点的优点来连通.m文件脚本和外部软件或数据。LabVIEW 作为在各应用领域广泛使用的开发平台,提供了大量的软件集成工具、函数库和文件格式,从而和多种不同的设计和仿真工具相连。LabVIEW 还提供了各种软件标准的连接方式以便集成其它工具和软件包或者如下测量资源:
  • DLLs,共享库
  • ActiveX, COM 和 .NET (Microsoft)
  • DDE, TCP/IP, UDP, 以太网,蓝牙
  • CAN, DeviceNet, ModBus, OPC
  • USB, IEEE 1394 (FireWire), RS232/485, GPIB
  • 数据库 (ADO, SQL等)

使用基于互联网的远程面板和远程学习工具
MathScript节点的其它可选连接可超越本地的软件或硬件。.M文件脚本可以利用如远程面板这样的LabVIEW 特性来使用基于网络的远程控制对象——不需要额外的编程。您只需点击两次鼠标,就可以在标准的网络浏览器中嵌入您定制的LabVIEW 用户界面。用户无需安装LabVIEW 就能通过标准的网络浏览器来远程控制您的程序。该特性对于远程实验学习特别重要,利用在线演示,教授们可以增强讲课的生动性,学生们在课后可访问实验室,并且科研人员能共享昂贵的设备并进行研究合作。
2. 总结
LabVIEW MathScript在如算法开发、信号处理和分析等任务方面完善补充了传统的LabVIEW 图形化编程。LabVIEW MathScript为用户提供单一的开发环境,在这一环境中,用户可以选择最佳的语法,无论是文本化、图形化还是两者的结合,从而使用户能加快完成任务。此外,由于MathScript通常兼容m文件脚本语法,您可以充分利用LabVIEW 的优势以及来自网上、教科书公开的m文件脚本或您已有的m文件脚本。

相关链接:
注意
MATLAB® 是MathWorks公司的注册商标。所有其它商标归相关公司所有。






回复

使用道具 举报

535

主题

746

帖子

2597

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2597
 楼主| 发表于 2018-4-25 13:45:23 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|SCADAO  

GMT+8, 2024-7-21 02:44 , Processed in 0.044664 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表