一种基于线型的过程数据有损压缩方法转让专利

申请号 : CN201110252901.6

文献号 : CN102298630B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘孟觉梁奕刘佳宝方俊陈天皓张浩

申请人 : 国电南瑞科技股份有限公司

摘要 :

本发明公开了一种基于线型的过程数据有损压缩方法,其特征在于,包括以下步骤:1)定义三种变化的数据趋势线型:直线型、抛物线型、反抛物线型作为可选的拟合函数;2)根据实际数据的变化趋势在运行时动态地调整拟合函数的表达式的形式。本发明不采用单一的拟合方式,而是综合三种拟合方式,所以存储的事件数比传统算法存储的事件数少,即压缩率比较大。

权利要求 :

1.一种基于线型的过程数据有损压缩方法,其特征在于,包括以下步骤:

1)定义三种变化的数据趋势线型:直线型、抛物线型、反抛物线型作为可选的拟合函数,所述拟合函数为yt=ut+εt;其中,yt是过程数据的值关于时间的函数,εt是噪音函数,aut=kt 是关于时间t的函数,a是t的幂指数,k为t的系数,用于控制拟合曲线的形状;

如果a>1则ut为抛物线;如果1>a>0,则ut是反抛物线;常规条件下取a=1则为ut=kt直线;

2)根据实际数据的变化趋势,在运行时动态地调整拟合函数的表达式的形式,具体步骤为:

21)对于每一个过程数据,分别使用三种变化趋势线型进行压缩,记录相关参数,直到三种变化趋势线型都不能继续压缩为止;

22)保留压缩率最大的拟合函数作为最终的压缩结果,记录压缩点的时间点、拟合值、拟合曲线参数;

23)进行新一轮的压缩。

2.根据权利要求1所述的基于线型的过程数据有损压缩方法,其特征在于:在所述步骤21)中,a

1)根据实际需要,分别取ut=kt 中a=2、1、0.5,则对应抛物线、直线、反抛物线三种不同线型的拟合曲线,对于第1个数据点,用所有的曲线形状的拟合函数去拟合,在正常情况下所有的曲线都能顺利地拟合,所有的拟合函数继续第二个数据点的压缩;

2)第二个数据点到来时,用通过第一个数据点的拟合函数去拟合第二个数据点,保证压缩误差在预定控制的范围内,如果拟合函数是直线函数则不能进行拟合,所以直线函数放弃,再依次用上一轮通过的拟合函数的点去拟合第二个数据点,将满足压缩误差条件的拟合函数继续保留,不满足的拟合函数舍去;

3)按照上述过程依次拟合接下来的数据点,至只剩下最后一个满足压缩误差条件的拟合函数停止;

4)用步骤3)仅剩下的拟合函数拟合下一个数据点,如果还能拟合就继续下一个点,否则就结束本轮压缩,记录相关参数以便还原,继续下一轮的压缩。

说明书 :

一种基于线型的过程数据有损压缩方法

技术领域

[0001] 本发明涉及一种数据处理方法,特别涉及一种监控系统中实时数据动态有损压缩方法,属于自动化监控技术领域。

背景技术

[0002] 目前监控系统中实时数据压缩方法的主要可分为三类,即分段线性方法、矢量量化方法和信号变换方法。分段线性方法包括矩形波串法(boxcar)、后向斜率法(backward slope)、旋转门趋势化方法(SDT)和分段线性在线趋势化方法(PLOT),尽管这些方法压缩比不如信号变换方法高,但其优点是算法简单、代码执行速度快,已经在过程工业中得到广泛使用。矢量量化方法需要花很多时间计算码本,且码本不具有通用性,即一个数据集的码本不能用于别的数据集,由于计算量太大,矢量量化方法不适合过程数据在线压缩。信号变换方法很多,如傅立叶变换、小波变换等,虽然小波变换方法目前还存在一些实际技术问题需要解决,但长期以来傅立叶变换一直是信号处理的主要手段,但它只能获得信号的整个频谱,而很难得到信号的局部特征,不能充分刻画时变、非平稳信号的特征,同时在数据的有损压缩阈值难以控制,再加上有很多实际的问题有待解决,所以实际使用并不多。
[0003] 在传统的线性压缩算法中,一般都是仅仅采用直线来刻画某一段待压缩空间内的数据,无论这段空间内的数据的具体趋势如何,都是一成不变的用直线来进行逼近拟合,而不忽略具体的数据特点。本项目组中,在分析了有关数据后发现,待压缩的数据在某一段压缩空间内,往往不只是单一的成直线型变化趋势,数据还有其他形式的变化趋势,比如类似抛物线形式的,如果这时仍然只是采用直线趋势来拟合这一段数据,不仅压缩率不高而且误差很大。所以可以根据压缩点的动态变化趋势线型选择合适的压缩方式来增大压缩比。
[0004] 在传统的数据压缩中,往往只采用单一的压缩方式,一般忽略实时数据本身的特点,本项目的算法主要思想就是在对数据进行压缩时,充分考虑数据本身的变化趋势,并针对于此采用不同的方式进行压缩。

