宋彥鋒 沈沉 徐云松 楊芳
【摘 要】 本文根據(jù)電力系統(tǒng)故障錄波文件的特點,提出一種全新的、無損的、壓縮率高的數(shù)據(jù)壓縮的方法。該方案根據(jù)comtrade的特點,將需要壓縮的內容解析為數(shù)據(jù)基本信息、模擬通道數(shù)據(jù)和狀態(tài)量通道數(shù)據(jù)三個部分,根據(jù)每部分自身的數(shù)據(jù)特點分別用不同的數(shù)據(jù)壓縮算法進行相應的數(shù)據(jù)預處理。根據(jù)預處理之后的數(shù)據(jù)的特點和字典壓縮的分析能力,將預處理壓縮數(shù)據(jù)再進行一次字典壓縮,大大提高了數(shù)據(jù)壓縮率。與該壓縮方法對應有一套特定的解壓縮方法,該解壓縮的流程與壓縮流程相反,是一個信號重構的過程,解壓后最終得到的文件既是壓縮之前的源文件,數(shù)據(jù)信息完全沒有損失。本算法保證了故障錄波文件的無損性和高壓縮率,有利于故障錄波數(shù)據(jù)的儲存、傳輸以及數(shù)據(jù)重現(xiàn)分析。
【關鍵詞】 故障錄波 ?comtrade ?無損壓縮 ?數(shù)據(jù)預處理 ?數(shù)據(jù)重構
【Abstract】 In this paper, based on the characteristics of electric power system fault wave record file, put forward a kind of brand-new, nondestructive, high compression ratio method of data compression. Through the compression before the comtrade files can be divided into three parts: Basic information data , analog and digital data, according to the characteristics of each part of your own data with different data compression algorithm to the corresponding data preprocessing, experiments and comparison analysis, so as to choose better compression performance combination plan, improve the compression efficiency. According to the characteristics of the data after pretreatment and dictionary compression analysis ability, the pretreatment of compression again compressed data dictionary, data compression ratio was improved greatly.In contrast to the compression process,There is a specific set of decompression of the decompression process,it is a process of reconstructing signal, the resulting files after decompression is not only the source files before compression, data information no damage at all.The algorithm guarantees the fault wave record files intact and high compression rate,andadvantageous to the fault wave record data storage, transmission and data analysis.
【Keywords】 fault recording ?comtrade ?lossless compressiondata data ?pretreatment ?data reconstruction
在如今的電力系統(tǒng)中,隨著微型電子技術的發(fā)展,對故障過程的監(jiān)測水平要求越來越高,一大批故障錄波裝置不斷涌現(xiàn)。它們能自動地、準確地記錄電力系統(tǒng)故障前、后過程的各種電氣量(數(shù)字量和模擬量,主要是開關狀態(tài)、電壓、電流數(shù)值)的變化情況,通過對這些電氣量的分析、比較,具有分析處理事故、判斷保護是否正確動作、提高電力系統(tǒng)安全運行水平的作用。由于錄波裝置記錄從故障過程到系統(tǒng)恢復正常的全過程的電氣參數(shù),這樣就導致了數(shù)據(jù)量會非常大,給故障錄波數(shù)據(jù)的存儲和傳輸問題帶來巨大的挑戰(zhàn),因此故障錄波文件的壓縮能力亟需提高[1]。
國內外都針對comtrade故障錄波數(shù)據(jù)的壓縮做出了相關的研究。比如利用自適應哈夫曼編碼算法壓縮錄波數(shù)據(jù),通用性強但壓縮率很低。再如基于小波包的分析的錄波數(shù)據(jù)包壓縮原理,壓縮率很高,但是是有損壓縮,不適應于故障數(shù)據(jù)的還原[2]。目前故障錄波數(shù)據(jù)的壓縮的方法有很多,在一定的應用范圍內都有各自的優(yōu)點,但是也都具有一定的局限性[3]。
本文提出了一種新型的基于comtrade規(guī)范的壓縮算法:首先根據(jù)comtrade文件的特點將文件分為三個部分,然后根據(jù)這三個部分各自的數(shù)據(jù)特點分別用不同的算法進行數(shù)據(jù)預處理壓縮,最后再對預處理之后的數(shù)據(jù)進行二次壓縮,壓縮率很高。本壓縮算法是無損壓縮,配合對應的解壓算法能夠將數(shù)據(jù)無損的還原。
1 comtrade特點
標準的comtrade格式的故障錄波,有四個文件組成,每個文件都承載著不同等級的信息,這四個文件分別是頭標文件(擴展名為.hdr)、配置文件(擴展名為.cfg)、數(shù)據(jù)(擴展名為.dat)和信息文件(擴展名為.inf)[4]。
頭標文件:ASCII格式的文本文件。頭標文件的任意ASCII格式的信息,這些信息主要是方便使用者打印和閱讀,所以頭標文件一般不給應用程序操作。
配置文件:包含comtrade數(shù)據(jù)文件的配置信息,主要包括配置數(shù)據(jù)文件的的采樣時標、采樣率、模擬通道個數(shù)、數(shù)字通道個數(shù)、頻率等。可以利用該配置文件正確解讀數(shù)據(jù)文件。
數(shù)據(jù)文件:記錄著故障錄播中每個輸入通道每個采樣點的數(shù)值,數(shù)據(jù)文件的大小隨著采樣點的增加和采樣時間的延伸而增加。數(shù)據(jù)文件可以是ASCII或二進制格式,這個信息可以在配置文件中得到。本文的壓縮算法主要就是針對數(shù)據(jù)文件進行壓縮。
信息文件:包含著編制者和用戶希望交換或超過數(shù)據(jù)組最小應用所要求的額外信息。一般不給應用程序操作。
這些文件在同一次錄播中必須有相同的文件名,其區(qū)別只在于文件類型(擴展名)的不同,文件內部的信息不同。本壓縮算法主要根據(jù)從配置文件解析的信息,對數(shù)據(jù)文件里的不同類型的數(shù)據(jù)信息采取不通的壓縮算法處理。
2 算法的基本思想
首先,從comtrade的配置文件獲取配置信息,這些信息可以存儲在20個字節(jié)的固定格式的數(shù)據(jù)區(qū),這個數(shù)據(jù)區(qū)數(shù)據(jù)可以作為描述整個錄播數(shù)據(jù)的基本信息,根據(jù)這些信息可以把數(shù)據(jù)文件分為三個部分:基本信息數(shù)據(jù)、模擬通道數(shù)據(jù)和數(shù)字通道數(shù)據(jù)。
如圖1所示,根據(jù)從配置文件解析的數(shù)據(jù)信息和三部分數(shù)據(jù)各自的數(shù)據(jù)特點,分別用不同的算法進行預處理,從而提高壓縮效率。我們把以上這些處理叫做數(shù)據(jù)的預處理。把經(jīng)過預處理之后的數(shù)據(jù)都儲存在預處理壓縮文件里面(我們定義的預處理文件的擴展名為.cds),最后再將預處理壓縮文件進行一次字典壓縮,進一步提高壓縮比。數(shù)據(jù)的解壓縮就是將數(shù)據(jù)按相反的流程反量化,重構原始信號,本壓縮和解壓縮的算法是無損算法,對原始的數(shù)據(jù)信號沒有做任何改變。
3 算法的實現(xiàn)
壓縮算法的整體流程如圖2所示,主要包括數(shù)據(jù)壓縮預處理和字典壓縮兩個部分。
根據(jù)comtrade文件及其格式,數(shù)據(jù)壓縮預處理我們采用并行壓縮的方式。所謂并行壓縮就是將數(shù)據(jù)的基本信息、模擬量數(shù)據(jù)和數(shù)字量數(shù)據(jù)分開獨立壓縮,可以通過解析配置文件來獲取以上三種數(shù)據(jù)在數(shù)據(jù)文件的位置和大小等信息。Comtrade預處理壓縮文件的結構如圖3所示。
3.1 數(shù)據(jù)信息壓縮
通過解析comtrade配置文件獲取數(shù)據(jù)基本信息,包括:采樣點計數(shù)、采樣時標、數(shù)據(jù)通道信息(總通道數(shù)、模擬通道數(shù)、數(shù)字通道數(shù)、采樣頻率等)。提取后的數(shù)據(jù)放在預處理壓縮文件的第一部分,如圖3所示。通道的基本信息的提取順序為總通道個數(shù)、模擬通道個數(shù)、數(shù)字通道個數(shù)、采樣起始時間、計算采樣間隔,這五個數(shù)據(jù)都為int型。相鄰采樣點的時標之間的間隔可以由頻率算出來,所以和采樣號一樣,采樣點時標記錄一個初始值即可,相當于所有的時標都壓縮為一個四字節(jié)的初始值。所以預處理壓縮文件里數(shù)據(jù)基本信息區(qū)共計占20個字節(jié)。
3.2 模擬量數(shù)據(jù)壓縮
模擬數(shù)據(jù)壓縮流程如圖4所示。對于模擬數(shù)據(jù)的預處理,我們根據(jù)模擬量數(shù)據(jù)的特點(一般情況下模擬量數(shù)據(jù)的每個周期相同的采樣點對應的數(shù)據(jù)基本相同),采用周期差值、連續(xù)存儲預處理方法(差值定義為char型)。
所謂周期差值,就是在每一個模擬通道里,將當前周期的采樣點數(shù)據(jù)和上一個周期同相位的采樣點數(shù)據(jù)相減。連續(xù)存儲就是將一個通道相減的數(shù)據(jù)順序存儲起來,一個通道差值存完再存下一個通道的數(shù)據(jù)差值。這里可能存在一種特殊情況:因為我們的差值定義的是char型,所以當差值大于一個字節(jié)時就需要存儲數(shù)據(jù)的原始值:首先存儲標明當前值是原始值的標志0x7f80,然后將當前值按照原始大小存儲。
3.3 狀態(tài)量數(shù)據(jù)壓縮
狀態(tài)量數(shù)據(jù)的預處理是用游程編碼的方法,根據(jù)comtrade數(shù)據(jù)文件的規(guī)定,狀態(tài)數(shù)據(jù)在文件中每個采樣點占用的位數(shù)必須是16的整數(shù)倍,位數(shù)不夠,高位補0。比如一個裝置有23個狀態(tài)通道,則在comtrade文件中每個采樣點狀態(tài)數(shù)據(jù)占32位,即4個字節(jié)24~32位沒有實際數(shù)據(jù),補0。在壓縮狀態(tài)數(shù)據(jù)之前必須從數(shù)據(jù)基本信息處理的部分得到幾個基本信息: 模擬通道數(shù)(ac),狀態(tài)量通道數(shù)(dc),采樣點數(shù)(rc);還要得到前面模擬量壓縮的返回值writeStart(預處理壓縮文件的當前指針位置)。每一次按順序取八個通道的數(shù)據(jù),判斷每一個通道的狀態(tài)是否有變化,如果沒有則狀態(tài)計數(shù)加1;如果有變化,則將通道號、狀態(tài)和狀態(tài)計數(shù)存入預處理壓縮文件,狀態(tài)計數(shù)置位。這樣按順序從第一采樣點判斷到最后采樣點,完成之后加標識0xEB90。然后,按照以上步驟判斷往下的八個通道……,直至到判斷完所有通道。結構是:通道號(short)+狀態(tài)值(char)+數(shù)量(int)。狀態(tài)數(shù)據(jù)壓縮流程如圖5所示。
狀態(tài)量通道的數(shù)據(jù)比較簡單(只有0、1),而且一般情況下數(shù)據(jù)狀態(tài)變化不大,所以狀態(tài)通道的數(shù)據(jù)比較有規(guī)律性,采用本壓縮算法預處理后的狀態(tài)通道數(shù)據(jù)壓縮比是非常高的,而且具有數(shù)據(jù)量越大,壓縮比越高的特點。
經(jīng)過前三個步驟的數(shù)據(jù)預處理,形成預處理壓縮文件,最后根據(jù)預處理之后的數(shù)據(jù)的特點(降低數(shù)據(jù)的隨機性,即減小信息熵)和字典壓縮的分析能力[5],將該預處理文件進行一次字典壓縮得到最終的壓縮文件。
3.4 數(shù)據(jù)解壓縮
如圖6所示,解壓縮算法實際上就是數(shù)據(jù)壓縮算法的反向化、是數(shù)據(jù)重組的過程。
首先用字典解壓縮的方法將壓縮好的文件進行一次解壓縮,本次解壓縮得到一個解壓縮中間文件,這個中間文件和壓縮的時候的壓縮預處理文件結構完全相同。
然后根據(jù)解壓縮中間文件的數(shù)據(jù)結構,解析數(shù)據(jù)基本信息區(qū)的數(shù)據(jù),可以得到數(shù)據(jù)文件的基本配置信息。根據(jù)這些信息可以解析解壓縮中間文件的模擬數(shù)據(jù)區(qū)和狀態(tài)量數(shù)據(jù)區(qū)的數(shù)據(jù)。解壓模擬量數(shù)據(jù)和狀態(tài)量數(shù)據(jù)的流程其實就是他們對應的壓縮流程反向操作,這里不再贅述。
將解壓縮之后的文件和數(shù)據(jù)錄波的原始文件比較,可以看到錄波數(shù)據(jù)文件經(jīng)過本方法的壓縮和解壓縮之后沒有數(shù)據(jù)的損耗,能夠百分之百還原裝置記錄的原始工況信息和故障信息,有利于后期對裝置故障的分析。
4 算法測試
我們用幾組不同的錄波文件作為標本:第一組標本有32個模擬數(shù)據(jù)通道,12個狀態(tài)量數(shù)據(jù)通道;第二組標本有12個模擬數(shù)據(jù)通道,64個狀態(tài)量數(shù)據(jù)通道;第三組標本有1個模擬數(shù)據(jù)通道,32個狀態(tài)量數(shù)據(jù)通道;每一組都有8個測試標本,一組中的每個標本的采樣率相同,采樣點數(shù)不同,所以文件大小不同,每個標本中都隨機產(chǎn)生故障點。
對三組測試標本測試的結果如圖7所示,橫坐標表示源數(shù)據(jù)文件大小,縱坐標表示壓縮后文件大小,單位都是k(千字節(jié)),dts1對應第一組標本,dts2對應第二組標本,dts3對應第三組標本。從結果可以看到:本壓縮算法的壓縮效率很高;本壓縮算法對狀態(tài)量通道的壓縮效果明顯。
5 結語
本文通過將comtrade文件分為三部分分別進行預處理壓縮,針對各部分的特點提出不同壓縮預處理方案。然后根據(jù)預處理之后的數(shù)據(jù)的特點和字典壓縮的分析能力,將預處理壓縮數(shù)據(jù)再進行一次字典壓縮,從而大大提高了數(shù)據(jù)壓縮率。并且,本算法保證了故障錄波文件的無損性和高壓縮率,有利于故障錄波數(shù)據(jù)的儲存、傳輸以及數(shù)據(jù)重現(xiàn)分析。
參考文獻:
[1]苗世洪,王少榮,劉沛,程時杰.數(shù)據(jù)壓縮技術在電力系統(tǒng)通信中的應用.電力自動化設備,1999,19(3):32-33.
[2]成敬周,張舉.基于小波包分析的錄波數(shù)據(jù)壓縮原理.電力自動化設備,2004,24(7):53-56.
[3]黃險峰,錢路江,付立軍.電力系統(tǒng)故障錄波信號壓縮.電力自動化設備,2001,21(11):18-21.
[4]IEEE Std C37.111-1999 IEEE STANDARD COMMON FORMAT FOR TRANSIENT DATA EXCHANGE (COMTRADE) FOR POWER SYSTEMS.
[5]王方,馮玲.無損壓縮算法LZW研究與實現(xiàn)[J].科技創(chuàng)新導報,2008(12):77-78.