一种基于数值排序线性拟合的历史数据压缩方法

文档序号:7518937阅读:274来源:国知局
专利名称:一种基于数值排序线性拟合的历史数据压缩方法
技术领域
本发明涉及一种基于数值排序线性拟合的历史数据压缩方法,特别适用于处理采集自工业现场的大容量实时数据。
背景技术
对于工业现场环境产生的数据,往往具有数量巨大,采集频度高,持续时间长等特 点。对这些大批量采样点数据的处理,特别是如何对采样点的实时数据进行即时存储并且 如何对这些存储的历史数据进行快速高效的访问和分析,就成为实现实时数据库技术中的 重点和难点。对于这些大量的存储数据,如果只是简单的把所有的原始数据直接存储下来,一 方面大量的数据需要在很短时间内存储对硬件存储介质的性能要求非常高,另一方面数据 的保存需要占用大量的存储资源,而且也使得之后历史数据检索的效率大大降低。所以对 于实时数据库系统来说,历史数据的压缩技术就成为其最重要的核心技术之一。一般的数据无损压缩技术可以存储所有原始数据的细节,但在数据存储和后续的 历史数据检索过程中,需要额外占用大量的处理器时间来进行数据块的压缩和解压缩处 理,则使得系统的整体效率更为降低。对于实时数据库来说,不仅需要在有限的物理存储空 间中存储大量的历史数据,同时还需要考虑数据能够被快速的存储和访问。这样,一般的无 损压缩方法则不能适用于实时数据库系统。实时数据库在实际的工业现场运用中,那些长时间比较稳定,仅在微小的数据区 间范围内变化的数据通常用户可能并不非常关心,一般情况下用户更加关心的是数据的异 常振动、异常跳跃、超限等情况。这样,实时数据库的数据压缩方法就可以采用有损压缩方 式,通过各种数值拟合方法,丢弃那些在一定的误差精度范围内的数据。在数据检索时,能 够通过重构方法来重新还原出所有的历史数据。现在比较流行的有损压缩算法包括矩形波串-后向斜率法、旋转门压缩算法和 PLOT算法等等。其中使用得比较多的是旋转门压缩算法,又称平行四边形法,总体来说,它 是一种直线趋势化压缩算法,其实质是通过一条由起点和终点确定的直线拟合一系列连续 的数据点。对于给定的数据,在预先规定的最大允许误差范围(门限或阀值)内,通过该算 法能够找出尽可能最长的直线趋势,最后通过两个点即可确定该趋势,中间部分的点全部 丢弃,从而达到数据压缩的目的。旋转门压缩算法在处理大多数实时数据通道时都是比较 高效的,特别是对于稳态环境(且无干扰)可以达到非常高的压缩比。但旋转门压缩算法 的缺点也是非常明显的,主要就是噪点、野点、噪声干扰(传感器测试误差)对算法影响较 大,压缩处理效果很不理想;而对于那些短时非线性趋势数据(振动数据,非稳态数据),则 基本上达不到压缩的目的。

