非侵入式负荷监测(non intrusive load monitoring,NILM)技术是21世纪中国电力科技创新与发展的重要趋势[1],该技术不仅能帮助供给侧制定用户用电精细化管理服务,还能帮助用户侧实时监测家庭用电情况,进而制定节能计划来减少能耗损失.在NILM中,事件检测法[2]、因子隐马尔科夫模型法[3]和深度学习是常用方法.基于事件的方法在事件检测过程中数据容易受噪声污染,且无法监测复杂场景中用电设备的耗电信息.基于因子隐马尔科夫模型的方法在家庭用电设备数目增多的情况下负荷监测准确率较低,基于深度学习的方法需要大量的样本数据进行训练,负荷监测的精度和效率往往不能同时得到保证.文献[4]利用主成分分析法获取负荷特征数据,结合长短时记忆网络(long short term memory network,LSTM)进行模型训练,提高了运算效率.文献[5]提出了基于时间模糊化长短时记忆的NILM方法,通过划分用电时间段,利用LSTM建立设备状态关联性提高负荷分解准确率.文献[6]通过局部平均分解算法分离混合信号,将电力数据转换成图片的形式输入到卷积神经网络(convolutional neural networks,CNN)中进行训练.该方法虽然能从混合电流信号中识别出各个运行负荷的电流信息,但却无法识别出具有相似波形的负荷.文献[7]结合了聚类经验模态和CNN-LSTM的混合神经网络进行超短期负荷预测,该方法具有较高的精确度和运算效率,且抗干扰能力强,利用经验模态分解的各个模态分量虽然没有出现模态混叠的现象,但是当进行模态分量分解时须要进行多次迭代,不同的迭代得到的模态分量效果会有所差异.文献[8]采用格拉姆矩阵编码的负载标识构建方法,将负荷辨识分为边缘端独立负荷辨识和边缘-云协作负荷辨识两部分,在边缘端开发轻量级网络RBFNet,输入低分辨率编码,在云端开发L2-AlexNet模型,输入高分辨率编码.该方法显示了较好的适用性和鲁棒性,但对于实际使用缺乏分配合理性,前者占用资源少,负荷辨识精确度低,后者负荷辨识精确度高,资源多,占用内存空间较大.综上所述,为了提高NILM的精确度和运算效率,采用CNN-LSTM混合神经网络模型充分学习不同设备数据间的特征,结合短时傅里叶变换(short time fourier transform,STFT)对负荷数据进行预处理.为了满足用户电力消耗在实时业务、应用智能、安全与隐私保护等方面的基本需求,提出将该NILM模型存储于云中心并结合边缘计算来进行本地负荷监测[9].1 非侵入式负荷监测整体负荷监测系统架构包含两条线路:线路一主要由数据采集终端、边缘平台、网络通信、云中心和站控管理中心五个部分组成;线路二主要由数据采集终端、本地计算机和站控管理中心组成,如图1所示.10.13245/j.hust.238602.F001图1非侵入式负荷监测架构对于线路一,采集终端主要通过传感装置获取每个住宅内的能耗信息,包括用电设备的有功功率、无功功率、电流、电压消耗等信息.首先,将每个住宅中收集到的设备负荷信息形成大数据;然后,在边缘平台中将采集到的各项设备能耗信息进行分类选择[10],利用边缘计算对各个住宅采集到的用电数据量进行卸载分流,降低网络中数据传输的压力,并转达上位机对设备的各种控制指令,通过云平台实现神经网络的训练;最后,在手机端或者PC端下达命令,对数据进行采集、接收、存储、处理和分析,将最终的负荷监测结果展示给用户.边缘计算通过网络中采集和通信节点过剩的数据处理能力在靠近实物或数据源头的网络边缘侧就近提供服务,能够满足业务实时、安全与隐私保护的需求.网络接入控制主要为下层电力设备数据采集终端提供一致的协议互联、连接管理及网络节点状态监测.数据接口管理主要针对上层云平台,通过对数据进行初步处理后为上层云平台提供统一且便于调用的数据接口.该线路适用于数据量大的场景.对于线路二,首先将采集终端采集到的数据进行预处理,然后通过本地计算机建立基于STFT-CNN-LSTM的负荷模型来实现负荷监测,最后可以用手机端联网进行观测.本文所提方法主要基于线路二实现.2 数据分析处理在NILM中,数据分析处理是实现负荷监测的基础.在不同的住宅中,用电习惯不同,电器数目也各不相同.当多种电器混叠运行时容易出现噪声干扰,为了避免电器运行噪声对负荷精确度的影响,本研究利用STFT对不同住宅中采集到的负荷功率进行预处理.为了保证数据信息可靠准确,引入边缘节点的理念进行部署.2.1 数据集介绍使用英国数据能源中心发布的UK-DALE数据集,该数据集包含了5个家庭用户的用电设备数据,具体信息如表1所示.10.13245/j.hust.238602.T001表1UK-DALE数据信息家庭人数采样信息开始日期结束日期1416 kHz,1 Hz,6 s2012-11-092015-01-052216 kHz,1 Hz,6 s2013-02-172013-10-10326 s2013-02-272013-04-08426 s2013-03-092013-10-015216 kHz,1 Hz,6 s2013-06-292014-11-13该数据集包含高频数据和低频数据,其中,子表数据每6 s采集一次,5个房屋每6 s进行一次汇总记录.对于每一个设备,若数据空隙短于3 min,则对其做前向填充;若数据空隙长于3 min,则假定设备关闭,做0填充.在5个住宅中,住宅1的数据采集时间最长,设备也最为丰富,其次从住宅2、住宅5、住宅4到住宅3,设备数量依次减少.住宅3的数据采集时间最短,设备类别也最少.考虑到住宅1和住宅2中的用电设备最为丰富,测量对象的选取范围较广,从住宅1和住宅2中综合选取测量对象;同时,测量对象的选取须要考虑设备的能耗水平和硬件结构[11].在数据集中,住宅1和住宅2中都含的设备包括冰箱、洗衣机、电水壶、微波炉和电视机,从能耗水平考虑,这5种负载中包含了大功率设备和小功率设备;从硬件结构考虑,洗衣机和冰箱属于非线性负载,电水壶属于线性负载.综上所述,选取住宅1和住宅2中的冰箱、洗衣机、电水壶、微波炉和电视机作为测量对象;同时,分别将住宅1和住宅2中2013年3月18日及以后的数据切分为60%的训练集、20%的验证集和20%的测试集,验证集用于对训练过程中的参数调优,测试集用于模型评估.以用电设备的开启和关闭状态作为标签,开启为1,关闭为0,通常情况下默认标签为0.此外,对选取好的负荷信息,通过STFT进行预处理.2.2 短时傅里叶变换STFT是傅里叶变换的变体形式,是一种在时间和频率上具有良好特性的时频分析方法.由于对整个序列做傅里叶变换会丢失时间信息,因此采用逐段做傅里叶变换的形式,将一段非平稳的信号看成若干个局部平稳的信号,在时间轴上把这些信号截取成多个固定时长的时间窗,然后对时间窗内的信号做傅里叶变换.以家庭1为例,设备输入数据共计160万帧,对于一个原始的功率信号P(t),输入序列长度为T,窗口长度为τ.首先,须要将窗口移动到信号的开端,确定时间窗函数h(t)的中心位置τ0,以一定的滑动步长s移动,若时间t=τ0,则对信号进行加窗处理后得到y(t)=P(t)h(t-τ0),(1)对其进行傅里叶变换后得到G(y(t))=∫-∞+∞P(t)h(t-τ0)e-jωtdt,(2)式中ω为分段序列的频率.式(2)为第一个分段序列的频谱分布,此部分分割256个采样点作为一个数据段.为了方便表示,用函数S(f,τ)来定义时间窗函数,对原函数进行变换后的结果为S(f,τ)=G(y(t))=∫-∞+∞P(t)h(t-τ)e-jωtdt.(3)以此类推,通过滑动时间窗并进行傅里叶变换直到末端,便可得到整个信号的时频谱,进而获取用电设备的负荷状态信息.变换后的STFT尺寸大小由时间维度D和频率幅值K决定,假设滑动的步长和窗口的长度相同,D为输入序列长度和窗口长度的比值,K为1/2倍窗口长度加1.由于不同的负载具有不同的耗电特性,各个电器的组成元件和功能原理也都存在差异,因此家庭1和家庭2中都存在的5种负载会呈现出不同的时频特性,此处可根据不同的负载设置相应的窗口长度.3 网络模型结构在NILM中,常见的研究方法包括对过去基础网络模型的改进和各类算法与网络模型的结合,在各类模型改进方法中通常存在训练效率高但训练精确度低的问题.在网络模型相结合的方法中虽然有时会出现模型泛化能力低的问题,但是通常情况下选用合适的方法对负荷数据进行预处理后便比较容易取得一个好的训练结果.目前常用的数据预处理方法包括经验模态分解方法、变分模态分解方法和STFT,不同的方法具有不同的优点,本研究采用CNN-LSTM相结合的混合神经网络模型,将生成的二维时频谱信息作为CNN的输入,并通过LSTM网络进行模型训练以增强模型的时间序列处理效率.3.1 CNN网络模型CNN是一种类似于人工神经网络的多层感知器,具有良好的容错能力、并行处理能力和自动学习能力,分辨率高,运行速度快,可以处理在复杂情况中的问题.CNN的模型结构如图2所示.CNN通过对输入数据进行卷积运算并在内部采用局部连接的结构有效提取数据蕴含的深层特征,采用权值共享的方式来减少参数数量,降低训练难度,在处理二维的输入数据时具有强大的优势.因此,使用CNN对STFT处理过的二维时频信息进行特征提取,然后传入LSTM中进行负荷辨识.10.13245/j.hust.238602.F002图2CNN结构图3.2 LSTM网络模型LSTM网络是循环神经网络(recurrent neural network,RNN)的变体.RNN主要用于处理序列数据,其网络结构主要由输入层、隐藏层和输出层组成,如图3所示,图中:x(t)为序列在t时刻时训练样本的输入;h(t)为序列在t时刻时模型的隐含层输出;o(t)为t时刻系统的输出;l(t)为t时刻系统的损失函数;y(t)为t时刻模型集中训练得到的真实值;U为输入层和隐藏层之间的权重矩阵;V为隐藏层和输出层之间的权重矩阵;W为前一时刻输出的权重矩阵作为当前时刻的输入.10.13245/j.hust.238602.F003图3RNN网络架构LSTM网络在RNN原结构的基础上增加了3个控制信息传递的门控单元,将短期记忆和长期记忆进行结合,在一定程度上解决了RNN在长序列中出现的梯度消失问题[12].LSTM网络结构如图4所示,图中:ft为过去记忆衡量因子;ht-1为上一个隐层状态信息;xt为t时刻的输入向量;ct-1为过去记忆信息;σ为sigmod函数;it为sigmoid函数输出值;kt为tanh函数输出值;gt为新的记忆信息.10.13245/j.hust.238602.F004图4LSTM网络架构LSTM网络结构的左端为输入层,右端为输出层,中间部分为3个门控单元,分别为遗忘门、输入门和输出门.遗忘门用于信息记忆的删减.首先将ht-1与xt结合,然后用Wf矩阵将其调整成与t时刻隐藏层相同的维度,共同输入到σ,最后通过sigmod函数将输出值压缩到0~1之间,剔除掉接近于0的输出值,保留接近于1的输出值.输入门用于更新信息记忆.首先将ht-1和xt输入到sigmoid函数中进行信息筛选,将ht-1和xt传递到tanh函数中创造一个新的侯选值向量;然后把sigmoid函数输出值it与tanh函数输出值kt做运算并添加到ct-1中扩充记忆容量,最后加上ft和ct-1的乘积,便可得到更新后的记忆ct.输出门用于确定下一个隐藏状态的值.首先把ht-1和xt输入到sigmoid函数中,将更新后的ct传递给tanh函数;然后将tanh的输出与sigmoid的输出相乘来确定隐藏状态应携带的信息;最后将隐藏状态作为当前记忆输出并把新的记忆和新的隐藏状态传递到下一个时间步长中去.3.3 STFT-CNN-LSTM网络结构基于STFT-CNN-LSTM的负荷辨识网络结构整体由输入层、CNN网络层、LSTM网络层和输出层组成.首先,输入层将经过STFT处理过的负荷功率数据输入到CNN网络层中进行充分挖掘.CNN网络包括池化层和Flatten层2个卷积层.两个卷积层的作用是提取更深层次的负荷特征,以Relu为激活函数,卷积核个数都为32,卷积核尺寸为2,池化层和Flatten层对负荷数据分别进行模型参数精简和扁平化.然后,CNN网络把提取到的特征输入到LSTM网络中,通过LSTM网络保留有用信息,遗忘无效信息,LSTM网络由一个LSTM层和一个全连接层组成,其神经元个数为32.由于经过STFT变换可以分离出有周期规律性的干扰信号,提取负荷特征,因此使用一层LSTM网络便可得到不错的负荷监测结果.在网络训练过程中,如果模型的参数太多,训练样本太少,那么训练出来的模型很容易产生过拟合现象.过拟合具体表现为:在训练数据上损失函数较小,预测准确率较高;在测试数据上损失函数较大,预测准确率较低.如果模型过拟合,那么得到的模型几乎不能用.而通过随机失活(Dropout)可以有效缓解过拟合的发生,在一定程度上达到正则化的效果.Dropout通过设置神经元的激活值,以一定的概率停止工作来增强模型的泛化性,当设置Dropout为0.5时能够增强模型的泛化性,缓解过拟合发生.在训练过程中使用梯度下降法使损失函数不断下降直到收敛,整体混合网络结构如图5所示.10.13245/j.hust.238602.F005图5STFT-CNN-LSTM网络结构图最后,通过Dense层对LSTM输出的向量维度进行变换,计算出网络的损失后输出,以sigmoid为激活函数,定义交叉熵损失函数作为网络误差评估值指标,表达式为L=-∑i=1nPi'logPi+(1-Pi')log(1-Pi'),(4)式中:Pi为所给样本i的用电设备实际功率值;Pi'为CNN-LSTM网络输出的预测功率值;n为训练样本的总数.为了更高效地提升运算效率,可以将上述搭建好的混合神经网络模型通过网络传输上传到云中心进行训练,相较于传统的云计算方法在数据处理能力上有很大的提升,能够处理海量的用电负荷数据[13].另外,还能够提升NILM的整体计算性能,减轻通信和数据存储负担,为设备的负荷特征分析提供重要的数据,同时具有更快的网络服务响应.4 实验分析4.1 实验环境实验在AMD Ryzen 53500x 6-Core Processor(6CPUs),3.6 GHz的处理器,8 GiB内存,6 GiB显存,Windows专业版64位操作系统上进行.使用Python 3.6.2(64)位作为软件支持平台,以Tensorflow+Keras为深度学习框架,安装GPU加速计算的CUDNN库进行网络模型的硬件加速.4.2 实验评价指标在非侵入式负荷辨识中,正确率(A)是验证方法有效性的重要指标,调和平均数(F1)是判断设备启停状态的重要指标,是模型中准确率(p)和召回率(R)的调和平均数,因此选取二者进行实验评价.此外,利用交叉熵损失函数进行网络误差评估值指标,定义计算方法为R=TPTP+FN;p=TPTP+FP;F1=2pRp+R;A=TP+TNN++N-,式中:TP为负荷在真实数据中打开而在预测中也是打开时的总数;FP为负荷在真实数据中关闭而在预测中打开时的总数[14];TN为负荷在真实数据中关闭而在预测中也是关闭时的总数;FN为负荷在真实数据中打开而在预测中关闭时的总数;N+和N-分别为真实数据中负荷打开、关闭的总数.通过以上指标可以大致得到算法的评分.4.3 实验结果分析为了更全面地评价基于STFT-CNN-LSTM的负荷辨识效果,证明该方法的优越性.将家庭1中所选的冰箱、电视、水壶、微波炉和洗衣机5个设备的负荷辨识结果与文献[15]所提CGAN方法和文献[16]所提GD-ResNet方法进行对比,对比结果如表2所示,表中基于GD-ResNet的方法和基于CGAN的方法由于实验需求的原因并未用到电视和水壶,因此用“—”表示.10.13245/j.hust.238602.T002表2对比结果设备评价指标GD_ResNetCGANSTFT_CNN_LSTM冰箱A0.960.781.00P0.990.871.00R0.930.911.00F10.960.891.00电视A——1.00P——0.93R——0.96F1——0.95水壶A—0.950.98P—1.000.86R—0.800.79F1—0.890.82微波炉A1.000.560.93P0.381.000.96R0.920.560.63F10.580.720.76洗衣机A0.980.571.00P0.991.000.95R0.590.981.00F10.740.990.97本研究利用STFT对负荷信号进行预处理,深层次的挖掘负荷时序特征,结合深度学习对模型进行训练增强了辨识准确率,相较于GD-ResNet方法和CGAN方法,A和F1整体有明显提高.基于GD-ResNet的方法通过加深网络提取深层次的负荷特征来提高辨识准确率,在洗衣机和微波炉的正确率上效果较好,但是在调和平均数上效果并不理想,因此该方法更擅长辨识使用频率较低的电器.基于CGAN的方法是一种生成对抗网络的方法,和GD-ResNet的方法相反,该方法在使用频率较低的电器上准确率表现较差,且该方法实际的计算速度较慢,对计算机内存要求较高.基于STFT-CNN-LSTM的方法在20次迭代的情况下平均每种设备的训练时间为9 min,相较于CGAN的方法和基于GD-ResNet的方法展现了较好的训练效率.此外,除了分别对所选取的5个设备进行单独效果辨识外,另外在搭建的实验平台上分别对家庭1和家庭2中冰箱+电视机(组合1)、洗衣机+水壶+微波炉(组合2)、冰箱+洗衣机+水壶+微波炉+电视机(组合3)这3种电器组合来测试所提方法的辨识效果.测试结果如表3所示.10.13245/j.hust.238602.T003表3组合测试结果电器组合ARpF1家庭1组合10.9931.001.001.00组合20.9980.620.930.74组合30.9851.000.670.81家庭2组合10.9921.001.001.00组合20.9960.680.940.79组合30.9850.920.810.86组合1中的冰箱和电视属于家庭中高频率使用的开关型设备,冰箱的运行具有周期性特点,电视不开时通常处于待机状态.二者的运行状态简单,功耗值相对较低,因此F1较高且误差较小.组合2中水壶和微波炉都包含开关型电器和连续变化状态电器的特点,当设备运行时功耗较大.洗衣机属于多状态电器,当状态变换时,会产生功率波动,因此,这3个电器组合时误差会增大,F1会减小.组合3将5个电器放在一起,和组合1相比F1明显减小,和组合2相比F1明显提高.组合3的负荷辨识模型随着协同训练次数的增加不断趋向收敛.精确值也随着训练次数增加稳定上升,当训练次数达到13次时,精确度的值开始稳定,整体效果比较理想,损失值收敛曲线和精确度曲线如图6和7所示,10.13245/j.hust.238602.F006图6损失值收敛曲线10.13245/j.hust.238602.F007图7精确度曲线综上,本文方法整体呈现了较好的效果.5 结语本研究提出了一种基于STFT-CNN-LSTM的NILM方法,并融入了边缘计算及云中心协同的理念来增加数据存储、隐私保护和运算速度.首先,利用STFT的去噪能力和特征提取能力对负荷功率数据进行预处理,获取时频谱图并转化为二维数组的形式输入到CNN中;然后,通过CNN进一步提取深层负荷特征再输入到LSTM中进行训练和识别;最后,由全连接层输出负荷监测结果.该混合模型能够克服单一模型负荷监测效率低的缺陷.其中,从实际应用的角度考虑,提出数据预处理过程可以在边缘节点中进行,这样能减少数据传输的压力,将深度学习模型嵌入云中心,增加负荷监测的实时性.实验数据选择UK-DALE数据集验证,整体负荷监测准确度达到98%以上,对比实验也展现了不错的效果.

使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,

确定继续浏览么?

复制成功,请在其他浏览器进行阅读