NILM:非侵入式电力负荷监测之我见(一)

非侵入式电力负荷监测,简单来说,就是通过家庭入口处(就是电表)的各项特征(就是有功,电流,电压什么的),用各种算法来得到家里每个电器的状态(用了没,用在几档)和电器耗电情况(每个电器的负荷运行曲线,或者每天,每月耗电量)。

跟导师研究的nilm领域,前段时间毕业到处找工作,看到有和nilm相关的,就又继续干了,因为也确实心有不甘啊。研一时在游戏开发(不务正业!!),研二学深度学习和nilm,感觉学的凑合了差不多能出成果了,毕业了……一方面确实想看看这个项目怎么落地,另一方面把自己的一些创新点实现一下,于是,nilm成了目前的工作!!

闲话不多扯了,开nilm这个坑也是突发奇想,一是记录一下自己之前学的东西,同时如果能帮到和我刚入门时一样困惑的人,就更好了。我也学的也不算深,如果有什么说的不对的地方……你来打我呀。

既然是开坑首篇,就不说太多技术上的内容了,先谈谈我对nilm任务的理解吧。

NILM(non-intrusive load monitoring),中文 可以叫非侵入式电力负荷监测。我之所以称之为监测,而不是其他版本的说法(分解,识别),是因为(按我个人理解)nilm任务其实是分为两类任务,就是负荷分解和负荷识别(可能有很多人并不认同我这种说法,那……当我没说)。这两方面都有很大的用途,之前很多论文将nilm任务只当成负荷分解或负荷识别,这是不准确的。在NILM学术界这个问题也是刚刚意见统一没多久,不信?看下图,这是2018年国际nilm会议的第一篇论文演讲《An Experimental Comparison of Performance Metrics for Event Detection Algorithms in NILM》第一段。这篇文章讲的是event-based method(基于事件的方法)中的评价指标,其中说到:也就是在最近,研究人员们意见才达成了统一,那就是性能指标分为两类:关于事件检测的指标;关于电器耗电情况(功率估计)的指标。

NILM:非侵入式电力负荷监测之我见(一)_第1张图片

同时,这篇文章有会议视频:https://www.youtube.com/watch?v=IFtCQjnwS2o&feature=youtu.be    看第一分钟作者所说:“我现在主要讲的是event-based方法,因为还有event-free方法(各种深度神经网络)“,是不需要检测事件就能直接预测功率的。

为何要分为两类指标?因为实际上NILM任务用处很多,一种用途是给电网用的,电网一般更倾向于了解各种电器的功率消耗而不是电器开关的十分确切的时刻,比如电网每月给用户的电费清单可以列出每个电器耗电情况,再比如电网预测各种负荷曲线,电网调度可能用的着……反正都不需要太精确知道事件检测的情况;而另一种用途偏向于智能家居,面向家庭用户,就是需要知道每个电器啥时候用了,啥时候关了,每个电器耗电情况用户能知道也更好。国外已经有不少这样的NILM公司,只要你用人家公司的服务,公司就给你家装个公司自己研发的设备来监测,你下个app,然后你儿子大半夜打开了电脑,你app就提示了;你家冰箱没关严实,你app就提示了……(当然,不会说完全准确)。

高频采样的公司比如sense公司,宣传片自己感受下酷不酷炫,s://www.youtube.com/watch?v=oe-jlHInQHA 当时答辩时几个老师就一直抓着一点不放:这东西到底有啥用。我要是当时能找着这视频……估计也不让我放视频!! 这种nilm公司自带设备,高频采样电表的数据(khz到mhz),能实时监测电器事件(也就是哪个电器开了,关了),这点是低频的公司做不了的。

而如果不需要上面讲的实时电器开关监测,像电器耗电量详单,有一定延时的电器开关监测,低频也能做到。我之前的研究就集中在低频(数据采样是几秒一次)。以低频nilm公司Chai energy的视频为证:https://chaienergy.com/ (视频在官网最下面),低频公司就不需要自己有高性能采集设备,直接采电表的几秒的数据就行。

高频之所以能多做一件事:实时事件监测,是因为高频一般监测的是电器开关时的暂态特征,低频抓取不了暂态特征,像下面这个电阻型的暂态特性,整个过程就0.几秒(都是截的论文图,如有侵权,请联系我删除……)

NILM:非侵入式电力负荷监测之我见(一)_第2张图片

而低频下用的是电器的稳态特征,依据的是每个电器有自己独特的运行模式,比如下图,洗衣机一次运行超过了1小时,这段有功曲线我就不信别的电器有相近的(注:这是英国的洗衣机,美国的洗衣机曲线完全不同,是一个个细长方波)。所以,不是说低频数据少,就一定不好,低频看的是整个运行周期,看的是稳态。

NILM:非侵入式电力负荷监测之我见(一)_第3张图片

为什么要分开负荷识别和负荷分解,从算法的角度来说,是因为之前大多数算法都是识别出电器的状态,然后由状态再估计电器功率消耗,最有代表性的就是隐马尔可夫模型及其各种变种。也就是说,如果我最终目的是负荷分解(电网需求),那我依然要先负荷识别,再由识别出的状态估计电器耗电量。但是现在,像风头正盛的深度学习方法,是event-free方法,不需要检测电器开关事件就能预测功率消耗。当然,如果你的目的就是要做负荷识别,当然也可以用深度学习方法(比如2018年nilm会议最佳论文《On the Feasibility of Generic Deep Disaggregation for Single-Load Extraction》,就是用全卷积网络做的低频下的负荷识别),称其为event-free方法是以最终目的为负荷分解来说的。

近些年老外的NILM文章更多的是进行负荷分解,很多文章开头就会说:NILM,又叫energy disaggregation,不能再直白了。或者从国外公开数据集的情况来看,低频数据集(大于1hz)占了大多数,而且基本上都同时记录了电表和各个电器的功率消耗数据,以便用于分解算法。

因此,我就开始了我的低频下的nilm研究之路…… (现在高频下的我也在研究,毕竟两者可以互补,而不是非得选个谁最好)

开坑首篇,纯属闲谈,后面,就开始谈技术啦。

你可能感兴趣的:(nilm)