嵌入式NILM 电力负荷识别及特征库构建系统设计

2021-03-11 03:09杨会军郭丽红包永强王传君
电子器件 2021年6期
关键词:变点通信地址电表

朱 昊,杨会军,郭丽红,包永强,王传君

(1.南京工程学院信息与通信工程学院,江苏 南京 211167;2.国网江苏省电力公司信息通信分公司,江苏 南京 210024)

目前我国智能电网物理系统已基本架设完毕。深入分析家庭内部使用的电力负荷种类及工作状态是实现电网智能化必须具备的重要能力。了解上述信息后,电力部门可以根据居民用电习惯合理制定电能调度方案,减少电力消耗,提高电网利用率[1-2]。但目前使用的智能电表只能读取用户用电总量,并不能实现上述功能。如要进行各类电力负荷的状态监测,最简单的方法是在用户的每个负荷上加装传感装置,采集负荷用电信息。但这种方案的硬件成本巨大,不具备推广价值。

研究表明,每种用电设备在运行过程中都可以用一组信息反映其独特的用电状态。这组信息包括电压、电流、有功功率等,称之为负荷印记[3]。因此在现有智能电网物理结构基础上,直接采集入户电表数据,基于人工智能技术对用电信号深度分析,识别负荷印记的非侵入式负荷监测(non-intrusive load monitoring,NILM)技术具有重要应用价值[4-6]。目前NILM 系统主要有两种实现方式。一种是基于负荷印记特征库的有监督识别。其具体流程包括构建面向负荷数据采集系统,采集用户用电信息,采用人工智能方式进行负荷分解,结合特征数据库进行负荷识别。其中,负荷印记特征库的构建包括采集不同电器不同工作状态下的电量数据样本,分析数据时频特征、设计有效的负荷印记。另一种方式不需要特征库,通过深度神经网络直接进行负荷分解及识别。第二种方式虽然可实现自动识别,但识别率较低,且深度学习对硬件要求较高[7,8]。因此基于负荷印记特征库的识别方法更受研究人员关注。本文就负荷特征库采集系统的构建及负荷信号识别方法展开讨论。

1 采集系统构建

1.1 系统总体结构

本系统基于STM32F407 微处理器对智能电表或集中器数据进行采集、存储、分析。智能电表和集中器可同时接入多个负荷。数据采集系统采集数据后可在本地进行识别,也可以上传至上位机进行复杂处理。系统总体结构如图1 所示。

图1 NILM 电力负荷采集系统

1.2 系统硬件结构

智能电表相较传统电表在通信方式上作出了许多拓展,利用不同的物理介质有不同的通信方式,在我国使用比较广泛的有如下几种通信方式:RS-485通信、载波通信、GPRS 通信。其中,RS-485 通信相较于其他两种通信方式,结构简单、使用便捷,应用广泛。从硬件成本角度考虑,本系统采用RS-485 通信方式实现智能电表和STM32 之间的交互。RS-485串口通信模块与STM32 电路连接如图2 所示。系统选用MAX485 芯片驱动。STM32 的PA2 口连接MAX485 的RO 引 脚,STM32 的 的PA3 口 连 接MAX485 的DI 引脚,STM32 的PG6 口连接MAX485的RE、DE 引脚。数据的接收与发送通过控制485_RE 引脚为0 或1 来实现的,数据通过485_RX 和485_TX 引脚收发。RX_485 通信模块原理如图2 所示。

图2 485 通信模块电路

系统配备了2.8 寸TFTLCD 触摸屏,用于本地显示采集结果。显示屏主控芯片为ILI9341,触摸控制芯片为XPT2046,用于将在触摸屏上检测到的触摸点转换为x,y坐标值提供给LCD 的MCU 进行处理。LCD 和XPT2046 与STM32 的连接如图3、图4 所示。

图3 LCD 接口电路

图4 XPT2046 驱动电路

1.3 系统软件设计

系统核心功能为采集负荷用电数据。我国智能电表采用电力系统的DL/T645-2007 协议进行串行通信。DL/T645-2007 协议的帧格式如表1 所示。数据通信时,每帧数据域中的每个字节都会加33H进行加密处理,所以在编写接收部分代码的时候,都要对接收到的电表返回帧的数据域数据减33H 解密。此外,为了传输数据的准确性和及时性,在发送信息帧之前,需要发送4 字节的FEH,目的是为了在传输信息前唤醒接收方。

表1 DL/T645-2007 协议帧格式

RS-485 通信是半双工的工作模式。系统需要采集的数据包括通信地址,电表电量,电压,电流,事件记录。所以需要分析的帧的格式有读通信地址,读数据。

(1)读通信地址

发送请求读电表的通信地址的信息帧为:

FE FE FE FE 68 AA AA AA AA AA AA 68 13 00 CS 16

