一种故障录波数据无损压缩算法的设计与实现

2015-12-27 09:45宋彦锋沈沉徐云松杨芳
中国科技纵横 2015年1期
关键词:压缩算法录波数据文件

宋彦锋 沈沉 徐云松 杨芳

(许继电气技术中心,河南许昌 461000)

一种故障录波数据无损压缩算法的设计与实现

宋彦锋 沈沉 徐云松 杨芳

(许继电气技术中心,河南许昌 461000)

本文根据电力系统故障录波文件的特点,提出一种全新的、无损的、压缩率高的数据压缩的方法。该方案根据comtrade的特点,将需要压缩的内容解析为数据基本信息、模拟通道数据和状态量通道数据三个部分,根据每部分自身的数据特点分别用不同的数据压缩算法进行相应的数据预处理。根据预处理之后的数据的特点和字典压缩的分析能力,将预处理压缩数据再进行一次字典压缩,大大提高了数据压缩率。与该压缩方法对应有一套特定的解压缩方法,该解压缩的流程与压缩流程相反,是一个信号重构的过程,解压后最终得到的文件既是压缩之前的源文件,数据信息完全没有损失。本算法保证了故障录波文件的无损性和高压缩率,有利于故障录波数据的储存、传输以及数据重现分析。

故障录波 comtrade 无损压缩 数据预处理 数据重构

在如今的电力系统中,随着微型电子技术的发展,对故障过程的监测水平要求越来越高,一大批故障录波装置不断涌现。它们能自动地、准确地记录电力系统故障前、后过程的各种电气量(数字量和模拟量,主要是开关状态、电压、电流数值)的变化情况,通过对这些电气量的分析、比较,具有分析处理事故、判断保护是否正确动作、提高电力系统安全运行水平的作用。由于录波装置记录从故障过程到系统恢复正常的全过程的电气参数,这样就导致了数据量会非常大,给故障录波数据的存储和传输问题带来巨大的挑战,因此故障录波文件的压缩能力亟需提高[1]。

国内外都针对comtrade故障录波数据的压缩做出了相关的研究。比如利用自适应哈夫曼编码算法压缩录波数据,通用性强但压缩率很低。再如基于小波包的分析的录波数据包压缩原理,压缩率很高,但是是有损压缩,不适应于故障数据的还原[2]。目前故障录波数据的压缩的方法有很多,在一定的应用范围内都有各自的优点,但是也都具有一定的局限性[3]。

本文提出了一种新型的基于comtrade规范的压缩算法:首先根据comtrade文件的特点将文件分为三个部分,然后根据这三个部分各自的数据特点分别用不同的算法进行数据预处理压缩,最后再对预处理之后的数据进行二次压缩,压缩率很高。本压缩算法是无损压缩,配合对应的解压算法能够将数据无损的还原。

1 comtrade特点

标准的comtrade格式的故障录波,有四个文件组成,每个文件都承载着不同等级的信息,这四个文件分别是头标文件(扩展名为. hdr)、配置文件(扩展名为.cfg)、数据(扩展名为.dat)和信息文件(扩展名为.inf)[4]。

头标文件:ASCII格式的文本文件。头标文件的任意ASCII格式的信息,这些信息主要是方便使用者打印和阅读,所以头标文件一般不给应用程序操作。

配置文件:包含comtrade数据文件的配置信息,主要包括配置数据文件的的采样时标、采样率、模拟通道个数、数字通道个数、频率等。可以利用该配置文件正确解读数据文件。

数据文件:记录着故障录播中每个输入通道每个采样点的数值,数据文件的大小随着采样点的增加和采样时间的延伸而增加。数据文件可以是ASCII或二进制格式,这个信息可以在配置文件中得到。本文的压缩算法主要就是针对数据文件进行压缩。

信息文件:包含着编制者和用户希望交换或超过数据组最小应用所要求的额外信息。一般不给应用程序操作。

