广域电能计量系统基于自适应整数分段数据压缩方法与流程

文档序号:20488333发布日期:2020-04-21 21:50阅读:343来源:国知局
广域电能计量系统基于自适应整数分段数据压缩方法与流程

本发明涉及一种用于竞争性电力零售市场及网荷互动的广域电能计量系统中针对数据传输报文的基于自适应整数分段数据压缩方法,属于广域电能计量系统领域。



背景技术:

随着我国电力体制中的现货市场建设和售电市场不断放开,市场主体数量不断增加,主体类型趋于多样化,市场竞争不断增强,价格机制更加灵活,用户在售电商之间可灵活切换,用户费率已逐渐呈现日期、时段的差异性,售电侧则相应涌现出各种个性化、创新性的售电套餐。现货市场运营中,售电公司面临着日前市场申报电量(或物理合同电量)和实际用电量之间的偏差量考核与结算问题,使得现货市场的结算关系异常复杂,对现有电能计量系统提出了全新的挑战。

目前的电力系统中,广域电能计量系统由主站、广域电能计量终端、智能电表等组成,主站和广域电能计量终端之间一般采用4g无线公网通信,主要通过互操作性数据交换通信协议dl/t698.45-2017中的应用层数据单元(apdu)分帧传输实现应用层数据交换。在报文压缩过程中,如果将输入看作是十六进制数值对应的字符串进行压缩,其可压缩空间较小,原因在于现有针对字符串的无损压缩方法主要根据字符出现的频度进行可变长度编码,使得每个符号的平均编码长度小于一个字符本身的ascii码长度(8位),然而在广域电能计量系统中实际的电流、电压、功率等报文中每个字符出现的频度没有明显的区别,且每个字符本身编码仅为4位,导致0~9、a~f十六个字符的平均编码长度不会显著小于4。现有电网结构中的带宽条件和通信方式还无法有效解决如何提高广域电能计量系统采集各零售用户的负荷曲线与电能曲线的颗粒度的问题,无法达到分钟级实时刷新每个用户的负荷与电能数据的高实时性。



技术实现要素:

本发明提供一种基于dl/t698.45-2017数据交换协议的应用层数据单元(apdu)传输的一种基于自适应整数分段数据压缩方法,其目的旨在解决上述广域电能计量系统采集各零售用户的负荷曲线及电能曲线的实时传输问题,将主站和广域电能计量终端之间的互操作性数据交换通信协议dl/t698.45-2017中的应用层数据单元(apdu)采用数据无损压缩的方式再传输,以提高数据传输性能,适应高采样频率。

本发明的技术解决方案:一种广域电能计量系统基于自适应整数分段数据压缩方法,通过将各类传输报文本转换为二进制串,将二进制串的每个字节看作一个无符号整数,计算最优的分段数量,采用分段整数压缩方法对所有整数压缩为一个大整数,以二进制串表示,对整数进行编码,显著的减小输出字符串的长度;具体包括如下三个步骤:

①将输入二进制串转换成整数序列s={a1,a2,…,an};

②将s划分成m个分段s1,s2,…,sm,即s1={a1,a2,…,ak},si={a(i-1)*k+1,a(i-1)*k+2,…,ai*k},sm={a(m-1)*k+1,a(m-1)*k+2,…,an};

③对于每个分段si={a(i-1)*k+1,a(i-1)*k+2,…,ai*k},计算以下两个变量:

xi=min{a(i-1)*k+1,a(i-1)*k+1,l,ai*k};

yi=max{a(i-1)*k+1,a(i-1)*k+1,l,ai*k}-x+2;

④计算分段si的压缩结果ri,计算公式为:

⑤将压缩结果ri转换成二进制串bri;

⑥重复步骤③到⑤,直到将所有分段均处理完成;

⑦将br1,br2,…,brm按顺序排列输出;

2)最优分段步骤

①初始化m=1,计算y值,令最小平均y值y′=y;

②计算m个分段的y值y1,…,ym,及其平均值

③如果m>n,则终止最优分段步骤;

