基于STM32 的异常用电行为检测算法研究

2023-07-13 05:19徐爱蓉孙成刚李建宁
电力与能源 2023年2期
关键词:损率用电聚类

黄 根,徐爱蓉,孙成刚,李建宁

(国网上海市电力公司青浦供电公司,上海 201799)

近年来,我国工商业发展迅速,城市化水平不断提高,人们的工作生活与社会生产均离不开电能,于是电力用户量迅速扩大。随着能源互联网的推进发展,电网公司的信息化程度越来越高,用电侧电量数据相当庞大。因此,电力企业需要不断提高工作效率和管理效能,才能更好地为广大电力用户提供更优质的服务。

在电力企业自身的不断发展中,仍然存在某些不足之处,例如电力用户电量数据异常问题没有得到有效解决。若不及时处理用户电量数据异常情况,可能会给供电企业或电力用户带来一些不必要的经济损失。因此,如何从庞大的电力企业电量数据中高效、准确地检测出异常用电数据,以供电力企业工作人员分析决策、作出处理,对提高供电服务水平和经济效益,同时促进企业的发展与进步,有着相当重要的意义。为了及时有效地获取电力数据信息,监测电力企业的用电情况,检测出异常数据,需要设计一种准确率较高的异常用电检测算法。

文献[1]通过分析典型异常电力数据提出了一种以用户相似性检索为核心的检测模型,在相似度矩阵中,利用簇中心的电力用户,提取出有疑似异常用电的窃电用户,并验证了该方法的有效性与可行性。文献[2]针对电力异常行为建立了一个大的数据库,通过标记好的数据集与异常电力信息,实现了较低维度数据的监测,在最大互信息系数的基础上,以快速聚类算法,提出了较强的正相关密度峰值,并测试了多种类型异常检测行为的有效性。文献[3]针对现有的异常电力数据,通过概率预测算法,提出了基于离线预测模型的异常识别方法,采用贝叶斯推断模型,结合电力实测数据与电力预测数据的相关性,设计了相应的检测方法,并验证了该方法的实用性和有效性。本文在此基础上,为提高异常数据的检测精度,设计一种基于STM32 的异常用电行为检测算法。

1 基于STM32 设计的异常用电检测算法

1.1 基于STM32 提取电力异常数据特征

在STM32 的主控电路中,可以获取数据采集的外围电路,并得到更准确的电力企业异常用电数据。电力用户之间数据行为的不同,会直接导致符合序列的周期和阈值出现较大变化,且气候冷暖的改变、节日假期等时段与正常情况下的用电单位也存在不同之处[4]。此时的电力负荷内会有大量的无用噪声,不但会无意义地增加电力数据的总量,还会导致原始时间序列的异常数据检测与识别出现错误或遗漏,因此对电力数据进行预处理,建立负荷数据的特征空间,减少维度异常,提取特征数据,是电力异常数据检测过程中的必要程序。首先需要清洗电力负荷数据,补全数据中缺失的部分,若不能补全,则需要将其清除,以减少大数据的总量。电力负荷数据的结构字段如表1 所示。

表1 电力负荷数据结构字段

依据表1 所示的结构字段重新整理电力数据后,可解决大部分的用户数据缺失问题,此时就可以对异常值进行处理。当电能表检修或更新时,所有的电力数据均会从头开始,如果此时的电力数据没有被及时记录,或者中间存在时间差,导致电力记录失效,就会出现电力数据异常现象[5-7]。在引入大量噪声后,补全数据的缺失值,并将观察到的变量全部填充成均值形式,计算公式如下:

式中pd——某缺失时段的用电量均值;da——缺失时段之前的电表示数;db——缺失时段之后的电表示数;Nt——电力数据缺失的时间总数[8]。

依据式(1)填写电力企业所缺失的用电数据,对完整的负荷序列进行特征提取,此时用户电量的均值为

式中Wm——用户电表中通过提取得到的电力数据;xi——某一周期内的特征提取数值;ni——日用电量的表示数[9-10]。

