1 、引言
數(shù)字信號處理是過去四十年以來快速發(fā)展起來的科學(xué)和工程領(lǐng)域,這種快速發(fā)展是數(shù)字計(jì)算機(jī)技術(shù)和集成電路技術(shù)迅猛發(fā)展的結(jié)果。利用數(shù)字信號處理方法實(shí)現(xiàn)的電能測量與傳統(tǒng)的機(jī)電式儀表測量相比具有精度高、可以同時(shí)實(shí)現(xiàn)多個(gè)參數(shù)測量以及使用方便等優(yōu)點(diǎn)。
傳統(tǒng)的機(jī)電式電能表不能實(shí)現(xiàn)諧波功率的測量,但是它得到了靜止式交流電能表國際標(biāo)準(zhǔn)(IEC-1268)的支持。這個(gè)標(biāo)準(zhǔn)在基波頻率下定義了有功電量和無功電量的計(jì)量,這就意味著是否包含諧波成分并不是強(qiáng)制性的。
基于上述標(biāo)準(zhǔn),常用來完成功率測量的方法包括時(shí)延法、公式法和積分法。這些方法中的時(shí)延法非常適合利用數(shù)字系統(tǒng)來實(shí)現(xiàn)。這時(shí),有功功率和無功功率可以被分別由下面公式來表達(dá):
2、 利用微控制器實(shí)現(xiàn)電能參數(shù)的計(jì)算
當(dāng)待測的交流電壓和電流信號通過模擬/數(shù)字轉(zhuǎn)換器轉(zhuǎn)換為相應(yīng)的數(shù)字量以后,微控制器可以完成有功功率、無功功率以及總功率的計(jì)算。由于式(1)和(2)的計(jì)算與信號周期相關(guān),當(dāng)電源周期發(fā)生變化時(shí),有功功率和無功功率的計(jì)算將產(chǎn)生誤差。如果能測量信號周期,并根據(jù)其變化對計(jì)算進(jìn)行調(diào)整則可以減少,或者消除計(jì)算誤差。
這里采用MCS51兼容芯片和Keil開發(fā)軟件完成市電周期的測量以及各種參數(shù)的計(jì)算。待測信號的周期測量通過單片機(jī)片內(nèi)的定時(shí)/計(jì)數(shù)器實(shí)現(xiàn)。定時(shí)/計(jì)數(shù)器工作在定時(shí)模式,16位計(jì)數(shù)方式。計(jì)數(shù)的起止由正弦波轉(zhuǎn)換獲得的方波信號控制,當(dāng)?shù)谝粋€(gè)方波前沿到來時(shí)啟動計(jì)數(shù),緊接著的方波前沿到來時(shí)停止計(jì)數(shù),這樣在計(jì)數(shù)器中的數(shù)據(jù)即為以單片機(jī)工作周期為單位的待測信號的周期值。設(shè)計(jì)中單片機(jī)的時(shí)鐘頻率選為12MHz,單片機(jī)工作周期,也就是周期測量的時(shí)間分辨率,為1us。定時(shí)/計(jì)數(shù)器的16位計(jì)數(shù)方式的計(jì)數(shù)最大值為65535,市電周期為20ms,因此它直接滿足周期測量的范圍要求。
Keil開發(fā)軟件支持MCS51系列芯片的匯編語言和C語言開發(fā),并支持匯編語言和C語言的混合編程。Keil Cx51支持的數(shù)據(jù)類型包括有浮點(diǎn)(float)數(shù)據(jù)類型,它包括4字節(jié)(32位),這使得進(jìn)行乘加運(yùn)算時(shí)即保持足夠的精度,也提供足夠的動態(tài)范圍。Keil Cx51支持浮點(diǎn)數(shù)據(jù)類型的加、減、乘和除等算術(shù)運(yùn)算,同時(shí)也提供了包括乘方運(yùn)算、開方運(yùn)算等運(yùn)算庫的支持,這些使得完成式(1)、(2)和(3)描述的計(jì)算非常方便。
完成一次電壓和電流信號的模擬/數(shù)字轉(zhuǎn)換需要一定的時(shí)間,由實(shí)測的信號周期和這個(gè)時(shí)間數(shù)據(jù)就可以獲得實(shí)現(xiàn)積分運(yùn)算需要完成的乘加運(yùn)算次數(shù)。由于進(jìn)行乘加運(yùn)算次數(shù)只能為整數(shù),還有如果電壓與電流數(shù)據(jù)不能同時(shí)采集,而只能分時(shí)采集之間而存在的時(shí)間間隔,這些都將對積分運(yùn)算的精度產(chǎn)生影響。
3、 數(shù)據(jù)分析
在市電周期是模擬/數(shù)字轉(zhuǎn)換需要的時(shí)間的整數(shù)倍數(shù),同時(shí)也不考慮電壓和電流信號進(jìn)行模擬/數(shù)字轉(zhuǎn)換之間的時(shí)間差,即同時(shí)完成電壓信號和電流信號的采樣,這時(shí)在電壓信號與電流信號之間存在相位差時(shí)有功功率和無功功率的模擬測量數(shù)據(jù)如表1所示。表1的測量條件為:待測信號頻率50Hz,一個(gè)信號周期的采樣點(diǎn)為1000,模擬/數(shù)字轉(zhuǎn)換器的分辨率為8位,電壓幅度數(shù)據(jù)100單位,電流幅度數(shù)據(jù)100單位。
當(dāng)市電頻率偏離標(biāo)稱的50Hz,例如市電頻率稍微升高,也就是信號周期稍微下降,由于實(shí)現(xiàn)積分運(yùn)算需要完成的乘加運(yùn)算次數(shù)必須為整數(shù),這時(shí)信號周期與積分時(shí)間將產(chǎn)生誤差。當(dāng)這個(gè)誤差達(dá)到最大時(shí),即完成一次模擬/數(shù)字轉(zhuǎn)換所需要的時(shí)間,在不考慮電壓和電流信號進(jìn)行模擬/數(shù)字轉(zhuǎn)換之間的時(shí)間差的情況下,其它測量條件同表1,這時(shí)電壓信號與電流信號之間存在相位差時(shí)各種功率的模擬測量數(shù)據(jù)如表2所示。
許多微控制器具有多路模擬信號輸入通道和在片模擬/數(shù)字轉(zhuǎn)換器,例如ADI公司的ADuC8xx和TI公司的TMS320C28x系列,但是它們的內(nèi)部是通過一個(gè)多路選通電路,再利用一個(gè)模塊完成模擬/數(shù)字轉(zhuǎn)換。如果用這樣的芯片完成電壓和電流信號的數(shù)據(jù)采集,那么在兩者之間不可避免地產(chǎn)生時(shí)間差。表3給出電壓和電流信號進(jìn)行模擬/數(shù)字轉(zhuǎn)換之間存在10us時(shí)間差,但信號周期是模擬/數(shù)字轉(zhuǎn)換需要的時(shí)間的整數(shù)倍數(shù),這時(shí)在電壓信號與電流信號之間存在相位差時(shí)各種功率的模擬測量數(shù)據(jù)。表3的其它測量條件同表1。
由表1可以看出,本文提出的有功功率和無功功率的測量方法具有很好的理論測量精度。表2顯示電網(wǎng)頻率發(fā)生變化對測量將會產(chǎn)生影響,但是影響很?。?]。最大的測量誤差,尤其是無功功率的測量,來自于電壓和電流信號進(jìn)行模擬/數(shù)字轉(zhuǎn)換之間的時(shí)間差,這點(diǎn)如表3所示。
4 、利用FPGA克服電壓和電流信號之間的測量時(shí)間差
使用微控制器控制2個(gè)獨(dú)立工作的模擬/數(shù)字轉(zhuǎn)換器可以克服電壓信號和電流信號測量之間的時(shí)間差,利用擴(kuò)展的數(shù)據(jù)存儲器可以存儲測量數(shù)據(jù),但是這時(shí)所面臨的問題是需要在一個(gè)市電周期的時(shí)間內(nèi)同時(shí)完成2路多次模擬/數(shù)字轉(zhuǎn)換,并需要把獲得的數(shù)據(jù)存入數(shù)據(jù)存儲器。
可編程邏輯器件的并行處理能力使其在工作速度方面優(yōu)于微控制器,由于計(jì)算機(jī)一次只能執(zhí)行一條指令,因此它的主要局限性是工作速度,采用硬件方案設(shè)計(jì)的數(shù)字系統(tǒng)總是比軟件方案的數(shù)字系統(tǒng)的工作速度快。
在本設(shè)計(jì)中,F(xiàn)PGA完成的工作包括控制2片TLC0820模擬/數(shù)字轉(zhuǎn)換器的控制、提供數(shù)據(jù)存儲所需要的存儲單元以及實(shí)現(xiàn)它與AT89S51微控制器之間的數(shù)據(jù)傳輸接口。FPGA芯片采用ALTERA公司的EP1C3T144I-7。
TLC0820是TI公司生產(chǎn)的8位分辨率,轉(zhuǎn)換時(shí)間為2.5us,具有并行數(shù)據(jù)接口的模擬/數(shù)字轉(zhuǎn)換器,它滿足本次設(shè)計(jì)的要求[6]。利用VHDL語言實(shí)現(xiàn)單片TLC0820模擬/數(shù)字轉(zhuǎn)換器的控制代碼。
IF (reset_adc = ‘0’) THEN
current_state_adc 《= 0;
wr_tlc0820 《= ‘1’; rd_tlc0820 《= ‘1’; clk_ram_in 《= ‘0’;
ELSIF (clk_sys‘EVENT AND clk_sys = ’1‘) THEN
CASE current_state_adc IS
WHEN 0 =》 wr_tlc0820 《= ’0‘; rd_tlc0820 《= ’1‘; clk_ram_in 《= ’0‘;
current_state_adc 《= 1;
WHEN 1 =》 wr_tlc0820 《= ’1‘; rd_tlc0820 《= ’1‘; clk_ram_in 《= ’0‘;
current_state_adc 《= 2;
WHEN 2 =》 wr_tlc0820 《= ’1‘; rd_tlc0820 《= ’1‘; clk_ram_in 《= ’0‘;
IF (int_tlc0820 = ’0‘) THEN
current_state_adc 《= 3;
ELSE
current_state_adc 《= 2;
END IF;
WHEN 3 =》 wr_tlc0820 《= ’1‘; rd_tlc0820 《= ’0‘; clk_ram_in 《= ’1‘;
current_state_adc 《= 4;
WHEN 4 =》 wr_tlc0820 《= ’1‘; rd_tlc0820 《= ’0‘; clk_ram_in 《= ’1‘;
current_state_adc 《= 5;
WHEN 5 =》 wr_tlc0820 《= ’1‘; rd_tlc0820 《= ’1‘; clk_ram_in 《= ’0‘;
current_state_adc 《= 6;
WHEN 6 =》 wr_tlc0820 《= ’1‘; rd_tlc0820 《= ’1‘; clk_ram_in 《= ’0‘;
current_state_adc 《= 6;
END CASE;
END IF;
FPGA芯片控制2片TLC0820模擬/數(shù)字轉(zhuǎn)換器的工作,分別實(shí)現(xiàn)電壓信號和電流信號的采樣。模擬/數(shù)字轉(zhuǎn)換器復(fù)位信號reset_adc同時(shí)送到2片TLC0820的控制代碼,實(shí)現(xiàn)電壓信號和電流信號的同步采樣。模擬/數(shù)字轉(zhuǎn)換過程完成之后,TLC0820產(chǎn)生中斷信號int_tlc0820,在這個(gè)信號控制下,上面代碼產(chǎn)生數(shù)據(jù)存儲器寫入時(shí)鐘clk_ram_in,把模擬/數(shù)字轉(zhuǎn)換結(jié)果寫入對應(yīng)的數(shù)據(jù)存儲器。
存儲模擬/數(shù)字轉(zhuǎn)換結(jié)果的數(shù)據(jù)存儲器利用QUARTUS II可編程邏輯器件開發(fā)軟件提供的可變參數(shù)模塊LPM_RAM_DP來實(shí)現(xiàn)。電壓信號和電流信號具有各自的數(shù)據(jù)存儲器。數(shù)據(jù)存儲器具有獨(dú)立的讀寫地址線、數(shù)據(jù)線、使能信號以及時(shí)鐘信號。
FPGA芯片向微控制器的數(shù)據(jù)傳送通過后者的數(shù)據(jù)總線實(shí)現(xiàn)。這部分也可以采用有限狀態(tài)機(jī)模型進(jìn)行編寫。
在完成上述各個(gè)部分的設(shè)計(jì)以后,生成它們的符號文件,再利用QUARTUS II可編程邏輯器件開發(fā)軟件提供的原理圖輸入方式把所有符號連接起來實(shí)現(xiàn)完整的系統(tǒng)。該系統(tǒng)占用EP1C3T144I-7芯片2910個(gè)邏輯單元的42個(gè);104個(gè)輸入/輸出管腳的47個(gè);59904位存儲空間的32768位。系統(tǒng)實(shí)際工作時(shí)鐘為1MHz,F(xiàn)PGA芯片在完成本次設(shè)計(jì)可達(dá)到的最高時(shí)鐘為212MHz。
5、結(jié)束語
用電設(shè)備的技術(shù)復(fù)雜程度的提高使得僅用有功功率進(jìn)行計(jì)量已經(jīng)不能表示輸送到終端的全部電量。根據(jù)一些電力供應(yīng)商的經(jīng)驗(yàn),對無功功率也進(jìn)行計(jì)量是解決問題的一種對策。例如意大利最重要的電力公司已經(jīng)決定安裝2000萬只同時(shí)具有有功功率和無功功率計(jì)量的電能表用于對用戶的用電進(jìn)行計(jì)量。
本文作者創(chuàng)新點(diǎn):利用數(shù)字方法實(shí)現(xiàn)有功功率和無功功率測量的方法,并利用EP1C3T144I-7這樣的FPGA芯片完成對2個(gè)TLC0820模擬/數(shù)字轉(zhuǎn)換器的工作控制,克服了電壓信號和電流信號測量的不同步所引起的測量誤差。系統(tǒng)可以實(shí)現(xiàn)電網(wǎng)功率,包括有功功率、無功功率以及總功率,的計(jì)量。整個(gè)系統(tǒng)具有比較滿意的各項(xiàng)功率測量精度,并且結(jié)構(gòu)簡單,成本低廉。
責(zé)任編輯:gt
評論