④如果则令否则当前的m值即为最优分段数量,算法终止;

⑤增加分段:令m=m+1,再次执行步骤②;

3)数据解压缩步骤

①将bri转换成整数ri,变量b0=ri;

②根据以下公式计算a(i-1)*k+j=(bj-1modyi)+xi,直到且bj>0,其中j≥1,终止数据解压缩步骤。

本发明的优点:

1)采用自适应整数分段数据压缩方法,可有效减少报文的通信数据流量,减轻广域电能计量系统的数据传输通信压力。

2)缩短传输时间,提高传输效率,降低数据传输成本,为电力企业节约通信流量费用。

附图说明

附图1是本发明基于自适应整数分段数据压缩方法的最优分段算法流程。

附图2是本发明基于自适应整数分段数据压缩方法的分帧交互的应用流程。

附图3是基于自适应整数分段数据压缩方法的主站和广域电能计量终端之间的互操作性数据交换通信协议dl/t698.45-2017链路层通信协议格式。

具体实施方式

下面根据实施例进一步说明本发明的技术方案。

一种广域电能计量系统基于自适应整数分段数据压缩方法,通过将各类传输报文本转换为二进制串,将二进制串的每个字节看作一个无符号整数,计算最优的分段数量,采用分段整数压缩方法对所有整数压缩为一个大整数,以二进制串表示,对整数进行编码,显著的减小输出字符串的长度。

本方法主要包括如下三个步骤:

1)数据压缩步骤

将输入二进制串包含的n个字节转换为n个整数,即s={a1,a2,…,an},将s分成m段s1、s2、…、sm,每一段包含个整数,即s1={a1,a2,…,ak},si={a(i-1)*k+1,a(i-1)*k+2,…,ai*k},sm={a(m-1)*k+1,a(m-1)*k+2,…,an};数据压缩步骤的主要流程如下:

①将输入二进制串转换成整数序列s={a1,a2,…,an};

②将s划分成m个分段s1,s2,…,sm,即s1={a1,a2,…,ak},si={a(i-1)*k+1,a(i-1)*k+2,…,ai*k},sm={a(m-1)*k+1,a(m-1)*k+2,…,an};

③对于每个分段si={a(i-1)*k+1,a(i-1)*k+2,…,ai*k},计算以下两个变量:

xi=min{a(i-1)*k+1,a(i-1)*k+1,l,ai*k};

yi=max{a(i-1)*k+1,a(i-1)*k+1,l,ai*k}-x+2;

④计算分段si的压缩结果ri,计算公式为:

⑤将压缩结果ri转换成二进制串bri;

⑥重复步骤③到⑤,直到将所有分段均处理完成;

⑦将br1,br2,…,brm按顺序排列输出;

2)最优分段步骤

分段数量直接影响着数据压缩效率,因此需要针对每一个输入串找到最优的分段数量,如图1所示,具体算法流程和执行步骤如下:

①初始化m=1,计算y值,令最小平均y值y′=y;此处的变量y’表示最小的y平均值,是一个临时变量,因为此处m=1,所以y的平均值即为其本身;

②计算m个分段的y值y1,…,ym,及其平均值

③如果m>n,则终止最优分段步骤;

④如果则令否则当前的m值即为最优分段数量,算法终止,此处的值为当前迭代过程中变量m的取值;

⑤增加分段:m=m+1,再次执行步骤②;

3)数据解压缩步骤

对每一个分段数据而言,其解压缩过程即为压缩过程的逆过程;对于分段si,如果已知压缩结果bri和中间变量xi和yi,解压缩的具体步骤如下:

①将bri转换成整数ri,变量b0=ri;

②根据以下公式计算a(i-1)*k+j=(bj-1modyi)+xi,直到且bj>0,其中j≥1,终止数据解压缩步骤。

