林偉
?
基于FPGA的暫態信號可定制精細化實時時頻關聯分析算法
林偉
(自由職業者,山東省 濟南市 250100)
針對電力系統故障信號中暫態分量的精細化實時分析需求,提出一種不同于Mallat算法頻域分段方式的時頻關聯分析算法。這一算法可以實時運行,既對頻帶進行了精細化的、可靈活設置的、有重點的劃分,又實現了全頻帶的高時域分辨率,同時保持了輸出數據的時頻關聯特性。基于現場可編程門陣列(field-programmable gate array,FPGA)設計了一個實現這一算法的范例模塊,基于MATLAB建立了一個簡化的分布式參數電網模型。在這一模型上以生成500kHz的故障信號采樣值序列作為輸入范例模塊的數據流,對范例模塊進行仿真,初步驗證了該算法的性能、實用性。就該算法在繼電保護算法設計中的應用策略提出了建議,對該算法涉及的其他后續工作進行了展望。
繼電保護;暫態量保護;小波變換;時頻關聯分析;現場可編程門陣列(FPGA)
電力系統故障信號的高頻暫態分量非常豐富,有可能隱藏著大量信息,已有多個團隊就暫態信號的采集與分析進行了研究并取得了重要成果[1-4]。對暫態信號進行精細化的實時時頻關聯分析,有可能發現新的、可以提高“四性”的保護特征量,進而有可能研發出性能更先進的基于暫態信號實時分析的新型保護裝置[5]。
小波變換是當前對電力系統暫態量故障信號進行實時時頻關聯分析最重要的數學工具之一,Mallat算法是小波變換得以實用化的基本手段。Mallat算法的基本特征決定了其固有的缺陷:對(0,s/2)(s為采樣頻率)頻帶的劃分方式是比較粗略的,對高頻區域無法細分,只有在分解層數增加的情況下,才能對最低頻區域進行比較精細的劃分,但代價卻是時域分辨率的指數級下降[5]。同時,對于位于特定頻段的、不需測量的、必將導致干擾的原始信號分量,也無法排除其影響。
現場可編程門陣列(field-programmable gate array,FPGA)是20世紀80年代出現的一類可編程邏輯器件,內置大量可并行運行的邏輯門、寄存器、運算單元、存儲區塊,以及為其提供可編程互聯的布線資源,相較于當前暫態量保護裝置的核心運算器件DSP、CPU,其最大優勢是多通道、大運算量的高速并行運算[6]。以FPGA為核心實現暫態信號分析算法,能夠以硬件資源換性能、將大量高速運算任務分配給幾百上千個運算核心并行執行,為大幅度改善信號分析模塊的性能提供了技術基礎,為暫態量保護技術的發展提供了重要的機遇。
基于FPGA實現保護算法,此前已有部分研究成果[7-11],其中文獻[8]述及了基于FPGA實現小波變換的思想。
本文以FPGA的并行運算能力為基礎,借鑒小波變換Mallat算法的頻域分段、時頻關聯思想,提出不同于Mallat算法頻域分段方式的暫態信號可定制精細化實時時頻關聯分析算法,以期為暫態信號的時頻關聯分析提供更好的數據預處理工具,為暫態量保護中新特征量的發現、新特征量提取算法的研究提供新的基礎、新的思路。
基于FPGA實現繼電保護裝置的系統架構如圖1所示。其中包含了智能變電站過程層設備的通訊接口模塊、數據預處理模塊。虛線框內是在主FPGA芯片中實現的功能。

