李小光
(西安航空學(xué)院 理學(xué)院,陜西 西安 710077)
隨著各種電力電子裝置在電力系統(tǒng)越來越廣泛的應(yīng)用,其非線性的特點(diǎn)使得供電中的諧波失真問題日益嚴(yán)重。監(jiān)測(cè)技術(shù)的研究對(duì)市電質(zhì)量的補(bǔ)償具有很高的價(jià)值,考慮到實(shí)際情況,在供電系統(tǒng)質(zhì)量監(jiān)測(cè)中需要一些低成本,但分析速度較快的監(jiān)測(cè)系統(tǒng)。
離散時(shí)間采樣的快速傅里葉變換FFT (fast Fourier transform)算法是目前最主要的諧波檢測(cè)和分析方法。FFT算法的實(shí)現(xiàn)可以采用專用芯片[1]37-40、DSP 芯片[2]6-11[3]41-44、FPGA芯片[4]193-207以及微控制器等。隨著集成電路制造技術(shù)和數(shù)字計(jì)算機(jī)技術(shù)的進(jìn)步,微控制器芯片的功能和所能提供的邏輯資源越來越多。MSP430F1611微控制器芯片屬于TI公司 MSP430x1xx系列產(chǎn)品中的一種[5-6],該芯片具有10240字節(jié)的 SRAM(Static Random Access Memory)存儲(chǔ)器、48 k 字節(jié)的程序存儲(chǔ)器、8通道 12位 ADC、2通道 12位 DAC、16位×16位硬件乘法器模塊等片內(nèi)資源。硬件乘法器模塊支持8/16位×8/16位有符號(hào),或者無符號(hào)的乘法運(yùn)算,并可以選擇“乘法與累加”功能。采用MSP430系列微控制器實(shí)現(xiàn)FFT算法具有超低功耗、低電壓工作、低成本、分析速度快等優(yōu)點(diǎn),它比采用專用芯片和DSP芯片價(jià)格便宜,比采用FPGA芯片容易實(shí)現(xiàn)。
快速傅里葉變換在信號(hào)處理中的線性濾、相關(guān)計(jì)算、譜分析等方面起著重要的作用。將N點(diǎn)采樣數(shù)據(jù)分解為更短的數(shù)據(jù)段來進(jìn)行計(jì)算可以提高計(jì)算效率,目前使用最廣泛的是基2的FFT算法。圖1給出基2按時(shí)間抽取的快速傅里葉變換中的基本運(yùn)算過程[5]379-388[6]181-189。
圖1 基2按時(shí)間抽取的快速傅里葉變換中的基本運(yùn)算Fig.1 Base 2 extraction according to time the basic operation of the fast Fourier transform
這種運(yùn)算過程被稱為蝶形運(yùn)算,因?yàn)樗牧鞒虉D看起來就像一個(gè)蝴蝶。每次蝶形運(yùn)算包括一次復(fù)數(shù)乘法運(yùn)算和兩次復(fù)數(shù)加法運(yùn)算。一旦對(duì)一對(duì)復(fù)數(shù)(a,b)執(zhí)行了產(chǎn)生(A,B)的蝶形運(yùn)算,原數(shù)據(jù)就無須再保存,所以可以將結(jié)果(A,B)保存在與數(shù)據(jù)(a,b)相同的數(shù)據(jù)存儲(chǔ)單元。
由于MSP430系列微控制器的開發(fā)軟件不支持復(fù)數(shù)運(yùn)算[7],這里復(fù)數(shù)運(yùn)算需要分解成實(shí)部和虛部分別來完成,下面的函數(shù)“fft_2sin”用來實(shí)現(xiàn)蝶形運(yùn)算。
圖2給出8點(diǎn)數(shù)據(jù)的基2按時(shí)間抽取的快速傅里葉變換流程圖。整個(gè)數(shù)據(jù)分析需要多個(gè)階段才能完成,每個(gè)階段需要多次調(diào)用基2的FFT算法函數(shù)。在前面給出的函數(shù)“fft_2sin”中需要通過三角運(yùn)算分別完成相位因子實(shí)部和虛部的計(jì)算。三角函數(shù)計(jì)算需要花費(fèi)大量的時(shí)間,但是在分析的數(shù)據(jù)點(diǎn)數(shù)量給定以后可以首先完成相位因子的計(jì)算,將計(jì)算值存儲(chǔ)在一個(gè)數(shù)據(jù)表中,通過查表的方法代替三角函數(shù)計(jì)算。修改后的基2的FFT算法函數(shù)如下。
圖2 8點(diǎn)數(shù)據(jù)的基2按時(shí)間抽取的快速傅里葉變換流程圖Fig.2 8 data base 2 according to the time of extraction flow chart of fast Fourier transform
使用MSP430系列微控制器的開發(fā)軟件IAR模擬顯示,在基2的FFT算法函數(shù)中計(jì)算相位因子的情況下,完成一次函數(shù)計(jì)算需要花費(fèi)7422時(shí)鐘周期;利用查表獲得相位因子的情況下,完成一次函數(shù)計(jì)算只需要花費(fèi)1242時(shí)鐘周期。
完成采樣數(shù)據(jù)的FFT分析的過程中需要進(jìn)行大量的乘法運(yùn)算,像其它的微控制器一樣,MSP430系列芯片也是通過調(diào)用內(nèi)部函數(shù)完成這些乘法運(yùn)算的。利用硬件的方法完成要求的工作比使用軟件模擬的方法快,也就是比利用編程實(shí)現(xiàn)的方法要快,但是添加硬件電路也將占用更多的邏輯資源。
TI公司在MSP430系列中的部分芯片中添加了硬件乘法器,利用開發(fā)軟件中的編譯選項(xiàng)可以方便地使用硬件乘法器代替內(nèi)部函數(shù)來實(shí)現(xiàn)乘法運(yùn)算。以完成圖2給出8點(diǎn)數(shù)據(jù)的基2按時(shí)間抽取的快速傅里葉變換流程圖為例,過程包括從采樣數(shù)據(jù)的倒序排列,3個(gè)階段基2的FFT計(jì)算,最終給出頻譜分量的幅度數(shù)值。不使用硬件乘法器需要46592時(shí)鐘周期,使用硬件乘法器需要41183時(shí)鐘周期。
使用MSP430F1611微控制器芯片完成一個(gè)信號(hào)周期256個(gè)采樣點(diǎn)的FFT分析,當(dāng)被分析信號(hào)為50%占空比的方波,變換頻率分量為 0,1,2,3時(shí),方波信號(hào)頻譜實(shí)際測(cè)量值分別為 127.500,162.342,0,54.1250,理論上的計(jì)算值分別為127.500,162.338,0,54.1127。 分析上訴結(jié)果可以得到實(shí)際測(cè)量值與理論計(jì)算值之間的絕對(duì)誤差分別為0,0.004,0,0.012 3,相對(duì)誤差為 0,0.002 5,0,0.023。
由上面的結(jié)論可以看出,利用程序產(chǎn)生256個(gè)采樣數(shù)據(jù),低電平數(shù)據(jù)為0,高電平數(shù)據(jù)為255,整個(gè)模擬程序占用芯片程序存儲(chǔ)器3 492字節(jié),數(shù)據(jù)存儲(chǔ)器3 156字節(jié)。完成一次分析需要2 410 975時(shí)鐘周期,當(dāng)采用8 MHz的時(shí)鐘信號(hào)需要約0.3 s,前10次諧波的計(jì)算相對(duì)誤差低于千分之一。
TI公司新推出的MSP430F5xx系列產(chǎn)品的指令執(zhí)行速度達(dá)到25MIPS,并提供32位×32位硬件乘法器模塊[8],這將進(jìn)一步提高運(yùn)算速度。
[1]孫國棟,雷在拴,周玉國,等.綜合電力監(jiān)控儀表的設(shè)計(jì)[J].電測(cè)與儀表,2007,44(7):37-40.SUN Guo-dong,LEI Zai-shuan,ZHOU Yu-guo,et al.The design of the integrated power monitoring instrument[J].Electric Measurement and Instrument,2007,44(7):37-40.
[2]任明煒,韓雪冰.基于TMS320F2812的混合型動(dòng)態(tài)無功補(bǔ)償控制系統(tǒng)的數(shù)字化實(shí)現(xiàn)[J].電測(cè)與儀表,2007,44(7):6-11.REN Ming-hui,HAN Xue-bing.The hybrid dynamic reactive power compensation control system based on TMS320F2812 digital implementation[J].Electric Measurement and Instrument,2007,44(7):6-11.
[3]周軍,李志霞,陸勇.基于DSP的電能質(zhì)量在線監(jiān)測(cè)系統(tǒng)的研制[J].電測(cè)與儀表,2007,44(7):41-44.ZHOU Jun,LI Zhi-xia,LIU Yong.Power quality online monitoring system based on DSP development[J].Electric Measurement and Instrument,2007,44(7):41-44.
[4]Uwe Meyer-Baese著.劉凌,胡永生譯.數(shù)字信號(hào)處理的FPGA實(shí)現(xiàn)[M].北京:清華大學(xué)出版社,2003.
[5]John G.Proakis,Dimitris G.Manolakis.數(shù)字信號(hào)處理[M].方艷梅,劉永清,等譯.北京:電子工業(yè)出版社,2007:379-388.
[6]Steven W.Smith.實(shí)用數(shù)字信號(hào)處理——從原理到應(yīng)用[M].張瑞峰,詹敏晶,等譯.北京:人民郵電出版社,2010:181-189.
[7]IAR Embedded Workbench Version 3+for MSP430?User Guide[EB/OL].(2011-11-28).[2012-2-10]http://www.ti.com/litv/pdf/slau138x.pdf.
[8]MSP430x5xx/MSP430x6xx Family User’s Guide[EB/OL].(2011-12-19). [2012-2-10]http://www.ti.com/litv/pdf/slau208j.pdf.