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