圖1 基于FPGA實現繼電保護裝置的系統架構圖
圖1中各模塊分別占用FPGA中的一部分硬件資源,在上位機CPU的配置下各司其職、互相協作、并行運行。近年來研究人員已經在智能變電站二次設備的通信接口、數據預處理環節中用FPGA實現了其中的一些模塊[9-11],本文不再贅述。
本架構著眼于構建繼電保護裝置中具有共性的功能框架,把位于主數據通道上的、實時處理采樣值數據流的各算法模塊整合到FPGA芯片中,FPGA片內數據處理過程的特征是分布式運算、基于流水線協作的并行處理,核心理念是“以硬件資源換性能”。
與此同時,由上位機CPU實現系統初始化、人機界面、保護定值獲取及下發等慢速、非實時功能,以節省FPGA硬件資源、簡化系統架構、管控開發難度。
暫態信號可定制精細化實時時頻關聯分析算法是圖1中“保護算法模塊”中執行特征量提取任務的子模塊的下級子模塊,對暫態信號采樣值序列進行預處理,實時輸出包含時頻關聯信息的暫態信號信息流,實時為提取故障信號特征量的子模塊提供基礎數據:與時域坐標精確關聯的精細化全頻段信號頻譜。
暫態信號可定制精細化實時時頻關聯分析算法的結構非常簡單,就是幾十個(視市場競爭情況可以多至幾百個)并行運行、同時處理同一暫態信號采樣值序列的高階FIR帶通數字濾波器,每個濾波器負責將暫態信號處于某一頻段內的頻率成分實時過濾出來,發往后續的子模塊。在最簡單的情況下,各個濾波器的通帶范圍前后銜接,各通帶連在一起,覆蓋整個(0,s/2)頻帶。
作為對暫態信號可定制精細化實時時頻關聯分析算法的驗證,用MATLAB寫了一個算法模塊,用于離線處理采樣頻率s=500 kHz的采樣值序列。該算法模塊中包含了32個互相獨立的FIR帶通濾波器,各濾波器在fdatool界面下用等紋波法設計,通帶帶寬相同,為500kHz/2/32=7.8125kHz,前后銜接覆蓋了整個(0,s/2)頻帶,過渡帶寬度為4kHz,通帶紋波約為1dB,阻帶衰減約為45dB,系數精度取16位,所設計得到的濾波器階數為212階。
各濾波器的通帶邊界參數如表1所示。作為例子,其中第10個濾波器(中心頻率74.21875kHz)的fdatool設計頁面如圖2所示。

表1 各濾波器的通帶邊界參數

圖2 第10個濾波器的fdatool設計頁面
本設計實例運行時,各FIR帶通濾波器同時接收同一暫態信號采樣值序列,輸出暫態信號中分別位于32個頻段內的各路頻率成分,以供后續的特征量提取算法子模塊使用。
由于各帶通濾波器的運行互不干涉,所以各通帶的帶寬、各通帶在(0,s/2)頻帶中的位置是可以自由設置的(包括互相包含、部分重合、前后分離等各種方案,2.3節中的例子屬于特例),以適應各種運行環境下的故障信號特征。
例如,在某種特定的電網結構下,如果故障仿真、對現場故障錄波數據的研究表明某個頻段的信號需要特別予以關注,則可以增加在此頻段內劃分出的通帶數量(增加帶通濾波器的數量),用更多的硬件資源實現對關鍵頻段的更精細觀察(即前述“以硬件資源換性能”);反之,如果故障仿真、現場故障錄波數據研究表明不需要關注某個頻段的信號,則完全可以在設計帶通濾波器時使通帶避開這一頻段,以排除此頻段內的信號對有用頻段內信號的干擾,同時節省硬件資源。
也就是說,暫態信號可定制精細化實時時頻關聯分析算法中的待分析頻段的設置、劃分是完全可定制的。
具體的通帶設置方案,需要依據保護裝置所需處理的故障信號的特征來確定。
部分文獻中將小波變換的Mallat算法直接應用于小波包變換,方法是:借助對上級Mallat分解得到的高頻分量進行下采樣、繼續分解,對高頻分量進行與低頻分量相同的級聯分解操作,以此實現對高頻分量的繼續細分,直至達到所需要的頻域分段精度。
與暫態信號可定制精細化實時時頻關聯分析算法相比,小波包變換Mallat算法的差距主要在頻段設置、劃分方式上:后者的劃分方式固定,每個通帶的帶寬只能以s/2/2(=1,2,3,...)為單位,且在整個頻帶中的位置固定[12-13],如果待分析頻段與鄰近的干擾頻段都位于一個最小頻段單位內,將無法對干擾頻段加以濾除;與此同時,如2.4節所述,前者的劃分方式則是完全可定制的。在上述情況下,可以通過自由移動待分析頻段在頻譜中的位置而“躲開”干擾頻段。
為驗證暫態信號可定制精細化實時時頻關聯分析算法處理數據的效果,利用MATLAB- Simulink工具搭建了一個簡單的分布參數電網模型,針對一種典型故障情況進行了仿真,將仿真得到的2路暫態量故障信號采樣值序列作為待處理數據,在MATLAB環境下輸往2.3節所述算法設計實例的數據入口,對其數據處理過程進行了仿真。
筆者用Simulink搭建了一個與參考文獻[14]中圖7—38所舉例子幾乎完全相同的分布參數電網模型,區別僅在于將故障改為A相單相瞬時接地故障、將故障點的位置移到了距離E2電源1km處,模型架構如圖3所示,數據采樣頻率為500kHz。然后編寫MATLAB代碼,將2.3節所述32個帶通濾波器的系數向量(歸算為16位整數、與后續基于FPGA設計的范例模塊采用的系數位寬相同)代入filter函數、形成32個帶通濾波器,用于處理仿真生成的故障波形數據。
仿真得到的單相接地故障前后的三相電壓波形如圖4所示。

