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