LabVIEW中的曲线图(Waveform Graph)
扫描二维码
随时随地手机看文章
LabVIEW的曲线图与波形图控件不同之处在于:波形图可以交互的实时绘出数据曲线;而曲线图则是一次性绘出预先生成的数据数组,曲线图没有向已有数据追加新数据的能力。在LabVIEW中有多种曲线图控件的类型,这大大提高了曲线图控件的灵活性,这些类型包括了波形曲线图、XY曲线图、密度曲线图、3D曲线图、数字信号波形曲线图以及一些特殊类型的曲线图。在本文里面我们主要讲一下波形和XY曲线图。波形曲线图以及XY曲线图控件在VI程序的前面板中的外观是一样的,不过其功能却是完全不同的。
一个有多个曲线的曲线图控件如下图所示:
这两种类型的曲线图控件可以在Controls控件面板的Modern>>Graph子面板中找到。波形曲线图空间只能用来绘制单值曲线(就是说对每个X值只对应一个Y值),并且这些值所对应的X轴的间距都是一致的,例如由固定采样间隔采集到的波形数据曲线。这个控件最适合绘制数据点均匀分布的数组数据。XY曲线图控件则是通用的、基于笛卡尔坐标系的曲线图控件,可以用来绘制变时基或者一个X值对应多个Y值的数据曲线。这两种曲线图控件看起来一样,不过它们的输入数据类型是不同的,这一点要非常注意才是。
单曲线波形曲线图对于简单的单点曲线图,你可以如下图所示将一个Y值的数组直接连接到波形曲线图控件的输入端点上。在这种模式下,默认X的初始值为0,并且X值的增量为1。你可以看到在下图中,程序框图中曲线图控件的输入端点是一个数组指示控件。
如前面所讲到的数组的介绍,上图中的For循环中的输出就是一个一维的数组。有些时候,为了灵活起见,你可能需要修改曲线图的时基。例如,你在进行数据采集的起始时间并不是0,或者是你的数据采样间隔并不是1个标准单位(可能大或者小于一个标准单位)。这是要修改时基的话,就将X0起始值、ΔX 值以及数据数组绑定到一个簇中,之后再将这个簇连接到曲线图。如下图所示,可以看到曲线图控件的输入端已经变成簇指示器的模样了。
多曲线波形曲线图
通过创建一个上面单曲线例子中数组(或者是新建一个2维数组)就能够在曲线图控件中显示多条曲线了,如下图所示。可以看到曲线图的输入端随着连接到其上的数据结构的不同也产生了相应的变化。
在上图中,所显示的两个数组都是设定为初始X值为0,X值的增量为1。Build Array函数是从两个一维数组创建了一个二维数组。可以看到这个二维数组的两个有100行的列。默认情况下,曲线图控件会将二维数组的每列作为一个独立的波形曲线进行绘制。如果你的数据是按行进行组织的,那么在绘图之前你需要转置你的数组。转置意味着将行和列中的数值调换位置。例如,如果你要转置一个三列十行的二维数组,你最后得到的就是一个十列三行的二维数组。在LabVIEW中,只要简单的在曲线图控件上点击鼠标右键并在右键菜单中选择Transpose Array选项即可,如果你的曲线图没有二维数组的输入,这个选项就为灰色并不可点击。另外你也可以使用Functions菜单中的Array子面板中的Transpose 2D Array函数来完成此操作。
在下图中,每个数组的X0值以及ΔX值都进行了设定。每组数据的X参数没有必要是一样的。
同样,我们可以使用Context Help窗口来查看连接到曲线图控件的数据类型的详细描述,如下图所示。这是一个很有用的参考。只要在程序框图中,将鼠标光标移动到曲线图的输入端点就可以在Context Help窗口看到绘制曲线的数据输入的详细描述了。通过菜单Help>>Show Context Help或者是快捷键