基于LabVIEW 8.2的多用虛擬電壓表設(shè)計(jì)
摘要:為了滿足不同測(cè)量的要求傳統(tǒng)的電壓表分別做成獨(dú)立的儀表,包括峰值電壓表、平均值電壓表和有效值電壓表。在此,提出采用虛擬儀器同時(shí)實(shí)現(xiàn)三種示值電壓表的方案;介紹了虛擬儀器軟件平臺(tái)LabVIEW的特點(diǎn)。對(duì)虛擬數(shù)字電壓表的設(shè)計(jì)和實(shí)現(xiàn)進(jìn)行了詳細(xì)描述,包括基于LabVIEW 8.2的虛擬信號(hào)發(fā)生器的實(shí)現(xiàn)過(guò)程,它能產(chǎn)生正弦、方波、三角波及由輸入數(shù)學(xué)公式確定的復(fù)雜自編輯波形。最后,對(duì)設(shè)計(jì)的虛擬電壓表運(yùn)行結(jié)果進(jìn)行分析,驗(yàn)證了虛擬電壓表設(shè)計(jì)方法的正確性。
關(guān)鍵詞:LabVIEW 8.2;虛擬儀器;電壓表;復(fù)雜自編輯波形
O 引 言
虛擬儀器是隨著計(jì)算機(jī)技術(shù)、電子測(cè)量技術(shù)和通信技術(shù)發(fā)展起來(lái)的一種新型儀器。它充分利用計(jì)算機(jī)系統(tǒng)強(qiáng)大的數(shù)據(jù)處理和顯示能力,利用軟件完成數(shù)據(jù)的采集、控制、數(shù)據(jù)分析和處理以及測(cè)試結(jié)果的顯示等,通過(guò)軟、硬件的配合,實(shí)現(xiàn)傳統(tǒng)儀器的各種功能,真正實(shí)現(xiàn)了“軟件即儀器”的概念,用戶可以方便地對(duì)儀器進(jìn)行維護(hù)和擴(kuò)展。
電壓是電路中常用的電信號(hào),通過(guò)電壓測(cè)量,利用基本公式可以導(dǎo)出其他的參數(shù)。因此,電壓測(cè)量是其他許多電參數(shù)和非電參數(shù)量的基礎(chǔ)。測(cè)量電壓相當(dāng)普及的一種測(cè)量?jī)x表就是電壓表,但常用的是模擬電壓表。模擬電壓表根據(jù)檢波方式的不同。分為峰值電壓表、均值電壓表和平均值電壓表,它們都各自做成獨(dú)立的儀表。這樣,使用模擬電壓表進(jìn)行交流電壓測(cè)量時(shí),必須根據(jù)測(cè)量要求選擇儀表。另外,多數(shù)電壓表的表頭是按正弦交流有效值刻度的,而測(cè)量非正弦波時(shí),必須經(jīng)過(guò)換算才能得到正確的測(cè)量結(jié)果,從而給實(shí)際工作帶來(lái)不便。
采用虛擬電壓表,可將表征交流電壓特征的峰值、平均值和有效值集中顯示在一塊面板上,測(cè)量時(shí)可根據(jù)波形在面板上選擇儀表,用戶僅通過(guò)面板指示值就能對(duì)測(cè)量結(jié)果進(jìn)行分析比較,大大簡(jiǎn)化了測(cè)量步驟。
1 虛擬電壓表的設(shè)計(jì)思路
LabVIEW 8.2版本的工程技術(shù)比以往任何一個(gè)版本都豐富.它采用了中文界面,各個(gè)控件的功能一目了然。利用它全新的用戶界面對(duì)象和功能,能開發(fā)出專業(yè)化、可完全自定義的前面板。LabVIEW 8.2對(duì)數(shù)學(xué)、信號(hào)處理和分析也進(jìn)行了重大的補(bǔ)充和完善,信號(hào)處理分析和數(shù)學(xué)具有更為全面和強(qiáng)大的庫(kù),其中包括500多個(gè)函數(shù)。所以在LabVIEW 8.2版本下能夠更方便地實(shí)現(xiàn)虛擬電壓表的設(shè)計(jì)。
虛擬電壓表是基于計(jì)算機(jī)和標(biāo)準(zhǔn)總線技術(shù)的模塊化系統(tǒng),通常它由控制模塊、儀器模塊和軟件組成,由軟件編程來(lái)實(shí)現(xiàn)儀器的功能。在虛擬儀器中,計(jì)算機(jī)顯示器是惟一的交互界面,物理的開關(guān)、按鍵、旋鈕以及數(shù)碼管等顯示器件均由與實(shí)物外觀相似的圖形控件來(lái)代替,操作人員只要通過(guò)鼠標(biāo)或鍵盤操作虛擬儀器面板上的旋鈕、開關(guān)、按鍵等設(shè)置各種參數(shù),就能根據(jù)自己的需要定義儀器的功能。在虛擬電壓表的設(shè)計(jì)中,考慮到儀器主要用于教學(xué)和實(shí)驗(yàn),使用對(duì)象是學(xué)生,因此將引言中提到的三種檢波方式的儀器合為一體,既簡(jiǎn)化了面板操作,又便于直接對(duì)比。
該電壓表主要用于電路分析和模擬電子技術(shù)等實(shí)驗(yàn)課的教學(xué)和測(cè)量?jī)x器,能夠使學(xué)習(xí)者了解和掌握電壓的測(cè)量和電壓表對(duì)各種波形的不同響應(yīng)。因此,虛擬電壓表應(yīng)具備電源開關(guān)控制、波形選擇,以及顯示峰值、有效值和平均值三種結(jié)果,且輸入信號(hào)的大小可調(diào)節(jié)等功能。虛擬電壓表由硬件設(shè)備與接口、設(shè)備驅(qū)動(dòng)軟件和虛擬儀器面板組成。其中,硬件設(shè)備與接口包括儀器接口設(shè)備和計(jì)算機(jī),設(shè)備驅(qū)動(dòng)軟件是直接控制各種硬件接口的驅(qū)動(dòng)程序,虛擬儀器通過(guò)底層設(shè)備驅(qū)動(dòng)軟件與真實(shí)的儀器系統(tǒng)進(jìn)行通信,并以虛擬儀器面板的形式在計(jì)算機(jī)屏幕上顯示與真實(shí)儀器面板操作相對(duì)應(yīng)的各種控件。在此,用軟件虛擬了一個(gè)信號(hào)發(fā)生器。該信號(hào)發(fā)生器可產(chǎn)生正弦波、方波和三角波,還可以輸入公式,產(chǎn)生任意波形。根據(jù)需要,可調(diào)節(jié)面板上的控件來(lái)改變信號(hào)的頻率和幅度等可調(diào)參數(shù),然后檢測(cè)電壓表的運(yùn)行情況。因此,在LabVIEW圖形語(yǔ)言環(huán)境下設(shè)計(jì)的虛擬電壓表主要分為兩個(gè)部分:第一部分是虛擬電壓表前面板的設(shè)計(jì);第二部分是虛擬電壓表流程圖的設(shè)汁。
2 前面板的設(shè)計(jì)
前面板模擬真實(shí)電壓表的前面板,用于設(shè)置輸入數(shù)值和觀察輸出量。由于虛擬面板直接面向用戶,是虛擬電壓表控制軟件的核心。設(shè)計(jì)這部分時(shí),主要考慮界面美觀、操作簡(jiǎn)潔,用戶能通過(guò)面板上的各種按鈕、開關(guān)等控件來(lái)控制虛擬電壓表進(jìn)行測(cè)量工作。根據(jù)傳統(tǒng)電壓表面板控件的功能,利用LabVIEW中的控制模板,分別在設(shè)計(jì)面板上放入模擬實(shí)際電壓表控件的數(shù)據(jù)輸入控件、顯示器、數(shù)據(jù)輸出控件、開關(guān)、選擇器,顯示器用于顯示輸入的信號(hào)波形;數(shù)據(jù)輸入控件主要用于輸入被測(cè)信號(hào)的信號(hào)頻率、采樣頻率、采樣數(shù)、振幅和相位;數(shù)據(jù)輸出控件則用于輸出被測(cè)信號(hào)經(jīng)過(guò)處理后得到的峰值、平均值和有效值及標(biāo)準(zhǔn)頻率的有效顯示。打開LabVIEW前面板的編輯窗口,點(diǎn)擊鼠標(biāo)右鍵,顯示控制模板,選擇圖形一波形圖,作為電壓表的顯示器。在顯示器模板上點(diǎn)擊鼠標(biāo)右鍵,對(duì)其進(jìn)行屬性設(shè)置,例如根據(jù)示波器的頻率與幅度值的變化,利用工具模板中的文字工具,對(duì)示波器橫(時(shí)間)、縱(幅度)坐標(biāo)的刻度進(jìn)行重新設(shè)置。用Graph控件設(shè)計(jì)的示波器是完全同步的,且波形穩(wěn)定。
選擇控件→數(shù)值→數(shù)值輸入控件/數(shù)值顯示控件,作為電壓表參數(shù)設(shè)置中輸入和測(cè)試結(jié)果的數(shù)據(jù)顯示。
選擇控件→下拉列表與枚舉→菜單下拉列表,放置對(duì)輸入波形選擇開關(guān),在下拉列表中單擊鼠標(biāo)右鍵,選擇“編輯項(xiàng)”對(duì)其進(jìn)行編輯。
“電源開關(guān)”控件選擇經(jīng)典→經(jīng)典布爾→方形按鈕,當(dāng)按下開關(guān)時(shí),虛擬電壓表開始運(yùn)行,同時(shí)電源開關(guān)的指示燈亮。同樣,當(dāng)彈起開關(guān)時(shí),虛擬電壓表停止運(yùn)行。前面板如圖1所示。
3 流程圖的設(shè)計(jì)
每一個(gè)前面板都對(duì)應(yīng)一個(gè)流程圖程序。前面板的設(shè)計(jì)完成后,可對(duì)流程圖程序進(jìn)行設(shè)計(jì)。打開LabVIEW設(shè)計(jì)環(huán)境中的窗口→顯示程序框圖,進(jìn)入流程圖編輯窗口,與前面板各控件對(duì)應(yīng)的端口圖標(biāo)自動(dòng)出現(xiàn)在流程圖編輯窗口中。利用LabVIEW中的功能模塊,根據(jù)虛擬示波器前面板各控件的作用和聯(lián)系,虛擬示波器運(yùn)作后數(shù)據(jù)流的控制,分別在流程圖設(shè)計(jì)面板中放置各個(gè)功能模塊,合理擺放后,在用連線工具依次連接,以實(shí)現(xiàn)虛擬示波器的功能。數(shù)據(jù)流的編輯主要是對(duì)端口圖標(biāo)的連接。用連線工具進(jìn)行連線時(shí),如果端口閃爍,說(shuō)明相連的數(shù)據(jù)類型匹配,否則不能連接。
3.1 虛擬信號(hào)發(fā)生器的實(shí)現(xiàn)
由于虛擬電壓表主要用于演示,所以為了方便,可直接利用LabVIEW軟件產(chǎn)生仿真信號(hào)。在該設(shè)計(jì)中,設(shè)置了正弦波、方波和三角波以及由公式確定的任意波形。在程序設(shè)計(jì)框圖中,使用一個(gè)Case(選擇)語(yǔ)句對(duì)四種波形進(jìn)行選擇。Case語(yǔ)句中,每一個(gè)數(shù)字(0,1,2,3,4)都代表一種波形,與前面板控件中5種狀態(tài)相對(duì)應(yīng)。至于Case語(yǔ)句的制作,只需將4個(gè)圖標(biāo)中的一個(gè),例如正弦波發(fā)生程序,用Case框起來(lái),然后在上面的空白處寫上相應(yīng)的數(shù)字,例如1;然后點(diǎn)擊箭頭,可以設(shè)置第二個(gè)圖標(biāo),如果要添加一個(gè)Case的話,可以點(diǎn)擊鼠標(biāo)右鍵,直接添加,編輯相應(yīng)的基本信號(hào)發(fā)生器VI中相應(yīng)的節(jié)點(diǎn)即可。在添加公式波時(shí),要把基本信號(hào)發(fā)生器VI換成公式波形VI,0代表默認(rèn)狀態(tài),表示無(wú)任何波形輸入。本文給出了Case結(jié)構(gòu)的一個(gè)分支,公式波形的流程圖如圖2所示。該子Ⅵ可使用指定時(shí)間函數(shù)的公式字符串生成一個(gè)函數(shù)波形,它要求公式的自變量必須是t,它所支持的運(yùn)算符和常用的函數(shù)詳見參考文獻(xiàn)。
另外,在模擬狀態(tài)下,信號(hào)頻率以赫茲或者每秒周期數(shù)為單位。但是在數(shù)字系統(tǒng)中,通常使用數(shù)字頻率,它是信號(hào)頻率與采樣頻率的比值,被稱為標(biāo)準(zhǔn)頻率。所以,在框圖程序中,應(yīng)當(dāng)在信號(hào)頻率與采樣頻率之間加載一個(gè)除法器。
在波形發(fā)生程序按照規(guī)定的參數(shù)產(chǎn)生波形后,如果將波形直接輸入波形顯示控件,那將是錯(cuò)誤的。因?yàn)椴ㄐ物@示控件,并不像數(shù)據(jù)顯示控件那樣只需要一個(gè)或一組數(shù)據(jù),因此波形能否按規(guī)定顯示出來(lái),取決于輸入的幾組不同且具有決定性的數(shù)據(jù),例如周期、相位等。在該設(shè)計(jì)中,將z軸起始坐標(biāo)、周期、波形捆綁成一個(gè)數(shù)組,同時(shí)輸入到波形顯示控件中。
3.2 數(shù)據(jù)處理部分
數(shù)據(jù)處理部分的作用,就是將產(chǎn)生出的信號(hào)通過(guò)不同形式的檢波、計(jì)算,得出規(guī)定的不同的結(jié)果。在該設(shè)計(jì)中同時(shí)顯示交流有效值、峰值和平均值。對(duì)于一個(gè)純粹的交流電壓,正半周期信號(hào)與負(fù)半周期信號(hào)對(duì)稱,U的平均值等于零,所以一般不直接測(cè)量平均值。在設(shè)計(jì)時(shí),按函數(shù)→數(shù)值→絕對(duì)值取交流電壓的絕對(duì)值,然后求平均值,取全波平均值。交流電壓中的最大值,即為峰值??梢酝ㄟ^(guò)比較數(shù)據(jù)求出最大值,這需要使用波形最大、最小子虛擬儀器來(lái)處理框圖。有效值顯示:在函數(shù)→信號(hào)處理→波形測(cè)量中選擇基本平均直流均方根。其框圖符號(hào)如圖3所示。
圖3中,DC value為測(cè)量的直流分量;RMS為value測(cè)量有效值;reset用于重啟過(guò)去記錄的時(shí)間信號(hào)、平均測(cè)量的參數(shù);averaging type是測(cè)量中的平均類型,在單個(gè)模塊VI中,可依據(jù)輸入記錄長(zhǎng)度自動(dòng)設(shè)置平均時(shí)間;Window是在DC/RMS計(jì)算之前,用于記錄時(shí)間的窗;erroe in是在該VI運(yùn)行之前描述錯(cuò)誤環(huán)境,默認(rèn)值為no error。如果錯(cuò)誤已經(jīng)發(fā)生,該VI在errorout端返回錯(cuò)誤代碼,子VI在無(wú)錯(cuò)誤時(shí)才正常運(yùn)行。
3.3 開關(guān)部分
用一個(gè)while條件語(yǔ)句設(shè)計(jì)整個(gè)框圖程序,當(dāng)模擬電壓開關(guān)為“1”時(shí),虛擬電壓表工作,條件語(yǔ)句中的程序開始運(yùn)行;當(dāng)模擬開關(guān)為“0”即關(guān)時(shí),條件語(yǔ)句中的程序停止運(yùn)行,虛擬電壓表不工作。設(shè)計(jì)好的流程圖如圖4所示。
4 結(jié) 語(yǔ)
經(jīng)過(guò)實(shí)際使用,虛擬電壓表所有的控制鍵和功能正常,符合使用要求。需要指出的是,在設(shè)計(jì)該虛擬電壓表時(shí),簽于教學(xué)使用的目的,僅從功能上考慮,并未對(duì)虛擬電壓表的技術(shù)指標(biāo)進(jìn)行深入研究。事實(shí)上,峰值是取樣值的最大值,而取樣點(diǎn)不可能取得太多,否則運(yùn)行速度太慢,因此顯示的峰值與理論值是有差別的,在設(shè)計(jì)時(shí)應(yīng)注意合理選擇參數(shù)。
在LabVIEW圖形化語(yǔ)言環(huán)境下設(shè)計(jì)的虛擬儀器簡(jiǎn)單快捷,用戶完全可根據(jù)測(cè)試功能的需要,調(diào)用不同功能的軟件模塊,以組建自己的儀器。這對(duì)測(cè)量者,尤其是高等院校的實(shí)驗(yàn)室是非常方便的。可在同一臺(tái)計(jì)算機(jī)中,根據(jù)不同的教學(xué)層次,設(shè)計(jì)不同檔次的儀器為教學(xué)服務(wù)。如何針對(duì)不同的教學(xué)目的,分別對(duì)硬件驅(qū)動(dòng)程序部分、虛擬面板部分、信號(hào)的后期處理部分進(jìn)行部分或完整的設(shè)計(jì),信號(hào)的后期處理程序可以設(shè)計(jì)成一個(gè)獨(dú)立的功能模塊,能夠?qū)Σ蓸有盘?hào)進(jìn)行非實(shí)時(shí)的在現(xiàn)和離線分析,既滿足了學(xué)生的要求,又避免了設(shè)備的重復(fù)購(gòu)置。