发明内容

[0005] 本发明所要解决的技术问题是如何在最短的时间实现监控系统中实时数据压缩的高压缩率,也就是:
[0006] 1)压缩比高,根据实时数据趋势的线型,采用自适应算法能发挥最大的压缩比;
[0007] 2)压缩速度快,算法简单,计算量少。
[0008] 为解决上述技术问题,本发明提供一种基于线型的过程数据有损压缩方法,其特征在于,包括以下步骤:
[0009] 1)定义三种变化的数据趋势线型:直线型、抛物线型、反抛物线型作为可选的拟合函数;
[0010] 2)根据实际数据的变化趋势,在运行时动态地调整拟合函数的表达式的形式。
[0011] 前述的基于线型的过程数据有损压缩算法,其特征在于:在所述步骤2)中,具体步骤为:
[0012] 21)对于每一个过程数据,分别使用三种变化趋势线型进行压缩,记录相关参数,直到三种变化趋势线型都不能继续压缩为止;
[0013] 22)保留压缩率最大的拟合函数作为最终的压缩结果,记录压缩点的时间点、拟合值、拟合曲线参数;
[0014] 23)进行新一轮的压缩。
[0015] 前述的基于线型的过程数据有损压缩算法,其特征在于:在所述步骤1)中,拟合函数为
[0016] yt=ut+εt (1)
[0017] 其中,yt是过程数据的值关于时间的函数,εt是噪音函数,ut=kta是关于时间t的函数,a是t的幂指数,k为t的系数,用于控制拟合曲线的形状,如果a>1则ut为抛物线,此时可以取a=2;如果1>a>0,则ut是反抛物线,此时可以取a=0.5;常规条件下取a=1则为ut=kt直线。
[0018] 前述的基于线型的过程数据有损压缩算法,其特征在于:在所述步骤21)中,[0019] 1)根据实际需要,分别取ut=kta中a=2、1、0.5,则对应抛物线、反抛物线、直线三种不同线型的拟合曲线,对于第1个数据点,用所有的曲线形状的拟合函数去拟合它,在正常情况下所有的曲线都能顺利地拟合,所有的拟合函数继续第二个数据点的压缩;
[0020] 2)第二个数据点到来时,将第一个数据点的通过的拟合函数去拟合第二个数据点,保证压缩误差在预定控制的范围内,如果拟合函数是直线函数则不能进行拟合,所以直线函数放弃,再依次用上一轮通过的点去拟合第二个数据点,将满足压缩误差条件的拟合函数继续保留,不满足的拟合函数舍去;
[0021] 3)按照上述过程依次拟合接下来的数据点,至只剩下最后一个满足压缩误差条件的拟合函数停止;
[0022] 4)用步骤3)仅剩下的拟合函数拟合下一个数据点,如果还能拟合就继续下一个点,否则就结束本轮压缩,记录相关参数以便还原,继续下一轮的压缩。
[0023] 本发明的原理是:
[0024] 在工业生产监控系统中,实时数据的变化一般有不同的趋势,所以本发明针对于这些不同的变化趋势采用相应拟合压缩方式。在分析了监控系统实时数据后,在一段待压缩的数据段内,大体上有如下几种变化趋势:直线型,抛物线型,反抛物线型。
[0025] 其中直线型代表平稳变化,即相邻的两个实时数据差值始终保持不变;抛物线型代表变化逐渐增大,即相邻的两个实时数据之间的差值越来越大;反抛物线型逐渐减小,即相邻的两个实时数据之间的差值越来越小。
[0026] 本发明所用的算法结构简单,实现的c语言函数简单,这样在程序运行实现起来,计算量比较少使得计算速度快,程序运行快。
[0027] 传统的算法针对以上三种情况只是采用相同的方式如直线型进行拟合,如果要求算法能够取得更好的压缩效果,必须能根据实际数据的变化趋势在运行时动态的调整拟合函数的表达式的形式。在本发明中,假设拟合函数是
[0028] yt=ut+εt (1)
[0029] 其中,yt是过程数据的值关于时间的函数,εt是噪音函数,ut=kta是关于时间t的函数(a是t的幂指数,k为t的系数),用于控制拟合曲线的形状,如果a>1则ut为抛物线,此时可以取a=2;如果1>a>0,则ut是反抛物线,此时可以取a=0.5;常规条件下取a=1则为ut=kt直线。
[0030] 1、在压缩时,对于直线型趋势的数据,本发明和传统算法一样都用直线来进行拟合;
[0031] 2、对于抛物线型ut=kt2,k>0的数据,假设成这一趋势的过程数据点为y1,y2,2
y3…yi…yn,且此时y1到yn符合函数式(1),所以yi的坐标(ti,kti+b)其中k>0,k、b为系数,如果用本发明的抛物线来拟合,则y1,y2,y3…yi…yn只需保存为一个事件即可,如果采用传统的算法,如直线来拟合,当在压缩完y1,y2,y3…yi点,下一个待压缩的点为yi,此时斜率
[0032]
[0033]
[0034] 所以 如此时在压缩完yi,直线的斜率已经不能再增大了,那么采用直线拟合必须进行新一轮的压缩,所以传统算法存储的时间数至少两个或者两个以上的事件。
[0035] 3、对于抛物线型ut=kt2,k<0的数据,假设成这一趋势的点为y1,y2,y3…yi…yn,且此时y1到yn符合函数式(1),所以yi的坐标(ti,kti2+b)其中k<0,那么如果用本发明的抛物线来拟合,则y1,y2,y3…yi…yn只需保存为一个事件即可,如果采用传统的算法,比如直线来拟合,当在压缩完y1,y2,y3…yi点,下一个待压缩的点为yi+1,此时斜率[0036]
[0037]
[0038] 所以 如此时在压缩完yi,直线的斜率已经不能再减小了,那么采用直线拟合必须进行新一轮的压缩,所以传统算法存储的时间数至少两个或者两个以上的事件。
[0039] 综上所述,本发明的基于线型的过程数据有损压缩算法不采用单一的拟合方式,而是综合三种拟合方式,所以存储的事件数比传统算法存储的事件数少,即压缩率比较大。

