学习分享——基于深度学习的NILM负荷分解(二)电器数据提取

前一阵参加比赛,NILM就放了放,开始填坑、、、
GOGOGO~

数据准备

根据上一篇中提到的,我这里使用的是UK-DALE
没有下载的同学可以回到上一篇看一下(学习分享——基于深度学习的NILM负荷分解(一)对DL的看法&准备工作

这里我直接用已经转好格式的ukdale.h5

读取数据还是用NILMTK

如何配置nilmtk,可以参照我另一篇博文,里面写的比较详细(NILM(非侵入式电力负荷监测)学习笔记 —— 准备工作(一)配置环境NILMTK Toolkit

我们这次只需要用到其中读取data数据的方法就行了,之后我们自己来处理数据。

from nilmtk import DataSet

test = DataSet('E:\\Download\\UK-DALE-disaggregated\\ukdale.h5\\ukdale.h5')

加载数据只需要一句代码就行了,可以读到五间房子中几年的电器用电数据。

可以看到数据包含3项。

在这里插入图片描述

  • 其中buildings包含5个房间的所用用电器的数据

在这里插入图片描述
上图可见第一间房子中包含了69个电器,53个计量表。
我们之后读取计量表的信息为用电总功率。

  • 其中metadata里面是这份数据的介绍,在这里插入图片描述

  • 其中store是HDF格式的数据。在这里插入图片描述

提取数据

在这里插入图片描述
我这边使用第一个房子的数据来进行试验,上图可以看到第一间房子的信息是从2012到2015,数据量对于测试来讲还是比较多,还考虑到测试所选取的五个电器的共存时间,我们这里选取18-03-2013之后的数据。

building = 1  ## 选择家庭house
test.set_window(start="18-03-2013") ## 2013年3月18号之后的作为数据集

test_elec = test.buildings[building].elec

取出第一个房子的电器列表后,我们遍历所有电表
电器名称+电器序号 作为文件名,保存每个电器的数据(一些电器,例如灯,会有多个,就是序号)

gt= {}
for meter in test_elec.submeters().meters:
    gen = next(meter.load())
    values = gen.values
    index = gen.index
    label = meter.label()
    i = 0;
    while(1):
        name = label+str(i)
        if name not in gt:
            break
        else:
            i += 1
    np.save('UKData/'+name,values)
    gt[name] = 1
    print(values.shape,'   ',index.shape)
    print('saving...', name)

我这保存的路径是当前py目录下的UKData文件夹里面,自行修改。

运行中如下
在这里插入图片描述
之后可以看到我们保存出来的所有电器的数据
在这里插入图片描述
今天就先到这,
下一文从电器中挑选五个典型电器,
来生成训练数据和标签,以及训练。

To be continued.
在这里插入图片描述

### 关于非侵入式用电负荷投切事件检测的 MATLAB 实现 对于非侵入式用电负荷监测(NILM),目标是从总电表数据中识别不同电器设备的工作状态及其能耗特征。针对这一领域,在 MATLAB 中实现用于检测电气负载切换事件的方法通常涉及信号处理技术、模式识别算法以及机器学习模型。 #### 数据预处理阶段 为了有效捕捉到电力消耗中的瞬态变化,即所谓的“开关事件”,需要对原始电压电流波形进行采样并计算其功率特性参数。这一步骤可能包括但不限于: - 对采集到的时间序列执行低通滤波去除高频噪声; - 计算有功功率P(t),无功功率Q(t)等基本物理量; - 提取短时间内的均方根值(RMS)作为特征向量的一部分; 这些操作可以通过调用内置函数来完成,例如 `filter()` 函数可以用来设计和应用各种类型的数字滤波器[^1]。 ```matlab % 设计一个简单的巴特沃斯低通滤波器 [b,a]=butter(4,0.2); % 4阶截止频率为0.2倍奈奎斯特频率 filtered_signal=filter(b,a,noisy_signal); ``` #### 特征工程环节 接下来就是构建能够区分不同类型家电开启关闭行为的独特指纹库。这里会涉及到更复杂的统计分析手段,比如傅里叶变换得到频域表示形式下的能量分布情况,或是利用小波分解获取多分辨率视角下局部细节信息的变化规律等等。此外还可以考虑引入一些额外维度如相位角差分、谐波失真度指标等辅助判断依据。 一旦完成了上述准备工作之后,则可以根据实际情况选用合适的分类器来进行最终预测工作——既可以采用传统意义上的支持向量机(SVM)[^1] ,也可以尝试更加先进的深度神经网络架构(DNNs) 来提高准确性与鲁棒性表现。
评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值