于春鵬, 何 勰
(上海船舶運輸科學研究所,上海 200135)
對于全電力推進船舶而言,船舶電網(wǎng)的電能質(zhì)量直接影響船舶運行時的安全性和可靠性,對船舶電網(wǎng)中各臺發(fā)電機和各主要供配電分段開關的運行參數(shù)進行實時監(jiān)測和記錄,是改善船舶電網(wǎng)的電能質(zhì)量,保證用電設備安全穩(wěn)定運行的基礎,進而可全面分析船舶綜合電力系統(tǒng)中的電能質(zhì)量問題[1]。
對于復雜的船舶綜合電力系而言,若所有發(fā)電機組控制器都具有電能質(zhì)量分析功能,則電能質(zhì)量分析的相關數(shù)據(jù)可通過機組控制器的網(wǎng)絡進行傳遞,這會大幅降低船舶供配電系統(tǒng)的設計難度和監(jiān)控系統(tǒng)組網(wǎng)的復雜度,無需專門增加檢測設備和組建通信網(wǎng)絡系統(tǒng)。因此,設計開發(fā)具有電能質(zhì)量分析功能的船舶控制器具有重要的現(xiàn)實意義。
當前采用的電能質(zhì)量分析方法主要有小波分析、傅里葉變換和瞬時無功功率等常規(guī)分析方法,同時還有引入神經(jīng)網(wǎng)絡和數(shù)學形態(tài)學等現(xiàn)代高級分析方法的電能質(zhì)量分析方法。目前技術最成熟、應用最廣泛的算法是傅里葉變換算法,其中:適用于數(shù)字處理的算法是離散傅里葉變換(Dicrete Fourier Transform,DFT)算法;適用于嵌入式系統(tǒng)的算法是快速傅里葉變換(Fast Fourier Transform,F(xiàn)FT)算法[2]。
FFT算法的基礎是DFT算法,利用DFT算法中旋轉因子的性質(zhì)來簡化計算過程,減少處理器的運算量。本文采用的是按時間抽取的基2-FFT算法。
設有限長離散序列為x(n),序列長度N=2m,m為正整數(shù)。按照n的奇偶性對序列x(n)進行抽取,可將其分為2個N/2長度的子序列,即
(1)
式(1)中:n=0,1,2,…,N/2-1。此時x(n)的DFT可表示為
(2)
(3)
將式(3)代入式(2)得
(4)
由此可計算出x1(n)和x2(n)的DFT為
(5)
(6)
式(5)和式(6)中:k=0,1,2,…,N/2-1。由式(2)可得x(n)的DFT為
(7)
旋轉因子具有周期性和對稱性,故
(8)
(9)
由式(8)和式(9)可得X(k)剩余部分的計算式為
(10)
由此,x(n)的DFT可表示為
(11)
綜上,可按照n的奇偶性將一個長度為N的序列x(n)分解成2個子序列x1(n)和x2(n)。重復上述過程,繼續(xù)按照奇偶性對子序列x1(n)和x2(n)進行抽取,最后將其分解成N個1點的DFT。這種運算也稱作蝶形運算。
為簡化描述,以N=8為例來展示x(n)的FFT蝶形運算過程(見圖1)。
圖1 8點FFT蝶形運算過程
本文采用的是1 024點FFT運算,原理與圖1相同,可分解為1 024個蝶形運算過程,這也是FFT算法能在FPGA中實現(xiàn)的基礎。
在分析電能質(zhì)量時,只有在對連續(xù)的時序信號進行截斷和采樣處理之后才能進行FFT運算,其中截斷就是對連續(xù)信號進行加窗函數(shù)處理。窗函數(shù)有很多種,如矩形窗函數(shù)、漢寧窗函數(shù)和二階升余弦窗函數(shù)等。
電網(wǎng)頻率存在波動,若不能實現(xiàn)理想的同步采樣處理,在這種情況下進行DFT運算時就不能準確分析出原信號的頻譜,從而出現(xiàn)頻譜泄漏的現(xiàn)象。當出現(xiàn)頻譜泄漏現(xiàn)象時,得到的頻譜圖與所加的窗函數(shù)直接相關。因此,在標準IEC 61000-4-30中,A類電能質(zhì)量設備不能采用FFT加窗技術實現(xiàn)電能質(zhì)量分析,只有盡量實現(xiàn)同步采樣,才能彌補上述分析方法的不足[3]。
本文采用先進的同步采樣AD轉換器AD7771實現(xiàn)對電網(wǎng)頻率波動0.01 Hz的追蹤同步采樣。
AD7771具有8路通道、24位同步采樣數(shù)模轉換器(Analog to Digital Converter,ADC),8路通道間可實現(xiàn)同步采樣,每路通道可達到最大1.28×105次/s的采樣率。AD7771采樣通道拓撲結構見圖2。
圖2 AD7771采樣通道拓撲結構
如圖2所示,AD7771每路通道都有低通SINC濾波器。SINC濾波器通常具有使ADC內(nèi)核輸出數(shù)據(jù)的速率降低一定的整數(shù)值(與工作時鐘速率相關)的功能,該功能稱為抽取功能。通常,抽取限制為一定的整數(shù)值。
AD7771具有的SINC濾波器具有同步采樣速率轉換器(Sample Rate Convertor,SRC)的功能,可實現(xiàn)非整數(shù)值抽取,并可在運行過程中隨時進行更改。HOST端只需根據(jù)電網(wǎng)頻率的變化進行更改,對AD7771內(nèi)的SINC濾波器的抽取系數(shù)(N)進行編程,從而實現(xiàn)對電網(wǎng)頻率波動在0.01 Hz范圍內(nèi)的同步跟蹤。
輸出數(shù)據(jù)速率(vODR)的計算式可表示為
(12)
式(12)中:N為SINC濾波器的抽取系數(shù);fMCLK為提供給AD7771的工作時鐘頻率;M為AD7771時鐘分頻系數(shù),在不考慮功耗的情況下,M=4;fmod為AD7771的調(diào)制器的采樣時鐘。
(13)
本文采用FPGA進行1 024點的FFT運算,需在一個周期內(nèi)對電量信號進行1 024次采樣。當線路頻率為50.00 Hz時,輸出數(shù)據(jù)速率vODR為
vODR=51.2 kHz
(14)
本文中AD7771采用的工作時鐘頻率fMCLK=8 192 kHz,因此調(diào)制器的采樣時鐘為
(15)
由式(12)可知,抽取系數(shù)N為
(16)
若電網(wǎng)線路的頻率變?yōu)?0.01 Hz,則對于FPGA內(nèi)的FFT算法而言,仍需在一個周期內(nèi)完成1 024點采樣,進而使算法達到對電網(wǎng)頻率同步采樣的要求。采用式(14)~式(16)重復計算,可得到50.01 Hz頻率下新的抽取系數(shù)N=39.992。
AD7771的SRC可對非整數(shù)抽取系數(shù)進行響應,分別將整數(shù)部分和非整數(shù)部分寫入對應的響應寄存器中,即可完成配置。
由于AD7771需依賴更新的抽取系數(shù)完成對電網(wǎng)頻率的跟蹤同步采樣,而SRC在加載新抽取系數(shù)之后轉換為新ODR時會出現(xiàn)延遲,這就使得SRC對新的抽取系數(shù)的響應延遲和采樣的同步性有至關重要的影響。
FPGA通過檢測AD7771的數(shù)據(jù)抽取完成指示引腳DRDY的狀態(tài)來同步讀取ADC的轉換結構,因此SRC的響應延遲可利用從更新抽取系數(shù)到DRDY開始按照新的ODR速率輸出結果的時間延遲來衡量。圖3為AD7771新的數(shù)據(jù)輸出延遲圖。
圖3 AD7771新的數(shù)據(jù)輸出延遲圖
以電網(wǎng)頻率為50.00 Hz為例,由式(14)可知此時ODR輸出頻率(即DRDY輸出的頻率)為51.2 kHz,由圖3可分析出新的數(shù)據(jù)輸出會延遲3~4個DRDY脈沖,即總的延遲會小于78.125 μs,這對于FFT計算諧波產(chǎn)生的影響而言是可接受的。
船舶電站控制器的核心功能是實現(xiàn)對機組和整個電站的控制與監(jiān)測,而本文中的電能質(zhì)量分析功能是在船舶電站控制器的算力存在裕量的情況下附加的功能,因此整個電能質(zhì)量分析算法不能影響船舶電站控制器的核心功能算法的應用。
由此,本文將FFT算法嵌入到FPGA中,利用FPGA的并行計算能力,使原本在MCU或DSP中需大量算力和時間才能完成的任務能在FPGA中用相對較短的時間完成,同時不會影響FPGA中其他功能模塊的運行[4]。
由圖1可知,蝶形運算單元為FFT算法的基礎組成單元,因此在FPGA中首先實現(xiàn)蝶形運算單元是完成FFT運算的基礎。本文依托的平臺為上海船舶運輸科學研究所的船舶電站控制器,該平臺采用Altera公司的Cyclone II系列FPGA完成。圖4為FPGA實現(xiàn)的蝶形運算單元。
FPGA讀取AD7771的轉換結果存儲在FPGA的RAM單元中,同時旋轉因子預置在FPGA的ROM中[5]。結合蝶形運算單元及相應的讀取和運算時序邏輯實現(xiàn)的1 024點FFT算法見圖5。
FPGA實現(xiàn)的FFT算法只有配合RAM、ROM和外設AD讀取的內(nèi)容才能實現(xiàn),因此時序操作的準確性決定了FFT運算結果是否正確。圖6為FPGA內(nèi)FFT算法模塊的時序仿真結果。
圖4 FPGA實現(xiàn)的蝶形運算單元
圖5 FPGA實現(xiàn)的1 024點FFT算法
圖6 FPGA內(nèi)FFT算法模塊的時序仿真結果
通過FLUKE 6003A三相標準功率源的諧波功能對該設計進行驗證。在基波頻率為50.00 Hz的基礎上疊加3次諧波和20次諧波,在基波頻率為50.02 Hz的基礎上疊加3次諧波和20次諧波,分別驗證該設計的輸出結果。圖7和圖8為利用MATLAB繪制的不同電網(wǎng)頻率下FPGA的FFT計算結果。
圖7 電網(wǎng)頻率為50.00 Hz時FPGA的FFT計算結果
圖8 電網(wǎng)頻率為50.02 Hz時FPGA的FFT計算結果
由圖7和圖8可知,F(xiàn)PGA的FFT計算結果能準確地反映50.00 Hz和50.02 Hz的基波及所疊加的3次和20次諧波,因此可認為該設計的硬件和算法是準確的。后續(xù)還需進行工程化完善并經(jīng)過專業(yè)檢測機構的檢測認證和實船應用驗證,進一步驗證該設計的可靠性。
本文根據(jù)全電力推進船舶電力系統(tǒng)的發(fā)展現(xiàn)狀,提出采用同步采樣的方式來規(guī)避傳統(tǒng)加窗FFT算法在電能質(zhì)量分析中應用時存在的不足,同時在FPGA中實現(xiàn)FFT算法,并進行驗證,為在船舶電站控制器中加入電能質(zhì)量分析功能提供了有效支撐,為未來實時、全面、長期對全船電力系統(tǒng)的電能質(zhì)量狀況進行監(jiān)測和改善打下了基礎。