圖3 仿真用分布參數電網模型架構圖

圖4 仿真得到的A相瞬時接地故障前后的三相電壓波形圖
將故障前后的A相電壓采樣數據提取出來,送入2.3節算法模塊的數據輸入端,分別打印32個濾波器對應于A相數據的輸出信號波形(即A相電壓在故障時刻前后的波形數據被算法設計實例處理后得到的第1~32個頻帶的數據時序波形)如圖5、圖6所示。
圖5、圖6中突變點區域的波形之所以看上去不如多級Mallat分解提取到的小波系數波形那樣“集中”,原因在于這里輸出的是在時域上未經“壓縮”的信號,這正是暫態信號可定制精細化實時時頻關聯分析算法在時域上的高分辨率特征的體現(這里提供的是Mallat算法無法提供的所有各頻段的時域細節)。
圖5、圖6中突變點區域的波形之所以看上去不如DB5小波單級Mallat分解提取到的小波系數波形那樣“模極大值突出”,原因在于DB5小波Mallat算法高通濾波器的通帶幾乎覆蓋了整個(0,s/2)頻段,累加了遠為寬廣的頻帶范圍內的能量。這種“累加”,可以把更多頻率范圍內的模極大值重疊在一起,使其更突出。
但是,從另一個角度看,這也是一種“混雜”,使后續模塊無法看到暫態信號在各頻段內的分量在故障點處的模極大值之間的數量、位置關系等各種關系。也就是說,Mallat算法無法區分暫態信號在各細分頻段內的時域特征。這一區別正是暫態信號可定制精細化實時時頻關聯分析算法在頻域上的高分辨率特征的體現。
綜合上述算法分析以及2.4節的分析可知,從算法執行的結果來看,暫態信號可定制精細化實時時頻關聯分析算法可以被看做小波分析算法在頻率維度上的精細化、可定制化發展,在時間維度上的精細化發展。

圖5 第1~16個頻帶的數據時序波形圖(MATLAB設計實例的仿真輸出數據流)

圖6 第17~32個頻帶的數據時序波形圖(MATLAB設計實例的仿真輸出數據流)
上述算法設計實例用到了幾十個運行在500kHz的高階帶通數字濾波器,必將對執行保護核心算法的芯片的運算能力提出極高的要求。
為驗證算法設計實例的可實現性,筆者基于FPGA設計了一個濾波器性能參數與上述算法設計實例相同、各濾波器并行運行、同時處理2通道數據的范例模塊,在ISim仿真環境下同時讀取上述2路暫態量故障信號采樣值序列,對其功能進行了仿真驗證,對其輸出延遲、運算速度、芯片資源占用情況進行了驗證。
在2.3節的例子述及的32個FIR帶通濾波器由Xilinx公司的集成開發軟件ISE 14.5,利用FPGA芯片提供的可配置的基礎DSP硬核、片內RAM塊、邏輯資源、連線資源生成,需調用其提供的用于生成FIR濾波器的IP核[15]。
由于需要處理2路采樣值,所以調用IP時設置FIR輸入的運算數據通道數為2;由于設計的原始數據采樣頻率為500kHz,所以調用IP時設置的輸入數據速率為500kHz。濾波系數位寬為16,輸入、輸出數據位寬分別為32、48。驅動整個模塊運行的時鐘主頻為200MHz。
仿真工具采用ISE集成開發環境中提供的ISim仿真器。編寫簡單的測試模塊,調取3.1節得到的故障前后A相電壓、電流采樣數據加載到本模塊的數據輸入端口,從外部向本模塊提供時鐘信號、運算啟動信號,以模擬實際裝置中外部環境對本模塊施加的基本驅動信號。仿真過程中,調用仿真器支持的系統函數對所關注的信號進行打印,將打印結果整理后貼到excel中,由excel繪制其波形。
在仿真模式下模塊的工作過程:收到運算啟動信號后,帶通濾波器1、子模塊1依次讀取2塊待處理數據存儲區(仿真模式下用于存儲3.1節得到的故障前后A相電壓、電流采樣數據,實際運行時由位于圖1中的左下角的SV接收、預處理模塊以數據流的形式實時提供)中存儲的第1個數據,每次讀出的存儲區(=1、2)的數據同時送入32個處理通道(濾波器)的數據輸入口,然后是各存儲區的第2個數據、第3個數據......。各通道的濾波后數據流(實時的精細化頻譜數據)在一定延遲(與濾波器階數有關)后出現在濾波器的數據輸出端口,供后續模塊使用。
32個帶通濾波器的輸出信號波形如圖7、圖8所示。對比圖5、圖6可知,這一基于FPGA的范例模塊完全實現了2.3節所述基于MATLAB的設計實例的算法功能。
如圖9所示,從啟動仿真、輸入第一個電壓采樣值開始,第2路采樣值濾波的第1個有效數據輸出時刻是第432ms。考慮到FIR帶通濾波器突出的是位于數據窗中部的輸入數據,可以認為,從輸入數據發生突變到反映到輸出的頻段分量(即帶通濾波器的輸出)的延遲不大于220ms。
在ISE開發環境下對本模塊進行綜合、布局、布線,在采用Xilinx的中等性能產品系列中速度最慢、運算資源最少的芯片xc7k70t-1fbg676的情況下,最終得到的結果是可以運行在200MHz以上,滿足4.1節中調用IP時的要求。片內主要硬件資源的占用比例:Slice Registers,15%;Slice LUTs,17%;occupied Slices,30%;RAM塊,48%;DSP硬核,40%。