这些文件在同一次录播中必须有相同的文件名,其区别只在于文件类型(扩展名)的不同,文件内部的信息不同。本压缩算法主要根据从配置文件解析的信息,对数据文件里的不同类型的数据信息采取不通的压缩算法处理。

2 算法的基本思想

首先,从comtrade的配置文件获取配置信息,这些信息可以存储在20个字节的固定格式的数据区,这个数据区数据可以作为描述整个录播数据的基本信息,根据这些信息可以把数据文件分为三个部分:基本信息数据、模拟通道数据和数字通道数据。

如图1所示,根据从配置文件解析的数据信息和三部分数据各自的数据特点,分别用不同的算法进行预处理,从而提高压缩效率。我们把以上这些处理叫做数据的预处理。把经过预处理之后的数据都储存在预处理压缩文件里面(我们定义的预处理文件的扩展名为. cds),最后再将预处理压缩文件进行一次字典压缩,进一步提高压缩比。数据的解压缩就是将数据按相反的流程反量化,重构原始信号,本压缩和解压缩的算法是无损算法,对原始的数据信号没有做任何改变。

3 算法的实现

压缩算法的整体流程如图2所示,主要包括数据压缩预处理和字典压缩两个部分。

根据comtrade文件及其格式,数据压缩预处理我们采用并行压缩的方式。所谓并行压缩就是将数据的基本信息、模拟量数据和数字量数据分开独立压缩,可以通过解析配置文件来获取以上三种数据在数据文件的位置和大小等信息。Comtrade预处理压缩文件的结构如图3所示。

3.1 数据信息压缩

通过解析comtrade配置文件获取数据基本信息,包括:采样点计数、采样时标、数据通道信息(总通道数、模拟通道数、数字通道数、采样频率等)。提取后的数据放在预处理压缩文件的第一部分,如图3所示。通道的基本信息的提取顺序为总通道个数、模拟通道个数、数字通道个数、采样起始时间、计算采样间隔,这五个数据都为int型。相邻采样点的时标之间的间隔可以由频率算出来,所以和采样号一样,采样点时标记录一个初始值即可,相当于所有的时标都压缩为一个四字节的初始值。所以预处理压缩文件里数据基本信息区共计占20个字节。

3.2 模拟量数据压缩

模拟数据压缩流程如图4所示。对于模拟数据的预处理,我们根据模拟量数据的特点(一般情况下模拟量数据的每个周期相同的采样点对应的数据基本相同),采用周期差值、连续存储预处理方法(差值定义为char型)。

所谓周期差值,就是在每一个模拟通道里,将当前周期的采样点数据和上一个周期同相位的采样点数据相减。连续存储就是将一个通道相减的数据顺序存储起来,一个通道差值存完再存下一个通道的数据差值。这里可能存在一种特殊情况:因为我们的差值定义的是char型,所以当差值大于一个字节时就需要存储数据的原始值:首先存储标明当前值是原始值的标志0x7f80,然后将当前值按照原始大小存储。

3.3 状态量数据压缩

状态量数据的预处理是用游程编码的方法,根据comtrade数据文件的规定,状态数据在文件中每个采样点占用的位数必须是16的整数倍,位数不够,高位补0。比如一个装置有23个状态通道,则在comtrade文件中每个采样点状态数据占32位,即4个字节24~32位没有实际数据,补0。在压缩状态数据之前必须从数据基本信息处理的部分得到几个基本信息: 模拟通道数(ac),状态量通道数(dc),采样点数(rc);还要得到前面模拟量压缩的返回值writeStart(预处理压缩文件的当前指针位置)。每一次按顺序取八个通道的数据,判断每一个通道的状态是否有变化,如果没有则状态计数加1;如果有变化,则将通道号、状态和状态计数存入预处理压缩文件,状态计数置位。这样按顺序从第一采样点判断到最后采样点,完成之后加标识0xEB90。然后,按照以上步骤判断往下的八个通道……,直至到判断完所有通道。结构是:通道号(short)+状态值(char)+数量(int)。状态数据压缩流程如图5所示。