附图说明

[0040] 图1为本发明的数据压缩基本流程图;
[0041] 图2为本发明的解压缩程序流程图;
[0042] 图3为本发明的函数间的关系图;
[0043] 图4为本发明的算法示意图。

具体实施方式

[0044] 本发明的实际算法中为了控制压缩的阈值即压缩误差,仍然用上下两对曲线控制每一轮的压缩,如图4所示,以数据点1为起始点。在垂直方向上距离数据点1为E的地方有两个支点。每个元素对应两个连接支点和过程数据的直线或曲线,把这两个直线或曲线看成两扇虚拟的以支点为轴的“门”。具体包括以下步骤:
[0045] 1)根据实际需要,可以分别取a=2,1,0.5,则对应着三种不同线型的拟合曲线(抛物线、反抛物线、直线)。对于第一个过程数据点,用所有的曲线形状去拟合它,在正常情况下所有的曲线都能顺利地拟合,所有的拟合函数继续第二个数据点的压缩;
[0046] 2)第二个数据点到来时,将通过第一个数据点的拟合函数去拟合,保证压缩误差在预定控制的范围内。如图4,如果拟合函数是直线函数不能进行拟合了,所以直线函数放弃,再依次用上一轮通过的点去拟合第二点,将满足压缩误差条件的拟合函数继续保留,不满足的拟合函数舍去。
[0047] 3)按照上述过程依次拟合下面的点,至只剩下最后一个数据点满足压缩误差条件的拟合函数停止;
[0048] 4)用步骤3)仅剩下的拟合函数拟合下一个过程数据点,如果还能拟合就继续下一个点,否则就结束本轮压缩,记录相关参数以便还原,继续下一轮的压缩。
[0049] 在数据还原时,根据在压缩算法中每一轮的压缩所记录的事件的信息,包括压缩点的时间点、压缩点的拟合值、压缩点的拟合曲线参数,然后再利用函数将原来的点还原出来。
[0050] 以上已以较佳实施例公开了本发明,然其并非用以限制本发明,凡采用等同替换或者等效变换方式所获得的技术方案,均落在本发明的保护范围之内。