亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向IEEE COMTRADE格式的海量錄波數(shù)據(jù)并行壓縮/解壓算法

        2013-10-10 07:23:00
        電力自動化設(shè)備 2013年5期
        關(guān)鍵詞:壓縮算法數(shù)據(jù)文件模擬量

        桂 勛

        (電子科技大學(xué) 航空航天學(xué)院,四川 成都 610054)

        0 引言

        電力系統(tǒng)電磁暫態(tài)過程是電力系統(tǒng)中短暫的、但非常重要的物理過程。所有的故障都伴隨著相應(yīng)的電磁暫態(tài)過程,現(xiàn)代電力系統(tǒng)故障診斷、廣域保護和穩(wěn)定分析愈加依賴于電網(wǎng)動態(tài)監(jiān)測系統(tǒng)采集的含豐富故障信息的暫態(tài)過程信號。因此,對電磁暫態(tài)的監(jiān)測、記錄和分析一直是電力系統(tǒng)中一個重要的研究方向。近年來隨著電子技術(shù)的快速發(fā)展,電力系統(tǒng)內(nèi)暫態(tài)錄波逐步向高采樣率、連續(xù)穩(wěn)態(tài)記錄和海量存儲方向發(fā)展[1]。為了提高故障錄波數(shù)據(jù)的傳輸效率和降低存儲空間,眾多文獻提出了各種壓縮算法[2-15],其中可分為直接離散小波變換壓縮[2-7]、直接熵編碼[8-9]壓縮以及這 2 種算法的綜合[10-13]共 3 類。其中在離散小波壓縮研究領(lǐng)域,由于第1代離散小波變換Mallat算法[14]相對于第2代基于提升格式的離散小波變換算法[15]無法實現(xiàn)無損壓縮,且計算量大、需要額外內(nèi)存[10-12,15],第 2 代基于提升格式的離散小波變換和熵編碼的綜合壓縮算法[10-12]成為當(dāng)前此領(lǐng)域內(nèi)的研究熱點。

        然而到目前為止這些壓縮算法在實際應(yīng)用中卻存在以下問題。

        a.以往壓縮算法是為了解決電話線傳輸速率過低的問題,但隨著電力通信網(wǎng)絡(luò)的改善,百兆、千兆以太網(wǎng)大規(guī)模安裝,通信效率已經(jīng)不再是難以克服的瓶頸,因此,目前眾多廠家已經(jīng)放棄了原有的復(fù)雜壓縮、解壓方案,而直接在高速以太網(wǎng)上傳輸錄波文件。而另一方面,保信系統(tǒng)廠家不可能讓負(fù)責(zé)上傳錄波文件的子站和主站軟件系統(tǒng)為每個錄波器廠家實現(xiàn)復(fù)雜的壓縮/解壓通信協(xié)議。正因為這兩方面的原因,限制了原有壓縮算法的實際應(yīng)用范圍。

        b.以往壓縮算法是為了解決海量錄波數(shù)據(jù)的存儲問題。但在電力系統(tǒng)內(nèi),目前所有的暫態(tài)記錄格式逐漸被統(tǒng)一到了 IEEE COMTRADE 1999[16](下文簡稱COMTRADE)標(biāo)準(zhǔn)上,而幾乎所有的第三方暫態(tài)分析軟件都是以COMTRADE標(biāo)準(zhǔn)為輸入格式的。因此,即使在保信系統(tǒng)上采用了壓縮/解壓通信協(xié)議,在主站上還是要解壓后以COMTRADE標(biāo)準(zhǔn)保存,否則第三方分析軟件無法使用。因此壓縮算法也沒有解決實際中面臨的海量COMTRADE數(shù)據(jù)存儲問題。

        c.隨著多核和嵌入式多核的大規(guī)模普及,帶來了一場計算技術(shù)革命:傳統(tǒng)的串行編程技術(shù)被完全顛覆,逐漸被基于多線程模式的并行編程技術(shù)所取代。軟件要提高運行速度和效率已經(jīng)不能依賴CPU主頻,而要使軟件系統(tǒng)本身在設(shè)計上適應(yīng)新的計算機體系結(jié)構(gòu)。而此領(lǐng)域內(nèi)以往提出的算法都是串行算法,已經(jīng)無法適應(yīng)計算機體系結(jié)構(gòu)的發(fā)展。

        筆者經(jīng)過現(xiàn)場調(diào)研后認(rèn)為,只有直接面向COMTRADE標(biāo)準(zhǔn)文件的壓縮算法才能徹底解決問題a、b,假如實現(xiàn)了通用的COMTRADE標(biāo)準(zhǔn)壓縮/解壓算法及其工具,就可利用所有保信系統(tǒng)內(nèi)都具有的文件傳輸協(xié)議來直接傳輸,在主站內(nèi)就可免去解壓,直接進行存儲,需要分析的時候,只需調(diào)用相應(yīng)的解壓軟件。這種應(yīng)用模式可把以往算法和傳輸?shù)木o密關(guān)系完全解耦,更加簡單可靠,而各種第三方分析軟件系統(tǒng)也可攜帶此工具,為各種電力用戶節(jié)約存儲空間。基于這種思路,筆者在已有研究的基礎(chǔ)上,結(jié)合多年的電力系統(tǒng)故障分析軟件研發(fā)經(jīng)驗,提出了面向COMTRADE標(biāo)準(zhǔn)的并行壓縮/解壓算法,并構(gòu)建了相應(yīng)的壓縮/解壓工具。算法根據(jù)COMTRADE中不同種類記錄信息的特點,采用不同的壓縮算法或混合壓縮算法,獲得極大的壓縮比,且具有線性加速比,可較好地解決以往算法在實際應(yīng)用中出現(xiàn)的問題。

        1 IEEE COMTRADE格式標(biāo)準(zhǔn)

        IEEE Std C37.111—1999規(guī)定和記錄信息相關(guān)的文件有4個:頭標(biāo)文件(文件擴展名為HDR)、配置文件(文件擴展名為CFG)、數(shù)據(jù)文件(文件擴展名為DAT)以及1個可選的信息文件(文件擴展名為INF)。其中對于第三方暫態(tài)數(shù)據(jù)分析軟件而言最重要的是配置文件和數(shù)據(jù)文件,其他文件是可選的。對于壓縮算法而言,除了數(shù)據(jù)文件外,其他文件都可視為純文本文件,以文本流的方式進行壓縮。

        1.1 配置文件

        要求計算機程序能夠讀取配置文件,獲取內(nèi)部的屬性信息,并采用這些屬性信息正確地讀取數(shù)據(jù)文件(*.DAT)中的記錄數(shù)據(jù)。配置文件為ASCII文本文件,包含著計算機程序為了正確解讀數(shù)據(jù)文件而需要的信息。配置文件由若干行組成,每個字段都有對應(yīng)的明確物理意義。其具體內(nèi)容為:站名,記錄裝置的特征,COMTRADE標(biāo)準(zhǔn)的修改年份;模擬量和狀態(tài)量通道的數(shù)量;模擬量通道采樣信息(包括模擬通道索引號、通道識別名稱等配置信息);狀態(tài)量通道采樣信息(包括狀態(tài)通道索引號、通道識別名稱等配置信息);被采樣線路的頻率;采樣頻率個數(shù),實際采樣頻率及其對應(yīng)的結(jié)束采樣下標(biāo);第1個數(shù)據(jù)點的日期和時間;觸發(fā)點的日期和時間;數(shù)據(jù)文件類型,表示數(shù)據(jù)文件是ASCII文本文件還是二進制文件;時間標(biāo)記倍乘系數(shù)。

        1.2 數(shù)據(jù)文件

        數(shù)據(jù)文件記錄著每個采樣通道中的每個采樣數(shù)值。數(shù)據(jù)文件可以是ASCII或二進制格式。二進制數(shù)據(jù)文件和ASCII數(shù)據(jù)文件格式類似,每行應(yīng)分為T+2列,其中T是配置文件中模擬量通道和狀態(tài)量通道的總和,另外2列是采樣序號和時間標(biāo)記。二進制文件以BIT形式集中存放狀態(tài)量通道數(shù)據(jù)。各個數(shù)據(jù)之間沒有分隔符,每組采樣值之間沒有回車換行符隔開。各列的具體內(nèi)容如下:第1列為采樣序號;第2列為采樣數(shù)據(jù)的時間標(biāo)記;第3組的列為表示模擬量通道信息的采樣數(shù)據(jù)值;第4組的列為表示狀態(tài)量通道信息的采樣數(shù)據(jù)值。其數(shù)據(jù)文件格式的例子如圖1所示。

        圖1 數(shù)據(jù)文件格式Fig.1 Format of data file

        2 IEEE COMTRADE數(shù)據(jù)文件壓縮 /解壓算法

        從圖1可見數(shù)據(jù)文件分為采樣序號、時間標(biāo)記數(shù)據(jù)、模擬量通道數(shù)據(jù)、狀態(tài)量通道數(shù)據(jù)4個部分。其中采樣序號在壓縮時可以完全丟棄,下面分別討論其他3個部分的壓縮算法。

        2.1 時間標(biāo)記數(shù)據(jù)壓縮算法

        由于采樣時間標(biāo)記是一個遞增的量,可通過配置文件中的采樣頻率間接計算得到,因此壓縮此項數(shù)據(jù)時只需記錄數(shù)據(jù)文件中記錄的第1個時間標(biāo)記數(shù)據(jù)、配置文件中的采樣率個數(shù)和實際采樣頻率及其對應(yīng)的結(jié)束采樣下標(biāo)、配置文件中的時間標(biāo)記乘數(shù)3種信息,即可在解壓時進行無損恢復(fù)。解壓算法公式為:

        其中,ta為累加偏移時間,初值為0;f為當(dāng)前采樣頻率;n為當(dāng)前采樣頻率下從0開始的序號;t1為數(shù)據(jù)文件中的第1個采樣時間;tm為配置文件中的時間標(biāo)記乘數(shù);ts為采樣時間標(biāo)記。算法首先計算累加偏移時間,并將采樣間隔時間單位轉(zhuǎn)換為COMTRADE標(biāo)準(zhǔn)規(guī)定的微秒。將累加偏移時間除以時間標(biāo)記乘數(shù)后加上t1,再取整就可無損恢復(fù)出所有的時間標(biāo)記。

        2.2 狀態(tài)量數(shù)據(jù)壓縮算法

        在COMTRADE標(biāo)準(zhǔn)中,BIANRY格式數(shù)據(jù)文件中的狀態(tài)量數(shù)據(jù)是以BIT形式保存的,而在ASCII碼中則是以1個字符(“0”或“1”)來表示。在BINARY格式中,狀態(tài)量通道所占存儲空間的計算公式為:

        其中,mod為取整運算,%為取余數(shù)運算。

        由式(2)可以知道,即使是只有1個狀態(tài)量通道,狀態(tài)量數(shù)據(jù)也要占據(jù)2 Byte的存儲空間,即對于COMTRADE標(biāo)準(zhǔn)而言狀態(tài)量數(shù)據(jù)保存是有冗余量的。并且通過電力系統(tǒng)內(nèi)大量COMTRADE標(biāo)準(zhǔn)歷史數(shù)據(jù)的驗證,在所有狀態(tài)量通道中,95%以上的通道記錄根本沒有狀態(tài)變化,而只有極少量的狀態(tài)量通道記錄了開關(guān)量變位信息。

        對于這種只有2種變化的量,結(jié)合COMTRADE狀態(tài)量的特點,算法設(shè)計了最簡游程編碼RLE(Run Length Encoding),即采用游程L的正表示狀態(tài)1,L的負(fù)表示狀態(tài)0,而L的絕對值表示游程長度,例如對于 111111110000000,就可用(+8,-7)來表示,而對于沒有狀態(tài)量變換的狀態(tài)量通道,將其分別歸為全1狀態(tài)量通道和全0狀態(tài)量通道類,其中每一類只是記錄對應(yīng)的通道編號,通道編號的整型字節(jié)長度依據(jù)通道數(shù)量的多少而定,通常情況下數(shù)字量通道數(shù)都在256以內(nèi),所以可以將通道編號整型長度的初值設(shè)為1Byte。通過這種壓縮編碼就可對具有大量狀態(tài)量信息的COMTRADE標(biāo)準(zhǔn)記錄文件進行大幅壓縮。

        2.3 高頻采樣模擬量數(shù)據(jù)壓縮算法

        高頻采樣模擬量數(shù)據(jù)在IEEE COMTRADE數(shù)據(jù)文件中是以2 Byte的整型數(shù)保存的。因此,基于浮點數(shù)運算的Mallat算法將無法實現(xiàn)無損壓縮,且計算量也比第2代提升格式的離散小波變換至少高出一倍。因此本算法中針對模擬量數(shù)據(jù)的壓縮首先采用提升格式的離散小波變換,根據(jù)用戶選擇是否進行有損壓縮,進一步采用硬閾值方法進行量化[7],最后采用熵編碼算法進行壓縮的混合壓縮算法。

        2.3.1 提升格式小波變換

        提升格式小波變換與Mallat算法相比的區(qū)別在于不依賴傅里葉變換,在時域內(nèi)就可實現(xiàn)小波構(gòu)造。對信號進行一次提升變換就相當(dāng)于進行一次小波分解,一個典型的提升格式離散小波變換包括分裂、預(yù)測和更新3個步驟。而重構(gòu)則是此過程的逆,即更新、預(yù)測和合并。整個提升小波的分解和重構(gòu)如圖2所示。

        圖2 小波提升方法的分解與重構(gòu)Fig.2 Decomposition and reconstruction of lifting wavelet transform

        從圖2可知,提升格式小波變換就是不斷對偶數(shù)序列(把原始序列也看作偶數(shù)序列)減半后進行分解的過程,而重構(gòu)過程則是分解過程的逆。對應(yīng)于計算內(nèi)部實現(xiàn),對其分解和重構(gòu)的原理如圖3所示。

        圖3 提升方法的計算機實現(xiàn)Fig.3 Computer implementation of lifting wavelet transform

        從圖3可知,小波分解的第1步分裂,就是將原始序列Sj的偶數(shù)部分移動到前半部分,奇數(shù)部分移動到后半部分,而后進行預(yù)測和更新,一直持續(xù)該過程,而重構(gòu)是此過程的逆,不需要任何格外的內(nèi)存就可完成全部變換。對于一個有2H個點的輸入原始數(shù)據(jù),經(jīng)過h(h<H)次小波變換后,尺度系數(shù)的點為序列左邊的2H-h個點,其余點為小波系數(shù),由此可見小波分解層數(shù)越深,可供量化的小波系數(shù)也就越多,故壓縮效率也就更高。本文算法中提供了多種整數(shù)小波變換,可供用戶進行選擇,它們在尺度j上的變換公式如下所示。

        其中,Sj、Dj為經(jīng)過j-1層分解后得到的偶序列和奇序列,l為序列數(shù)組下標(biāo)。

        2.3.2 熵編碼壓縮算法

        熵編碼壓縮主要是利用數(shù)據(jù)或數(shù)據(jù)序列出現(xiàn)概率的分布特性來尋求概率與碼字長度間的最優(yōu)匹配。 常用的熵 編碼有 Huffman、LZ77、LZ78、LZW、RLE、算術(shù)編碼等[17]。眾多文獻已經(jīng)證明了單純采用一種熵編碼很難取得高壓縮比,文獻[12]采用了RLE和LZW的混合編碼,取得了較好的壓縮效果。本文中采用了著名的混合熵編碼Deflate算法,其采用了經(jīng)過優(yōu)化后的LZ77和Huffman的混合熵編碼算法,壓縮比和速度更快。由于Deflate算法很好地平衡了壓縮效率和速度,所以很多壓縮軟件(PKZIP、WinZip、gzip)均采用了Deflate算法或由其衍生出來的其他算法,Deflate算法的解壓算法名稱為Inflate。

        LZ77編碼算法是由Lempel和Ziv于1977年提出的一種字典壓縮算法,其核心思想是把已輸入的數(shù)據(jù)流的一部分作為字典,編碼器為輸入流開一個滑動窗口,隨著字符串編碼的輸入把窗口中的數(shù)據(jù)從右向左移動,并在其中尋找數(shù)據(jù)中相同的部分,即尋找最長字符串匹配,由此在編碼過程中形成一種內(nèi)容形式為(距離,匹配長度)的動態(tài)字典。LZ77在壓縮時需要進行大量的字符串匹配工作,這也是LZ77效率上最低的地方,為此Deflate算法采用哈希表來提高匹配速度。在哈希表匹配過程中,采用當(dāng)前字符串中頭3個字符來計算1個哈希值,并將具有相同哈希值的匹配字符串利用鏈表連接起來,而尋找最長匹配字符串的過程,即通過哈希值找到鏈表頭后,遍歷鏈表,最后確認(rèn)最長匹配字符串。

        在經(jīng)過LZ77編碼輸出后,Deflate算法采用Huffman編碼進一步壓縮數(shù)據(jù)。Deflate算法在對一塊數(shù)據(jù)進行Huffman編碼前,會同時建立靜態(tài)Huffman樹和動態(tài)Huffman樹;然后根據(jù)要輸出的內(nèi)容和生成的Huffman樹,計算靜態(tài)和動態(tài)Huffman樹的最終生成塊大小,而后進行比較,采用生成塊較小的算法進行編碼。采用這種方法,Deflate算法避免了由于文件較小時動態(tài)Huffman樹編碼比靜態(tài)Huffman編碼生成塊大的情況,保證最終輸出塊始終小于編碼輸入塊,這一點是其他算法很難做到的。

        2.4 低頻采樣模擬量數(shù)據(jù)壓縮算法

        在電力系統(tǒng)內(nèi)部,很多COMTRADE標(biāo)準(zhǔn)記錄文件中的最后一個采樣段都是低頻采樣的(小于100Hz)模擬量數(shù)據(jù),這些低頻數(shù)據(jù)通常是當(dāng)前模擬量通道的有效值。這些數(shù)據(jù)對于故障分析沒有太大意義,并且通常也是沒有任何變化的量,對于這類低頻數(shù)據(jù)本算法缺省采用RLE算法,將數(shù)據(jù)壓縮成(數(shù)值,長度)對。

        3 最佳小波分解尺度下的最佳數(shù)據(jù)區(qū)間劃分算法

        由于COMTRADE標(biāo)準(zhǔn)記錄文件內(nèi)通常包含多個采樣頻率下的數(shù)據(jù),壓縮算法不可能一次性加載全部模擬量通道數(shù)據(jù),并且待壓縮數(shù)據(jù)點數(shù)也不太可能是2的冪級數(shù),因此可能需要在采樣頻段尾部補零,壓縮算法就面臨一次讀取多少采樣數(shù)據(jù)進行小波分解、壓縮的問題。為此本文提出了一種采用配置文件中提供的采樣頻率信息的壓縮數(shù)據(jù)區(qū)間最佳劃分算法。

        為防止小波分解層數(shù)過多而導(dǎo)致基頻分量在小波變換過程中被分解,影響壓縮效率,本文算法采用式(7)[7]計算最佳小波分解層數(shù),并由此倒推出要獲取最佳壓縮效果的最小數(shù)據(jù)點數(shù)公式見式(8):

        式(8)的意義是在采樣頻率fs下,經(jīng)過n層小波分解,最后剛好有2個點為尺度系數(shù),即實際中要求的待分析數(shù)據(jù)量必須為 B 的 2k(k=0,1,2,…)倍,才能獲取最佳壓縮效果。根據(jù)式(8)可得到在采樣頻率為fs、采樣數(shù)據(jù)總數(shù)為K時的最小補零個數(shù)為:

        假設(shè)處理數(shù)據(jù)緩沖區(qū)大小為SB=2m(m>n+1),于是可得以SB劃分的數(shù)據(jù)區(qū)間個數(shù)M為:

        而對余下的數(shù)據(jù)則需要計算出其相對于B的倍數(shù)L。

        對式(11)中的L以二進制方式從最高BIT位起依次判斷P位是0還是1,如果是1則利用式(12)獲取一個數(shù)據(jù)劃分大小Y:

        通過以上算法就可得到一組可最少補零的數(shù)據(jù)劃分,例如在fs=9600 Hz時,共采集了15543點數(shù)據(jù),當(dāng)前計算緩沖區(qū)為4096個整型數(shù)據(jù),則采用以上算法可自動將數(shù)據(jù)劃分為3個大小為4096的區(qū)間、1個大小為2048的區(qū)間、1個大小為1024的區(qū)間和1個大小為256的區(qū)間。最小的一個區(qū)間需要補零73個。由此可見采用此算法所劃分的區(qū)間,滿足了最佳小波分解層數(shù)的要求,且補零個數(shù)最少,在壓縮效果和壓縮效率間找到了一個較好的平衡點。

        4 并行壓縮算法

        如圖4所示,并行壓縮算法首先解析COMTRADE配置文件,再利用其內(nèi)信息創(chuàng)建壓縮文件頭并寫入壓縮文件后,將COMTRADE配套文本文件(*.cfg等)依次采用Deflate算法進行壓縮,并寫入壓縮文件中。隨后通過第3節(jié)提供的劃分算法,依據(jù)采樣率信息自動創(chuàng)建數(shù)據(jù)壓縮劃分區(qū)間,并根據(jù)此區(qū)間依次將原始數(shù)據(jù)讀入并解析到模擬量通道數(shù)據(jù)壓縮共享管理器內(nèi)預(yù)先分配好的通道數(shù)據(jù)緩沖區(qū)中。此時通知激活已經(jīng)創(chuàng)建并等待的模擬量壓縮線程組和狀態(tài)量壓縮線程組(并行壓縮算法采用的線程CPU核心映射原則是:每個核心映射1個模擬量壓縮線程和1個狀態(tài)量壓縮線程)。而后這些線程將向模擬量通道數(shù)據(jù)壓縮管理器請求待壓縮通道序號。

        對于模擬量數(shù)據(jù)而言,壓縮線程通過判斷采樣頻率是否高于100Hz選用不同的壓縮策略。對于有損壓縮,當(dāng)采用提升格式小波變換后,采用文獻[7]中介紹的閾值處理方法,該方法在閾值選擇過程中考慮了噪聲的小波變換系數(shù)在小波系數(shù)空間的傳播特性,能夠很好地抑制噪聲對壓縮性能的影響。壓縮后的數(shù)據(jù)直接寫入壓縮文件內(nèi)。

        圖4 COMTRADE并行壓縮算法Fig.4 COMTRADE parallel compression algorithm

        其中,tj為在尺度j下的硬閾值;σ為噪聲強度;N為尺度j下的小波系數(shù)個數(shù);γ為常數(shù),選擇范圍為1~3。其中噪聲強度σ可根據(jù)第i次小波變換后的小波系數(shù)計算得到,計算公式為:

        其中,di為第i次小波變換后的小波系數(shù),為均值,N為小波系數(shù)個數(shù)。本算法中,γ取值1、2、3分別被映射為“一般”、“較好”、“最好”3種壓縮選項。

        對于狀態(tài)量數(shù)據(jù)而言,壓縮線程每次更新在狀態(tài)量通道數(shù)據(jù)緩沖區(qū)的壓縮數(shù)據(jù),只有當(dāng)壓縮線程遍歷狀態(tài)量通道的全部狀態(tài)量數(shù)據(jù)后,才提煉得出全1通道序號數(shù)組、全0通道序號數(shù)組和狀態(tài)量發(fā)生變化通道壓縮數(shù)據(jù),最后將這3類壓縮數(shù)據(jù)寫入文件。

        這種基于申請序號的線程競爭計算方式,可使壓縮算法效率隨著CPU核心數(shù)量的增加而提高。

        5 壓縮文件格式

        經(jīng)過第4節(jié)的并行壓縮算法,最終壓縮文件形成了如圖5所示的壓縮存儲格式,其中每個部分都是一個可根據(jù)壓縮數(shù)據(jù)變化的量,不能直接采用固定大小結(jié)構(gòu)體設(shè)計,為此設(shè)計了如下所示的通用變長結(jié)構(gòu)體。

        此結(jié)構(gòu)的大小計算程序公式為:

        其中,Count為實際存儲數(shù)據(jù)大小,采用此大小分配內(nèi)存后,對于type類型數(shù)據(jù)Data,可直接用數(shù)組形式訪問,這樣就形成了一個變長的結(jié)構(gòu)體。

        圖5 壓縮文件格式Fig.5 Format of compressed file

        壓縮文件的讀取就是利用nStructSize來確定讀寫大小,采用nStructType來判斷數(shù)據(jù)類型,進而準(zhǔn)確讀取所有的壓縮數(shù)據(jù)塊。在此壓縮存儲格式中,模擬量數(shù)據(jù)以壓縮時數(shù)據(jù)劃分的形式順序保存,而狀態(tài)量數(shù)據(jù)則集中保存在文件最后,在壓縮文件頭中有指向狀態(tài)量壓縮數(shù)據(jù)的具體偏移數(shù)據(jù)。

        6 并行解壓算法

        圖6 并行解壓算法Fig6 Parallel decompression algorithm

        對于第5節(jié)闡述的壓縮文件格式,采用如圖6所示的并行解壓算法進行解壓。在解壓主線程內(nèi),首先采用Inflate算法對COMTRADE配套文本文件壓縮數(shù)據(jù)進行解壓,并保存到文件。之后解壓主線程通過壓縮文件頭內(nèi)提供的狀態(tài)量壓縮數(shù)據(jù)偏移量信息,直接定位并一次性將壓縮數(shù)據(jù)讀入到狀態(tài)量壓縮數(shù)據(jù)共享存儲器內(nèi)。隨后依據(jù)壓縮文件頭內(nèi)提供的數(shù)據(jù)劃分信息,將一次數(shù)據(jù)劃分的全部數(shù)據(jù)讀入模擬量通道壓縮數(shù)據(jù)共享管理器內(nèi),之后解壓主線程將激活模擬量通道數(shù)據(jù)解壓線程,并等待解壓完畢(并行壓縮算法采用的線程CPU核心映射原則是每個核心映射1個模擬量解壓線程)。激活后的各個解壓線程向共享管理器申請解壓通道序號,根據(jù)原始采樣率判斷是否為高頻模擬量壓縮數(shù)據(jù),之后采用不同的解壓策略。當(dāng)一次數(shù)據(jù)劃分并行解壓完畢后,解壓主線程等待結(jié)束,隨后采用狀態(tài)量壓縮數(shù)據(jù)解壓出當(dāng)前數(shù)據(jù)劃分下的狀態(tài)量信息,再將時間信息還原后加上采樣編號,最后寫入解壓文件。持續(xù)此過程直到所有數(shù)據(jù)劃分區(qū)間被讀取并被并行解壓完畢。同第4節(jié)所述并行壓縮算法類似,此并行解壓算法采用基于申請序號的線程競爭處理方式,可使解壓效率隨著CPU核心數(shù)量的增加而提高。

        7 試驗

        將本文算法應(yīng)用于4核CPU計算機,配置為:單核主頻 2.4GHz,內(nèi)存 1GByte,硬盤轉(zhuǎn)速 7 200 r/min。

        從表1可見Deflate算法的速度很快,而其解壓算法Inflate的速度是Deflate算法是5~9倍。從表2可見,對于同樣大小的原始計算數(shù)據(jù),不同插值點的提升格式小波變換計算時間的差別并不明顯,以6.4×104個計算點為例,CDF(2,2)和 CDF(8,2)計算時間相差208 ms。

        表1 Deflate/Inflate算法效率試驗結(jié)果Tab.1 Results of Deflate/Inflate algorithm efficiency test

        表2 提升格式小波變換效率試驗結(jié)果Tab.2 Results of lifting wavelet transform efficiency test

        為了體現(xiàn)算法在實際應(yīng)用中的壓縮效果,選用了在電力系統(tǒng)內(nèi)部具有典型意義的4種COMTRADE文件(文件詳細(xì)信息如表3所示),其具體分類如下所表述。

        文件1:典型的單相接地故障記錄數(shù)據(jù)文件,記錄末尾有少量低頻采樣數(shù)據(jù)。

        文件2:典型的保信系統(tǒng)上傳文件,記錄大量意義不大的穩(wěn)態(tài)數(shù)據(jù)及其開關(guān)量變位信息,記錄末尾有較多低頻采樣數(shù)據(jù)。

        文件3:故障持續(xù)時間較長,采樣頻率高,記錄中沒有低頻數(shù)據(jù)。

        文件4:系統(tǒng)發(fā)生較長時間擾動,錄波器連續(xù)進行長時間錄波,完整記錄整個過程,此類連續(xù)長時間采樣也是未來電力系統(tǒng)自動化錄波的發(fā)展趨勢。

        為和以往文獻試驗結(jié)果對比,試驗采用以往眾多文獻推薦的 CDF(4,2)小波,從表 4、5 所示的壓縮比試驗結(jié)果上看,本文算法均可獲得非常大的壓縮比,當(dāng)COMTRADE文件逐漸變大后,壓縮比也逐漸變大,特別是文件4,在有損壓縮時取得了高達96.6和287.0的壓縮比。而對于無損壓縮,此算法也取得了很好的效果,文件4取得了5.7和16.9的高無損壓縮比,而文件2由于尾部有較多低頻數(shù)據(jù),取得了更高的壓縮比。

        表3 壓縮/解壓試驗COMTRADE數(shù)據(jù)Tab.3 COMTRADE data of compression/decompression test

        表4 有損壓縮試驗結(jié)果Tab.4 Results of loss compression test

        表5 無損壓縮試驗結(jié)果Tab.5 Results of lossless compression test

        表6中針對文件4類型的COMTRADE文件,采用4種小波分別進行有損壓縮,可見隨著參與插值的點數(shù)增加,獲得了更小的壓縮文件。筆者還通過大量試驗證明,在諸多文獻中提到的CDF(4,2)的壓縮效果最好的結(jié)論,實際上過于片面,試驗中CDF(6,2)、CDF(8,2)小波對于COMTRADE中大量存在的小擾動系統(tǒng)錄波數(shù)據(jù)具有更高的壓縮比。并且由表2可見插值點數(shù)的增加對于提升小波變換速度的影響有限,所以筆者認(rèn)為對于實際中的COMTRADE文件而言,推薦采用 CDF(6,2)和 CDF(8,2)這類插值點更多的小波,使得變換后得到的小波系數(shù)更加平滑,有利于壓縮。

        表6 不同小波選擇的壓縮結(jié)果Tab.6 Results of compression by different wavelets

        表7顯示了對4種不同文件的內(nèi)故障記錄通道有損壓縮后和原始通道數(shù)據(jù)計算均方誤差,采用的小波為CDF(8,2)。從表中可見有損壓縮后的解壓數(shù)據(jù)和原始數(shù)據(jù)誤差都在小數(shù)點后3位,滿足有損壓縮后的可用要求。

        表7 故障通道數(shù)據(jù)有損壓縮最大均方誤差Tab.7 Maximum deviation of loss compression for different faulty channels

        表8中采用文件4類型COMTRADE數(shù)據(jù)在2核、3核、4核計算機上進行了加速比試驗??梢?,此算法可隨著未來COMTRADE數(shù)據(jù)文件的加大、CPU核心數(shù)的增加,獲取到線性加速比。

        表8 并行壓縮/解壓加速比試驗結(jié)果Tab.8 Results of parallel compression/decompression acceleration ratio test

        8 結(jié)語

        以往壓縮算法文獻都只是針對模擬量數(shù)據(jù)進行討論的,而完全忽視了電力系統(tǒng)內(nèi)絕大部分錄波數(shù)據(jù)都是以IEEE COMTRADE格式進行保存的情況,并且由于電力系統(tǒng)通信網(wǎng)的快速發(fā)展,原有算法的應(yīng)用背景也發(fā)生較大變化,原有研究已經(jīng)不能適應(yīng)電力系統(tǒng)的發(fā)展,因此本文提出了直接面向IEEE COMTRADE格式的并行壓縮/解壓算法,并構(gòu)建了相應(yīng)的通用壓縮/解壓工具,大量試驗證明對于絕大部分現(xiàn)場運行,COMTRADE文件都可獲得很大的壓縮比,并且算法適應(yīng)了多核并行計算的發(fā)展趨勢,具備線性加速比。

        猜你喜歡
        壓縮算法數(shù)據(jù)文件模擬量
        基于參數(shù)識別的軌道電路監(jiān)測數(shù)據(jù)壓縮算法研究
        基于FPGA的多通道模擬量采集/輸出PCI板卡的研制
        數(shù)據(jù)文件恢復(fù)專題問答
        數(shù)據(jù)文件安全管控技術(shù)的研究與實現(xiàn)
        SQL數(shù)據(jù)文件恢復(fù)工具
        更正聲明
        關(guān)于600MW火電機組模擬量控制系統(tǒng)設(shè)計和研究
        電子制作(2016年21期)2016-05-17 03:53:12
        PMU數(shù)據(jù)預(yù)處理及壓縮算法
        模擬量輸入式合并單元測試儀的研制
        一種通用模擬量及開關(guān)量信號采集板卡的設(shè)計
        中文字幕一区二区三区乱码人妻| 国产精品污www一区二区三区| 国产欧美久久久另类精品| 官网A级毛片| 日韩精品午夜视频在线| 91伦理片视频国产精品久久久 | 久久久久久伊人高潮影院| 亚洲欧美一区二区三区国产精| 精品日本韩国一区二区三区| 日本岛国一区二区三区四区| 欧美日本精品一区二区三区| 无人视频在线观看免费播放影院| 男女超爽视频免费播放| 在线视频一区二区亚洲| 中文字幕在线亚洲精品一区| 妺妺窝人体色www在线| 亚洲成av人片在线观看麦芽| 亚洲欧洲精品成人久久曰不卡| av中文码一区二区三区| 久久久国产精品黄毛片| 真实国产乱子伦精品视频| 亚洲欧美在线观看| 国产91在线精品福利| 一区二区三区免费自拍偷拍视频| 日本最新一区二区三区视频观看 | 亚洲国产精品自拍成人| 国产成人午夜福利在线观看| 日本做受高潮好舒服视频 | 国产福利姬喷水福利在线观看| 国产精品无码久久久久下载| 亚洲中文乱码在线视频| 欧洲美女黑人粗性暴交视频| 亚洲精品无码久久久久牙蜜区| 国产欧美日韩在线观看一区二区三区| 免费av在线视频播放| 亚洲久悠悠色悠在线播放| 免费无码毛片一区二区app| 国产做无码视频在线观看浪潮| 日韩精品一区二区三区在线观看的| 三上悠亚亚洲精品一区| 高清偷自拍亚洲精品三区|