通过以上方法得到完整的电力企业用电数据,以此进行后续的异常用电检测。

1.2 建立电力数据异常分类模型

通过电力数据所能得到的用电异常情况,可以分为线损异常、交流电压异常、交流电流异常等多种类型。

(1)线损异常主要是电能在通过铜导线时由于电阻导致的损耗。普通电路的线损电量计算公式为

式中Wxs——某片电力设备中,由铜导线导致的线损电量;Wg和Ws——电力企业的供电量与经过损耗后所得到的售电量[11-12]。

线损电量与供电量之比需要在理论上不高于一定值,即线损率,若线损率超出一定值,则表明电力数据异常。通常,线损率可分为两类:理论线损率和统计线损率。理论线损率的计算公式为

式中Pxs——某长度铜制导线下的理论线损率。

统计线损率的计算公式为

式中Ptj——统计线损率。

(2)在该电力数据异常检测的约束条件内,依据组合事件可以判定电表开盖的记录参数。通过交流电压的异常判定值可以得到电压不平衡度以及测量时间的取值要求[13-14]。每隔3 s 可以获取一次电力数据的离散采样值,计算公式如下:

式中km——测量仪器的电压不平衡度离散采样数值;kf——某一时间周期内的采样值;mn——该时间周期内的采样次数。

此时可以依据离散采样值,获取电压不平衡度的近似方程式:

式中Sp和Sl——线电压与线短路容量。

(3)交流电流异常可以依据功率参数的不同而确定,正常电力数据阈值一般不会低于0.85,但是当用户的用电数据异常时,就可直接得到电流不平衡度的计算公式:

式中Ec——电流不平衡度;Imax和Imin——一段时间内的电流最大值与电流最小值[15]。

结合三类电力数据的异常情况,可以通过电力数据获取电力企业异常用电的分类模型。

1.3 设计异常用电行为检测算法

前面已对电力企业的数据进行预处理,补全了不完整的数据结构,然后通过这些电力数据建立了异常分类模型。在该模型中,可以通过历史用电数据设计电力企业的异常用电行为检测算法,如图1 所示。

图1 算法流程

结合图1 中的算法流程,首先需对电力数据进行预处理,并选择用电数据集,主要包括当前数据集和历史数据集[16]。然后通过二者共同评估电力异常曲线,若异常曲线达到检测阈值,则可以得到异常用电结果,否则为正常用电结果。此时的检测算法,即为本文提出的基于STM32 的异常用电行为检测算法。

2 试验研究

2.1 试验环境设置与试验数据来源

选取Centos7 操作系统,使用Python 进行数据软件编写。在更新系统参数时使用Adam 算法,并利用TCN 算法进行用户的用电行为异常检测。划分测试集与验证集,作为试验数据集的基础分类,并通过测试集进行模型超参数的验证,设定本试验内最长步数为1 000。

试验使用STM32 数据采集装置对上海某区域实际500 名电力用户进行用电数据采集,并建立一个用电异常数据集。该数据集中的数据存在大量的缺失现象,需要提前进行数据的预处理,提取特征数据,依据电力负荷数据结构,筛选其中能够被使用的数据,并对其进行编号处理。数据集的原始样本共有63 541 条,经过重新整理后的可用数据则只剩下10 356 条。将预处理后的数据随机选择其中约20%作为测试集,将剩余约80%作为验证集。为了保证不平衡数据集的完整性,可以将其对模型的影响加入到随机欠采样处理中,并与其他几种常用的检测方法进行对比测试。经过前期处理后,获取几个带有标签的训练集,各公共数据集的详细情况如表2 所示。

表2 公共数据集样本情况

如表2 所示,通过以上训练集中的数据随机生成A,B,C,D,E 5 个数据集,其中均含有正常样本与异常样本。

2.2 模型预测绝对误差对比

