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