基于LabVIEW的虛擬相位差計(jì)的研制
隨著計(jì)算機(jī)技術(shù)、微電子技術(shù)和電子測試技術(shù)的迅猛發(fā)展,一種全新的測試儀器擬儀器(Virtual Instrument,VI)種新型的、富有生命力的儀器種類。首先提出了虛擬儀器的概念。這一概硬件支撐,充分應(yīng)用計(jì)算機(jī)獨(dú)具的運(yùn)算、存儲、回訪、調(diào)用、顯示以及文件管理等智能式功能,把傳統(tǒng)儀器的專業(yè)功能軟件化,使之與計(jì)算機(jī)融于一體,這樣便構(gòu)成了一臺從外觀到功能都能與傳統(tǒng)儀器相同,同時又充分享用了計(jì)算機(jī)智能資源的全新儀器 虛擬儀器的主要功能由數(shù)據(jù)采集、數(shù)據(jù)測試和分析、結(jié)果輸出顯示三大部分組成。其中數(shù)據(jù)分析和結(jié)果輸出完全可由基于計(jì)算機(jī)的軟件系統(tǒng)來完成,因此只要另外提供一定的數(shù)據(jù)采集硬件,就可構(gòu)成由計(jì)算機(jī)組成的測量儀器。
一、圖形化軟件開發(fā)平臺LabVIEW
LabVIEW(Laboratory Virtual Instrument Engineering workbench)是一個圖形化程序 開發(fā)環(huán)境,主要用于數(shù)據(jù)采集、數(shù)據(jù)分析、測試和儀器控制等領(lǐng)域。它與傳統(tǒng)編程語言有著 諸多相似之處,如相似的數(shù)據(jù)類型、數(shù)據(jù)流控制結(jié)構(gòu)、程序調(diào)試工具,以及層次化、模塊化 的編程特點(diǎn)等。但二者最大的區(qū)別在于:傳統(tǒng)編程語言用文本語言編程;而LabVIEW使用圖 形語言(即各種圖標(biāo)、圖形符號、連線等),以框圖的形式編寫程序。[2]
一個LabVIEW程序包括三個主要部分:前面板、框圖程序、圖標(biāo)路線端口。前面板是 LabVIEW程序的交互式圖形化用戶界面,用于設(shè)置用戶輸入和顯示程序輸出,目的是仿真真 實(shí)儀器的前面板??驁D程序則是利用圖形語言對前面板上的控制量和指示量進(jìn)行控制。圖標(biāo) 路線端口用于把LabVIEW程序定義成一個子程序,以便在其它程序中加以調(diào)用,這使LabVIEW 得以實(shí)現(xiàn)層次化、模塊化編程。[3]
二、虛擬相位差計(jì)的設(shè)計(jì)
1、系統(tǒng)組成與功能
本虛擬儀器采用美國 NI 公司的Lab-PC-1200 型數(shù)據(jù)采集卡,將其直接插入到計(jì)算機(jī)相 應(yīng)標(biāo)準(zhǔn)的總線擴(kuò)展插槽內(nèi)構(gòu)成PC-DAQ(Data Acquisition)插卡式虛擬儀器。主要測量兩個 同頻正弦信號的幅值、頻率、相位差等。系統(tǒng)組成框圖如圖1 所示:
2、面板設(shè)計(jì)
軟面板程序?yàn)橛脩籼峁┮粋€友好的圖形化界面,面板中的所有對象基本上可分為控制量 和顯示量,控制量用來模擬傳統(tǒng)儀器上的開關(guān)和旋鈕;顯示量用于顯示測量和處理的結(jié)果。
LabVIEW 提供了非常豐富的界面控件對象,可以快捷地設(shè)計(jì)出生動、直觀、操作方便的用戶 界面。本文設(shè)計(jì)的虛擬相位差計(jì)軟面板如圖2 所示。
該軟面板左邊為實(shí)時波形顯示,可顯示從0 通道和1 通道實(shí)時采樣的兩個波形;右邊為 李沙育圖形,下面是波形調(diào)整、波形選擇和頻率、幅值、相位、相位差的測量結(jié)果。另外, 在運(yùn)行該虛擬儀器時會彈出一個存儲窗口,可把程序運(yùn)行結(jié)束之前所有的歷史測量記錄保存 在所指定的文件中,以備觀察分析和做進(jìn)一步的處理。
3、程序框圖結(jié)構(gòu)設(shè)計(jì)
虛擬相位差計(jì)的框圖程序如圖 3 所示,它采用的是圖形化編程語言,非常直觀。該框圖 包含了波形采集、波形顯示和調(diào)整、波形測量、數(shù)據(jù)存儲四部分。
(1)波形采集:本虛擬儀器采用的是美國NI 公司的 Lab-PC-1200 型數(shù)據(jù)采集卡,最高 采樣頻率為100KHz,輸入信號范圍為-5V~+5V,設(shè)置了1,0 兩個采樣通道。該部分由AIConfig、AI Start、AI Read、AI Single Scan 和AI Clear 組成。其中用了Max&Min 與一個移 位寄存器控制對采樣數(shù)據(jù)的讀取速度。
?。?)波形顯示和調(diào)整:首先將數(shù)據(jù)采集子程序采集到的兩個模擬輸入信號(二維數(shù)組) 按采集通道的不同用Index Array 函數(shù)分成兩個一維數(shù)組,再將它們分別用Bundle 函數(shù)組成 起點(diǎn)x0 = 0,時間間隔Δx = 0.001的簇,最后用Build Array函數(shù)將兩個簇組成簇數(shù)組送入 波形圖可觀察到兩列實(shí)時波形。若直接將兩個一維數(shù)組用Bundle 函數(shù)組成簇送入波形圖可 觀察兩列正弦波的李沙育圖形??驁D中的三個Case 結(jié)構(gòu)的作用是控制軟面板上幅基調(diào)節(jié)、 時基調(diào)節(jié)、波形選擇,通過鼠標(biāo)調(diào)節(jié)這些旋鈕和垂直指針滑動條可調(diào)整實(shí)時波形在屏幕上的 顯示效果。
?。?)波形測量:主要測量兩列正弦波的頻率、振幅和相差,其中著重研究了相差的測量 方法。本文采用的是譜分析法測相位,其原理是通過Amplitude and Phase Spectrum 子程序 求取兩個正弦信號的頻域特性,取兩信號相頻特性曲線中對應(yīng)于信號各頻率分量的相位值, 再根據(jù)采樣信號的周期數(shù)用Index Array 函數(shù)確定兩個信號主頻分量的相位,將其相減即得 相位差[4]??驁D程序如圖4 所示。
?。?)數(shù)據(jù)存儲:數(shù)據(jù)存儲部分由Open/Creat/Replace File、Write File 、Close File 和Simple Error Handler 組成,另外采用了Format into String 功能定義了數(shù)據(jù)存儲的格式,并用Get Data/Time String 功能返回每次測量的時間。框圖程序如圖5 所示。
4、測量結(jié)果討論
利用“移相橋”電路進(jìn)行測試,在某一狀態(tài)下得到測量結(jié)果如下,與各參數(shù)的理論值相 比較略有誤差。其原因在于一方面數(shù)據(jù)在采集、傳送和轉(zhuǎn)換過程中不可避免的會產(chǎn)生各種噪 聲和干擾,外界的干擾也會侵入到系統(tǒng)中來,因此在數(shù)據(jù)的處理過程中,數(shù)字化測量將會造 成一定的誤差;另一方面信號的頻率應(yīng)該是確定的,但實(shí)際中會存在頻率偏差,這也是引起 相差測量不準(zhǔn)的原因。另外,器件所標(biāo)參數(shù)值與實(shí)際值之間也存在誤差,但不斷改良測量算 法和采用性能更加優(yōu)良的數(shù)據(jù)采集卡會取得更好的測量效果。
三.結(jié)束
目前,美國的NI 公司和HP 公司在虛擬儀器的研究方面處于領(lǐng)先地位,能購買其虛擬 儀器產(chǎn)品必將有助于我們的科研和教學(xué)工作,但價格十分昂貴。因此,根據(jù)自己的需要自行 研究和開發(fā)虛擬儀器也是可行的。本文介紹的虛擬相位差計(jì)結(jié)合了示波器和相位差計(jì)的基本 功能,使用靈活方便,有效改善了本院電工實(shí)驗(yàn)教學(xué)條件。相信隨著計(jì)算機(jī)技術(shù)和測控技術(shù) 的不斷發(fā)展,虛擬儀器將成為未來教學(xué)科研的重要方法和手段,將逐漸取代傳統(tǒng)儀器成為測 試儀器的主流。