LabVIEW中的曲線(xiàn)圖(Waveform Graph)
LabVIEW的曲線(xiàn)圖與波形圖控件不同之處在于:波形圖可以交互的實(shí)時(shí)繪出數(shù)據(jù)曲線(xiàn);而曲線(xiàn)圖則是一次性繪出預(yù)先生成的數(shù)據(jù)數(shù)組,曲線(xiàn)圖沒(méi)有向已有數(shù)據(jù)追加新數(shù)據(jù)的能力。在LabVIEW中有多種曲線(xiàn)圖控件的類(lèi)型,這大大提高了曲線(xiàn)圖控件的靈活性,這些類(lèi)型包括了波形曲線(xiàn)圖、XY曲線(xiàn)圖、密度曲線(xiàn)圖、3D曲線(xiàn)圖、數(shù)字信號(hào)波形曲線(xiàn)圖以及一些特殊類(lèi)型的曲線(xiàn)圖。在本文里面我們主要講一下波形和XY曲線(xiàn)圖。波形曲線(xiàn)圖以及XY曲線(xiàn)圖控件在VI程序的前面板中的外觀是一樣的,不過(guò)其功能卻是完全不同的。
一個(gè)有多個(gè)曲線(xiàn)的曲線(xiàn)圖控件如下圖所示:
這兩種類(lèi)型的曲線(xiàn)圖控件可以在Controls控件面板的Modern>>Graph子面板中找到。波形曲線(xiàn)圖空間只能用來(lái)繪制單值曲線(xiàn)(就是說(shuō)對(duì)每個(gè)X值只對(duì)應(yīng)一個(gè)Y值),并且這些值所對(duì)應(yīng)的X軸的間距都是一致的,例如由固定采樣間隔采集到的波形數(shù)據(jù)曲線(xiàn)。這個(gè)控件最適合繪制數(shù)據(jù)點(diǎn)均勻分布的數(shù)組數(shù)據(jù)。XY曲線(xiàn)圖控件則是通用的、基于笛卡爾坐標(biāo)系的曲線(xiàn)圖控件,可以用來(lái)繪制變時(shí)基或者一個(gè)X值對(duì)應(yīng)多個(gè)Y值的數(shù)據(jù)曲線(xiàn)。這兩種曲線(xiàn)圖控件看起來(lái)一樣,不過(guò)它們的輸入數(shù)據(jù)類(lèi)型是不同的,這一點(diǎn)要非常注意才是。
單曲線(xiàn)波形曲線(xiàn)圖對(duì)于簡(jiǎn)單的單點(diǎn)曲線(xiàn)圖,你可以如下圖所示將一個(gè)Y值的數(shù)組直接連接到波形曲線(xiàn)圖控件的輸入端點(diǎn)上。在這種模式下,默認(rèn)X的初始值為0,并且X值的增量為1。你可以看到在下圖中,程序框圖中曲線(xiàn)圖控件的輸入端點(diǎn)是一個(gè)數(shù)組指示控件。
如前面所講到的數(shù)組的介紹,上圖中的For循環(huán)中的輸出就是一個(gè)一維的數(shù)組。有些時(shí)候,為了靈活起見(jiàn),你可能需要修改曲線(xiàn)圖的時(shí)基。例如,你在進(jìn)行數(shù)據(jù)采集的起始時(shí)間并不是0,或者是你的數(shù)據(jù)采樣間隔并不是1個(gè)標(biāo)準(zhǔn)單位(可能大或者小于一個(gè)標(biāo)準(zhǔn)單位)。這是要修改時(shí)基的話(huà),就將X0起始值、ΔX 值以及數(shù)據(jù)數(shù)組綁定到一個(gè)簇中,之后再將這個(gè)簇連接到曲線(xiàn)圖。如下圖所示,可以看到曲線(xiàn)圖控件的輸入端已經(jīng)變成簇指示器的模樣了。
多曲線(xiàn)波形曲線(xiàn)圖
通過(guò)創(chuàng)建一個(gè)上面單曲線(xiàn)例子中數(shù)組(或者是新建一個(gè)2維數(shù)組)就能夠在曲線(xiàn)圖控件中顯示多條曲線(xiàn)了,如下圖所示??梢钥吹角€(xiàn)圖的輸入端隨著連接到其上的數(shù)據(jù)結(jié)構(gòu)的不同也產(chǎn)生了相應(yīng)的變化。
在上圖中,所顯示的兩個(gè)數(shù)組都是設(shè)定為初始X值為0,X值的增量為1。Build Array函數(shù)是從兩個(gè)一維數(shù)組創(chuàng)建了一個(gè)二維數(shù)組??梢钥吹竭@個(gè)二維數(shù)組的兩個(gè)有100行的列。默認(rèn)情況下,曲線(xiàn)圖控件會(huì)將二維數(shù)組的每列作為一個(gè)獨(dú)立的波形曲線(xiàn)進(jìn)行繪制。如果你的數(shù)據(jù)是按行進(jìn)行組織的,那么在繪圖之前你需要轉(zhuǎn)置你的數(shù)組。轉(zhuǎn)置意味著將行和列中的數(shù)值調(diào)換位置。例如,如果你要轉(zhuǎn)置一個(gè)三列十行的二維數(shù)組,你最后得到的就是一個(gè)十列三行的二維數(shù)組。在LabVIEW中,只要簡(jiǎn)單的在曲線(xiàn)圖控件上點(diǎn)擊鼠標(biāo)右鍵并在右鍵菜單中選擇Transpose Array選項(xiàng)即可,如果你的曲線(xiàn)圖沒(méi)有二維數(shù)組的輸入,這個(gè)選項(xiàng)就為灰色并不可點(diǎn)擊。另外你也可以使用Functions菜單中的Array子面板中的Transpose 2D Array函數(shù)來(lái)完成此操作。
在下圖中,每個(gè)數(shù)組的X0值以及ΔX值都進(jìn)行了設(shè)定。每組數(shù)據(jù)的X參數(shù)沒(méi)有必要是一樣的。
同樣,我們可以使用Context Help窗口來(lái)查看連接到曲線(xiàn)圖控件的數(shù)據(jù)類(lèi)型的詳細(xì)描述,如下圖所示。這是一個(gè)很有用的參考。只要在程序框圖中,將鼠標(biāo)光標(biāo)移動(dòng)到曲線(xiàn)圖的輸入端點(diǎn)就可以在Context Help窗口看到繪制曲線(xiàn)的數(shù)據(jù)輸入的詳細(xì)描述了。通過(guò)菜單Help>>Show Context Help或者是快捷鍵