圖7 第1~16個頻帶的數據時序波形圖(FPGA范例模塊的仿真輸出數據流)

圖8 第17~32個頻帶的數據時序波形圖(FPGA范例模塊的仿真輸出數據流)

圖9 FPGA范例模塊仿真波形截圖
必須指出的是,本文所做工作的目的在于驗證可行性、性能優勢,而非尋找最優解。具體應用時需要針對實際需求設計FPGA實現方案。
在電力系統故障分析階段、原始保護算法設計階段,可以基于暫態信號可定制精細化實時時頻關聯分析算法對故障仿真數據、現場故障錄波數據進行全頻帶、無遺漏、盡可能精細化的分析,以期為分析各種故障所表現出的暫態量特征、從中發現保護算法的新特征量、設計可以實時運行的新特征量提取算法提供關鍵性的基礎信息。針對這一過程,筆者當前能想到的研究方向有:
針對某一路暫態信號的采樣值序列,尋找其由各濾波器濾出的位于幾十、幾百個頻段上的實時分量信號的量值隨時間或(/和)頻率變化的規律,尋找量值對時間或(/和)頻率的次導數的變化規律,尋找上述各階導數曲線之間的交叉關系,尋找各路暫態信號的上述變化規律之間的交叉關系。
本文所做的工作,僅僅完成了暫態信號可定制精細化實時時頻關聯分析的第一步:實時濾出各頻段的分量信號,為后續算法模塊提供基礎數據,為新特征量的發現、新特征量提取算法的研究拓展思路。后續的數據處理工作將更為復雜、繁重。
在發現保護算法的新特征量、設計新特征量提取算法階段,需要從大量故障仿真數據、現場故障錄波數據中濾出的更大量的頻域細分數據流,對其離線進行多維度關聯分析,這將有可能必須依賴大型機、云計算、大數據處理等執行大數據量、大運算量計算的最新科學計算工具,從而有可能必須在繼電保護行業采用最先進的離線數據分析手段。
在將所設計的新特征量提取算法映射為保護裝置可實時執行的實現算法之后,在實現算法的實時執行階段,將涉及大量的實時數據并行處理工作,很可能需要運用FPGA的并行運算能力予以實現。
FPGA在大量的實時數據并行處理方面比其它技術手段更具性價比優勢,而運算量需求的急劇增多,又將導致幾千、上萬元一片甚至更加昂貴的高端FPGA芯片大量應用于繼電保護裝備制造業。這一成本有望因為繼電保護裝置“四性”的提高、整個電力系統運行質量的提高而被客戶所接受,進而把整個行業的蛋糕做大。
同時,與實時海量運算伴隨而至的片內/多FPGA芯片系統架構設計問題、原始算法向實現算法映射的策略問題、實現算法的優化策略問題、單FPGA芯片多通道/多FPGA芯片多通道工作模式下的可靠性控制問題、冗余運算問題、熱備用芯片/熱備用通道的實時監測/狀態判決/無縫切換問題、片間/板間的高速可靠數據傳輸問題、運算/傳輸的容錯/前向糾錯問題、功耗控制問題、芯片供電問題、EMC問題等等,都將成為無法回避的工作。
暫態信號可定制精細化實時時頻關聯分析算法是可以基于FPGA予以實現的。這一算法對頻帶進行了精細化的、可靈活設置的、有重點的劃分,實現了在所分析的全部頻段內的高時域分辨率,同時保持了輸出數據的時頻關聯特性,為暫態信號的實時時頻關聯分析提供了更精確、更靈活、可實現的數據預處理工具,為暫態量保護裝置中新特征量的發現、新特征量提取算法的研究提供了新的基礎、新的思路。
[1] 黃丹,陳樹勇,王瑋.基于廣域測量信息的電力系統暫態穩定控制技術研究[J].發電技術,2018,39(5):389-396.
[2] 胡列翔,戚宣威,裘愉濤,等.電網全頻域暫態信息記錄及分析系統[J].浙江電力,2018,37(7):31-35.
[3] 薄志謙,張保會,董新洲,等.保護智能化的發展與智能繼電器網絡[J].電力系統保護與控制,2013,41(2):1-12.
[4] 王珺,董新洲,施慎行,等.配電線路單相接地行波保護的實現與試驗[J].中國電機工程學報,2013,33(13):172-178.
[5] 何正友.小波分析在電力系統暫態信號處理中的應用[M].北京:中國電力出版社,2011:20-24
[6] 吳繼華,王誠.Altera FPGA/CPLD設計(基礎篇)[M].北京:人民郵電出版社,2005:3-9.
[7] 張桂青,馮濤,張杭,等.繼電保護系統級專用芯片的設計[J].電力系統自動化,2001,25(20):45-47.
[8] 張桂青,馮濤,王建華,等.基于IP核的智能化電器SOC設計與實現[J].電工技術學報,2003,18(2):27-30.
[9] 何人望,謝丹丹,楊毅波,等.FPGA在基于IEC61850的饋線保護中的應用[J].華東交通大學學報,2010,27(4):52-56.
[10] 阮建國,陳炯.基于FPGA的數字保護中卡爾曼濾波的實現[J].電力系統保護與控制,2009,37(22):121-125.
[11] 陳志敏,曹建.電力系統繼電保護的FPGA方案設計與研究[J].華中電力,2007,20(3):11-18.
[12] 黃文清.電能質量擾動在線監測方法研究[D].長沙:湖南大學,2007
[13] 亓學廣.基于FFT和小波變換的電力系統諧波檢測方法研究[D].青島:山東科技大學,2007.
[14] 于群,MATLAB/Simulink電力系統建模與仿真[M].北京:機械工業出版社,2011:175-179
[15] 徐文波,田耘.Xilinx FPGA開發實用教程[M] .北京:清華大學出版社,2008:422-427.
The FPGA-Based Customizable Precision Real-Time Time-Frequency Correlation Analyse Algorithm for Transient-Signal Analysis
LIN Wei
(Self-employed, Jinan 250100, Shandong Province, China)
Aiming to the precision and real-time analysis requirement of transient component in power system fault signal, a new time-frequency correlation analysis algorithm was presented, whose frequency domain segmentation is different from Mallat. This algorithm can run in real time, which makes precision, flexible and focused domain segmentation. At the same time, time-frequency correlation in the full frequency-range is maintained. An FPGA-based example module to implement this algorithm was designed. A MATLAB-based distributed parameter grid simple model was established. Simulation on this module provided 500 kHz-sampled-value sequence of fault signal. The capability and practicability was preliminarily proved by providing the sampled-value sequence to the example module. The application strategy for designing relay protection algorithm was suggested, and prospects of the work associated with this algorithm was provided.
relaying protection; transient based protection; wavelet transformation; time-frequency correlation analysis; field-programmable gate array (FPGA)
10.12096/j.2096-4528.pgt.18259
2018-05-15。
林偉(1973),男,工程師,研究方向為以FPGA 為核心實現暫態量繼電保護裝置、廣域暫態量主保護系統,linwei_jinan@126.com。

林偉
(責任編輯 車德競)