电量计算逻辑


电量计算是能源领域最常见的计算场景之一,并且对电量计算的准确性有较强的要求。在电量计算的过程中,需要对各种异常数据进行处理,如电表数据跳变、数据异常破坏单调递增规律(如表计数据归零重置)等。EnOS流数据处理系统将异常数据处理融入计算过程中,确保计算电量数据的精度。


EnOS流数据处理提供的电量计算模板,支持通过以下方法计算电量:

  • 表读数分段差值累加法
  • 有功功率累加法

表读数分段差值累加法

EnOS流数据处理提供的电量计算模板,支持表读数分段差值累加法,按电能表上送数据的时间段取得每段时间内的电量。当日内所有时间段的电量之和,即为当日累计电量。计算逻辑如下图所示:

../_images/electric_power_delta.png
  • 输入:电能表读数,单位为 kWh
  • 时间区间:t1t2 的区间,单位为 Hour
  • 时间区间内的电量:Delta电量=kWh2-kWh1

电量计算逻辑

具体的电量计算逻辑有如下3种情形:

时间区间内电量数据有变化

判断slope范围是否满足 (0,slope_max]

  • 若满足, 则 DailyData(有功电量)=Sum(Delta电量)*倍率,且每次累加电量后,系统会将最新的电量值(kWh)和时间值(Hour)记录下来,作为下一时间区间slope判断的起点。
  • 若不满足,则该时间区间的电量数据不计入总电量中,但系统仍会将最新的电量值(kWh)和时间值(Hour)记录下来,作为下一时间区间slope判断的起点。

时间区间内电量数据无变化

在该时间区间,电量数据无变化,且系统不更新电量值(kWh)和时间值(Time)。如下图所示:

../_images/electric_power_logic_1.png

t2至t3时间区间内的电量保持不变,当t4时刻电量变化时,slope判断的起点从t2时刻开始。

跨0点电量计算

通常情况,电量数据上报会跨越0点时刻。如下图所示,电量数据上报的时间区间跨越0点,在0点时刻无数据上报。

../_images/electric_power_logic_2.png

因此,上一日的累计电量,只统计到t1时刻截止。当日累计电量从t1时刻开始,即第一时间区间 EEnergy(有功电量)=(kWh2-kWh1)*倍率

配置项说明

电量计算过程中会涉及一些常量的输入,主要有 电表精度(保留位数)斜率范围(slope)倍率(scale)电量单位(kWh)。这些常量的配置通常配置在设备实例上。流数据处理过程中,需要从主数据中获取这些配置。

异常数据处理

通过设置时间区间分段斜率的阈值范围,处理电表数据跳变等原因产生的异常数据。不同的电能表会设定不同的斜率范围。例如:(0,slope_max] 表示当斜率(slope)在 0至slope_max之间时,当前的表读数(kWh)为正常电量数据。超出斜率范围的时间区间内的电量将不被计入总电量。

分段斜率的计算方法为: slope=Delta电量/Delta时间

../_images/electric_power_slope.png

当斜率超出某个范围时,可能是发生了电量跳变,也可能是出现了负电量(该情况的一个极端特例是,电能表达到某一上限值后重置归零),即打破了单调递增规律。如下图所示:

../_images/electric_power_minus_slope.png

有功功率累加法

EnOS流数据处理提供的电量计算模板,支持通过时间段内的功率计算电量(功率单位是千瓦kW或瓦W)。当日内所有时间段的电量之和,即为当日累计电量。计算逻辑如下:

  • 输入:测点上送功率数据,单位为 kW 或者 W
  • 时间区间:t1t2 的区间,单位为 Hour
  • 时间区间内的电量:EEnergy(有功电量)=ActivePower(有功功率)*Time(时间值)

目前测点上送的功率点有两种情况,一种是一段时间内的平均功率,一种是一个时间点的瞬时功率。

电量计算逻辑

具体的电量计算逻辑有如下2种情形:

通过瞬时功率计算电量

在时间区间内,采集点的值是时间点的瞬时功率,如最近3分钟的功率为P1点的瞬时功率。 如下图所示:

../_images/electric_power_logic_3.png

t1至t2时间段的电量 EEnergy=P1*(t2-t1)

通过平均功率计算电量

在时间区间内,采集点的值是时间区间内的平均功率,如最近3分钟平均功率。 如下图所示:

../_images/electric_power_logic_4.png

t1至t2时间段的电量理论上应为图中的阴影面积。

为方便计算,我们通常采用求P1、P2的简单算数平均的方式来近似计算,如下图所示:

../_images/electric_power_logic_5.png

t1至t2时间段的电量 EEnergy=(P1+P2)/2*(t2-t1)

异常数据处理

实际情况中,数据可能会出现丢失、越限、或发送重复等情况:

  • 数据丢失,但已知数据大概上送频率
  • 数据越限(变化率越限、阈值越限)
  • 数据重复上送(时间戳和数据点都重复)

出现以上异常数据情况时,均需要对数据进行处理,以保证电量计算结果没有大的偏差。

由于功率本身可归属于AI量,对于以上几种异常情况,可通过如下流程先对数据进行质量处理,再计算电量(需额外配置一个测点承载归一化功率):

../_images/electric_power_exception.png