宋彥鋒 沈沉 徐云松 楊芳
(許繼電氣技術(shù)中心,河南許昌 461000)
一種故障錄波數(shù)據(jù)無損壓縮算法的設(shè)計(jì)與實(shí)現(xiàn)
宋彥鋒 沈沉 徐云松 楊芳
(許繼電氣技術(shù)中心,河南許昌 461000)
本文根據(jù)電力系統(tǒng)故障錄波文件的特點(diǎn),提出一種全新的、無損的、壓縮率高的數(shù)據(jù)壓縮的方法。該方案根據(jù)comtrade的特點(diǎn),將需要壓縮的內(nèi)容解析為數(shù)據(jù)基本信息、模擬通道數(shù)據(jù)和狀態(tài)量通道數(shù)據(jù)三個(gè)部分,根據(jù)每部分自身的數(shù)據(jù)特點(diǎn)分別用不同的數(shù)據(jù)壓縮算法進(jìn)行相應(yīng)的數(shù)據(jù)預(yù)處理。根據(jù)預(yù)處理之后的數(shù)據(jù)的特點(diǎn)和字典壓縮的分析能力,將預(yù)處理壓縮數(shù)據(jù)再進(jìn)行一次字典壓縮,大大提高了數(shù)據(jù)壓縮率。與該壓縮方法對(duì)應(yīng)有一套特定的解壓縮方法,該解壓縮的流程與壓縮流程相反,是一個(gè)信號(hào)重構(gòu)的過程,解壓后最終得到的文件既是壓縮之前的源文件,數(shù)據(jù)信息完全沒有損失。本算法保證了故障錄波文件的無損性和高壓縮率,有利于故障錄波數(shù)據(jù)的儲(chǔ)存、傳輸以及數(shù)據(jù)重現(xiàn)分析。
故障錄波 comtrade 無損壓縮 數(shù)據(jù)預(yù)處理 數(shù)據(jù)重構(gòu)
在如今的電力系統(tǒng)中,隨著微型電子技術(shù)的發(fā)展,對(duì)故障過程的監(jiān)測水平要求越來越高,一大批故障錄波裝置不斷涌現(xiàn)。它們能自動(dòng)地、準(zhǔn)確地記錄電力系統(tǒng)故障前、后過程的各種電氣量(數(shù)字量和模擬量,主要是開關(guān)狀態(tài)、電壓、電流數(shù)值)的變化情況,通過對(duì)這些電氣量的分析、比較,具有分析處理事故、判斷保護(hù)是否正確動(dòng)作、提高電力系統(tǒng)安全運(yùn)行水平的作用。由于錄波裝置記錄從故障過程到系統(tǒng)恢復(fù)正常的全過程的電氣參數(shù),這樣就導(dǎo)致了數(shù)據(jù)量會(huì)非常大,給故障錄波數(shù)據(jù)的存儲(chǔ)和傳輸問題帶來巨大的挑戰(zhàn),因此故障錄波文件的壓縮能力亟需提高[1]。
國內(nèi)外都針對(duì)comtrade故障錄波數(shù)據(jù)的壓縮做出了相關(guān)的研究。比如利用自適應(yīng)哈夫曼編碼算法壓縮錄波數(shù)據(jù),通用性強(qiáng)但壓縮率很低。再如基于小波包的分析的錄波數(shù)據(jù)包壓縮原理,壓縮率很高,但是是有損壓縮,不適應(yīng)于故障數(shù)據(jù)的還原[2]。目前故障錄波數(shù)據(jù)的壓縮的方法有很多,在一定的應(yīng)用范圍內(nèi)都有各自的優(yōu)點(diǎn),但是也都具有一定的局限性[3]。
本文提出了一種新型的基于comtrade規(guī)范的壓縮算法:首先根據(jù)comtrade文件的特點(diǎn)將文件分為三個(gè)部分,然后根據(jù)這三個(gè)部分各自的數(shù)據(jù)特點(diǎn)分別用不同的算法進(jìn)行數(shù)據(jù)預(yù)處理壓縮,最后再對(duì)預(yù)處理之后的數(shù)據(jù)進(jìn)行二次壓縮,壓縮率很高。本壓縮算法是無損壓縮,配合對(duì)應(yīng)的解壓算法能夠?qū)?shù)據(jù)無損的還原。
標(biāo)準(zhǔn)的comtrade格式的故障錄波,有四個(gè)文件組成,每個(gè)文件都承載著不同等級(jí)的信息,這四個(gè)文件分別是頭標(biāo)文件(擴(kuò)展名為. hdr)、配置文件(擴(kuò)展名為.cfg)、數(shù)據(jù)(擴(kuò)展名為.dat)和信息文件(擴(kuò)展名為.inf)[4]。
頭標(biāo)文件:ASCII格式的文本文件。頭標(biāo)文件的任意ASCII格式的信息,這些信息主要是方便使用者打印和閱讀,所以頭標(biāo)文件一般不給應(yīng)用程序操作。
配置文件:包含comtrade數(shù)據(jù)文件的配置信息,主要包括配置數(shù)據(jù)文件的的采樣時(shí)標(biāo)、采樣率、模擬通道個(gè)數(shù)、數(shù)字通道個(gè)數(shù)、頻率等??梢岳迷撆渲梦募_解讀數(shù)據(jù)文件。
數(shù)據(jù)文件:記錄著故障錄播中每個(gè)輸入通道每個(gè)采樣點(diǎn)的數(shù)值,數(shù)據(jù)文件的大小隨著采樣點(diǎn)的增加和采樣時(shí)間的延伸而增加。數(shù)據(jù)文件可以是ASCII或二進(jìn)制格式,這個(gè)信息可以在配置文件中得到。本文的壓縮算法主要就是針對(duì)數(shù)據(jù)文件進(jìn)行壓縮。
信息文件:包含著編制者和用戶希望交換或超過數(shù)據(jù)組最小應(yīng)用所要求的額外信息。一般不給應(yīng)用程序操作。
這些文件在同一次錄播中必須有相同的文件名,其區(qū)別只在于文件類型(擴(kuò)展名)的不同,文件內(nèi)部的信息不同。本壓縮算法主要根據(jù)從配置文件解析的信息,對(duì)數(shù)據(jù)文件里的不同類型的數(shù)據(jù)信息采取不通的壓縮算法處理。
首先,從comtrade的配置文件獲取配置信息,這些信息可以存儲(chǔ)在20個(gè)字節(jié)的固定格式的數(shù)據(jù)區(qū),這個(gè)數(shù)據(jù)區(qū)數(shù)據(jù)可以作為描述整個(gè)錄播數(shù)據(jù)的基本信息,根據(jù)這些信息可以把數(shù)據(jù)文件分為三個(gè)部分:基本信息數(shù)據(jù)、模擬通道數(shù)據(jù)和數(shù)字通道數(shù)據(jù)。
如圖1所示,根據(jù)從配置文件解析的數(shù)據(jù)信息和三部分?jǐn)?shù)據(jù)各自的數(shù)據(jù)特點(diǎn),分別用不同的算法進(jìn)行預(yù)處理,從而提高壓縮效率。我們把以上這些處理叫做數(shù)據(jù)的預(yù)處理。把經(jīng)過預(yù)處理之后的數(shù)據(jù)都儲(chǔ)存在預(yù)處理壓縮文件里面(我們定義的預(yù)處理文件的擴(kuò)展名為. cds),最后再將預(yù)處理壓縮文件進(jìn)行一次字典壓縮,進(jìn)一步提高壓縮比。數(shù)據(jù)的解壓縮就是將數(shù)據(jù)按相反的流程反量化,重構(gòu)原始信號(hào),本壓縮和解壓縮的算法是無損算法,對(duì)原始的數(shù)據(jù)信號(hào)沒有做任何改變。
壓縮算法的整體流程如圖2所示,主要包括數(shù)據(jù)壓縮預(yù)處理和字典壓縮兩個(gè)部分。
根據(jù)comtrade文件及其格式,數(shù)據(jù)壓縮預(yù)處理我們采用并行壓縮的方式。所謂并行壓縮就是將數(shù)據(jù)的基本信息、模擬量數(shù)據(jù)和數(shù)字量數(shù)據(jù)分開獨(dú)立壓縮,可以通過解析配置文件來獲取以上三種數(shù)據(jù)在數(shù)據(jù)文件的位置和大小等信息。Comtrade預(yù)處理壓縮文件的結(jié)構(gòu)如圖3所示。
3.1 數(shù)據(jù)信息壓縮
通過解析comtrade配置文件獲取數(shù)據(jù)基本信息,包括:采樣點(diǎn)計(jì)數(shù)、采樣時(shí)標(biāo)、數(shù)據(jù)通道信息(總通道數(shù)、模擬通道數(shù)、數(shù)字通道數(shù)、采樣頻率等)。提取后的數(shù)據(jù)放在預(yù)處理壓縮文件的第一部分,如圖3所示。通道的基本信息的提取順序?yàn)榭偼ǖ纻€(gè)數(shù)、模擬通道個(gè)數(shù)、數(shù)字通道個(gè)數(shù)、采樣起始時(shí)間、計(jì)算采樣間隔,這五個(gè)數(shù)據(jù)都為int型。相鄰采樣點(diǎn)的時(shí)標(biāo)之間的間隔可以由頻率算出來,所以和采樣號(hào)一樣,采樣點(diǎn)時(shí)標(biāo)記錄一個(gè)初始值即可,相當(dāng)于所有的時(shí)標(biāo)都?jí)嚎s為一個(gè)四字節(jié)的初始值。所以預(yù)處理壓縮文件里數(shù)據(jù)基本信息區(qū)共計(jì)占20個(gè)字節(jié)。
3.2 模擬量數(shù)據(jù)壓縮
模擬數(shù)據(jù)壓縮流程如圖4所示。對(duì)于模擬數(shù)據(jù)的預(yù)處理,我們根據(jù)模擬量數(shù)據(jù)的特點(diǎn)(一般情況下模擬量數(shù)據(jù)的每個(gè)周期相同的采樣點(diǎn)對(duì)應(yīng)的數(shù)據(jù)基本相同),采用周期差值、連續(xù)存儲(chǔ)預(yù)處理方法(差值定義為char型)。
所謂周期差值,就是在每一個(gè)模擬通道里,將當(dāng)前周期的采樣點(diǎn)數(shù)據(jù)和上一個(gè)周期同相位的采樣點(diǎn)數(shù)據(jù)相減。連續(xù)存儲(chǔ)就是將一個(gè)通道相減的數(shù)據(jù)順序存儲(chǔ)起來,一個(gè)通道差值存完再存下一個(gè)通道的數(shù)據(jù)差值。這里可能存在一種特殊情況:因?yàn)槲覀兊牟钪刀x的是char型,所以當(dāng)差值大于一個(gè)字節(jié)時(shí)就需要存儲(chǔ)數(shù)據(jù)的原始值:首先存儲(chǔ)標(biāo)明當(dāng)前值是原始值的標(biāo)志0x7f80,然后將當(dāng)前值按照原始大小存儲(chǔ)。
3.3 狀態(tài)量數(shù)據(jù)壓縮
狀態(tài)量數(shù)據(jù)的預(yù)處理是用游程編碼的方法,根據(jù)comtrade數(shù)據(jù)文件的規(guī)定,狀態(tài)數(shù)據(jù)在文件中每個(gè)采樣點(diǎn)占用的位數(shù)必須是16的整數(shù)倍,位數(shù)不夠,高位補(bǔ)0。比如一個(gè)裝置有23個(gè)狀態(tài)通道,則在comtrade文件中每個(gè)采樣點(diǎn)狀態(tài)數(shù)據(jù)占32位,即4個(gè)字節(jié)24~32位沒有實(shí)際數(shù)據(jù),補(bǔ)0。在壓縮狀態(tài)數(shù)據(jù)之前必須從數(shù)據(jù)基本信息處理的部分得到幾個(gè)基本信息: 模擬通道數(shù)(ac),狀態(tài)量通道數(shù)(dc),采樣點(diǎn)數(shù)(rc);還要得到前面模擬量壓縮的返回值writeStart(預(yù)處理壓縮文件的當(dāng)前指針位置)。每一次按順序取八個(gè)通道的數(shù)據(jù),判斷每一個(gè)通道的狀態(tài)是否有變化,如果沒有則狀態(tài)計(jì)數(shù)加1;如果有變化,則將通道號(hào)、狀態(tài)和狀態(tài)計(jì)數(shù)存入預(yù)處理壓縮文件,狀態(tài)計(jì)數(shù)置位。這樣按順序從第一采樣點(diǎn)判斷到最后采樣點(diǎn),完成之后加標(biāo)識(shí)0xEB90。然后,按照以上步驟判斷往下的八個(gè)通道……,直至到判斷完所有通道。結(jié)構(gòu)是:通道號(hào)(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ī)律性,采用本壓縮算法預(yù)處理后的狀態(tài)通道數(shù)據(jù)壓縮比是非常高的,而且具有數(shù)據(jù)量越大,壓縮比越高的特點(diǎn)。
經(jīng)過前三個(gè)步驟的數(shù)據(jù)預(yù)處理,形成預(yù)處理壓縮文件,最后根據(jù)預(yù)處理之后的數(shù)據(jù)的特點(diǎn)(降低數(shù)據(jù)的隨機(jī)性,即減小信息熵)和字典壓縮的分析能力[5],將該預(yù)處理文件進(jìn)行一次字典壓縮得到最終的壓縮文件。
3.4 數(shù)據(jù)解壓縮
如圖6所示,解壓縮算法實(shí)際上就是數(shù)據(jù)壓縮算法的反向化、是數(shù)據(jù)重組的過程。
首先用字典解壓縮的方法將壓縮好的文件進(jìn)行一次解壓縮,本次解壓縮得到一個(gè)解壓縮中間文件,這個(gè)中間文件和壓縮的時(shí)候的壓縮預(yù)處理文件結(jié)構(gòu)完全相同。
然后根據(jù)解壓縮中間文件的數(shù)據(jù)結(jié)構(gòu),解析數(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í)就是他們對(duì)應(yīng)的壓縮流程反向操作,這里不再贅述。
將解壓縮之后的文件和數(shù)據(jù)錄波的原始文件比較,可以看到錄波數(shù)據(jù)文件經(jīng)過本方法的壓縮和解壓縮之后沒有數(shù)據(jù)的損耗,能夠百分之百還原裝置記錄的原始工況信息和故障信息,有利于后期對(duì)裝置故障的分析。
我們用幾組不同的錄波文件作為標(biāo)本:第一組標(biāo)本有32個(gè)模擬數(shù)據(jù)通道,12個(gè)狀態(tài)量數(shù)據(jù)通道;第二組標(biāo)本有12個(gè)模擬數(shù)據(jù)通道,64個(gè)狀態(tài)量數(shù)據(jù)通道;第三組標(biāo)本有1個(gè)模擬數(shù)據(jù)通道,32個(gè)狀態(tài)量數(shù)據(jù)通道;每一組都有8個(gè)測試標(biāo)本,一組中的每個(gè)標(biāo)本的采樣率相同,采樣點(diǎn)數(shù)不同,所以文件大小不同,每個(gè)標(biāo)本中都隨機(jī)產(chǎn)生故障點(diǎn)。
對(duì)三組測試標(biāo)本測試的結(jié)果如圖7所示,橫坐標(biāo)表示源數(shù)據(jù)文件大小,縱坐標(biāo)表示壓縮后文件大小,單位都是k(千字節(jié)),dts1對(duì)應(yīng)第一組標(biāo)本,dts2對(duì)應(yīng)第二組標(biāo)本,dts3對(duì)應(yīng)第三組標(biāo)本。從結(jié)果可以看到:本壓縮算法的壓縮效率很高;本壓縮算法對(duì)狀態(tài)量通道的壓縮效果明顯。
本文通過將comtrade文件分為三部分分別進(jìn)行預(yù)處理壓縮,針對(duì)各部分的特點(diǎn)提出不同壓縮預(yù)處理方案。然后根據(jù)預(yù)處理之后的數(shù)據(jù)的特點(diǎn)和字典壓縮的分析能力,將預(yù)處理壓縮數(shù)據(jù)再進(jìn)行一次字典壓縮,從而大大提高了數(shù)據(jù)壓縮率。并且,本算法保證了故障錄波文件的無損性和高壓縮率,有利于故障錄波數(shù)據(jù)的儲(chǔ)存、傳輸以及數(shù)據(jù)重現(xiàn)分析。
[1]苗世洪,王少榮,劉沛,程時(shí)杰.數(shù)據(jù)壓縮技術(shù)在電力系統(tǒng)通信中的應(yīng)用.電力自動(dòng)化設(shè)備,1999,19(3):32-33.
[2]成敬周,張舉.基于小波包分析的錄波數(shù)據(jù)壓縮原理.電力自動(dòng)化設(shè)備,2004,24(7):53-56.
[3]黃險(xiǎn)峰,錢路江,付立軍.電力系統(tǒng)故障錄波信號(hào)壓縮.電力自動(dòng)化設(shè)備,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研究與實(shí)現(xiàn)[J].科技創(chuàng)新導(dǎo)報(bào),2008 (12):77-78.
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.
fault recording comtrade lossless compressiondata data pretreatment data reconstruction
宋彥鋒(1984—),男,工程師,主要研究方向:智能變電站設(shè)備軟件平臺(tái);沈沉(1977—),男,工程師,主要研究方向:智能變電站設(shè)備軟件平臺(tái);徐云松(1972—),男,通信作者,碩士,高級(jí)工程師,主要研究方向:智能變電站通信;楊芳(1986—),女,助理工程師,主要研究方向:智能變電站系統(tǒng)。