绝对误差可以以相对简单的数据评估一个模型的检测能力。在电力企业异常用电行为检测过程中,可以先使用绝对误差,对几种电力企业异常用电行为检测方法的精度进行测试。

绝对误差的计算公式如下:

式中fae——模型内数据的绝对误差;f′m——预测的电力企业用电量;fm——电力企业的实际用电量。

使用式(9),可得到本文方法、相似性检索方法、相关性与聚类自适应融合技术、概率预测方法这4 种检测方法的绝对误差曲线,如图2 所示。

图2 不同模型预测绝对误差曲线对比

在图2 中有4 条曲线,分别代表0~100 数据点内4 种不同的异常用电检测算法对电力企业用电数据的模型预测绝对误差。通过对比可以明显地看出,本文提出的基于STM32 检测方法,其绝对误差基本没有超出0.2 kWh,而其他3 种方法的绝对误差均大于本文方法的相应值。因此,相较于另外3 种常用的检测方法,基于STM32 的检测算法得到的用电量预测曲线波动较小,并且误差也是同等数据点下的最低值。这表明本文算法在几种方法中在检测精度上更具优越性。

2.3 异常用电检测算法对比测试

使用经过预处理的数据进行聚类处理,在分层最近邻欠采样的运算中,可以通过部分数据直接运算。测试中,设置决策树的数量为10,在数据集中随机采样30 次,然后获取训练集在决策树中的训练结果,得到算法模型。通过接受者操作特征(ROC)曲线评价异常检测结果,该曲线的量化方法如下:

式中DROC(AUC)——不同分类器中ROC曲线下与坐标轴围成的面积,DROC(AUC)值越接近1,表示算法的检测结果越好;n-和n+——样本在少数类和多数类中的数量,一般情况下,n+的数量均大于n-,即可以在算法中任意实现公式

分别使用不同的聚类簇数作为正常样本下的聚类参数,在不同的样本点下,获取电力数据在异常检测中的ROC 曲线下与坐标轴围成的面积,对比4 种不同的算法,得到的结果如图3 所示。

图3 异常用电检测结果AUC 值

使用表2 中的数据集作为检测算法的数据来源,分别在不同的聚类簇数下,测试异常用电的检测效果。通过图3 可以看出,聚类簇数k=5 时的DROC(AUC)值,明显小于聚类簇数k=20 或者k=50时的DROC(AUC)值,可见聚类簇数越大,对异常用电的检测效果越好。同时,对比4 种不同的检测算法,在相同的数据集中,本文提出的基于STM32的异常用电检测算法DROC(AUC)值明显高于其他3种算法,表明本文算法的检测效果更好。

通过上海某区域电力用户用电数据实例证明了所提出算法的可行性。结合图2 所得到的模型预测绝对误差曲线对比结果和图3 所得到的异常用电检测结果,验证了本文算法在实际用电数据的检测环境中较其他几种常用算法具有更高的检测精度和准确率,能够更好地检测出电力企业的异常用电情况。

3 结语

本文提出了一种基于STM32 的异常用电行为检测算法。首先对电力用户初始数据进行了预处理,获取了完整的电力数据,然后将所有电力数据分级分区处理,建立异常电力数据分类模型,并提出了相应的异常用电检测算法。

通过模型预测绝对误差曲线评价异常用电检测精度,ROC 曲线评价异常用电检测准确度,分别在不同的聚类簇数下不同检测方法的DROC(AUC)值。试验结果表明,本文所提出的算法在相同条件下得到的检测效果更好,准确度更高,为电力企业针对异常用电行为的分析与决策提供了新思路。

猜你喜欢
损率用电聚类
我国水库淤损情势分析
用煤用电用气保障工作的通知
安全用电知识多
为生活用电加“保险”
用电安全要注意
基于DBSACN聚类算法的XML文档聚类
无功补偿极限线损率分析及降损措施探究
基于高斯混合聚类的阵列干涉SAR三维成像
供电企业月度实际线损率定量计算方法
一种层次初始的聚类个数自适应的聚类方法研究