虚拟仪器实验三分析.docx
16页虚拟仪器实验三分析 实验三LabVIEW编程的数组和簇与图形显示(一)LabVIEW编程的数组和簇一、实验目的1.掌握如何创建、使用数组;数组函数的功能和应用,掌握它们的区别以及相应操作2.掌握如何创建、使用簇;簇函数的功能和应用,掌握它们的区别以及相应操作二、实验原理1.数组是一些具有相同类型的元素组成的集合数组包含两方面的内容:元素和维数数组中的元素可以是数字、布尔、字符、路径、波形和簇等数据类型一个数组可以是一维或者多维,如果必要,每维最多可有231-1个元素可以通过数组索引访问其中的每个元素数组元素不能是数组、图表或者图形LabVIEW提供了很多用于操作数组的功能函数,位于函数Functions?数组Array中其中包括创建数组、初始化数组、数组大小、数组子集、索引数组等●创建数组:用于根据标量值或者其他的数组创建一个数组●初始化数组:创建所有元素值都相等的数组●数组大小:返回输入数组中的元素个数●数组子集:选取数组或者矩阵的某个部分●索引数组:用于访问数组中的某个元素建立数组的步骤如下:1)从数组和类子模板(Controls-All Controls-Array & Cluster)上选中数组,放置在前面板中,此时为数组空壳,可以向里边添加(用拖拽的方法)数字、布尔、字符等数据类型的控制器或指示器,来建立相应的数组控制器和指示器。
此时可以看到数组上有两个显示窗口:◆标号显示窗:标号从0开始,每单击一次“增加”键,标号显示值顺序递增这个标号就是数组元素的序号;对于一个含n个元素的数组,其标号为0~n-1◆元素显示窗:用来显示元素的数值数组中的元素按序号排列数组元素的查找按行/列标号进行2)右键单击标号窗口,弹出一个快捷菜单,选择Add Dimension来增加数组的维数2.簇(Cluster)是另一种数据类型,它的元素可以是不同类型的数据它类似于C语言中的structure使用簇可以把分布在框图中各个位置的数据元素组合起来,这样可以减少连线的拥挤程度,减少子VI的连接端子的数量簇相当于一个容器,容器中的元素可以是各种不同的数据类型也就是说,可以在一个簇中放置控制模板上的各种控件,如数字控件、布尔控件、数组控件等,但是不能将输入控件和输出控件同时放入其中因此,在编辑流程图时,可以减少连线数以及连线的节点数,最终简化流程图它有多个输入,一个输出要建立簇,可以选择控制模板中数组和类子模板上的Cluster,将其调入前面板向类控件中放入元素,即将控制模板中的相应控件放入其中,俗称把元素“捆绑”在一起●捆绑(Bundle)数据Bundle功能将分散的元件集合为一个新的簇,或允许你重置一个已有的簇中的元素。
可以用位置工具拖曳其图标的右下角以增加输入端子的个数最终簇的序是取决于被捆绑的输入的顺序右图中Bundle 图标中部的Cluster 端子用于用新元素重置原簇中的元素● 分解(Unbundle )簇Unbundle 是Bundle 的逆过程,它将一个簇分解为若干分离的元素如果要对一个簇分解,就必须知道它的元素个数LabVIEW还提供一种可以根据元素的名字来捆绑或分解簇的方法右键单击簇控件的边缘,弹出快捷菜单,如图3-1其中:Reorder Controls In Cluster :用于设置类控件中各元素的排列顺序,这个排列顺序是输出信号顺序,如图3-2所示在Cluster输出1和输出2两个簇控件中,元素输出的排列顺序不一样AutoSizing :右键单击该选项后,出现如图3-3所示的菜单,选择相应的选项,可自动调节类控制的边框大小及排列方式Properties :用来定义类控件的一些属性,如“AutoSizing”,改变标签的名称,是否显示标签等内容及填入描述信息属性页将前面板的属性特征集中到了一些简单的配置对话框中数组和簇的区别如下:◆ 簇可以包含不同的数据类型,而数组仅可以包含相同的数据类型;◆ 簇具有固定的大小。
三、实验内容1.练习数组的基本创建利用循环的自动索引功能创建一个装有10个随机数的一维数组,并计算数组元素的平方和,同时求出该数组索引为3、长度为2的子数组要求前面板显示该一维数组及平方和结果、输出的子数组2.编辑下列VI ,理解一维数组和二维数组的产生,存为Two Dimensional Array Demo.vi 图3-1 簇控件快捷菜单图3-2 Reorder Controls In Cluster 设置 图3-3 AutoSizing 设置3-4 Two Dimensional Array3.创建一个VI,实现将输入控件值与输入数组合并连接起来生成新的数组该VI使用数组大小和初始化数组两函数来创建维数合适的新数组,并将新数组的所有元素初始化为1最后,VI计算两新数组间的差,并将结果显示在前面板中前面板和基本程序框图组成如图3-5所示,最后将该VI保存为Practice with Arrays .vi文件图3-5 Practice with Arrays前面板和程序框图4.创建由一个控件簇和一个显示簇所组成的VI要求输入控件数值加一,开关二反相,显示簇同时进行相应的显示前面板组成如图3-6,最后将该VI保存为Cluster.vi文件。
图3-6 Cluster前面板和程序框图五、实验报告要求1.调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点2.心得体会及其它二)LabVIEW 编程的图形显示一、实验目的1.学习并掌握Chart 和Graph 的使用,理解它们的区别2.掌握Chart 的三种显示模式3.了解其它二维图形的绘制二、实验原理图形显示是虚拟仪器面板设计的重要内容图形是以曲线来显示数组中的数据,常用的二维图形控件有Chart 、Graph 和XY Graph ,可显示多条曲线并可以改变曲线显示的格式在LabVIEW 的图形显示中Graph 和Chart 是两个基本的概念一般说来Chart 是将数据源(例如采集得到的数据)在某一坐标系中,实时、逐点地显示出来,它可以反映被测物理量的变化趋势,例如显示一个实时变化的波形或曲线,传统的模拟示波器、波形记录仪就是这样而Graph 则是对已采集数据进行事后处理的结果它先将被采集数据存放在一个数组之中,然后根据需要组织成所需的图形显示出来它的缺点是没有实时显示,但是它的表现形式要丰富得多例如采集了一个波形后,经处理可以显示出其频谱图。
如数字示波器LabVIEW 的Graph 子模板中有许多可供选用的控件,其中常用的见下表:Chart Graph Waveform (波形)* * XY* Intensity (强度图)** Digital (数字图)* 3D Curve (三维曲线) *由表中可以看出,Chart 方式尽管能实时、直接地显示结果,但其表现形式有限,而Graph 方式表现形式要远为丰富,但这是以牺牲实时为代价的1.Graph 控件(波形图)以Graph 为例,图3-7为它的控件,这些控件都包含在图形菜单的Visible Items 选项下图3-7 Graph 的图形控件曲线图例可用来设置曲线的各种属性,包括线型(实线、虚线、点划线等)、线粗细、颜色以及数据点的形状等曲线图例刻度图例 (ScaleLegend)图形模板(GraphPalette) 光标图例(Cursor Legend) 标签(Label) 说明(Caption)图形模板可用来对曲线进行操作,包括移动、对感兴趣的区域放大和缩小等光标图例用来设置光标、移动光标,帮助你用光标直接从曲线上读取感兴趣的数据刻度图例用来设置坐标刻度的数据格式、类型(普通坐标或对数坐标),坐标轴名称以及刻度栅格的颜色等。
2.Chart(波形图表)的独有控件Chart的数据并没有事先存在一个数组中,它是实时显示的,为了能够看到先前的数据,Chart控件内部含有一个显示缓冲器,其中保留了一些历史数据这个缓冲器按照先进先出的原则管理,其最大容量是1024个数据点●滚动条(Scrollbar)它直接对应于显示缓冲器,通过它可以前后观察缓冲器内任何位置的数据●数据显示(Digital Display)选中它,可以在图形右上角出现一个数字显示器,这样可以在画出曲线的同时显示当前最新的一个数据值●刷新模式(Update Mode)Chart提供了三种画面的刷新模式,分别是:Strip Chart Mode(条状图):它与纸带式图表记录仪类似曲线从左到右连续绘制,当新的数据点到达右部边界时,先前的数据点逐次左移Scope Chart Mode(示波器模式):它与示波器类似曲线从左到右连续绘制,当新的数据点到达右部边界时,清屏刷新,从左边开始新的绘制它的速度较快Sweep Chart Mode(扫描模式):与示波器模式的不同在于当新的数据点到达右部边界时,不清屏,而是在最左边出现一条垂直扫描线,以它为分界线,将原有曲线逐点向右推,同时在左边画出新的数据点。
如此循环下去●堆叠式图区(Stack Plots)在相同的纵坐标下,由于各种测量信号的差异,将几条曲线显示在同一个图区有困难时,可以组织出一种纵坐标相同,而有各自横坐标的堆叠式图区三、实验内容1.Chart(波形图表)和Graph(波形图)的比较创建一个VI,用Chart和Graph分别显示40个随机数产生的曲线,比较程序的差别图3-8 Chart和Graph的比较显示的结果是一样的,但实现方法不同Chart产生在循环内,每得到一个数据点,就立刻显示而Graph 在循环外,40个数都产生之后,跳出循环,然后一次显示出整个曲线从运行过程可以看到这一点还有For循环执行40次,产生的40个数据存储在一个数组中,这个数组创建于For循环的边界上(使用自动索引功能)在For循环结束之后,该数组就将被传送到外面的Graph仔细看流程图,穿过循环边界的连线在内、外两侧粗细不同,内侧表示浮点数,外侧表示数组2.设计一个VI来测量温度(利用随机数模拟产生温度值:20*rand+70),每隔250ms测一次,共测定10秒在数据采集过程中,VI将在波形图表Chart上实时地显示测量结果在采集过程结束后,在波形图Graph上一次性画出数据波形曲线,并算出温度的最大值、最小值和平均值。
3.利用XY Graph构成李萨育图形波形图(Waveform Graph)有一个特征,其X是测量点序号、时间间隔等,Y是测量数据值但是它并不适合描述一般的Y值随X值变化曲线,适合于这种情况的控件是XY Graph我们通过一个构成李萨育图形的例子来看一下它的使用如果控制XY方向的两个数组分别按正弦规律变化(假设其幅值、频率都相同),如果它们的相位相同,则李萨育图形是一条45度的斜线,当它们之间相位差90度时为圆,其他相位差是椭圆图3-9利用XY Graph构成利萨育图形图3-10 利萨育图形前面板4.设计一个VI,用独立的XY数组形成一个圆环四、实验报告要求1.调试编辑以上VI,按顺序打印以上VI的前面板与程序框图后,贴在实验报告上;实验报告中要求详细说明设计步骤要点2.总结Chart和。





