电量计算逻辑¶
电量计算是能源领域最常见的计算场景之一,并且对电量计算的准确性有较强的要求。在电量计算的过程中,需要对各种异常数据进行处理,如电表数据跳变、数据异常破坏单调递增规律(如表计数据归零重置)等。EnOS流数据处理系统将异常数据处理融入计算过程中,确保计算电量数据的精度。
EnOS流数据处理提供的电量计算模板,支持通过以下方法计算电量:
表读数分段差值累加法
有功功率累加法
表读数分段差值累加法 ¶
EnOS流数据处理提供的电量计算模板,支持表读数分段差值累加法,按电能表上送数据的时间段取得每段时间内的电量。当日内所有时间段的电量之和,即为当日累计电量。计算逻辑如下图所示:
输入:电能表读数,单位为
kWh
时间区间:
t1
至t2
的区间,单位为Hour
时间区间内的电量:
Delta电量=kWh2-kWh1
电量计算逻辑¶
具体的电量计算逻辑有如下3种情形:
时间区间内电量数据有变化¶
判断slope范围是否满足 (0,slope_max]
:
若满足, 则
DailyData(有功电量)=Sum(Delta电量)*倍率
,且每次累加电量后,系统会将最新的电量值(kWh)和时间值(Hour)记录下来,作为下一时间区间slope判断的起点。若不满足,则该时间区间的电量数据不计入总电量中,但系统仍会将最新的电量值(kWh)和时间值(Hour)记录下来,作为下一时间区间slope判断的起点。
时间区间内电量数据无变化¶
在该时间区间,电量数据无变化,且系统不更新电量值(kWh)和时间值(Time)。如下图所示:
t2至t3时间区间内的电量保持不变,当t4时刻电量变化时,slope判断的起点从t2时刻开始。
跨0点电量计算¶
通常情况,电量数据上报会跨越0点时刻。如下图所示,电量数据上报的时间区间跨越0点,在0点时刻无数据上报。
因此,上一日的累计电量,只统计到t1时刻截止。当日累计电量从t1时刻开始,即第一时间区间 EEnergy(有功电量)=(kWh2-kWh1)*倍率
。
配置项说明¶
电量计算过程中会涉及一些常量的输入,主要有 电表精度(保留位数)、斜率范围(slope)、倍率(scale)、电量单位(kWh)。这些常量的配置通常配置在设备实例上。流数据处理过程中,需要从主数据中获取这些配置。
异常数据处理 ¶
通过设置时间区间分段斜率的阈值范围,处理电表数据跳变等原因产生的异常数据。不同的电能表会设定不同的斜率范围。例如:(0,slope_max]
表示当斜率(slope)在 0至slope_max之间时,当前的表读数(kWh)为正常电量数据。超出斜率范围的时间区间内的电量将不被计入总电量。
分段斜率的计算方法为: slope=Delta电量/Delta时间
当斜率超出某个范围时,可能是发生了电量跳变,也可能是出现了负电量(该情况的一个极端特例是,电能表达到某一上限值后重置归零),即打破了单调递增规律。如下图所示:
有功功率累加法 ¶
EnOS流数据处理提供的电量计算模板,支持通过时间段内的功率计算电量(功率单位是千瓦kW或瓦W)。当日内所有时间段的电量之和,即为当日累计电量。计算逻辑如下:
输入:测点上送功率数据,单位为
kW
或者W
时间区间:
t1
至t2
的区间,单位为Hour
时间区间内的电量:
EEnergy(有功电量)=ActivePower(有功功率)*Time(时间值)
。
目前测点上送的功率点有两种情况,一种是一段时间内的平均功率,一种是一个时间点的瞬时功率。
电量计算逻辑¶
具体的电量计算逻辑有如下2种情形:
通过瞬时功率计算电量¶
在时间区间内,采集点的值是时间点的瞬时功率,如最近3分钟的功率为P1点的瞬时功率。 如下图所示:
t1至t2时间段的电量 EEnergy=P1*(t2-t1)
。
通过平均功率计算电量¶
在时间区间内,采集点的值是时间区间内的平均功率,如最近3分钟平均功率。 如下图所示:
t1至t2时间段的电量理论上应为图中的阴影面积。
为方便计算,我们通常采用求P1、P2的简单算数平均的方式来近似计算,如下图所示:
t1至t2时间段的电量 EEnergy=(P1+P2)/2*(t2-t1)
。
异常数据处理¶
实际情况中,数据可能会出现丢失、越限、或发送重复等情况:
数据丢失,但已知数据大概上送频率
数据越限(变化率越限、阈值越限)
数据重复上送(时间戳和数据点都重复)
出现以上异常数据情况时,均需要对数据进行处理,以保证电量计算结果没有大的偏差。
由于功率本身可归属于AI量,对于以上几种异常情况,可通过如下流程先对数据进行质量处理,再计算电量(需额外配置一个测点承载归一化功率):