数字化控制系统数据压缩方法分析

2014-03-25 04:39
仪器仪表用户 2014年3期
关键词:压缩算法旋转门历史数据

(中核控制系统工程有限公司,北京 100176)

数字化控制系统数据压缩方法分析

马晓宇

(中核控制系统工程有限公司,北京 100176)

随着核电仪控技术水平的提高,全数字化仪控技术在核电系统中得到了广泛地应用和推广。核电DCS控制系统由传统的模拟技术正朝着全数字化技术急速推进。在我国在建核电站中,全部采用了数字化控制系统技术,但大都为国外产品。为了实现国产化的要求,多家单位都针对核电站数字化控制系统展开了研究。本文主要针对常规的数字化控制系统中的数据库所采用的数据压缩方法进行论述。

核电仪控系统;实时历史数据库;数据压缩

0 引言

数据压缩是指在不丢失信息的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率的一种技术方法。或按照一定的算法对数据进行重新组织,减少数据的冗余和存储的空间。该方法的研究和应用,将直接有效减少工业应用中,海量数据存储问题。

1 数据压缩的意义

核电DCS控制系统中的实时历史数据库需要具备较高实时性、海量数据吞吐量的特点,一般实际应用的DCS系统测点数量较多,且部分测点的刷新频率较高,随着系统长时间运行,历史数据量会变的巨大,如将数据直接存储,不但会浪费大量的存储空间,而且还会使数据查询和传输变得复杂和困难。因此,如果将数据压缩技术引入到DCS系统的历史数据处理中,可起到增加库容量、节省存储空间及提升系统运行效率等优势。

首先,一般一套核电DCS系统从投入到更新换代,需要几年至数10年的时间,此期间,实时历史数据库系统需不断记录各个测点所产生的历史数据,以为系统运行及维护提供重要参考。在此期间所形成的系统处理数据量是十分巨大的,例如在一个拥有10000测点的系统中,以1s的时钟刷新频率来计算,系统运行一年所产生的原始数据量可以到达:3600×24×365×10000=315360000000个数据,假设每个数据用8个字节来表示(包括数据值、数据时刻和数据质量),那么这些数据所占的磁盘空间为2350GB,这对于任何系统都是一个海量的数据吞吐量[1]。

其次,引入数据压缩机制不仅可以有效地剔除原始没有必要存储的历史数据,降低历史数据的磁盘占用量,还能提升系统的运行效率。在计算机系统中,磁盘的读写速度是一般计算机存储介质中最慢的单元,历史数据量减少了,就可以减少系统在响应数据查询时与磁盘的交互次数,提升系统的响应速度和整体性能。

最后,基于以上两点的实现,可以增加历史库系统的测点容量。磁盘空间占用量的减少、系统性能的提升分别在空间和时间上为测点容量的增加提供可能性,测点容量的增加又可以扩大实时历史库的应用范围,为大容量测点系统提供可能实施的解决方案。

综上,引入数据压缩技术对整个实时历史数据库的功能扩展和性能提升都是有必要的。

2 数据压缩技术介绍

作为传统数据压缩技术在DCS仪控领域的特殊应用,历史数据库的数据压缩类似于日常的音频或图像压缩处

理,数据压缩技术从定义层面来讲是以最少的数码来表示信息源的信号,减少容纳给定消息集合或数据采样集合的信号空间。从计算机应用及实现领域来看是通过减少计算机中存储数据或通信中数据冗余度,达到增大数据密度,最终减少数据存储空间的技术,在文件存储及分布式系统领域有着十分广泛的应用。

一般的数据压缩算法从数据压缩的效果方面可分为无损压缩和有损压缩两种技术:

1)典型的无损压缩算法可以归结为两种类型的算法模型的实现,它们分别是基于统计模型的压缩算法和基于字典模型的压缩算法。前者是根据字符在待压缩字符群中出现的概率进行的编码,早期的压缩算法,如Huffman编码和算术编码都是属于这一类型的算法;而基于字典模型的压缩算法是在算法计算过程中产生一个具有压缩关键字定义的压缩字典,在对信息进行压缩和解压缩过程中都对其进行查询操作,最典型的字典模型压缩算法是LZ系统算法,例如LZ77和LZ78等。

2)有损压缩技术依靠特定的应用领域发展起来,其基本原理是通过在数据压缩过程中损失一定的信息而达到较高的压缩比,由于压缩过程不可逆,压缩后数据无法完全恢复到初始状态,因此需确保损失的数据对于理解原始数据特点的影响足够小。我们日常使用的诸如JPEG图像文件、MP3音频文件等的多媒体文件都使用了此类型的压缩算法。而较多应用到工控行业的具体压缩算法包括矩形波串法(Box Car)和后向斜率发(Backward Slope),以及在工控领域应用最为广泛的OSIsoft公司提出的“旋转门数据压缩算法(Swing Door)”[2]。

