基于FPGA的交流電測量儀的設計
2.2 計算有效值的軟件設計
根據本文介紹的交流電采樣原理[6-7]和有效值的計算方法,要計算交流電必須進行平方和開方的運算,由于FPGA沒有現成的開方運算方法,設計FPGA開方運算方法成為本設計的關鍵。
常用的開方算法有牛頓—萊福森算法、逐次比較算法等。牛頓—萊福森算法比較復雜, 占用資源比較多, 且迭代次數不確定, 不太適合FPGA運算。本設計采用逐次比較算法,充分發揮FPGA執行速度快的優點。逐次比較算法先將實驗值進行平方運算, 然后與輸入值相比較, 通過比較結果,修正實驗值, 從而得到輸出值。
本設計開方算法流程如圖3所示。采用12位設計,由于正負的關系,計算時將負數求補轉換成正數,所以實際只有11位,需進行11次運算比較。
首先,令n=1,A=S=10000000000也即將11位的最高位置1,其他位置0,然后將它賦給A、S,然后對A求平方后,把A賦給B。B和一個周期內128個采樣值的平方和的平均數C(平方和右移7位即可)比較大小。當C大于B時A=A+(S>>n),同時調整n的值,令n=n+1;若當C等于B時,則A即為所求的開方值,當C小于B時,A=[A-(S>>n-1)+(S>>n)],同時調整n的值,令n=n+1,開始下一次循環比較。直到最后一位比較完后,強行結束。例如:設C為49(二進制為110001),首先,將n=1,A=S=10000000000,對A平方并賦給B,CB,則執行A=(A-(S>>n-1)+(S>>n))。此時A=01000000000,循環執行平方、比較后A=00100000000,繼續循環A=00100000000,直到第9次循環,平方、比較后,當C大于B時,A=A+(S>>n),A=00000000110,繼續循環;平方、比較后A=00000000111,繼續循環;平方、比較后A=00000000111。即得出平方根為00000000111。經過11次比較得出正確的結果。
2.3 計算頻率的軟件設計
頻率參數的實時測量一直是電力系統參數測量中的重點和難點。由于電力系統的頻率時刻都有微小的變化, 精確的測頻手段成為實時控制的重要組成部分。在實際應用中通常包括硬件測頻法和軟件測頻法兩種。本文軟件測頻主要采用基于電網電壓交流采樣技術, 通過相應的數值算法,經過計算機處理計算獲得頻率量的大小, 其算法相當豐富而且還在不斷發展。本設計中的控制器采用過零法進行軟件測頻。
如圖4所示,當采樣值出現有負值到正值的變化,表示正弦值過了0點,為了排除干擾和誤判,且隨后需出現3個正值則代表正弦值確實過了零點,進入正值區間,此時計數器開始對采樣個數數進行計數,經過一定的采樣值后,當采樣值第3次出現由負值到正值的變化,表示正弦值過了0點,且隨后需出現3個正值則代表正弦值確實過了0點,進入正值區間,此時停止計數器對采樣個數進行計數;或者當采樣值出現由正值到負值的變化,表示正弦值過了0點,為了排除干擾和誤判,且隨后需出現3個負值則代表正弦值確實過了0點,進入負值區間,此時計數器開始對采樣個數進行計數,經過一定的采樣值后,當采樣值第3次出現正值到負值的變化,表示正弦值過了0點,且隨后需出現3個負值則代表正弦值確實過了0點,進入負值區間,此時停止計數器對采樣個數的計數。判斷出此時計數器的個數即為采樣個數,通過采樣的間隔時間t1,乘以計數器的個數c2,即1個周期的時間為t3=t1×c2。則頻率為f=1/(0.5×t3)。此設計2個周期采樣約256個點,頻率精度相當的高,可以滿足電力系統的需要。
該系統是基于交流采樣設計的電力參數監測儀器,設計出基于FPGA的開方程序,通過對交流采樣值進行處理和計算,結合FPGA的高速運算、并行處理的能力,實現交流電壓有效值和頻率的實時計算。具有精度高、速度快、實時性好的特點,在電力系統中有極高的實用價值。
參考文獻
[1] 劉福奇.FPGA嵌入式項目開發實戰[M].北京:電子工業出版社,2009.
[2] 胡廣書.數字信號處理[M].北京:清華大學出版社,2003.
[3] 王傳新.FPGA設計基礎[M].北京:高等教育出版社,2007.
[4] BURR BROWN.ADS78O4 DATA BO0K,1999.
[5] 邁耶-貝斯.數字信號處理的FPGA實現[M].劉凌,譯. 北京:清華大學出版社,2006.
[6] 史鍵芳,宋正湘,張國鋼.智能儀器設計基礎[M].北京:電子工業出版社,2007.
[7] 王汝文.電器智能化原理及應用[M].北京:電子工業出版社,2007.
評論