FE 为唤醒符,68 为帧起始符,AA…AA 为地址域,13 是控制码,表示这个信息帧的要求是读取通讯地址,CS 为校验码,它的计算方法是将每个信息帧第一个位开始到校验码这一位结束,这两位之前所有字节取模的相加,最后一个数据16 为结束符。

从站正常应答的时候帧的格式为:

FE FE FE FE 68 A0 A1 A2 A3 A4 A5 68 93 06 A0 A1 A2 A3 A4 A5 CS 16

FE 为唤醒符,68 为帧起始符,A0…A5 为地址域,93 为返回帧的控制码,表示返回的是通信地址,06为后面返回的数据长度,A0…A5 为返回的数据域,这里表示电表的通信地址,接收到数据,需要对这六位减33H 解密处理,16 为结束符。从站异常不应答。

(2)读数据

发送请求数据的信息帧为:

FE FE FE FE 68 A0…A5 68 11 04 DI0…DI3 CS 16

FE 为唤醒符,68 为帧起始符,A0…A5 是电表的通信地址,11 为帧的控制码,表示现在希望获取电表采集的数据信息,04 为后面携带的信息的字节长度,DI0…DI3 是数据标识,表示需要获取的数据种类。电量的标识是00 00 01 00,电压的标识是00 01 01 02,电流的标识是00 01 02 02,CS 是校验码,16 是结束符。

从站正常应答的时候帧的格式为:

FE FE FE FE 68 A0…A5 68 91 L DI0…DI3 N1…Nm CS 16

FE 为唤醒符,68 为帧起始符,A0…A5 为电表的通信地址,91 为帧的控制码,表示返回的是读取的电表信息,L为本帧后面所携带的数据的长度,L=04H+m,m为返回的数据字节数,返回的数据电能的字节数为4,数据电压的字节数为2,电流为3,N1…Nm为返回的数据,需要每位减去33H,CS 是校验码,16 是结束符。

2 数据预处理

系统采集负荷数据会有噪声叠加在其中。用于监测负荷瞬态特性的高频采样数据噪声更加严重。因此进行数据处理前,首先要进行去噪工作。去噪算法种类很多,如均值滤波、维纳滤波、中值滤波等。均值滤波属于线性滤波,算法简单,但不易消除脉冲噪声。中值滤波主要用于消除脉冲噪声点,对白噪声滤除效果较弱。维纳滤波主要用于滤除平稳随机噪声,对于非平稳随机噪声滤除能力有限[9,10]。本系统对采集电流信号噪声进行频谱分析,信号时域和对应频谱如图5 所示。

图5 电流信号时域、频域信号

如图可见,NILM 测量噪声类型为非白噪声。而负荷投切瞬间包含非平稳特性。故本系统先采用中值滤波,再使用均值脉冲对波形进行平滑。中值滤波主要用于去除单脉冲干扰信号,因此窗口值设为3。均值脉冲主要用于对波形进行平滑,窗口值可以较大,本系统取采样频率值的1/10。

3 事件监测

3.1 事件监测原理

采集系统识别用电负荷的工作状态,首先需要监测负荷的投切事件。负荷投切是指开启电源工作以及关闭电源停止工作。系统监测到投切事件后,才能识别负荷完整的工作过程,从而进一步进行特征提取。负荷除了投入和切除的瞬间电气状态会发生突变之外,运行过程中功能的切换也会引起电气状态的变化。这种变化事件及其特征是负荷印记的重要组成,也需要进行监测。

NILM 系统事件监测本质上属于变点统计分析问题[11]。对于某一种参数,如电流信号,NILM 系统采集所得为一维数组,数据按照时间排列。如果数据发生显著变化则该时刻成为变点。目前NILM 系统中常用的事件监测方法包括累积和(cumulative sum,CUSUM)法、粒子群法、小波分析法等。上述方法各具优点但运算量均比较大。基于硬件成本考虑,本系统采用STM32 嵌入式处理器为核心,因此算法复杂度不宜太大。根据此原则,本系统采用最小二乘法估计变点。

3.2 事件发生判定

最小二乘法的目标函数是观测值与理论值之差的平方和。最小二乘估计通过最小化目标函数来获取变点位置,即事件发生的时间。设样本总量为n,Xi、di、ei分别为第i次的样本观察值、估计值和测量误差。最小二乘模型如式(1)所示[12]。

式中,k为变点个数,样本方差为σ。

本模型中,原假设H0:不存在变点是指s1=s2=…=sk+1

如果si≠si+1则否定原假设H0,确认有变点,且si对应时刻τi为所求变点,即事件发生时刻。具体判定方法如下;

定义x1,x2,…,xn的样本方差P如式(2)所示:

构建判定方法:若满足

则否定原假设H0,确认有变点。若式(6)不成立则接受H0