无损压缩技术和有损压缩技术都在工控领域的历史数据处理中得到了应用,例如美国的Instep公司开发的实时历史数据库系统eDNA就实现了以Huffman为基本的无损数据压缩程序,它首先对数据集合进行统计分析,将数据添加到Huffman树中进行编码,最后保存生成编码,完成对数据群的压缩;而OSIsoft公司的PI实时历史数据库产品采用了“旋转门数据压缩算法”以及独到的二次过滤技术。

而具体到本文阐述的系统的历史库压缩模块,则综合了两种压缩算法的优劣,设计出一套“二次数据压缩”机制,通过对无损压缩和有损压缩算法应用的统一,来进行历史库模拟量数据的压缩。

3 数据压缩模块的设计

常规的数字化控制系统的数据库支持的数据类型含开关量数据及模拟量数据。因不同的数据类型所显现出的数据特点的不同,需制定有针对性的压缩策略来满足各种数据的压缩要求。软件通过以下数据结构的定义来表示压缩类型和压缩参数描述。

//压缩类型定义

typedef enum

{

HISD_UNCOMP = 0x00,

HISD_SWINGDOORCOMP, //模拟量数据压缩

HISD_SIGNALCOMP//信号量数据压缩

}HisdCompType;

//压缩系统参数,每一个标签点对应一个此结构

typedef struct

{

/*压缩配置参数*/

HisdCompType comptype;//压缩类型

/*压缩状态监测参数*/

hisdInt64 total_remainpoints;//测点压缩算法中总共剩余点数

hisdInt64 total_comppoints;//测点压缩算法中总共丢弃的点数

hisdInt32 remainpoints;//最近一次压缩算法中剩余点数

hisdInt32 comppoints;//最近一次压缩算法中丢弃的点数

hisdInt64 comptime;//最近一次压缩算法用时

/*各种压缩类型独有参数*/

union

{

CompSwingDoorInfo swingdoorinfo;

CompSignalInfo signalinfo;

};

3.1开关量数据压缩

开关量数据采用“变化压缩算法”,其基本设计思路是:当测点的数值有变化时才会保存,否则丢弃当前的数据。这是因为开关量测点的状态通常由特定的若干数值来表示(大多数为0和1),在DCS生产现场很多开关量测点的状态在特定甚至较长的时间内是不会变化的,因此“变化压缩算法”很适合对历史库开关量数据的压缩处理。

如图1所示,将某开关量测点设置为每1s进行一个数据采集,以时刻点t点为基准的后8秒里,其测点值分别为0、0、0、1、1、0、0、1。根据“变化压缩算法”的计算,剔除其在2s、3s、5s和7s的数据,只保存1s、4s、6s和8s的数据值。在进行数据还原时,空缺时刻的数据值取前一保存时刻的数据值,例如,2s和3s的数值均等于1s数值0。这样完整保存了测点在时间轴上的数据特征,同时也达到了节省存储空间的目的。

图1 开关量数据的变化压缩算法Fig.1 Switch changes in volume data compression algorithm

以下是软件中对开关量压缩参数的结构化表示:

//信号量压缩控制参数

typedef struct

{

hisdUInt32 compinterval;//压缩时间最大间隔,超过这一时间间隔的数直接保存;

//如果设置为负值,此功能无效

HisdData lastpoint;//最近处理的上一点

}CompSignalInfo;

3.2模拟量数据压缩

工业DCS系统中的模拟量测点数据通常会遵循一定的渐变规律,例如某些时间段会呈现较为一致的线性变化,某些时间段的数据则呈现抛物线特征等。这些数据特征就给定了进行历史数据逻辑压缩的前提。

在常规的控制系统的数据库中的历史库系统中,本文采用双重的历史数据压缩机制,即“二次数据压缩”,实现流行的“旋转门”压缩算法为第一层逻辑压缩,实现无损的Huffman压缩算法为第二层物理压缩。首先来讨论下传统的“旋转门”压缩算法的内容。

3.2.1 传统的“旋转门”压缩算法

如图2所示,对于基本的“旋转门压缩算法”进行描述:在进行数据压缩时,算法将在新的即时数据点和前一个被保留的数据点之间做一个平行四边形的偏移覆盖区,如果这个平行四边形可覆盖保留数据点之后出现的所有数据点,则将不会保存新的实时数据点。反之,如果有任何一个数据点落在压缩偏移覆盖区外,则新数据点的前一个点将被保留,同时整个压缩偏移覆盖区将被重置,以新的被保留点作为新的起点,进入下一轮的旋转门判断[3]。

图2 传统的“旋转门”压缩算法Fig.2 Of the traditional "revolving door" compression algorithm

传统的“旋转门”压缩算法虽然可以较好的完成对实时历史数据的压缩,但是在算法的实现和执行过程中会出现一些问题,主要体现在以下两点:

1)算法实现时需要一个临时缓冲区来存储待判定点集,但是在代码实现时,这一缓冲区的大小缺失无法事先确定的。

2)如果待判定点过多,缓冲区里的数据点数过大,那么在进行覆盖区判定时会耗去系统过多的业务执行时间,造成系统运行的瓶颈。

因此,在以上算法的基础上,本文采用了改进的“旋转门”压缩算法,即“斜率比较旋转门”算法[4]。