发明内容
本发明要解决的问题是对于工业现场环境产生的数据,需要进行即时存储并且对存储的历史数据进行快速高效的访问和分析,要在有限的物理存储空间中存储大量的历史数据,同时还需要考虑数据能够被快速的存储和访问,现有的数据压缩方法不能满足这 些要求,易受噪点、野点、噪声干扰,压缩效果不够理想。本发明的技术方案为一种基于数值排序线性拟合的历史数据压缩方法,包括以 下步骤1)对获取的历史数据按值的大小排序从历史数据缓冲队列获取历史数据,进行 排序处理,把历史数据按照值的大小从小到大进行排序;2)值域线性拟合对于排好顺序的历史数据,以其位序为横坐标,值为纵坐标建 立值域,按照排序顺序对历史数据依序进行线性拟合处理,线性拟合处理最终获得两个点, 这两个点连接的直线为拟合直线,通过拟合直线来拟合排序在这两个点之间的所有点,从 而达到数据压缩的目的;线性拟合处理中,点到已获得的拟合直线的偏差必须在设定的压 缩精度范围内,如所处理的点到拟合直线的偏差在设定的压缩精度范围外,则以这一点为 起点开始新的线性拟合处理;3)按域存储对线性拟合处理的数据进行域分隔,产生标识域、时间域和数据值 域三部分,标识出某时间点的值是否被压缩,为拟合还原提供依据;4)数据处理完成判断检查获取的历史数据是否都已完成压缩过程,如果完成则 获取新的历史数据,执行步骤1)开始下一轮压缩,没有完成则回到步骤2)。优选的,历史数据排序前进行预处理11)获取当前历史缓冲队列中存储的缓冲数据量;12)缓冲数据量判断设定一次处理数据量的限值,对从历史数据缓冲队列获取 的历史数据量与所述限值进行比较,超过限值,则对获取的历史数据按值的大小排序,否则 继续从历史数据缓冲队列获取历史数据。值域线性拟合具体为21)设置起点和待压点并保存起点对于排好顺序的历史数据的值,按照排序顺 序依序进行处理,按位序取出待处理的第一个点作为拟合起点(Xl,yi),下一点作为待压点 (xn,yn),如果本步骤是第一次执行则存储起点Upy1);22)求出待压点的门限点和门限点斜率范围设置压缩精度d%,求出待压点(xn, yn)的两个门限点(xn,yn±|ynd% I),所述门限点是指点值按照压缩精度确定的可近似范围 边界,可近似范围为[yn_|ynd% ,yn+|ynd% | ],然后分别求出从拟合起点(Xl,yi)到两个门 限点所确定直线的斜率范围的最小值kn min和最大值kn max min,max] =, O^MZA]
Xn X1Xn X\通过[kn min, kn max]确定本次拟合过程的斜率判断范围[kmin,kmax][kmin, kmax] = [kn min, kn max]23)数据量判断按位序检查待压点是否还存在下一点,如果没有下一点,则转到 步骤27)保存待压点;如果存在下一点,则转到步骤24);24)获得判断点并求出起点到判断点的斜率按位序取出待压点的下一点作为判 断点(χη+1,yn+1),求出从拟合起点到判断点所确定直线的斜率kn+1
<formula>formula see original document page 6</formula>25)斜率范围判断检查kn+1是否在[kmin,kmax]范围内,在此范围内表示待压点可 以被压缩,转到步骤26);不在此范围内,表示待压点不能被压缩,需要开始新的压缩过程, 转到步骤27);26)丢弃当前待压点并重新设置新待压点丢弃待压点(xn,yn),把判断点(xn+1, yn+1)设置为新待压点,求出新待压点的两个门限点(χη+1,yn+1 士 |yn+1d% |),再分别求出从起 点到两个门限点所确定直线的斜率范围的最小值kn+1min和最大值kn+1maX <formula>formula see original document page 6</formula>更新斜率判断范围[kmin,kmax][kmin, kmax] = [max (kmin, kn+1min), min (kmax, kn+1max)]新待压点设置好后,继续步骤23);27)保存待压点存储当前的待压点(xn,yn),本次压缩过程结束,并把缓存中待处 理的第一个点设置为新一轮压缩的拟合起点,转到步骤21)进行下一拟合过程的处理。按域存储具体为将线性拟合的各种数据分为标识域、时间域、数据值域三个部分 存储,标识域存储压缩标识,压缩标识按位序来标识值域中在该位序的历史数据是否被压 缩,时间域存储每一个历史数据本身所对应的时间;数据值域存储线性拟合中与拟合处理 相关的数据。本发明的目的在于提供一种基于数值排序线性拟合的历史数据压缩方法,它能在 保证数据压缩效率的前提下在设定的数据精度范围内利用线性拟合恢复数据,并且能够隔 离测量噪声干扰,从而减小测量误差对压缩算法的影响。本发明的有益效果在于本发明在处理数据压缩时采用了数据按值排序的方法,对于稳态或线性数据经过 排序后可以使得线性趋势更加明显,而且可以达到分隔噪点的目的;对于非线性数据或非 稳态数据经过排序后,绝大多数会体现出正态分布的特点,即在某个较小的值区间内集中 绝大多数的值。这样,通过排序使得数据规则化,适合于压缩。压缩方式采用线性拟合方法, 通过两个点连接的直线来拟合位序在这两个点之间的所有点,并且这些点到该直线的偏差 控制在设定的压缩精度范围内,从而达到有效的数据压缩的目的,由于线性拟合压缩方法 处理过程简单,而且可以获得较高的压缩比,所以是一种高效的压缩方法。通过本发明的压 缩方法,基本解决了非稳态数据和噪点对压缩效率的影响,具有较高的实际应用价值。