根据极限定理[12],式(6)中,阈值δ和方差σ2可分别用式(7)和式(8)进行估算[13]

式中,α为检验显著性水平。

3.3 事件发生时刻τi 计算

在NILM 系统中,每种负荷的变点个数各不相同。对于家用电器而言,与其工作模式的数量有关。算法实现时,变点个数k的取值大于所测各种负荷的最大工作模式数量即可。

上述模型的目标函数为

式中,规定τ0=1,τk+1=n+1,τ0<τ1<τ2<…<τk≤τk+1。如果τj时刻对应的sj≠sj+1,则认为τj是事件发生时刻。

对于目标函数F,要使其最小可以分两步处理。首先考虑sj对F的影响。令Yj为第j段之内X观察值的算术平均。

则可知当τi不变,且si=Yi时F最小。因此将F中的si替换为Yi后,F仅被τi影响。

根据式(11)可构造相邻比较法求得τi的确定位置。首先考察式(11)中的前两项和

系统计算得到事件发生时刻后,可以读取此时刻对应的电压、电流、功率数据,根据不同负荷的工作状态变化特征构建负荷印记,最终生成电力负荷特征库。

4 实验与数据分析

系统采用第一节介绍基于STM32 的采集系统对不同负荷进行测试。电表型号为三星DDS188。系统数据在本地处理的同时上传至上位机便于观测。系统工作场景如图6 所示

图6 数据采集现场

系统对于高采样率的电流信号进行滤波。系统采样频率为3 200 Hz。电流信号以及分别经过中值滤波和均值滤波之后信号如图7 所示。

图7 电流信号去噪效果

从图中可以看出,滤波后虽然幅值有所降低但并不影响变点位置。

为考察系统事件监测准确度,项目组对空调、洗衣机、电水壶、洗碗机4 种负载进行功能测试,采样频率为1 Hz。记录其稳态特征,包括电压、电流、有功功率和无功功率。各种波形如图8 所示。

图8 常用电力负荷稳态特性

从图中可以看出,电流和有功功率可以较好地反映负荷工作状态,适合用于设计负荷印记。本文以电流为例考察事件监测识别率。其中洗衣机电流变化频率较高,本文选取16 min 至22 min 时间段数据进行实验。识别结果如图9 所示。

图9 事件识别结果

从识别结果可以看出,当信号变化频率较低时,电流变化点通过本算法均能较好识别,当变化频率提高时,变点识别率略有下降。识别率量化计算可通过精确度PR、召回率RE以及综合性能FM这三个指标衡量[14]。首先由表2 所示混淆矩阵定义TP、FP、FN、TN。

表2 混淆矩阵

在此基础上,有如下定义:

可见,PR表示识别出且真实的变点在所有识别出的点中的占比,即考察识别出的点是否全部正确。RE表示识别出且真实的变点在所有真实变点中的占比,即考察该识别的点是否全部识别。FM是综合评价PR和RE的指标。项目组对上文所述四种负荷进行多组测试并与参考文献[13]和参考文献[10]的识别结果进行比较。文献[13]采用模拟退火算法,文献[10]采用CUSUM+BIC 算法。比较结果如表3 所示。

表3 不同算法识别率

从表3 可以看出,本文算法与文献[13]、文献[10]算法大体相当,但本文算法复杂度更加简单,适用于嵌入式系统。从数据还可以看出,本文算法对于负载工作状态变化频率较高的设备识别率较低,主要体现在洗衣机洗涤运行阶段。分析相应表4 所示部分测试数据。

表4 洗衣机工作电流数据

从测量数据可知,此时洗衣机电动机启动、停止时间均在2 s~3 s 左右。目前常用家电负荷用电状态变化频率均低于此频率。因此本算法识别率可以适用于包括洗衣机在内的常用家电负荷。

5 结论

本文设计基于STM32 处理器为核心的非侵入式家庭电力负荷采集系统。本系统可以用于采集各种家用电力负荷工作参数,并自适应监测负荷状态变化,判别负荷工作特征,构建NILM 系统负荷特征库,为NILM 系统后续的电力负荷分解、辨识构建样本数据集。实验数据分析表明,本系统识别率可以满足NILM 识别要求。相对于当前研究成果中众多的神经网络、深度学习算法,本系统算法复杂度简单,且嵌入式处理器架构硬件成本低廉,更加便于推广。

猜你喜欢
变点通信地址电表
巧判电表测量对象
电表“对”与“错”归类巧掌握
回归模型参数的变点检测方法研究
正态分布序列均值变点检测的贝叶斯方法
基于二元分割的多变点估计
独立二项分布序列变点的识别方法
一种电表模拟软件的应用研究
参加《检验医学》“检验医学新技术”继续教育的回执(复印有效)
声 明
声明