CN100435136C - 一种基于最小二乘线性拟合的实时数据压缩方法 - Google Patents
一种基于最小二乘线性拟合的实时数据压缩方法 Download PDFInfo
- Publication number
- CN100435136C CN100435136C CNB200610052068XA CN200610052068A CN100435136C CN 100435136 C CN100435136 C CN 100435136C CN B200610052068X A CNB200610052068X A CN B200610052068XA CN 200610052068 A CN200610052068 A CN 200610052068A CN 100435136 C CN100435136 C CN 100435136C
- Authority
- CN
- China
- Prior art keywords
- data
- data point
- compression
- internal memory
- buffer zone
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种基于最小二乘线性拟合的实时数据压缩方法。该方法针对工业现场采集的实时数据流量巨大并且存在大量噪声干扰和冗余数据等情况,首先通过对采自工业现场的实时数据进行预处理,然后将处理过的数据存入内存历史数据缓冲区,并且以保存在内存历史数据缓冲区中的数据点为样本动态构建最小二乘线性拟合直线,通过测量缓冲区中所有数据点到该拟合直线的距离并对比用户指定的最大压缩偏差来判断是否需要保留数据点。本发明方法完全满足工程应用的需求,能够在保留数据曲线特征的前提下大大减少需要保存的数据量,具有很高的实际应用价值。
Description
技术领域
本发明涉及一种基于最小二乘线性拟合的实时数据压缩方法,特别是适用处理采自工业现场处理大容量的实时数据。
背景技术
工业现场的实时数据往往具有总量巨大、数据流量突发性高等特点,对于一些典型的上层应用软件,比如实时数据库软件、先进控制软件等,如何保存为数众多实时数据以及如何快速访问这些保存的历史数据一直是个难题。考虑到数据总量过于庞大,如果简单地将所有的数据都保存下来,不仅占用大量的物理存储空间,同时也使得以后在检索特定时间的历史数据时效率大大下降。
传统意义上的数据压缩多指无损数据压缩,这些压缩方法可以保留数据的全部细节,同时能够在很大程度上减少数据所占用的物理存储空间。但是在后续的数据检索中,需要占用大量的处理器时间来将这些数据进行解压缩,导致检索历史数据时候的效率可能更加低下,因此在工业控制领域,此种方法一般不被采用。
考虑到采集自工业现场的实时数据都是基于时间序列的数据,这些数据具有时间属性,但是其时态关系不像时态数据库系统那样复杂,其时间是序列化的。实际上在现场应用中,那些在较小范围内变化的数据可能是用户不关心的,用户可能仅仅需要关注某些变化剧烈的拐点数据。数据压缩完全可以通过采用丢弃一些数据的方法来减少对存储资源的需求,只要这些被丢弃的数据在一定的误差范围内不影响过程历史数据的重构。目前此类压缩方法包括旋转门压缩法、杜邦矩形后向斜率法等。
在旋转门压缩法中,当系统接收到一个新数值时,只有当自上次记录数值以来的某一数值不在压缩范围之内,才会记录前一数值。这一偏差范围呈一个平行四边形,上、下两边分别是上次记录的数值和一个新的数值,宽等于规定的压缩偏差的两倍。通过斜率比较的方法可以确定一个点是否在误差形成的趋势区域中,从而确定是否是关键点,是否需要存储。实际应用和测试结果表明,旋转门压缩算法在处理多数现场实时数据时是有效的,可以达到比较高的压缩比,但是在处理那些趋势呈非线性变化位号数据时效果不是特别理想,尤其是对于那些在一段时间内如果出现变化率本身有较大波动的数据压缩效果不好。
发明内容
本发明的目的在于提供一种基于最小二乘线性拟合的实时数据压缩方法,它能在保证数据压缩效率的前提下最大限度地利用线性插值恢复数据,并且通过引入数据预处理机制来抑制现场的噪声干扰。
本发明的目的是这样实现的:基于最小二乘线性拟合的实时数据压缩方法,其特征是包括以下步骤:
1)压缩间隔过滤:将采自工业现场的当前数据点的时间戳和前一个采集数据点的时间戳比较,如果其中的时间间隔小于用户指定的最小阀值,则将当前数据点忽略;如果其中的时间间隔大于用户指定的最大阀值,则保留当前数据点不再进行后续的压缩;
2)数据预处理:对采自工业现场的数据点包含的实时值进行噪声选通和滤波处理,其中噪声的选通是通过指定一个最小的门槛值来确定的,并设定1%~10%的死区带,如果低于最小的门槛值则将实时值看做零,然后根据用户配置有选择地对指定数据点包含的实时值进行滤波处理,滤波计算公式如式(1):
y(k)=ay(k-1)+(1-a)x(k) (1)
式中y(k)是本次滤波后的结果值,y(k-1)是上一次滤波的输出结果,x(k)是本次采集尚未经过滤波的数据点包含的实时值,a是滤波系数并且满足0<a<1;
3)压缩偏移过滤:系统将经过步骤1)和步骤2)处理后的数据点保存到内存历史数据缓冲区,如果此时内存历史数据缓冲区中的数据点个数等于或少于两个,则不需要执行下一步的偏移过滤,如果内存历史数据缓冲区里的数据点个数多于两个则需要以目前在内存历史数据缓冲区中的所有数据点为样本,以最小二乘线性拟合的方法构建起一条拟合直线y=a0+a1x,其中,
然后分别测量每个数据点到该拟合直线的距离,一旦检测到有一个数据点的距离大于用户配置的最大压缩偏移量就保留该数据点,如果该数据点正好是起始数据点,则保留起始数据点之后的一个数据点;
4)利用保留在内存历史数据缓冲区的数据点作为下一次数据压缩的起始数据点,继续在内存历史数据缓冲区中对剩余的数据点进行压缩偏移过滤处理,一直到剩余的数据点构建出来的拟合直线和所有的数据点的距离都小于用户配置的最大压缩偏移量为止。
本发明的有益效果在于:
本发明方法在处理实时数据压缩的时候采用了利用最小二乘线性拟合的方法动态构建拟合直线,可以克服类似旋转门算法中仅仅使用前后两个点构建直线的缺陷,这样应该可以在以后的数据恢复最大限度上利用线性插值来取得数据,能够在保留数据曲线特征的前提下大大减少需要保存的数据量,具有很高的实际应用价值。
附图说明
图1为本发明方法的流程图;
图2为某个位号的原始值曲线;
图3为基于本发明数据压缩方法得到的效果图;
图4为旋转门压缩方法得到的效果图。
具体实施方式
以下结合附图对本发明作进一步的说明。
根据图1所示,首先取得采自工业现场的数据点,每个数据点都有一个时间戳表明该数据点在采集时刻的确切时间。第一步首先对这个点进行压缩间隔过滤,其公式为:
Δt=t(k)-t(k-1)
式中Δt是时间间隔,t(k)和t(k-1)分别是本次采集的数据点的时间戳和上一次采样的数据点的时间戳,如果计算出来的Δt小于用户设定的最小阀值则该数据点将被忽略,继续处理下一个采集上来的数据点。而如果Δt大于用户设定的最大阀值则该数据点将立刻被保存到数据存档文件中,同时在内存历史数据缓冲区中所有的数据点都被丢弃,该数据点同时被写入内存历史数据缓冲区作为下一轮压缩的起始数据点。
接着对通过压缩间隔过滤的数据点包含的实时值进行预处理,预处理包括噪声选通和数据滤波。
其中噪声选通主要是为了过滤仪表的随机误差对测量值的干扰,首先将数据点包含的实时值和用户指定的门槛值进行对比,如果发现该值小于门槛值则认为该值实际上是零,则直接将其置为零处理。为了减少在此门槛值附近的波动,需要设定一定范围的死区带,一般可以取1%~10%。其中死区判断的公式可以表示如下:
Δp=[x(k)-x(k-1)]/(Xh-Xl)
式中Δp是死区,x(k)和x(k-1)分别是当前时刻的实时值和上一次的实时值,Xh和Xl分别是上限和下限。如果计算发现Δp的值小于用户指定的死区范围,则认为数据的变化在死区范围内,可以忽略该数据点。
接着可以根据用户配置对指定数据点进行滤波处理以进一步减少噪声对数据的影响提高压缩效率,一般常用的是惯性滤波,其计算公式如下:
y(k)=ay(k-1)+(1-a)x(k)
式中y(k)是本次滤波后的结果值,y(k-1)是上一次滤波的输出结果,x(k)是本次采集来尚未经过滤波的实时值,式中a是滤波系数并且满足0<a<1。当a→1的时候则惯性越大,即越接近上一次的处理后的值,当a→0的时候则惯性越小,即越接近本次采集的实时值。
一般而言,取a的值在0.2以下,如果取得很大可能导致惯性过大,即使后面的值变化很快也很难立刻显现出来。
在经过数据预处理以后,就可以对数据点进行压缩偏移的测试,其具体的方法如下:
首先考察内存历史数据缓冲区中的数据点个数,如果数据点个数小于或等于二则直接返回,不再继续测试。如果发现数量大于二,则利用最小二乘线性拟合方法构建一条拟合直线y=a0+a1x,其中,
利用以上公式可以迭代计算出一条拟合直线,然后就可以计算各个数据点到该曲线的距离了,假设有一个数据点其坐标为(x0,y0),距离可以根据以下公式计算出来:
式中的a1和a0就是拟合直线中的参数,x0和y0是任一数据点的时间戳和实时值,反映到数据压缩中,x坐标就是时间轴,y坐标就是经过预处理以后的实时值。
利用以上公式能够计算出在内存历史数据缓冲区中每一个数据点到该拟合直线的距离,然后和用户所设置的最大压缩偏移进行对比,一旦发现第一个距离超过最大压缩偏移的数据点,即可以停止对比,然后将该数据点写入到存档文件,清空当前的内存历史数据缓冲区并且将该数据点作为下一次压缩的起始数据点重新写入到缓冲区。如果对比了内存历史数据缓冲区中所有的数据点,发现其与拟合直线的距离均小于用户所设置的最大压缩偏移则认为目前所有的数据点均可以通过插值方式得到恢复,因此继续进行下一轮的压缩,新加入的数据点被作为样本保留在内存历史数据缓冲区中以供下一次计算使用。
当执行完以上步骤后,将继续考察下一个采自工业现场的数据点,重复上述过程。
为了更好说明本发明的方法在数据压缩率方面的优势,采用仿真的方式对一段数据利用本发明的方法和旋转门算法分别进行压缩,然后进行比较。
本次仿真中总共使用了一个测量点的600个数据点,由于是仿真所以并未涉及到压缩时间间隔的过滤,旋转门压缩方法和本发明的方法所采用的最大压缩偏移均是10%,即测量点上下限制之差的十分之一。
在图2中给出了该测量点未经过压缩的原始数据曲线,可以发现未经过压缩处理的数据相当的庞大,曲线形状较好地表现了测量点数据的变化趋势。图中的横向坐标轴是时间轴,其含义为该数据点的时间戳,纵向轴是数值轴,表明该数据点的实时值,图中的圆点表示采集到的数据点。
图3和图4分别给出了基于本发明的数据压缩方法得到的效果和应用旋转门压缩方法得到的效果,进行对比很容易发现图4中比图3中的圆点要少很多,也就是说基于同样的最大压缩偏移量,本发明的数据压缩方法能够更大限度地压缩数据,在保持曲线基本形态的基础上需要保留的数据点比旋转门方法要少的多,有更高的压缩率。
Claims (2)
1.一种基于最小二乘线性拟合的实时数据压缩方法,其特征是包括以下步骤:
1)压缩间隔过滤:将采自工业现场的当前数据点的时间戳和前一个采集数据点的时间戳比较,如果其中的时间间隔小于用户指定的最小阀值,则将当前数据点忽略;如果其中的时间间隔大于用户指定的最大阀值,则保留当前数据点不再进行后续的压缩;
2)数据预处理:对采自工业现场的数据点包含的实时值进行噪声选通和滤波处理,其中噪声的选通是通过指定一个最小的门槛值来确定的,并设定1%~10%的死区带,如果低于最小的门槛值则将实时值看做零,然后根据用户配置有选择地对指定数据点包含的实时值进行滤波处理,滤波计算公式如式(1):
y(k)=ay(k-1)+(1-a)x(k) (1)
式中y(k)是本次滤波后的结果值,y(k-1)是上一次滤波的输出结果,x(k)是本次采集尚未经过滤波的数据点包含的实时值,a是滤波系数并且满足0<a<1;
3)压缩偏移过滤:系统将经过步骤1)和步骤2)处理后的数据点保存到内存历史数据缓冲区,如果此时内存历史数据缓冲区中的数据点个数等于或少于两个,则不需要执行下一步的偏移过滤,如果内存历史数据缓冲区里的数据点个数多于两个则需要以目前在内存历史数据缓冲区中的所有数据点为样本,以最小二乘线性拟合的方法构建起一条拟合直线y=a0+a1x,其中,
然后分别测量每个数据点到该拟合直线的距离,一旦检测到有一个数据点的距离大于用户配置的最大压缩偏移量就保留该数据点,如果该数据点正好是起始数据点,则保留起始数据点之后的一个数据点;
4)利用保留在内存历史数据缓冲区的数据点作为下一次数据压缩的起始数据点,继续在内存历史数据缓冲区中对剩余的数据点进行压缩偏移过滤处理,一直到剩余的数据点构建出来的拟合直线和所有的数据点的距离都小于用户配置的最大压缩偏移量为止。
2.根据权利1所述的基于最小二乘线性拟合的实时数据压缩方法,其特征是步骤3)中所说的每个数据点到该拟合直线的距离的计算公式如式(2):
式中的a1和a0就是拟合直线中的参数,x0和y0是任一数据点的时间戳和实时值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200610052068XA CN100435136C (zh) | 2006-06-21 | 2006-06-21 | 一种基于最小二乘线性拟合的实时数据压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200610052068XA CN100435136C (zh) | 2006-06-21 | 2006-06-21 | 一种基于最小二乘线性拟合的实时数据压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1866241A CN1866241A (zh) | 2006-11-22 |
CN100435136C true CN100435136C (zh) | 2008-11-19 |
Family
ID=37425263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200610052068XA Expired - Fee Related CN100435136C (zh) | 2006-06-21 | 2006-06-21 | 一种基于最小二乘线性拟合的实时数据压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100435136C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102611454A (zh) * | 2012-01-29 | 2012-07-25 | 上海锅炉厂有限公司 | 一种实时历史数据动态无损压缩方法 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101771398B (zh) * | 2008-12-29 | 2013-11-06 | 上海申瑞继保电气有限公司 | 遥测数据的突变四边形滤波方法 |
CN101902226B (zh) * | 2009-05-25 | 2014-03-12 | 北京庚顿数据科技有限公司 | 数据压缩方法 |
CN102811062B (zh) * | 2010-01-19 | 2015-05-27 | 北京四方继保自动化股份有限公司 | 电力系统广域测量系统高密度时间序列数据的曲线稀疏处理方法 |
CN101807925B (zh) * | 2010-02-08 | 2013-01-30 | 江苏瑞中数据股份有限公司 | 一种基于数值排序线性拟合的历史数据压缩方法 |
CN102098058B (zh) * | 2010-11-12 | 2013-03-06 | 中南大学 | 时序数据实时高效线性压缩与解压缩方法 |
CN102175934A (zh) * | 2011-01-13 | 2011-09-07 | 上海自动化仪表股份有限公司 | 录波模块的数据采集方法 |
CN102298630B (zh) * | 2011-08-30 | 2013-04-10 | 国电南瑞科技股份有限公司 | 一种基于线型的过程数据有损压缩方法 |
CN102437854B (zh) * | 2011-11-03 | 2014-03-26 | 电子科技大学 | 一种高压缩比的工业实时数据压缩方法 |
CN102664635B (zh) * | 2012-03-06 | 2015-07-29 | 华中科技大学 | 一种精度可控的自适应数据压缩方法 |
CN102801426B (zh) * | 2012-06-08 | 2015-04-22 | 深圳信息职业技术学院 | 一种时序数据拟合及压缩方法 |
CN104331495B (zh) * | 2014-11-19 | 2018-07-06 | 北京国电软通江苏科技有限公司 | 一种数据压缩方法 |
CN105808708A (zh) * | 2016-03-04 | 2016-07-27 | 广东轻工职业技术学院 | 一种快速数据压缩方法 |
CN109143974B (zh) * | 2017-06-15 | 2021-10-15 | 沈阳高精数控智能技术股份有限公司 | 一种应用于数控机床监控领域的sdt改进方法 |
CN110875743B (zh) * | 2018-08-30 | 2023-04-28 | 上海川源信息科技有限公司 | 基于抽样猜测的数据压缩方法 |
CN110334047B (zh) * | 2019-06-21 | 2023-01-17 | 西门子(上海)电气传动设备有限公司 | 采集设备数据的系统及方法、变频器及计算机可读介质 |
CN111641632A (zh) * | 2020-05-28 | 2020-09-08 | 青岛铁木真软件技术有限公司 | 数据压缩方法、系统、设备和存储介质 |
CN113258934A (zh) * | 2021-06-24 | 2021-08-13 | 北京海兰信数据科技股份有限公司 | 一种数据压缩方法、系统及设备 |
CN113849505A (zh) * | 2021-09-14 | 2021-12-28 | 联想(北京)有限公司 | 数据压缩方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0366225A (ja) * | 1989-08-05 | 1991-03-20 | Matsushita Electric Ind Co Ltd | 音楽信号圧縮方法 |
FR2795275A1 (fr) * | 1999-06-15 | 2000-12-22 | Canon Kk | Controle de debit d'un systeme de compression de donnees numeriques avec pertes |
CN1396769A (zh) * | 2001-07-17 | 2003-02-12 | 时代新技术产业有限公司 | 运动图像信息的压缩方法及其系统 |
US6760487B1 (en) * | 1999-04-22 | 2004-07-06 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Estimated spectrum adaptive postfilter and the iterative prepost filtering algirighms |
CN1786939A (zh) * | 2005-11-10 | 2006-06-14 | 浙江中控技术有限公司 | 实时数据压缩方法 |
-
2006
- 2006-06-21 CN CNB200610052068XA patent/CN100435136C/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0366225A (ja) * | 1989-08-05 | 1991-03-20 | Matsushita Electric Ind Co Ltd | 音楽信号圧縮方法 |
US6760487B1 (en) * | 1999-04-22 | 2004-07-06 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Estimated spectrum adaptive postfilter and the iterative prepost filtering algirighms |
FR2795275A1 (fr) * | 1999-06-15 | 2000-12-22 | Canon Kk | Controle de debit d'un systeme de compression de donnees numeriques avec pertes |
CN1396769A (zh) * | 2001-07-17 | 2003-02-12 | 时代新技术产业有限公司 | 运动图像信息的压缩方法及其系统 |
CN1786939A (zh) * | 2005-11-10 | 2006-06-14 | 浙江中控技术有限公司 | 实时数据压缩方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102611454A (zh) * | 2012-01-29 | 2012-07-25 | 上海锅炉厂有限公司 | 一种实时历史数据动态无损压缩方法 |
CN102611454B (zh) * | 2012-01-29 | 2014-12-24 | 上海锅炉厂有限公司 | 一种实时历史数据动态无损压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1866241A (zh) | 2006-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100435136C (zh) | 一种基于最小二乘线性拟合的实时数据压缩方法 | |
CN102611454B (zh) | 一种实时历史数据动态无损压缩方法 | |
CN102098058B (zh) | 时序数据实时高效线性压缩与解压缩方法 | |
CN107977729B (zh) | 多变量标准化干旱指数设计方法 | |
CN102437854B (zh) | 一种高压缩比的工业实时数据压缩方法 | |
CN103824129A (zh) | 一种基于动态阈值的高铁电能质量异常状态预警方法 | |
CN102510287A (zh) | 一种工业实时数据的快速压缩方法 | |
CN104200620A (zh) | 建筑健康远程监测系统及方法 | |
CN117608499B (zh) | 一种基于物联网的智慧交通数据优化存储方法 | |
CN105353695A (zh) | 一种反馈型事件驱动式模拟信号变频采集电路和集采方法 | |
CN101807925A (zh) | 一种基于数值排序线性拟合的历史数据压缩方法 | |
CN205193523U (zh) | 一种反馈型事件驱动式模拟信号变频采集电路 | |
CN104865860B (zh) | 风电机组状态监测系统的采样、存储与查询方法及装置 | |
CN110455563A (zh) | 基于实测应力谱的公路钢桥疲劳分析方法 | |
CN114900191A (zh) | 一种对于旋转门算法压缩差动保护数据的改进算法 | |
CN103499804B (zh) | 一种电能计量装置异常分析系统及其分析方法 | |
CN101078920A (zh) | 油井动态节能装置 | |
CN114169715A (zh) | 节能量数据采集方法、系统及计算机存储介质 | |
CN107765235A (zh) | 基于数字滤波、数字包络提取的超声波测距算法 | |
CN207212646U (zh) | 一种智能空压机节能装置 | |
CN103136202A (zh) | 实时数据库中动态预测有损压缩及解压的方法 | |
CN102298630B (zh) | 一种基于线型的过程数据有损压缩方法 | |
CN101902226B (zh) | 数据压缩方法 | |
CN115270843A (zh) | 一种浮式平台往复压缩机的故障诊断方法及装置 | |
CN105955673A (zh) | 一种能耗监测数据的过滤方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081119 Termination date: 20150621 |
|
EXPY | Termination of patent right or utility model |