虛擬數(shù)字交流電壓表設(shè)計(jì)
一、實(shí)驗(yàn)?zāi)康?/b>??????????
1. 了解交流數(shù)字電壓表的測(cè)量原理。
2. 掌握交流電壓測(cè)量的基本方法。
3.掌握虛擬交流電壓表的LabView軟件設(shè)計(jì)。
4. 測(cè)量數(shù)據(jù)的誤差分析。
二、實(shí)驗(yàn)內(nèi)容
?? 1.設(shè)計(jì)一個(gè)虛擬數(shù)字交流電壓表界面和軟件,符合以下要求:測(cè)量電壓范圍峰值100mV~25V, 頻率1Hz~100KHz,可測(cè)量正弦波、三角波、方波信號(hào)的峰值、有效值、平均值,可對(duì)多種波形的信號(hào)進(jìn)行測(cè)量,如正弦波、方波、三角波等。
?? 2. 使用設(shè)計(jì)的交流電壓表測(cè)量正弦波、三角波、方波信號(hào)的幅值。
三、實(shí)驗(yàn)器材
1. 計(jì)算機(jī) 1臺(tái)
2. SJ-8002B電子測(cè)量實(shí)驗(yàn)箱(817V4.5)?。迸_(tái)
3. SAMPO(FG1617)函數(shù)信號(hào)發(fā)生器(1Hz~1MHz) 1臺(tái)
4. TEK(TDS2012)雙蹤示波器(20MHz以上的模擬或數(shù)字示波器) 1臺(tái)
四、實(shí)驗(yàn)原理
1.交流電壓測(cè)量方法
??? 傳統(tǒng)的交流電壓測(cè)量技術(shù),大都是采用把交流電壓變換成直流電壓(AC/DC變換)后進(jìn)行測(cè)量,即交流電壓通過(guò)檢波器后測(cè)量其直流電壓或電流。由于直流電壓及電流測(cè)量準(zhǔn)確度可做的很高,因此交流電壓測(cè)量的準(zhǔn)確度在很大程度上取決于檢波器的性能。使用檢波器類型不同,有峰值,均值,有效值方式的電壓表,各種方式的電壓表對(duì)不同的交流電壓波形(如正弦波,三角波和方波)的響應(yīng)不同,欲測(cè)量電壓,往往有波形影響的誤差。
??????????
?? ?????????? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖1
??? 一個(gè)交流電壓的大小,可以用有效值U,峰值,平均值等表征,若被測(cè)電壓的瞬時(shí)值為,則
?? 全波平均值為
????????????? ????? (1)
?? 有效值為
? ?????????? ? (2)
?? 波形因數(shù)為??? ?????????? (3)
?? 波峰因數(shù)為?? ?????????????? ?? (4)
?? 幾種典型電壓波形的U、、之間的換算關(guān)系見(jiàn)表1。
???????? ??????????? ???????????? ???????? ??????? 表1
波形 測(cè)量值 |
正弦 |
方波 |
三角 |
有效值 |
A-1 |
A-3 |
A-4 |
峰值 |
A-1 |
A-3 |
A-4 |
平均值 |
- |
-3 |
A-4 |
??? 本實(shí)驗(yàn)采用了與傳統(tǒng)方法完全不同的交流電壓測(cè)量的方法,它基于高速的A/D轉(zhuǎn)換技術(shù)測(cè)量出交流電壓的波形瞬時(shí)值,傳給計(jì)算機(jī),由計(jì)算積按照式(1)~(3)進(jìn)行計(jì)算,得到交流電壓的各種特征值。
??? 本實(shí)驗(yàn)系統(tǒng)基于虛擬儀器構(gòu)建的流數(shù)字電壓表通過(guò)實(shí)驗(yàn)箱內(nèi)的數(shù)據(jù)采集來(lái)實(shí)現(xiàn)的。被測(cè)的模擬電壓通過(guò)數(shù)據(jù)采集得到的離散的數(shù)字信號(hào),由PC機(jī)運(yùn)行虛擬儀器軟件按各種電壓的定義計(jì)算出被測(cè)電壓的有效值、均值或峰值。
??? 離散信號(hào)的電壓平均值及峰值的數(shù)學(xué)表達(dá)式如下所示:
?? 電壓有效值: ??????? ? ???? (5)
?? 電壓平均值: ?????? ???? (6)
? 電壓峰-峰值: ??????????? ????????? (7)
?? 在上面各式中,其中N為整周期倍數(shù)的采樣點(diǎn)總數(shù),VK為第K次采樣值。
?? 與傳統(tǒng)的模擬電壓表相比,被測(cè)電壓的瞬時(shí)值數(shù)據(jù)量化更實(shí)時(shí)準(zhǔn)確,而且很容易實(shí)現(xiàn)存儲(chǔ)、傳輸、處理等。在對(duì)交流電壓的測(cè)量,根據(jù)奈奎斯特采樣定理,采樣速率必須是信號(hào)最高頻率的兩倍以上,采樣頻率越高,時(shí)間軸上的信號(hào)分辨力就越高,所獲得的信號(hào)就越能反映原始信號(hào)的瞬時(shí)變化值。電壓測(cè)量的分辨率取決于A/D采樣器件的位數(shù)。
??? Ain1通道接入同樣的采樣時(shí)鐘,同時(shí)進(jìn)行轉(zhuǎn)換。轉(zhuǎn)換后的數(shù)據(jù)經(jīng)過(guò)緩沖器,送至SRAM鎖存。當(dāng)一次采集完成后,由主機(jī)讀回?cái)?shù)據(jù),進(jìn)行進(jìn)一步的處理,如濾波、顯示等。
?? 數(shù)據(jù)寫入:AD9288在采樣時(shí)鐘CLK的控制下,將兩路輸入模擬信號(hào)數(shù)字離散為8bit數(shù)字信號(hào)經(jīng)過(guò)數(shù)據(jù)緩沖器送至SRAM。地址由同一個(gè)地址計(jì)數(shù)器提供,該地址計(jì)數(shù)器為加/減計(jì)數(shù)器(采集數(shù)據(jù)時(shí)遞增,讀取時(shí)遞減)。這樣,每次采集所得數(shù)據(jù)都會(huì)順利的存入SRAM中。
2.交流電壓表的相關(guān)參數(shù)
?? 下面主要介紹一下每個(gè)電壓表的檔位對(duì)應(yīng)的通道增益放大倍數(shù),由于此電壓表分為了6檔,因此對(duì)應(yīng)的關(guān)系如下表所示。
????????????????????????????????????????????????表2
DIV序號(hào) div |
2 |
5 |
6 |
7 |
8 |
9 |
峰值量程 |
0.1 |
1 |
2.5 |
5 |
10 |
25 |
通道總增益理想值 |
5 |
0.5 |
0.2 |
0.1 |
0.05 |
0.02 |
?? 由于選用的A/D輸入范圍為1V,再考慮適當(dāng)?shù)倪^(guò)載的情況的話,
??? 以及對(duì)應(yīng)的秒格序號(hào)(總的采集點(diǎn)數(shù)5000點(diǎn)):
???????????????????????????????????????????????? 表3
秒格序號(hào) |
1 |
7 |
12 |
15 |
18 |
秒格范圍(Hz) |
1k~1M |
10k~100k |
1k~10k |
100~10k |
1~100 |
?? 選用這些秒格序號(hào)的原因是,設(shè)采樣頻率為fs,總采樣點(diǎn)數(shù)為N,被測(cè)信號(hào)頻率為fx,則被測(cè)信號(hào)每周期采樣點(diǎn)數(shù)M=fs/fx,總的采樣點(diǎn)數(shù)為N時(shí),信號(hào)周期數(shù)K=N/M=Nfs/fx.測(cè)量時(shí),采樣的周期數(shù)>2,每周期采樣點(diǎn)數(shù)>100為好。
五 設(shè)計(jì)指導(dǎo)
??? 本實(shí)驗(yàn)基于“SJ8002B電子測(cè)量實(shí)驗(yàn)箱”的高速數(shù)據(jù)采集和基于PC機(jī)的虛擬儀器軟件平臺(tái)(LabView)構(gòu)建,實(shí)現(xiàn)交流信號(hào)電壓和波形的測(cè)量,完成“虛擬存直流電壓表”的設(shè)計(jì)。SJ8002B的采集通道性能的控制。
?? 1.功能與前面板設(shè)計(jì)
?? 虛擬直流電壓表主要完成的是對(duì)信號(hào)發(fā)出的數(shù)據(jù)的采集和處理,并將其顯示在LabView的前面板上。因此,在虛擬直流電壓表的前面板上需要有峰值量程,頻率范圍,三組電壓值顯示,電壓值的指針顯示,采集波形顯示,量程和頻率出錯(cuò)判斷。。根據(jù)SJ8002B高速數(shù)據(jù)采集的性能指標(biāo),我們使用了峰值量程的其中的六個(gè)檔位,分別為:100mV,1V,2.5V,5V,10V和25V,頻率范圍分為了:1Hz-100Hz,100Hz-1KHz,1KHz-10KHz,10KHz-1MHz。此外,界面上還有運(yùn)行和退出控件,主要是執(zhí)行測(cè)量電壓值的控制和退出面板的控制。
軟件流程如下所示:
??????? ???
??? 啟動(dòng)虛擬儀器labview軟件開(kāi)發(fā)環(huán)境,建立新的工程文件,打開(kāi)front Panel設(shè)計(jì)界面,并存儲(chǔ),由界面文件自動(dòng)生成相關(guān)流程圖框架。
?? 本程序用到的前面板控件有:
???? ??? ?? ??? ??? ??? ?? ??? ??? ?? ??? ?? 表 4
控件類別 |
控件名稱 |
位置 |
注釋 |
指示類 |
峰值顯示 |
Controls>numeric>indicators |
用于顯示峰值 |
有效值顯示 |
用于顯示有效值 | ||
平均值顯示 |
用于顯示平均值 | ||
波形顯示 |
用于顯示采集波形 | ||
電壓值指針顯示 |
用指針顯示三類電壓值 | ||
超量程顯示 |
用于顯示超量程出錯(cuò) | ||
欠量程顯示 |
用于顯示欠量程出錯(cuò) | ||
頻率錯(cuò)顯示 |
用于顯示頻率出錯(cuò) | ||
測(cè)量控制類 |
峰值量程選擇 |
Controls>numeric control>dial |
用于控制峰值量程 |
頻率范圍選擇 |
用于控制頻率范圍 | ||
程序控制類 |
開(kāi)始/停止 |
Buttons>OK Button |
控制程序的開(kāi)始與停止 |
退出 |
Buttons>Stop Button |
控制退出程序面板 | |
面板裝飾類 |
面框 |
All controls-decorations |
使得面板更加美觀 |
?? 3 動(dòng)態(tài)鏈接庫(kù)的調(diào)用
??? 本程序設(shè)計(jì)的主要實(shí)現(xiàn)已經(jīng)做成底層fp函數(shù)(用Labwindows/CVI實(shí)現(xiàn)),在程序?qū)崿F(xiàn)時(shí)可直接調(diào)用實(shí)驗(yàn)箱提供的驅(qū)動(dòng)函數(shù)動(dòng)態(tài)鏈接(即.dll函數(shù)),驅(qū)動(dòng)函數(shù)原型及常數(shù)和變量在control_channel.prj中。程序設(shè)計(jì)時(shí),應(yīng)加入動(dòng)態(tài)鏈接control_channel.dll。
?? 實(shí)現(xiàn)虛擬直流電壓表的驅(qū)動(dòng)函數(shù)如表5所示:
??????? ???????????????????? ??????????????? 表 5
Fp函數(shù) |
實(shí)現(xiàn)功能 |
輸入?yún)?shù) |
輸出參數(shù) |
返回值 |
動(dòng)態(tài)鏈接圖標(biāo) |
Void epp_init(void) |
初始化EPP端口 |
無(wú) |
無(wú) |
無(wú) |
|
Void div_control (int div, double *gain, unsigned char *div_cw) |
采集通道增益控制 |
Div:伏格序號(hào) |
Gain:該伏格的通道增益量 |
無(wú) |
|
Void DC_control (int sampling_channle,int DC_code) |
直流偏置設(shè)置 |
Sampling_channel采集通道(控制序號(hào)為0,1) |
無(wú) |
無(wú) |
|
Void timebase_control (int timebase, unsigned char *fr_cw, double *show_pots,double *sampling_fr) |
采集時(shí)基控制 |
Timebase:秒格序號(hào) |
Fr_cw:采集時(shí)鐘控制字 |
無(wú) |
?? 動(dòng)態(tài)鏈接調(diào)用舉例: int led_display(double display_data):
?? 在block panel中點(diǎn)擊右鍵:All functions>Advanced>Call library function node.
???????????????
???????????????????? ??? ?????????? 圖 2
?
雙擊圖圖標(biāo),將出現(xiàn)如圖3所示
????????????????????????? ????? 圖 3
?? 此時(shí)可根據(jù)調(diào)用函數(shù)的路徑,參數(shù)及名稱進(jìn)行設(shè)置進(jìn)行得
???????????????????????????????? ??? ??? ??圖 4
??? 這樣就完成了動(dòng)態(tài)鏈接的調(diào)用及設(shè)置。
?? 4. 子VI的編寫與調(diào)用
??? 本程序除了調(diào)用了動(dòng)態(tài)鏈接庫(kù)以外還編寫并調(diào)用了多個(gè)子VI,使得整個(gè)程序更加的緊湊和完善,子VI編寫過(guò)程和整個(gè)程序的編寫都是相同的。但不同的是在子VI的程序做好后要對(duì)其做輸入和輸出的引腳,以便在調(diào)用子VI的時(shí)候就能夠方便的進(jìn)行程序的編寫。本程序在編寫中主要調(diào)用了以下的幾個(gè)子VI程序,如表6
???????????????????????????????????????????????????? 表 6
Fp函數(shù) |
實(shí)現(xiàn)功能 |
輸入?yún)?shù) |
輸出參數(shù) |
返回值 |
注釋 |
sampling (unsigned char coupling1_cw, int div1, int DC1_code,unsigned char coupling2_cw, int div2, int DC2_code,int timebase, unsigned char tri, int sampling_points,int Panel_Handle, int stop_ID,unsigned char ain1_data[], unsigned char ain2_data[],double *show_pots); |
在虛擬交流電壓表上對(duì)采集的波形的顯示以及得到的數(shù)據(jù)送出進(jìn)行數(shù)據(jù)的處理 |
coupling1_cw,coupling2_cw :Ain1,2通道耦合方式控制字(01表示交流耦合,00表示直流耦合)。 |
ain1_data[]Ain1的采集值 ain2_data[]Ain1的采集值;采集的數(shù)據(jù)的類型是U8,即8位無(wú)符號(hào)整形 |
Err: |
|
processing_data (unsigned char data[],int points,unsigned char coupling_cw,int div,int timebase, double *signal_fr,double *vp, double *vm, double *ve); |
進(jìn)行數(shù)據(jù)的處理,并輸出相應(yīng)所求的值 |
data[] 采集的數(shù)據(jù) |
signal_fr 信號(hào)頻率Hz |
Err: |
|
Void process_vs_AC (unsigned char data[], int n, int m,int div, double *vp,double *vm, double *ve) ; |
用于計(jì)算交流耦合方式下峰值、均值和有效值 |
data[] :信號(hào)數(shù)據(jù) |
Vp :峰峰值 |
無(wú) |
|
Int amp_OK(unsigned char data[],int points, unsigned char v_min) |
主要用于判斷電壓表讀數(shù)是否超量程、欠量程等情況 |
data[] :信號(hào)數(shù)據(jù) |
? ? 無(wú) |
0: OK,伏格選擇合適2 :增益太大,應(yīng)增大伏格序號(hào)(div),以減小通道增益 |
? ? ? |
六、實(shí)驗(yàn)步驟
?? 1. 采用實(shí)驗(yàn)箱提供的虛擬交流電壓表進(jìn)行測(cè)量的步驟如下:
? (1)按圖5所示各輸入輸出接頭連接實(shí)驗(yàn)系統(tǒng)。
? (2)測(cè)量?jī)?nèi)部DDS信號(hào)源輸出的交流電壓:
?
?
?
? ? ???? ?? ???? ?? ??? ???? ??????????? 圖 5
????????????
??? 交流數(shù)字電壓表的輸入信號(hào)有兩種接法:(1)測(cè)外部信號(hào)發(fā)生器輸出的交流電壓,如圖5所示的①,由外部的信號(hào)發(fā)生器連接Ain1的BNC插頭;一種是如圖5所示的②,由實(shí)驗(yàn)箱內(nèi)的信號(hào)源Aout1(或者Aout2)連接實(shí)驗(yàn)箱內(nèi)的采集通道輸入Ain1的BNC接頭;同時(shí)可用示波器監(jiān)測(cè)輸入信號(hào)的幅度和頻率,以便對(duì)測(cè)量結(jié)果進(jìn)行對(duì)照和比較。
?? 軟件調(diào)試:
?? 首先對(duì)軟件的功能性測(cè)試,可以看到面板上有三組指示燈,超量程、欠量程和頻率出錯(cuò)的指示。在這里可以分別對(duì)三組指示等分別測(cè)試功能是否正確。
?? 對(duì)超量程,首先輸入一個(gè)較大的信號(hào),如5V峰值的正弦波,而虛擬交流電壓表則選擇幅格低于5V的檔位來(lái)進(jìn)行測(cè)量,這時(shí)可以看到超量程的指示燈亮起,這就說(shuō)明這個(gè)軟件實(shí)現(xiàn)了超量程判定的功能。
?? 同理,對(duì)于欠量程功能的判定,我們也可以選取一個(gè)400mV的正弦信號(hào),而幅格則用5V/div的檔位。這時(shí)如果欠量程的指示燈亮起,則說(shuō)明欠量程測(cè)量功能實(shí)現(xiàn)。
?? 對(duì)于頻率出錯(cuò),我們可以選用一個(gè)5KHz的電壓,而頻率范圍我們則選用在非5KHz的范圍,則可以看到頻率出錯(cuò)指示燈亮。這時(shí)說(shuō)明這個(gè)功能也成功實(shí)現(xiàn)。
?? 然后按照交流電壓表實(shí)驗(yàn)運(yùn)行交流電壓表程序進(jìn)行電壓值的測(cè)量.
?? 2. 使用如圖6所示虛擬交流數(shù)字電壓表的面板,進(jìn)行測(cè)量操作。
?????????????????????????????????????? 圖6 ? 虛擬交流數(shù)字電壓表面板
??? 使用說(shuō)明:
- 選擇合適的量程:“峰值量程”提供了100mV/1V/2.5V/5V/10V/25V六種.應(yīng)根據(jù)被測(cè)電壓大小選用合適量程。當(dāng)被測(cè)電壓未知時(shí),應(yīng)選用大的量程測(cè)量后,根據(jù)初測(cè)值換用對(duì)應(yīng)量程。
- 選擇適當(dāng)?shù)念l段范圍:被測(cè)頻率的范圍包括 “1Hz~100 Hz”、“100Hz~1kHz”、“1kHz~10kHz”和“10kHz~100k Hz”,”100kHz~1MHz”。
- 采集波形的顯示
- 電壓值指針和數(shù)字顯示,這些都是根據(jù)波形顯示計(jì)算出來(lái)的。
? 3.交流電壓表實(shí)驗(yàn)
表7
波形 |
有效值 |
峰值 |
平均值 | ||||||
參考值 |
測(cè)量值 |
誤差 |
參考值 |
測(cè)量值 |
誤差 |
參考值 |
測(cè)量值 |
誤差 | |
正弦 |
? |
? |
? |
? |
? |
? |
? |
? |
? |
三角 |
? |
? |
? |
? |
? |
? |
? |
||
方波 |
? |
? |
? |
? |
? |
? |
? |
? |
? |
?
?????????????????
?????????????????????????????????????????????? 圖? 7
??????????????????
???????????????????????????????????????????????? 圖8
?????????????????
? ?? ???????? ??????? ???????????????? ??? 圖 9
? (2) 由外部信號(hào)源輸出不同頻率、峰值為1V的正弦(三角波、方波)電壓信號(hào),用虛擬交流數(shù)字電壓表測(cè)量其有效值、平均值,并與理論值比較做誤差分析,并將測(cè)量和計(jì)算結(jié)果填入表8
?????????????????????????????????????????????????????????? 表8
正弦波頻率 |
50 Hz |
500 Hz |
5kHz |
50kHz |
500kHz |
1MHz | |
有 |
參考值 |
? |
? |
? |
? |
? |
? |
測(cè)量值 |
? |
? |
? |
? |
? |
? | |
誤差 |
? |
? |
? |
? |
? |
? |
?????????????????
?????????????????????????????????????????? 圖 10
????????????????????????????????????????????????????? ?????? 表9
正弦波幅度 |
500 mV |
1V |
2V |
4V |
8V | |
有 |
參考值 |
? |
? |
? |
? |
? |
測(cè)量值 |
? |
? |
? |
? |
? | |
誤差 |
? |
? |
? |
? |
? |
- 電壓表(38070)
評(píng)論
查看更多