3.2.2 改进的“斜率比较旋转门”压缩算法

如图3所示,当新点a到来时,系统会比较a与原点o(即上已存储的点)的时间差t_time,如果t_time不小于压缩间隔上限nic_compinterval或者a点质量戳与o点不同,则直接保存lastpoint点,进入下一轮旋转门算法运算;否则以点a和o以及设定好的nic_comprate构建平行四边形Ω,计算最大斜率点maxkpoint和最小斜率点minkpoint是否均在Ω内,计算结果有两种:

图3 “斜率比较旋转门”压缩算法Fig.3 "Slope comparison revolving door" compression algorithm

1)都落在了Ω内部,则说明a点通过了旋转门,成为最新的lastpoint,最后再分别比较a点斜率与最大、最小斜率的关系,大于最大斜率值或者小于最小斜率值则替换相应的斜率点和斜率值,进入下一轮旋转门算法进行运算。

2)如果有一个斜率点落在了Ω外部,则说明a点没有通过旋转门,则就保存此时的lastpoint,并将lastpoint设定为下一轮旋转门算法的o点,a点设定为最大和最小斜率点,进入下一轮旋转门算法运算。

改进的“旋转门”算法的具体流程如图4所示。

软件中对于“斜率比较旋转门”算法的压缩参数的结构化。

//旋转门压缩参数

typedef struct

{

/*旋转门压缩配置参数*/

hisdInt8 compoffset_type;//偏移量设定方式

hisdDouble compoffset;//压缩偏移量

hisdUInt32 compinterval;//压缩时间最大间隔,超过这一时间间隔的数直接保存;

//如果设置为负值,此功能无效

/*旋转门压缩过程参数*/

HisdData pointO;//压缩原点

HisdData lastpoint;//最近处理的上一点

HisdData maxkpoint;//最大斜率点

HisdData minkpoint;//最小斜率点

}CompSwingDoorInfo;

图4 “斜率比较旋转门”算法流程图Fig.4 "Slope comparison revolving door" algorithm flow chart

上述的“旋转门”压缩算法是系统第一次对历史数据的逻辑压缩,当经过逻辑压缩后的保留数据累积到一定的数量(例如1k)时,再对其进行第二次物理压缩,采用的是Huffman无损压缩算法,其基本原理是,构建一个Huffman二叉树用于字符编码,依据待压缩数据二进制子串出现的频率对其进行排列,出现频率大的串用较少的位来表示,而较小的串用较多的编码来表示,以此既达到数据压缩的目的,又完整保留了逻辑压缩后的数据信息[5]。

4 结束语

本文主要介绍数字化控制系统中的历史库系统中压缩模块的设计和实现。通过介绍数据压缩对于数字化控制系统运行的作用和意义,以及对当今压缩算法发展的简要介绍,引出了可以提高系统性能的压缩算法设计。其中“二次压缩”的设计理念是当前实时历史数据库产品中比较先进的技术手段。

[1]高宁波,金宏,王宏安.历史数据实时压缩方法研究[J].计算机功能与应用,2004,28:167-171.

[2]高宁波,金宏,王宏安.历史数据实时压缩方法研究[J].计算机功能与应用,2004,28:167-171.

[3]蒋鹏,黄清波,王智,等.一种新的化工过程历史数据压缩方法研究[J].浙江大学学报,2005,39(6):814-515.

[4]徐慧,实时数据库中数据压缩算法的研究[D].杭州:浙江大学,2006.

[5]曲奕霖.流程工业历史数据的压缩策略与压缩方法研究[D].杭州:浙江大学,2006.

Instrument Control System Application in Natural gas Treating Plant

Ma Xiaoyu
(China Nuclear Control System Engineering Co., Ltd. , Beijing 100176,China)

With the improvement of technical level of Nuclear Power Instrumentation & Control, digital control technology has been widely used and promoted in the Nuclear power system, nuclear DCS system rapidly change from traditional analog technology to fully digital technology. Nuclear power plants under construction in China all adopt the technology of digital control system, but most are foreign products. In order to achieve the requirements of localization, many units have carried out the research on nuclear digital control system。In this paper, the digital control system in a conventional database data compression method.

nuclear control system; historian subsystem of Real-time database; data compress

G250.74

A

Doi:10.3969/j.issn.1671-1041.2014.03.022

2014-04-28

马晓宇( 1981-), 女,硕士研究生,从事核电仪控系统研发工作。

猜你喜欢
压缩算法旋转门历史数据
旋转门的技术发展概况和专利分布
基于设备PF性能曲线和设备历史数据实现CBM的一个应用模型探讨
基于故障历史数据和BP神经网络的接地选线方案研究
基于参数识别的轨道电路监测数据压缩算法研究
迷宫
让电动旋转门不再伤人
基于Linux系统的旋转门检票机设计与研究
基于Hadoop技术实现银行历史数据线上化研究
用好细节材料 提高课堂实效
一种基于嵌入式实时操作系统Vxworks下的数据压缩技术