本发明所提出的通信报文apdu数据压缩算法主要用于广域电能计量终端,将采集到的数据压缩后发送到主站,以提高数据传输性能,适应高采样频率。由于电能等相关数据基本为数值类型,每个数字(0~9)出现的频率无明显的差距,因此单纯采用基于统计和基于字典的压缩算法效率均不会很高。需要根据同类数据之间的相关性设计一定的优化策略,将有损压缩算法的某些思想与无损压缩算法结合起来,既保证无损数据压缩也保证高效压缩。

目前数据传输一般采用apdu分帧传输,通过反复实验和测试研究,得出两个结论:通信报文越长,压缩效果越好;加密报文数据的重复率下降导致压缩比骤然提高。广域电能计量系统的实际使用中存在最大可处理apdu长度,当预处理长度大于最大可处理长度时,退回当前需要处理的apdu单元,待下次处理。由于加密使报文变长有限,所以如果报文需要加密传输时应先对报文进行压缩,然后加密,最后分帧。如果不需要加密传输应先压缩后分帧。提出基于自适应整数分段数据压缩方法的分帧交互的应用流程,具体流程如图2所示。本发明将数据传输前加密、分帧、压缩三个流程三元一体地有机结合起来,减少报文的通信数据流量,减轻系统的通信压力。

实施例

本发明提及到的主站和广域电能计量终端之间的互操作性数据交换通信协议dl/t698.45-2017链路层通信协议格式参见图3:链路用户数据包含一个完整的应用层数据单元(apdu)字节序列或apdu的分帧片段,应用层数据单元(apdu)的标记规则遵循asn.1的抽象语法,详见gb/t16262.1-2006;应用层数据单元(apdu)的编码规则遵循a-xdr,详见dl/t790.6—2010。

作为实施例,特列举其中一段报文的自适应整数分段数据压缩方法处理过程如下:

给定待传输的原始数据:01011204000101120400010112040240000001011204000101112004100101120412010112041201;

1)将原始数据每两个字节转换为一个无符号整数,可得如下整数序列:

257461212741024257461257602574612127381964097274104225746124609;

2)对整数序列进行划分,得到最优分段数:

(1)令m=1可得:y’=8198;

(2)令m=2可得:y1=4614,y2=8197,

(3)令m=3可得:y1=4613,y2=8198,y3=4357,

(4)令m=4可得:y1=4613,y2=4614,y3=8197,y4=4357,

(5)令m=5可得:y1=4613,y2=4357,y3=4614,y4=7925,y5=4357,

(6)令m=6可得:y1=4613,y2=4357,y3=4614,y4=8197,y5=3825,y6=4357,

(7)令m=7可得:y1=4613,y2=769,y3=4614,y4=4613,y5=7925,y6=787,y7=5,

(8)令m=8可得:y1=4613,y2=769,y3=4614,y4=4613,y5=7925,y6=3825,y7=787,y8=5,此时大于m=7的取值,因此最优分段数量为m=7;

3)对每一段整数序列进行数据压缩

(1)第一段数据序列为:25746121;

计算得到r1=5468891407;

加密后序列br1=10100010,11111100,01010100,10000111,1;

(2)第二段数据序列为:2741024257;

计算得到r2=10642960;

加密后序列br2=10100010,01100110,00010000;

(3)第三段数据序列为:46125760;

计算得到r3=98187507216;

加密后序列br3=10110110,11100011,01110011,10110000,10000;

(4)第四段数据序列为:25746121;

计算得到r4=5468891407;

加密后序列br4=10100010,11111100,01010100,10000111,1;

(5)第五段数据序列为:27381964097;

计算得到r5=62793599;

加密后序列br5=11101111,10001001,11011111,11;

(6)第六段数据序列为:2741042257;

计算得到r6=11147068;

加密后序列br6=10101010,00010111,00111100;

(7)第七段数据序列为:46124609;

计算得到r7=15;

加密后序列br7=1111;

在本例中,原始数据40字节(320bit),压缩后数据181bit(约23字节),压缩比为57.5%。

本实施例中介绍的仅是示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围,对于表示在说明书附图中的示例性实施方式中的术语并不是对本发明的限定,在说明书附图中,相同的单元/元件使用相同的附图标记。

除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义;另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1