图1是本发明方法的流程图。图2是本发明方法中的线性拟合压缩方法的流程图。图3是本发明方法中的线性拟合压缩方法的步骤示意图。图4是稳态值采样点的示意图。图5是稳态值排序后进行线性拟合的示意图。
图6是稳态值拟合还原的示意图。
图7是稳态值旋转门压缩的示意图。图8是非线性值采样点的示意图。图9是非线性值排序后进行线性拟合的示意图。图10是非线性值拟合还原的示意图。图11是非线性值旋转门压缩的示意图。图12是非稳态值采样点的示意图。图13是非稳态值排序后进行线性拟合的示意图。图14是非稳态值拟合还原的示意图。图15是非稳态值旋转门压缩的示意图。图16是振动值采样点的示意图。图17是振动值排序后进行线性拟合的示意图。图18是振动值拟合还原的示意图。图19是振动值旋转门压缩的示意图。
具体实施例方式以下结合附图对本发明做进一步说明。图1和图2是本发明基于数值排序线性拟合的历史数据压缩方法的流程图。包括 以下步骤1)对获取的历史数据按值的大小排序从历史数据缓冲队列获取历史数据,进行 排序处理,把历史数据按照值的大小从小到大进行排序;2)值域线性拟合对于排好顺序的历史数据,以其位序为横坐标,值为纵坐标建 立值域,按照排序顺序对历史数据依序进行线性拟合处理,线性拟合处理最终获得两个点, 这两个点连接的直线为拟合直线,通过拟合直线来拟合排序在这两个点之间的所有点,从 而达到数据压缩的目的;线性拟合处理中,点到已获得的拟合直线的偏差必须在设定的压 缩精度范围内,如所处理的点到拟合直线的偏差在设定的压缩精度范围外,则以这一点为 起点开始新的线性拟合处理;3)按域存储对线性拟合处理的数据进行域分隔,产生标识域、时间域和数据值 域三部分,标识出某时间点的值是否被压缩,为拟合还原提供依据;4)数据处理完成判断检查获取的历史数据是否都已完成压缩过程,如果完成则 获取新的历史数据,执行步骤1)开始下一轮压缩,没有完成则回到步骤2)。其中,步骤1)优选进行拟合压缩预处理11)获取当前历史缓冲队列中存储的缓冲数据量;12)缓冲数据量判断设定一次处理数据量的限值,对从历史数据缓冲队列获取 的历史数据量与所述限值进行比较,超过限值,则对获取的历史数据按值的大小排序,否则 继续从历史数据缓冲队列获取历史数据。下面具体介绍本发明的值域线性拟合步骤,如图2所示值域线性拟合具体为21)设置起点和待压点并保存起点对于排好顺序的历史数据的值,按照排序顺序依序进行处理,按位序取出待处理的第一个点作为拟合起点(X1, Y1),下一点作为待压点(xn,yn),如果本步骤是第一次执行则存储起点Upy1);22)求出待压点的门限点和门限点斜率范围设置压缩精度d%,求出待压点(xn, yn)的两个门限点(xn,yn±|ynd% I),所述门限点是指点值按照压缩精度确定的可近似范围 边界,可近似范围为[yn_|ynd% ,yn+|ynd% | ],然后分别求出从拟合起点(Xl,yi)到两个门 限点所确定直线的斜率范围的最小值kn min和最大值knmax
<formula>formula see original document page 8</formula>通过[kn min, knmax]确定本次拟合过程的斜率判断范围[kmin,kmax][kmin, kmax] = [kn min, kn max]23)数据量判断按位序检查待压点是否还存在下一点,如果没有下一点,则转到 步骤27)保存待压点;如果存在下一点,则转到步骤24);24)获得判断点并求出起点到判断点的斜率按位序取出待压点的下一点作为判 断点(xn+1,yn+1),求出从拟合起点到判断点所确定直线的斜率kn+1
<formula>formula see original document page 8</formula>25)斜率范围判断检查kn+1是否在[kmin,kmax]范围内,在此范围内表示待压点可 以被压缩,转到步骤26);不在此范围内,表示待压点不能被压缩,需要开始新的压缩过程, 转到步骤27);26)丢弃当前待压点并重新设置新待压点丢弃待压点(xn,yn),把判断点(xn+1, yn+1)设置为新待压点,求出新待压点的两个门限点(χη+1,yn+1 士 |yn+1d% |),再分别求出从起 点到两个门限点所确定直线的斜率范围的最小值kn+1min和最大值kn+1maX
<formula>formula see original document page 8</formula>更新斜率判断范围[kmin,kmax][kmin, kmax] = [max (kmin, kn+1min), min (kmax, kn+1max)]新待压点设置好后,继续步骤23);27)保存待压点存储当前的待压点(xn,yn),本次压缩过程结束,并把缓存中待处 理的第一个点设置为新一轮压缩的拟合起点,转到步骤21)进行下一拟合过程的处理。图3为值域线性拟合算法的实例模拟示意图。首先设置起点和待压点并保存起 点。按位序取出待处理的第一个点S设置为起点,下一点A1设置为待压点,把起点S保存 到结果队列中。然后,求出待压点的门限点和门限点斜率范围。两个门限点Ah和Ai按照设 置的压缩精度通过下式确定Ah= (xn, yn+|ynd% |)Al= (xn, yn-|ynd% |)由起点到两个门限点确定的直线的斜率通过下式得到<formula>formula see original document page 8</formula>
通过下式得到斜率判断范围[kmin,kmax][kmin, kmax] = [kn min, kn max]然后,进行数据量判断。检查是否还存在下一点,如果没有下一点,表示处理过程 结束,保存当前的待压点到结果队列中;如果存在下一点,则执行获得判断点并求出起点到 判断点的斜率。取出缓冲中当前待处理的点C作为判断点,用于检查待压点A1是否可以被 压缩,通过下式求出起点S到判断点C的斜率
<formula>formula see original document page 9</formula>然后,斜率范围判断。检查kn+1是否在[kmin,kmax]范围内,不在此范围内,表示待压 点A1不能被压缩,需要开始新的压缩过程,本次压缩过程结束,则执行保存待压点A1 ;如果 在此范围内,表示待压点A1可以被压缩,执行丢弃当前待压点并把判断点设置为待压点。丢弃待压点A,把判断点C设置为新的待压点A’,通过下式求出待压点的两个门限
<formula>formula see original document page 9</formula>Ah= (xn+1,yn+1+|yn+1d% |)Al= (xn+1,yn+1-|yn+1d% |)再通过下式分别求出从起点到两个门限点所确定直线的斜率范围的最大值和最 小值‘丨—=
太《+1 — x\^max= +通过下式更新斜率判断范围[kmin,kmax ][kmin, kmax] = [max (kmin, kn+1min), min (kmax, kn+1max)]继续执行数据量判断,进行后续点的处理,直到线性拟合步骤全部结束。线性拟合步骤结束,进行按域存储。将线性拟合的各种数据分为标识域、时间域、 数据值域三个部分存储,标识域存储压缩标识,压缩标识按位序来标识值域中在该位序的 历史数据是否被压缩,时间域存储每一个历史数据本身所对应的时间;数据值域存储线性 拟合中与拟合处理相关的数据,所述的相关数据包括设定的压缩精度,拟合起点、待压点的 值,拟合直线的数据等,例如,步骤4)获得的压缩后的数据就是数据值域的部分。进行数据处理完成判断,检查历史缓冲队列中的数据是否已经全部处理完成,如 果完成则获取新的历史数据,执行步骤1)开始下一轮压缩,没有完成则回到步骤2)。本发明方法压缩数据后,需要还原时,按照标识域将被压缩的点还原,利用数据值 域存储的数据,通过与压缩时线性拟合逆向的方式,还原出被压缩的点,再根据时间域将所 有点按时间重新排列,还原出原始历史数据。为了更好的说明本发明的方法在数据压缩率方面的优势,采用仿真方式对各种类 型的数据利用本发明的方法进行压缩,并与旋转门压缩算法进行比较。图4 7是稳态值仿真实例,使用了一个测量点的200点实时数据。图4给出了 未经过压缩的原始数据曲线。图5使用了本发明的数值排序线性拟合的历史数据压缩方法 对值域拟合的结果,拟合后的曲线横坐标为值排序的位序,图中的黑点表示压缩过程中保存的点。图6给出了通过本压缩方法压缩的数据经过还原的数据曲线,可以看出本压缩方 法保留了绝大部分原始数据的细节。图7为使用旋转门压缩算法的还原后的曲线图,可以 看出数据前半部分的细节基本都被压缩,而无法还原。经过该仿真测试,可以看出对于稳态 值的处理本发明的数值排序线性拟合的历史数据压缩方法不仅可以获得较大的压缩比,而 且与旋转门压缩算法相比可以保留数据的绝大多数细节,得到的数据更加真实。图8 11是非线性值仿真实例,使用了一个测量点的1000点实时数据。图8给 出了原始的数据曲线。图9使用了本发明的压缩方法,图中的黑点表示压缩过程中保存的 点。图10是本发明的压缩数据还原的数据曲线,图11是使用旋转门压缩方法的还原数据 曲线。可以看出,在处理该非线性值拟合过程中,本压缩方法的压缩比要比旋转门压缩算法 高得多,而且还原曲线也相当准确。图12 15是非稳态值仿真实例,使用了一个测量点的500点实时数据。图12给 出了原始的数据曲线。图13使用了本发明的压缩方法,图中的黑点表示压缩过程中保存的 点。图14是本发明的压缩数据还原的数据曲线,图15是使用旋转门压缩方法的还原数据曲 线。可以看出,对非稳态值旋转门压缩方法基本没有压缩效果,而使用本发明的压缩方法, 在确保数据精度的情况下,仍然获得了较高的压缩比。图16 19是振动值仿真实例,使用了一个测量点的500点实时数据。类似非稳态仿真,旋转门压缩方法基本没有压缩效果,而使用本发明的压缩方法,仍然可以获得一定 压缩比。通过以上的仿真实验,说明本发明的数值排序线性拟合的历史数据压缩方法在获 得较高数据压缩比前提下,不仅确保数据了还原精度,而且还能保留绝大部分数据的微变 细节。本发明的压缩方法对于绝大多数非稳态数据的处理,基本可以获得较好的效果,而且 随着数据量的增大,将趋向更好的压缩效果。
权利要求
一种基于数值排序线性拟合的历史数据压缩方法,其特征是包括以下步骤1)对获取的历史数据按值的大小排序从历史数据缓冲队列获取历史数据,进行排序处理,把历史数据按照值的大小从小到大进行排序;2)值域线性拟合对于排好顺序的历史数据,以其位序为横坐标,值为纵坐标建立值域,按照排序顺序对历史数据依序进行线性拟合处理,线性拟合处理最终获得两个点,这两个点连接的直线为拟合直线,通过拟合直线来拟合排序在这两个点之间的所有点,从而达到数据压缩的目的;线性拟合处理中,点到已获得的拟合直线的偏差必须在设定的压缩精度范围内,如所处理的点到拟合直线的偏差在设定的压缩精度范围外,则以这一点为起点开始新的线性拟合处理;3)按域存储对线性拟合处理的数据进行域分隔,产生标识域、时间域和数据值域三部分,标识出某时间点的值是否被压缩,为拟合还原提供依据;4)数据处理完成判断检查获取的历史数据是否都已完成压缩过程,如果完成则获取新的历史数据,执行步骤1)开始下一轮压缩,没有完成则回到步骤2)。
2.根据权利要求1所述的一种基于数值排序线性拟合的历史数据压缩方法,其特征是 历史数据排序前进行预处理11)获取当前历史缓冲队列中存储的缓冲数据量;12)缓冲数据量判断设定一次处理数据量的限值,对从历史数据缓冲队列获取的历 史数据量与所述限值进行比较,超过限值,则对获取的历史数据按值的大小排序,否则继续 从历史数据缓冲队列获取历史数据。
3.根据权利要求1或2所述的一种基于数值排序线性拟合的历史数据压缩方法,其特 征是值域线性拟合具体为21)设置起点和待压点并保存起点对于排好顺序的历史数据的值,按照排序顺序依 序进行处理,按位序取出待处理的第一个点作为拟合起点(Xl,yi),下一点作为待压点(xn, yn),如果本步骤是第一次执行则存储起点(Xl,yi);22)求出待压点的门限点和门限点斜率范围设置压缩精度d%,求出待压点(xn,yn)的 两个门限点(xn,yn±|ynd% I),所述门限点是指点值按照压缩精度确定的可近似范围边界, 可近似范围为[yn_|ynd% ,yn+|ynd% | ],然后分别求出从拟合起点O^y1)到两个门限点 所确定直线的斜率范围的最小值knmin和最大值knmax <formula>formula see original document page 2</formula>通过[knmin,knmax]确定本次拟合过程的斜率判断范围[kmin,kmax][kmin,kmax] = [knmin, knmax]23)数据量判断按位序检查待压点是否还存在下一点,如果没有下一点,则转到步骤 27)保存待压点;如果存在下一点,则转到步骤24);24)获得判断点并求出起点到判断点的斜率按位序取出待压点的下一点作为判断点 (xn+1,yn+1),求出从拟合起点到判断点所确定直线的斜率kn+1 <formula>formula see original document page 2</formula>25)斜率范围判断检查kn+1是否在[kmin,kmax]范围内,在此范围内表示待压点可以被压缩,转到步骤26);不在此范围内,表示待压点不能被压缩,需要开始新的压缩过程,转到 步骤27);26)丢弃当前待压点并重新设置新待压点丢弃待压点(xn,yn),把判断点(χη+1,yn+1)设 置为新待压点,求出新待压点的两个门限点(χη+1,yn+1 士 |yn+1d% I),再分别求出从起点到两 个门限点所确定直线的斜率范围的最小值kn+1min和最大值kn+1maX <formula>formula see original document page 3</formula>更新斜率判断范围[kmin,kmax][kmin, kmax] = [max (kmin, kn+1min) ,niin (kmax,kn+1niax)]新待压点设置好后,继续步骤23);27)保存待压点存储当前的待压点(xn,yn),本次压缩过程结束,并把缓存中待处理的 第一个点设置为新一轮压缩的拟合起点,转到步骤21)进行下一拟合过程的处理。
4.根据权利要求1或2所述的一种基于数值排序线性拟合的历史数据压缩方法,其特 征是步骤3)按域存储具体为将线性拟合的各种数据分为标识域、时间域、数据值域三个 部分存储,标识域存储压缩标识,压缩标识按位序来标识值域中在该位序的历史数据是否 被压缩,时间域存储每一个历史数据本身所对应的时间;数据值域存储线性拟合中与拟合 处理相关的数据。
5.根据权利要求3所述的一种基于数值排序线性拟合的历史数据压缩方法,其特征是 步骤3)按域存储具体为将线性拟合的各种数据分为标识域、时间域、数据值域三个部分 存储,标识域存储压缩标识,压缩标识按位序来标识值域中在该位序的历史数据是否被压 缩,时间域存储每一个历史数据本身所对应的时间;数据值域存储线性拟合中与拟合处理 相关的数据。
全文摘要
一种基于数值排序线性拟合的历史数据压缩方法,包括以下步骤1)对获取的历史数据按值的大小排序;2)值域线性拟合;3)按域存储;4)数据处理完成判断。本发明在处理数据压缩时采用了数据按值排序的方法,对于稳态或线性数据经过排序后可以使得线性趋势更加明显,而且可以达到分隔噪点的目的;对于非线性数据或非稳态数据经过排序后,绝大多数会体现出正态分布的特点,即在某个较小的值区间内集中绝大多数的值。这样,通过排序使得数据规则化,适合于压缩,再采用线性拟合的方式在一定精度范围内拟合数据,达到数据压缩的目的,基本解决了非稳态数据和噪点对压缩效率的影响,具有较高的实际应用价值。
文档编号H03M7/30GK101807925SQ20101902609
公开日2010年8月18日 申请日期2010年2月8日 优先权日2010年2月8日
发明者乐蔚芸, 吴文楷, 季胜鹏, 武爱斌, 茅海泉, 魏小庆 申请人:南京朗坤软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1