程志友,储著增,杨 猛,章杨凡,王林茂
(1.安徽大学 教育部电能质量研究中心,安徽 合肥 230601;2.安徽大学 电子信息工程学院,安徽 合肥 230601)
非侵入式负荷分解[1-2]可帮助用户了解各负荷的功耗,进而影响用户的用电行为.近年来,随着智能电网[3]、电力需求侧管理[4]、人工智能[5]的发展,非侵入式负荷分解逐渐成为研究热点,研究人员将深度学习用于非侵入式负荷分解. 文献[6]构建3种深度学习模型用于负荷分解,其分解准确度较传统机器学习方法有较大提高. 文献[7]提出一种基于序列到点(sequence-to-point,简称Seq2point)的非侵入式负荷分解方法,能提高分解的准确度.文献[8]提出了一种基于短序列到点及门控循环单元的非侵入式负荷分解方法,能实时分解电荷,但多状态负荷分解的准确度较低. 文献[9]提出了基于深度扩张残差网络的非侵入式负荷分解方法,与已有方法相比,该方法有更高的分解准确度. 虽然上述方法均利用了信息处理能力强大的神经网络,但未对网络提取的信息进行筛选,即提取有效信息的能力不强,导致分解准确度不高.鉴于此,该文提出基于Seq2point和挤压与激励的残差网络(squeeze-and-excitation residual network,简称SERNet)的非侵入式负荷分解和识别方法,以增强提取有效信息的能力,进而提高负荷分解和识别的准确度.
图1为非侵入式负荷分解示意图. 图1中,智能电表采集了5种负荷信号叠加的总功耗信号. 通过分解总功耗信号,可获得分解信号,即实现了负荷的分解.
图1 非侵入式负荷分解示意图
t时刻的总功耗信号可表示为
(1)
其中:Yi(t)为t时刻第i个负荷的功耗信号,L为负荷数量,g(t)为t时刻的干扰信号.
非侵入式负荷分解可表示为
f(X(t))=[Y1(t),Y2(t),…,YL(t)],
(2)
其中:f表示非侵入式负荷分解的映射函数.
总功耗信号的有功功率序列长度较长, 1个月采集的数据可达几十万个,而深度学习的输入序列长度有限且固定,因此需对采集数据进行分割.
数据分割时采用滑动窗口法,在总功耗的有功功率序列中截取固定长度的有功功率序列.3次数据分割的流程如图2所示. 在数据分割过程中,固定长度的窗口在总消耗功率序列{x1,x2,…,xn}上滑动,直至端点xn进入窗口.若将滑动窗口的长度设置为3,则窗口内的数据就是分割后的功率序列{xi,xi+1,xi+2}.
图2 3次数据分割的流程图
功率信号是1维时间序列[10]信息,因此该文使用1维卷积神经网络(one dimensional convolutional neural network,简称1D CNN) 进行卷积操作.利用训练好的1D CNN对输入序列进行卷积,提取输入序列中的信息,具体流程如图3所示.
图3 1维卷积流程图
(3)
(4)
其中:B1为偏置系数. 完成第i个卷积核的卷积后,滑动窗向右移动,接着进行第i+1个卷积核的卷积.
为了预防网络退化,使用残差网络[11]提取信息,并引入注意力机制挤压和激励网络,对提取的信息进行自适应校准[12],以增强提取有效信息的能力. 挤压与激励的残差网络结构如图4所示.
图4 挤压与激励的残差网络结构
提取信息的过程可分为以下几个阶段:
(1) 卷积阶段.对输入信号sl做如下卷积
H(sl)=F(sl,wl),
(5)
其中:wl表示卷积网络的权重,l表示第l个SERNet.卷积阶段的输出作为挤压和scale的输入.
(2) 挤压阶段. 挤压阶段对输入的信息进行压缩,2维信息被映射为1个实数.挤压阶段的输出为
(6)
其中:H和W分别表示输入的高和宽.挤压阶段的输出作为激励阶段的输入.
(3) 激励阶段. 全连接网络生成的权重为
we(sl)=Fex(zs,ω)=σ(ω2δ(ω1zs)),
(7)
其中:ω为全连接层的参数;σ,δ分别表示sigmoid激活函数、relu激活函数.
(4) scale阶段. 对卷积阶段输出的原始信息权重进行重新标定.重新标定后的输出信息为
zsc(sl)=H(sl)∘we(sl),
(8)
其中:∘为逐元素乘法的运算符号.
(5) 跨层求和阶段. 将输入信号sl与scale阶段的输出信号相加,得到最终的输出信息为
tl=sl+zsc(sl).
(9)
该文使用全连接网络构建特征映射网络,特征映射的网络结构如图5所示.
图5 特征映射的网络结构
全连接网络将输入特征映射至设备的有功功率y,具体映射过程如下
y=γ(Y2w(3)+b(3)),
(10)
Y2=δ(Y1w(2)+b(2)),
(11)
Y1=δ(tlw(1)+b(1)),
(12)
其中:w(i)表示第i层的权重;b(i)表示第i层的偏置系数;Y1,Y2分别表示全连接层1,2的输出;γ表示线性激活函数linear.
为了在提取信息过程中能抑制无用及干扰信息,筛选出有效信息,使负荷分解及识别的效果良好,该文提出基于Seq2point和SERNet的非侵入式负荷分解及识别方法.该文方法的负荷分解流程如图6所示. 具体分解流程为:
(1) 载入功耗数据.对功耗的无效值进行预处理.
(2) 数据分割. 采用滑动窗口法处理总功耗序列,并对数据进行归一化处理,使用Seq2point方法将总功耗序列与负荷功耗组合在一起,形成训练集与测试集.
(3) 信息提取.提取输入信号信息,并自适应校准信息.
(4) 特征映射. 全连接网络将输入映射至设备功率.
图6 该文方法的负荷分解流程
该文选取UK-DALE[13]为数据集,数据集包含5个家庭的用电信息,每个家庭的用电信息包括每个用电设备和总负荷的有功功率.用电设备和总负荷有功功率的采样间隔分别为6,1 s.选取5个常用电器(冰箱、水壶、微波炉、洗碗机和洗衣机)为分解目标,这5种电器具有不同的运行特性,可更好地验证该文方法的有效性.对数据集中的无效值进行处理的方法为:用同一时刻所有设备的有功功率之和代替总负荷的有功功率,以修正数据集中总负荷有功功率的无效值;用设备下一时刻的有功功率代替此时刻设备的有功功率,以修正数据集中设备有功功率的无效值.
硬件为:Intel(R)Core(TM)i5-8300H CPU@2.3 GHz、8 G内存、8 G显存的64位计算机. 软件为:Windows 10家庭中文版操作系统,Python3.6.10,Keras2.3.1深度学习框架.
评价负荷分解及识别的指标有多种[14],该文选取MAE和SAE为负荷分解的指标、 ACC和F1为负荷识别的指标,其定义式分别为
(13)
(14)
(15)
(16)
其中:T为功率序列的长度;yt为t时刻分解出的负荷功率;y′t为t时刻负荷的真实功率;e为分解出的负荷总功率;e′为真实的负荷总功率;TP表示负荷为开启状态且方法识别为开启状态的次数;TN表示负荷为关闭状态同时方法识别为关闭状态的次数;FN表示负荷为开启状态且方法识别为关闭状态的次数;FP表示负荷为关闭状态且方法识别为开启状态的次数.
MAE的值越小,方法分解出的功率与实际功率越接近,分解的准确度越高. SAE的值越小,方法分解出的总功率与实际总功率越接近,分解的准确度越高. ACC的值越大,方法正确识别负荷开启及闭合的次数占总识别次数的比值越大,识别的准确度越高.F1的值越大,方法正确识别负荷开启的次数与错误识别负荷开启及闭合次数之和的比值越大,识别的准确度越高.
为了证明该文方法的有效性,将去噪自动编码器(denoising autoencoders,简称DAE)、基于卷积神经网络的序列到点学习(sequence-to-point learning via convolutional neural network,简称CNN-S2P)、门控循环单元(gate recurrent unit,简称GRU)、扩张残差网络(dilated residual network,简称D-ResNet)方法的实验结果与该文方法实验结果进行对比.所有实验使用的数据均相同,滑动窗口的长度均为100.5种方法的负荷分解结果如表1所示.
表1 5种方法的负荷分解结果
由表1可知:该文方法的MAE均值相对于DAE,CNN-S2P,GRU,D-ResNet方法的MAE均值,分别下降了27%,30%,35%,35%;该文方法的SAE均值相对于DAE,CNN-S2P,GRU,D-ResNet方法的SAE均值,分别下降了54%,40%,43%,55%.因此,该文方法相对于DAE,CNN-S2P,GRU,D-ResNet方法有更高的负荷分解准确度.
完成负荷分解后,接着对负荷进行识别.将方法分解出的功率与负荷阈值功率比较,若分解出的功率大于或等于阈值功率则认为负荷开启,反之则认为负荷关闭. 若方法分解出的负荷开启且实际负荷开启,则认为负荷开启的识别结果正确,反之则认为负荷开启的识别结果错误. 若方法分解出的负荷关闭且实际负荷关闭,则认为负荷关闭的识别结果正确,反之则认为负荷关闭的识别结果错误. 该文负荷工作状态阈值取自UK-DALE数据集.5种方法的负荷识别结果如表2所示.
表2 5种方法的负荷识别结果
由表2可知:该文方法的ACC均值相对于DAE,CNN-S2P,GRU,D-ResNet方法的ACC均值,分别提高了6%,5%,8%,17%;该文方法的F1均值相对于DAE,CNN-S2P,GRU,D-ResNet方法的F1均值,分别提高了24%,20%,22%,52%.因此,该文方法相对于DAE,CNN-S2P,GRU,D-ResNet方法有更高的负荷识别准确度.
该文提出了基于Seq2point和SERNet的非侵入式负荷分解及识别方法.使用残差网络提取信息,引入注意力机制挤压和激励网络,对提取的信息进行自适应校准,通过全连接网络映射得到负荷分解结果,进而识别负荷. 用公开数据集对该文方法进行验证,结果表明相对于其他4种方法,该文方法有更高的负荷分解及识别的准确度.