实时数据压缩算法(GE Historian Compression Methods)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
申明:本文中思想及图片都是参照EVSystems(网址如下)说明文档,版权归其所有,鄙人只管翻译和归纳。要转载本文也请说明出处,谢谢!
sfriedenthal@
实时数据压缩算法(GE Historian Compression Methods)
一、GE Historian Compression Methods
1. CC:Collector Compression
‘X’表示丢弃的数,圆表示保留的数。
方法:选一个点为起始点,以此点为中心,在y轴方向规定一个‘Dead band’区域,在区域内的点丢弃,直到遇到一个不再区域内的点,该点作为新的起始点,从而设定新的‘Dead band’区域。
此方法的缺点是:不能丢弃‘保持斜率不变’的点,如图中‘Constant slope line’。
2. AC:Archive Compression(存档压缩)
此方法通过判断斜率区域来丢弃多余的点,可识别并丢弃‘保持斜率不变’的点,AC一般在CC之后使用。具体实现方法在下文中说明。
CC和AC组合实现实时数据压缩,统称为:GE Historian Compression Methods
二、OSI PI Swinging Door Comrpession(美国OSI公司:游泳门压缩)
方法:选一个点为起始点(存储点)如图中‘Archived Point’,图中‘New Point
’称为当前点。然后依次选取后面的点(做当前点)做平行四边形,如下图所示:
当产生的平行四边形不能容纳上个存储点到当前点之间的所有数据点时,即
有数据点落在当前平行四边形覆盖面积之外时,则将‘当前点’的前一个数据点保存,作为新的存储点,其他点舍弃。以此往复。如下图所示:
判断一个点是否在当前平行四边形覆盖面积之内的方法如下图(能看懂就不翻译了):
该方法的缺点是:计算量大,CPU占时太多,程序实现复杂。
GE Historian Compression Methods和Swinging Door Comrpession不同之处在于:其丢弃点动作的触发条件不一样,它不计算一个点是否在平行四边形中,通过斜率范围来判断,即判断“存储点和但前点之间连线是否与他们中间各个点的dead band 线相交”,其判断方法及整体示意图如下两图所示:
此图存储点和但前点之间连线与黑色点的dead band 线的下半部相交
此图中红色点dead band未相交,触发‘丢弃点和存储新起始点’动作如果看懂了就可以不往下看了,没看懂或需详细了解的可看下面example。
三、GE Archive Compression 举例
该算法有个好处,就是程序不需缓存存储点到当前点之间的所有数据点,在举例之前再说明一下存储点和当前点:
存储点:Archived Point,作为起始的点,最后来看,是最终保存下来的的点(多为整个曲线的拐点)。
当前点:Held Point,当前需要判断的一个有效点,靠其下一个点来判断自己是否被丢弃,具体方法见下。
最新点:New Point,在Held Point之后,为最新取得的点。
计算U和L两条斜线的斜率,U和L是存储点分别和当前点的dead band 线两端连接构成的斜线,它们与前点的dead band 线一起构成区域‘Critical Aperture Window’。
在存档点与最新点之间连一条线,称为为‘N线’(line N) ,只要N线的斜率在U和L 两条斜线的斜率之间,则说明N线与当前点的dead band 线相交,则可丢弃当前点(Held Point)。反之,则出发存档事件,存档事件的操作见下。
按上述方法一次判断后面的各个点,见下面多图,白色点均为过程中丢弃的点:
直到出现N线在‘Critical Aperture Window’外的情况发生,如下图:
出发存档事件,存档事件操作就是将Held
Point存储,并作为新的Archived Point,将New
Point设为新的Held Point,如右图所示。后面的
步骤同,以此往复。
最后再次声明,版权归EVSystems所有:/