状态量通道的数据比较简单(只有0、1),而且一般情况下数据状态变化不大,所以状态通道的数据比较有规律性,采用本压缩算法预处理后的状态通道数据压缩比是非常高的,而且具有数据量越大,压缩比越高的特点。

经过前三个步骤的数据预处理,形成预处理压缩文件,最后根据预处理之后的数据的特点(降低数据的随机性,即减小信息熵)和字典压缩的分析能力[5],将该预处理文件进行一次字典压缩得到最终的压缩文件。

3.4 数据解压缩

如图6所示,解压缩算法实际上就是数据压缩算法的反向化、是数据重组的过程。

首先用字典解压缩的方法将压缩好的文件进行一次解压缩,本次解压缩得到一个解压缩中间文件,这个中间文件和压缩的时候的压缩预处理文件结构完全相同。

然后根据解压缩中间文件的数据结构,解析数据基本信息区的数据,可以得到数据文件的基本配置信息。根据这些信息可以解析解压缩中间文件的模拟数据区和状态量数据区的数据。解压模拟量数据和状态量数据的流程其实就是他们对应的压缩流程反向操作,这里不再赘述。

将解压缩之后的文件和数据录波的原始文件比较,可以看到录波数据文件经过本方法的压缩和解压缩之后没有数据的损耗,能够百分之百还原装置记录的原始工况信息和故障信息,有利于后期对装置故障的分析。

4 算法测试

我们用几组不同的录波文件作为标本:第一组标本有32个模拟数据通道,12个状态量数据通道;第二组标本有12个模拟数据通道,64个状态量数据通道;第三组标本有1个模拟数据通道,32个状态量数据通道;每一组都有8个测试标本,一组中的每个标本的采样率相同,采样点数不同,所以文件大小不同,每个标本中都随机产生故障点。

对三组测试标本测试的结果如图7所示,横坐标表示源数据文件大小,纵坐标表示压缩后文件大小,单位都是k(千字节),dts1对应第一组标本,dts2对应第二组标本,dts3对应第三组标本。从结果可以看到:本压缩算法的压缩效率很高;本压缩算法对状态量通道的压缩效果明显。

5 结语

本文通过将comtrade文件分为三部分分别进行预处理压缩,针对各部分的特点提出不同压缩预处理方案。然后根据预处理之后的数据的特点和字典压缩的分析能力,将预处理压缩数据再进行一次字典压缩,从而大大提高了数据压缩率。并且,本算法保证了故障录波文件的无损性和高压缩率,有利于故障录波数据的储存、传输以及数据重现分析。

[1]苗世洪,王少荣,刘沛,程时杰.数据压缩技术在电力系统通信中的应用.电力自动化设备,1999,19(3):32-33.

[2]成敬周,张举.基于小波包分析的录波数据压缩原理.电力自动化设备,2004,24(7):53-56.

[3]黄险峰,钱路江,付立军.电力系统故障录波信号压缩.电力自动化设备,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研究与实现[J].科技创新导报,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—),男,工程师,主要研究方向:智能变电站设备软件平台;沈沉(1977—),男,工程师,主要研究方向:智能变电站设备软件平台;徐云松(1972—),男,通信作者,硕士,高级工程师,主要研究方向:智能变电站通信;杨芳(1986—),女,助理工程师,主要研究方向:智能变电站系统。

猜你喜欢
压缩算法录波数据文件
故障录波装置自动测试系统设计与实现
基于参数识别的轨道电路监测数据压缩算法研究
数据文件恢复专题问答
数据文件安全管控技术的研究与实现
SQL数据文件恢复工具
更正声明
基于Hadoop技术的批量录波数据高性能处理方法
PMU数据预处理及压缩算法
基于暂态录波数据的负荷建模方法研究
基于IEC61850标准的水电厂录波数据接入实现方案