一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于LSTM和序列到点翻译模型非侵入式负荷监测方法

2022-07-10 00:32:01 来源:中国专利 TAG:

基于lstm和序列到点翻译模型非侵入式负荷监测方法
技术领域
1.本发明涉及用户侧负荷监测技术领域,具体涉及一种基于lstm和序列到点翻译模型非侵入式负荷监测方法。


背景技术:

2.智能电网采用细化的电力数据来表征用户用电行为,非侵入式负荷监测(nilm)可以有效地将单个电器的负荷从整体能耗中剥离出来,有利于充分挖掘负荷潜力。非侵入式负荷监测是一种用于智能电网的创新技术,可以提供家庭或建筑个体用电的详细信息,用户可根据分项能源数据对用电行为进行管理,详细的能源信息将支持需求侧管理和家庭能源消费管理。电力负荷监测是对电能进行分项统计的前提,在不改变现有电路结构的情况下,通过在智能电表入口处安装nilm装置便可以获取用户侧能源消费数据。
3.目前实现非侵入式负荷分解的主要方法分为组合优化和模式识别两类。其中,基于组合优化算法的nilm通过尝试将观察到的功率测量值与(设备特征库中)设备功率信号的可能组合进行匹配,以减少匹配误差作为优化策略。在nilm中主流方法是隐马尔可夫模型(hmm),该类模型适合于序列数据,并且在有监督的场景中表现良好。随着深度学习技术的流行,不同结构的深度学习网络得到日益关注。kelly等人描述了三种不同的神经网络架构:递归神经网络(rnn)、去噪自编码器(dae)和卷积回归器,利用非线性回归的深度神经网络从聚合功率序列估计单个家用电器的功耗,该方法是深度学习在nilm领域初次尝试,在负荷功耗预测方面效果显著。
4.上述研究推动了nilm领域向多元化的方向发展,但是也存在其局限性,具体如下:
5.(1)hmm模型需要处理的状态数量及运算量随着设备数量及各设备的状态数目的增加呈指数级扩张,增加了模型分解算法的复杂度;(2)基于机器学习的模型大多依靠人工提取负荷特征,模型本身不具自主学习负荷特征的能力;(3)缺乏对模型状态辨识和功率分解泛化能力的考虑;(4)基于深度神经网络对于功率连续可变类型设备及多设备同时运行场景还不能做到有效监测,并且对数据集依赖较大。
6.针对上述问题,构建了完全由数据驱动的模型,设计了一种基于lstm和序列到点翻译模型非侵入式负荷监测方法。


技术实现要素:

7.1.所要解决的技术问题:
8.针对上述技术问题,本发明提供一种基于lstm和序列到点翻译模型非侵入式负荷监测方法,采用滑动总功率数据序列来映射目标设备在功率数据窗口中点的功耗,利用卷积神经网络自动提取输入负荷总功率的局部负荷特征,引入长短期记忆网络挖掘序列中点前后相关度最高的信息完成负荷辨识,从而解决之前研究中存在的问题。
9.2.技术方案:
10.一种基于lstm和序列到点翻译模型非侵入式负荷监测方法,其特征在于:包括以
下步骤:
11.步骤一:获取电力入口处安装的智能电表采集用户所有用电设备负荷功率的历史数据,对历史数据进行预处理得到总负荷序列。
12.步骤二:对步骤一生成的总负荷序列进行信息粒化处理,并将粒化处理后的总负荷序列代入功率嵌入矩阵映射到高维紧密向量空间;
13.步骤三:基于滑动窗口的事件探测算法对步骤二得到的高维紧密向量空间进行探测,记下负荷类别作为负荷样本标签。
14.步骤四:构建序列到点翻译模型;所述序列到点翻译模型为将输入窗口的总负荷序列读取和输出序列即单个设备中的功率预测之间建立映射,将总负荷序列通过编码和解码两个步骤转换成输出序列窗口的中点值;所述构建序列到点翻译模型包括局部特征提取卷积网络和负荷识别lstm网络。
15.步骤五:采用开放数据集uk-dale对步骤四构建的序列到点翻译模型进行训练达到最佳收敛状态。
16.步骤六:利用训练好的序列到点翻译模型辨识出工作状态发生动作的用电设备,统计设备的用电信息;所述设备的用电信息包含设备的启停时刻、负荷消耗类型以及电能消耗。
17.进一步地,步骤一还包括构建每个目标设备数据的滑动窗口长度;所述目标设备为用户所有用电设备种类中的一类;步骤一具体包括:
18.将总负荷有功功率的历史数据根据目标设备的激活周期分割、预处理后导入滑动窗口;如果分割后的子序列中缺失值的持续时间小于预设的时间间隔,用向后填充法填补对应的缺失值。
19.所述预处理后导入滑动窗口的预处理为导入滑动窗口的总负荷有功功率历史数据或者输出的目标设备的功率值,减去功率平均值除以功率标准差,如下式(1);
[0020][0021]
式(1)中x为电表或目标设备在t时刻的功率值,x
mean
为电表或目标设备的功率均值, x
std
为电表或目标设备的功率标准差。
[0022]
进一步地,步骤二具体包括以下步骤:
[0023]
s21:对总负荷序列按采样频率整数倍切割粒化,得到粒化后的序列其中代表目标设备j在对应的总功率序列中的第i个功率点的功率。
[0024]
s22:将粒化后的序列代入随机初始化功率嵌入矩阵e=[v_s*e_s]映射得到高维向量
[0025]
进一步地,步骤三中的滑动窗口的事件探测算法具体包括:
[0026]
s31:对总负荷序列提取功率点pk处的窗口功率序列s=[p
k-w
...pk...p
k w
],w为pk两侧窗口长度。
[0027]
s32:预设滑动窗s的方差s
方差
作为功率突变阈值;若s
方差
>>s
均值
,则判断发生功率
突变事件;其中s
均值
为滑动窗s的平均功率。
[0028]
s33:通过滑动窗口找到功率突变事件的大致起始点p
开始
和p
结束
位置,同时利用序列窗口长度w的滑动位移,可以得到准确的事件发生始点p0
开始
=p
开始 w
,以及终点p0
结束
=p
结束 w
,探测到事件发生后,记下负荷类别作为负荷样本标签。
[0029]
进一步地,所述构建序列到点翻译模型包含局部特征提取卷积网络和负荷识别lstm网络两个部分;具体为:
[0030]
所述局部特征提取子网络全部由卷积层组成,包含5层常规卷积层,每一层的神经元数目都不一样,卷积层之间穿插了relu激活函数,在输入卷积的边缘使用零填充,在第五层卷积层中采用一个与特征图尺寸相同的卷积核对其不同通道的特征进行融合,增加该部分输出的非线性。
[0031]
所述负荷识别lstm网络通过lstm层学习和传输长期依赖信息,并在lstm层之间增加dropout层,用来减少中间相关性小的负荷特征数量,减少冗余信息的传输,增强每层各个负荷特征之间的正交性,最后通过全连接层线性分类器实现负荷辨识。
[0032]
进一步地,步骤五具体包括以下步骤:
[0033]
s51:训练模型的损失函数值,将模型预测输出与真实负荷消耗值的偏离程度进行量化,其中采用均方误差mse作为损失函数;损失函数值的具体表达式为:
[0034][0035]
(2)式中y为真实负荷消耗值;为模型预测值;n为整数。
[0036]
s52:使用adma优化算法更新模型参数,使模型达到最佳收敛状态;选择精确率、召回率、f1分数、绝对误差、准确率、平均绝对误差作为评价负荷模型的指标;其中绝对误差为实际功率和估计输出功率之间的绝对差值的商、平均绝对误差为计算逐个时刻的真实值与预测值的差的平均绝对值。
[0037]
3.有益效果:
[0038]
本发明中采用滑动总功率数据序列来映射目标设备在功率数据窗口中点的功耗,利用卷积神经网络自动提取输入负荷总功率的局部负荷特征,引入长短期记忆网络挖掘序列中点前后相关度最高的信息完成负荷辨识,有效检测了目标设备的开关状态,显著提升了负荷分解准确性。
附图说明
[0039]
图1为本发明基于lstm和序列到点翻译模型的非侵入式负荷监测方法实施架构图;
[0040]
图2为本发明的基于滑动窗的事件探测示意图;
[0041]
图3为本发明的基于lstm和序列到点翻译模型结构示意图;
[0042]
图4为本发明基于lstm和序列到点翻译模型的非侵入式负荷监测方法结果可视化图;
[0043]
图5为本发明具体实施例中的非侵入式负荷监测方法负荷分解图中的冰箱图;
[0044]
图6为本发明具体实施例中的非侵入式负荷监测方法负荷分解图中的热水壶图;
[0045]
图7本发明具体实施例中的非侵入式负荷监测方法负荷分解图中的洗碗机图;
[0046]
图8本发明具体实施例中的非侵入式负荷监测方法负荷分解图中的洗衣机图;
[0047]
图9本发明具体实施例中的非侵入式负荷监测方法负荷分解图中的微波炉图。
具体实施方式
[0048]
下面结合附图对本发明进行具体的说明。
[0049]
具体实施例:
[0050]
一种基于lstm和序列到点翻译模型非侵入式负荷监测方法,包括以下步骤:
[0051]
步骤一:如附图1所示,获取电力入口处安装的智能电表采集用户总负荷有功功率的历史数据,对历史数据进行预处理生成总负荷数据;构建目标设备数据的滑动窗口长度。
[0052]
针对不同类型的用设备设置不同窗口长度的负荷时间序列,常用电器中除了洗衣机窗口长度w设置为100,其他设备如热水壶、冰箱、微波炉、洗碗机窗口长度为50,序列长度需覆盖用电设备激活的完整周期;分割序列,使子序列中缺失值的持续时间小于20秒并用向后填充法填补缺失值;输入窗口和目标输出都经过了减去功率平均值除以标准差的预处理,即:
[0053][0054]
其中x为电表或器具在t时刻的功率值,x
mean
为设备功率均值,x
std
为设备功率标准差。
[0055]
如表1所示,展示了本实施例中所研究的家用电器的相关参数标准值,本实施例中采用典型的家用电器冰箱、热水壶、微波炉、洗衣机以及洗碗机作为实验对象;其中功率单位为瓦特。
[0056]
表1 用于归一化的用电设备参数
[0057]
负荷类别最大功率功率阈值平均功率功率标准差冰箱257250200400热水壶394820007001000微波炉3138200500800洗衣机396220400700洗碗机3230107001000
[0058]
步骤二:对步骤一预处理后的总负荷数据进行信息粒化处理,将离散的总负荷数据代入功率嵌入矩阵映射到高维紧密向量空间;具体包括以下步骤:
[0059]
s21:对总负荷序列的负荷序列按采样频率整数倍切割粒化,得到粒化后的序列其中代表目标设备j在对应的总功率序列中的第i个功率点的功率。
[0060]
s22:将粒化后的序列代入随机初始化功率嵌入矩阵e=[v_s*e_s]映射得到高维向量
[0061]
步骤三:基于滑动窗口的事件探测算法对步骤二得到的高维紧密向量空间进行探测,记下负荷类别作为负荷样本标签;其中滑动窗口的事件探测算法具体包括具体包括:
[0062]
s31:对总负荷序列提取功率点pk处的窗口功率序列s=[p
k-w
...pk...p
k w
],w为pk两侧窗口长度。
[0063]
s32:预设滑动窗s的方差s
方差
作为功率突变阈值;若s
方差
>>s
均值
,则判断发生功率突变事件;其中s
均值
为滑动窗s的平均功率。
[0064]
s33:通过滑动窗口找到功率突变事件的大致起始点p
开始
和p
结束
位置,同时利用序列窗口长度w的滑动位移,可以得到准确的事件发生始点p0
开始
=p
开始 w
,以及终点p0
结束
=p
结束 w
,探测到事件发生后,记下负荷类别作为负荷样本标签。
[0065]
如图2所示,经过滑动窗口的事件探测算法后,能够准确检测到负荷突变起始点。
[0066]
步骤四:构建序列到点翻译模型;所述序列到点翻译模型为将输入窗口的总负荷序列读取和输出序列即单个设备中的功率预测之间建立映射,将总负荷序列通过编码和解码两个步骤转换成输出序列窗口的中点值;所述构建序列到点翻译模型包括局部特征提取卷积网络和负荷识别lstm网络;具体为:
[0067]
所序列到点翻译模型是在输入序列(如nilm中的负荷功率读取)和输出序列(如单个设备中的功率预测)之间建立映射,将一个原始序列通过编码和解码两个步骤转换成输出序列窗口的中点值。序列到点体系结构定义了一个神经网络f
p
,它将输入的滑动窗口y
t:t w-1
映射到输出相应窗口x
t:t w-1
的中点x
τ
,模型为x
τ
=f
p
(y
t:t w-1
) ε,其中ε是高斯随机噪声。该结构预测设备中点元素的状态与该中点前后的输入功率信息相关,对每个中点x
τ
都有一个预测,比序列到序列模型中对整个窗口预测平均值更加精准。其中序列到点翻译模型细分为局部特征提取卷积网络和负荷识别长短期记忆网络两个部分,具体如下:
[0068]
第一部分如附图3所示,局部特征提取子网络全部由卷积层组成,总负荷数据通过卷积层映射低维特征。网络包含5层常规卷积层,每一层的神经元数目都不一样,卷积层之间穿插了relu激活函数,在输入卷积的边缘使用零填充,在第五层卷积层中采用一个与特征图尺寸相同的卷积核对其不同通道的特征进行融合,增加该部分输出的非线性,采用的7层结构为:第一层,一维卷积,卷积核大小为10,滤波器数为30,步长为1,后接relu激活函数。第二层,一维卷积,卷积核大小为8,滤波器数为30,步长为1,后接relu激活函数;第三层,一维卷积,卷积核大小为6,滤波器数为40,步长为1,后接relu激活函数;第四层,一维卷积,卷积核大小为5,滤波器数为40,步长为1,后接relu激活函数;第五层,一维卷积,卷积核大小为5,滤波器数为50,步长为1,后接relu激活函数;第六层,全连接层,输出神经元节点数为1024,后接relu激活函数;
[0069]
第七层,全连接层,输出神经元节点数为l,后接sigmoid激活函数。
[0070]
第二部分如附图3所示,负荷识别长短期记忆网络通过lstm层学习和传输长期依赖信息,并在lstm层之间增加dropout层,用来减少中间相关性小的特征数量,减少冗余信息的传输,增强每层各个特征之间的正交性,最后通过全连接层线性分类器实现负荷辨识,采用的5层结构为:第一层,lstm层,输出长度为512,后接tanh激活函数。第二层,dropout 层,参数设置为0.2;第三层,lstm层,输出长度为128,后接tanh激活函数;第四层, dropout层,参数设置为0.2;第五层,lstm层,输出长度为64,后接tanh激活函数。
[0071]
步骤五:采用开放数据集uk-dale对步骤四构建的序列到点翻译模型进行训练达到最佳收敛状态:
[0072]
s51:训练模型的损失函数值,将模型预测输出与真实负荷消耗值的偏离程度进行
量化,其中采用均方误差mse作为损失函数;其具体表达式为:
[0073][0074]
上式中y为真实负荷消耗值;为模型预测值。
[0075]
s52:使用adma优化算法更新模型参数,使模型达到最佳收敛状态;选择精确率、召回率、f1分数、绝对误差、准确率、平均绝对误差作为评价负荷模型的指标;其中绝对误差为实际功率和估计输出功率之间的绝对差值的商、平均绝对误差为计算逐个时刻的真实值与预测值的差的平均绝对值。
[0076]
本模型采用开放数据集uk-dale进行实验,数据集uk-dale具有监测周期长、采样频率低、家用负荷涉及面全等特点。该数据集包含五个英国家庭从2013年到2015年使用的智能电表数据,电源和设备分别以1秒和6秒间隔采样。在实验中,采用低频有功功率数据进行分解,不同的设备采用相同的模型网络结构。利用nilmtk工具包从电路中获取包含主电表及其下级设备的功率数据。在研究中将uk-dale数据集分为训练集和测试集进行模型的训练,使用2、3、4、5号房子来训练神经网络,1号房子作为测试数据。训练模型的损失函数值,将模型预测输出与真实负荷消耗值的偏离程度进行量化,该发明采用均方误差(mse) 作为损失函数,具体表达式为:
[0077][0078]
其中y为真实负荷消耗值;为模型预测值;n为整数。
[0079]
使用adma优化算法更新模型参数,其初始学习率为0.0001,训练模型达到最佳收敛状态,并选择精确率(precision)、召回率(recall)、f1分数、绝对误差(sae)、准确率(accuracy)、平均绝对误差(mae)作为评价负荷模型的指标,其中sae代表实际功率和估计输出功率之间的绝对差值的商;mae计算逐个时刻的真实值与预测值的差的平均绝对值,这两个指标反映模型每时刻分解功率值的准确性,值越低,则功率分解值的准确性越高。
[0080]
步骤六:利用训练好的序列到点翻译模型辨识出工作状态发生动作的用电设备,统计设备的用电信息;所述设备的用电信息包含设备的启停时刻、负荷消耗类型以及电能消耗。
[0081]
本案例选取冰箱、热水壶、微波炉、洗衣机及洗碗机这5种常见用电器作为研究对象,如附图4-9所示,采用本方法的可视化图以及各个典型家电对应的分解图;这5种典型家用电器的能源消耗占据了大量家用电费支出比,并与现有的rnn模型负荷分解方法进行了负荷分解效果对比,如表2所示。
[0082]
表2 两种模型用电设备识别率对比表
[0083][0084]
其中实验硬件环境为:intel(r)corei5-4210u双核cpu,8gddr3l内存及nvidiageforce820m(2gb显存)的64位计算机;软件平台如下:采用谷歌的colab平台ubuntu18.0464位操作系统,包含python3.7,tensorflow2.1,cudnn11.2。
[0085]
上述的rnn模型参见:kellyj.andknottenbeltw.neuralnilm:deepneuralnetworksappliedtoenergydisaggregation[c].inproceedingsofthe2ndacminternationalconferenceonembeddedsystemsforenergy-efficientbuiltenvironments,2015:55-64.
[0086]
从表2可以清楚的看出本发明的序列到点模型在大多数指标上的得分优于rnn,序列到点模型降低mae76%,尤其在洗衣机上表现突出。由此可见,改进后的模型在总能耗估计中的准确性得到了进一步的提高;准确性和f1分数指标分别进步了26.5%和60.2%,综合性能改善幅度从冰箱上的最低39%到洗衣机上的最高69%,平均改善幅度为28.8%;序列到点网络模型不仅成功确定了目标设备在给定时间窗口的聚合负载中是否处于激活状态,而且对于多种工作状态的电器有着优秀的建模能力,显著改善了功耗估计和负荷识别能力。从案例结果来看,当用户侧需要以尽可能短的延迟接收能源分解结果时,可以看出本发明的序列到点翻译模型更适合在线能量分解任务。
[0087]
虽然本发明已以较佳实施例公开如上,但它们并不是用来限定本发明的,任何熟习此技艺者,在不脱离本发明之精神和范围内,自当可作各种变化或润饰,因此本发明的保护范围应当以本技术的权利要求保护范围所界定的为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献