基于SOPC 的实验室负荷智能监测装置

2020-08-25 09:08吴万强彭良福王逸凡
实验室研究与探索 2020年6期
关键词:用电器特征参数用电

吴万强, 彭良福, 甘 桂, 王逸凡

(1.西南民族大学电气信息工程学院,成都610041;2.桂林电子科技大学广西精密导航技术与应用重点实验室,广西桂林541004)

0 引 言

近年来,高校对于实验室建设的投入在不断增加[1]。实验室的照明、仪器、设备等的运转离不开电力,电力稳定是支撑实验室科研工作稳步进行的基础[2]。用电安全是高校实验室工作的重要组成部分,是避免实验室安全火灾事故的关键。

对实验室用电设备的监测和管理是实验室电网消耗端建设的一个重要部分。电网消耗端电能使用的智能化管理十分重要。负荷监测技术可以帮助管理者了解用电器的使用情况,目前用电器的监测大多数是侵入式的,在每个用电器的接入端安装传感器,通过传感器实时采集信息[3]。这种方法需要在每个负荷处安装相应的数据采集、传感装置,因此会消耗一定量的人力物力。非侵入式负荷监测技术(Non-intrusive Load Monitoring,NILM)很好地解决了侵入式监测的弊端。它只需要在用电入口安装一个传感器,通过采集和分析电网总的用电电流、电压信息来监测电网内的用电器[4]。

本文基于可编程片上系统(System On a Programmable Chip,SOPC)技术设计了一种非侵入式实验室负荷智能监测装置,在Zybo Z7-20开发平台上进行软核设计的方法。Zybo Z7-20开发板包括现场可编程门阵列(Field Programmable Gate Array,FPGA)数字逻辑部分和双ARM Cortex-A9处理器部分。SOPC作为可编程的高度集成的片上系统,实现了以往需要多个电路板或器件、芯片通过互联才能实现的功能,赋予了其面对复杂情况时,可通过灵活的程序设计来解决问题的能力。

1 实验室负荷特征分析

非侵入式负荷监测方法是相对于侵入式监测方法提出的,其应用示意图如图1所示。只需要在被检测电网的电力入口处安装监测传感器,通过传感器采集电网内所有用电设备总的用电信息,一般是电压和电流信息;运用合理的数学分析与计算方法对实际采集的用电数据进行处理和分析,得出电网内各个用电设备的运行情况[5]。

图1 非侵入式负荷监测示意图

电网中每个负荷由于其独特的硬件结构、功能,每个负荷在工作过程中都会表现出独特的用电特征,即负荷特性。负荷特性是负荷智能监测系统中负荷分解的核心要素,包括有功功率、无功功率、功率因数、电流有效值、谐波特性等[6],这些特性也被称为负荷的特征参数。本文在负荷分解时主要采用了电流有效值(I)、视在功率(S)、有功功率(P)、无功功率(Q)、功率因数(cos φ)5种稳态下负荷特征参数。

在实际应用中电流、电压信息是由ADC采样而来,因此电压、电流信息是离散的,相应的参数提取公式为对应的离散公式:

式中:U为电压有效值;I为电流有效值;i(n)为第n次采样时刻电流值;u(n)为第n次采样时刻电压值。

本文选取了实验室中常用的5种用电器,分别是白炽灯(Bulb)、风扇(Fan)、示波器(Osc)、信号源(DDS)、电源(Pow)。对这5种用电器进行稳态下的电压、电流信息采样,并通过上述的参数提取公式,提取出5种用电器单独工作时的稳态特征参数见表1。由表1可知,不同负荷在选取的5种特征参数上有着明显的差距,基于所选取的5种特征参数进行负荷的监测和识别是可行的[7]。

表1 负荷特征参数

2 非侵入式监测装置设计

2.1 系统的整体方案

基于SOPC技术设计了非侵入式实验室负荷监测装置,解决实验室负荷管理和监测问题。装置主要部分包括硬件电路模块、SOPC系统和外设辅助模块3部分,系统的总框图如图2所示。

硬件包括电源电路、电压互感器、电流互感器、高精度比较电路和采样电路。电源电路使用数字电源将220 V电压进行降压,使用LDO电路分别设计出5 V和3.3 V 辅助电源[8]。

鉴于装置对电压、电流的精度要求较高,选取了BWL/BVR精密线绕模压采样电阻、ZMPT107精密微型电压互感器和KO-25RCT精密电流互感器。电压互感器和电流互感器将电压和电流信号进行隔离式的转换,使用高精度的采样电阻对两种信号进行采样[8]。

图2 基于SOPC的非侵入式负荷监测系统框图

采样电路的核心芯片采用AD7606,系统PL部分完成对AD7606的驱动和数据传输,使用AD7606的两个采集通道分别完成电压信号和电流信号的采集,使用AD7606的并行数据输出模式与板卡完成数据通信,使用FPGA将采集的数据进行数据处理,提取所需的负荷特征参数[9]。

比较电路设计采用TLV3501,它是一款4.5 ns轨至轨的具有开启和关闭功能的高性能比较器。比较电路将电压互感器输出的正弦交流信号转换为方波信号,将信号输出到FPGA的I/O引脚,由FPGA数字电路进行采样,监测电网的频率波动。

SOPC系统是基于Zybo Z7-20全可编程片上系统架构平台设计,包括FPGA数字逻辑部分(Promgrammable Logic,PL)和双ARM Cortex-A9 处理器部分(Processing System,PS)。PL部分完成电网频率的测量、负荷在稳态下的特征值提取、采样电路的驱动和数据传输[10]。PS部分搭建稳态负荷监测与识别算法,驱动和控制外设辅助模块。外设辅助模块包括按键、OLED显示模块,主要功能是完成结果的显示。整个装置实物如图3所示。

图3 装置实物

2.2 负荷监测与识别算法设计

负荷识别算法采用了基于机器学习的监督学习模式下BP神经网络算法进行设计,使用Matlab的神经网络工具箱进行算法模型的构建和验证[11]。在监督学习模式下,对负荷进行标签设定,选取的5种负荷及其标签见表2。采用了独热码的方式对负荷进行标记,设置标签。对5种负荷及其组合进行了约定:当系统中有某一种负荷在工作时,标签对应的位置的值设定为“1”,否则为“0”。当有5种负荷同时在工作时,对应的标签为“[1 1 1 1 1]”,如当白炽灯、信号源同时工作时,对应的标签为“[0 0 0 1 1]”,以此类推对31种组合进行标签设计。

选取的负荷工作在稳态时的5个电能参数即x=[I,P,Q,S,cos φ]T作为神经网络的输入层,在训练算法的过程中,表2中的标签为期望的输出值,网络的输入层和输出层的神经元都为5个神经元[12]。由于神经网络的隐含层的层数以及神经元的个数的设计并没有具体的理论可以参考,只能根据实际实验的情况将神经网络的复杂程度由简易到复杂的方式进行设计,根据多次的实验,得到当网络的结构为5层时的结果较好,见表3。

表2 负荷类型及标签

表3 BP神经网络结构

BP神经网络的算法设计步骤包括BP神经网络的结构设计、BP神经网络的训练和BP神经网络验证和参数导出3个部分。第1步中的神经网络的构建已经在表3中进行了说明,第2步中的网络训练和第3步的网络验证中,待分类的基本负荷种类是5种用电器,将建立的负荷特征数据集随机分为两部分,80%作为网络的训练集,20%作为网络的验证集,通过验证集对训练后的算法模型进行验证,若预测的结果误差较大,则重新构建BP神经网络模型[13]。最后将训练好的BP神经网络的参数信息进行导出,使用C语言将BP神经网络算法模型在SOPC系统中进行重建,以便用来进行识别。

2.3 SOPC系统搭建

算法的主程序流程如图4所示,系统开始工作后,进入初始化状态,包括按键模块、PmodOLEDrgb显示屏以及PS对PL端的初始化,然后系统进行主程序的执行,当PL端监测到设备工作,启动数据采集和数据处理模块,对负荷进行特征值提取,并中断PS,将特征参数通过总线传输到PS,PS端响应中断,读取负荷特征值,进行算法处理,完成对负荷的在线辨识,将结果通过PmodOLEDrgb显示器进行显示[14]。

图4 主程序流程图

对整个系统功能划分,确定PL端和PS端各自完成的功能以及要达到的指标;完成PL端数字逻辑电路设计,利用仿真和逻辑综合进行时序检查和功能验证;将设计的数字逻辑部分进行AXI4_Lite接口的IP封装,并再次进行逻辑综合,检查AXI4总线时序是否符合要求;将生成的IP核添加到VIVADO下的工程目录,将IP添加到IP核管理器,在VIVADO下新建Block Design程序,将ZYNQ7 Processing System以及各功能模块添加到Block中,配置参数和信号线连接,如图5所示,包含了ZYNQ7 Processing System、时钟和复位IP核、AXI总线接口IP核、负荷特征参数提取IP核(Load_param)和PmodOLEDrgb驱动IP核5个部分。导出顶层文件并生成BIT文件;最后将生成的BIT文件导入SDK进行PS端软件设计,完成系统功能。

图5 SOPC系统配置

3 实验及结果分析

3.1 算法参数建立

建立负荷特征数据库有严格的标准[15],使用十进制的double型数据表示负荷特征参数数据集。假设用电负荷的特征数据库中有n(n=31)种不同组合下工作的用电负荷,本文对每种负荷的组合方式提取了m(m=50)组特征向量,其中每种组合下的用电负荷的特征向量空间可以表示为:

式中:x=[I,P,Q,S,cos φ)]T。则包含所有组合下的用电负荷的特征值数据集为:

与之对应的标签数据集为:

式中:Ynm为与Xnm一一对应的5维列向量。将整个数据集进行随机化处理,将80%的数据集作为训练集,20%的数据集作为验证集。对BP神经网络训练的方式采用Matlab工具的方式,对神经网络的参数进行初始化,并设定使训练停止的条件。

训练算法的过程使用训练数据集对网络的权重和偏置不断优化,验证数据集用于评估训练后的算法模型的性能,不参与网络的训练过程。输入层到隐含层以及隐含层之间的节点转移函数设置为“logsig”(sigmoid),隐含层到输出层的节点转移函数设置为“purelin”(ReLU),采用“trainscg”对网络进行训练,设置迭代次数epchos=15 000次,学习率Lr=0.001,最小梯度下降目标为min_grad =0.000 001,max_fail=240,其他参数默认,在训练过程中,以上几个参数任意1个达到设定值则停止网络训练[16]。图6是其中1次对BP神经网络的训练结果。整个训练过程一共迭代了15 000次,用时38 s,训练迭代次数达到设置上限时强行停止。

图6 BP神经网络训练结果

3.2 调试结果

在足够的数据集下训练好神经网络之后,使用Matlab导出神经网络的各层权值和阈值参数。按照系统软件设计搭建好SOPC系统,使用VIVADO综合、实现工具将Verilog代码转换为硬件电路,并生成BitStream文件,再将该文件导出到SDK开发环境中。

在SDK开发环境中建立工程,使用C语言编写代码,在PS端读取PL端写入到对应寄存器的计算结果,并且在工程中建立神经网络识别算法,整个识别算法计算过程中的权值、阈值使用之前从Matlab中导出的权值、阈值进行运算。将PS读到的值经过转换之后输入到神经网络识别算法运算流程中,便可得到最终的运算结果。对运算结果与之前所做的独热码一一进行对应,即可得到电路中正在工作的用设备。最终将系统所采集的功率信息、电流信息以及工作中的用电器名称显示在OLED屏幕上。

将5个用电器的31种组合依次插入监测装置用电入口插座中,系统均能够自动识别用电器并显示在OLED屏幕上,图7显示了其中8种组合的识别情况。显示的I、P、S、Q、Pf分别为电流有效值、有功功率、视在功率、无功功率、功率因数;Dev后面的英文表示电路中当前工作的设备名称,Bulb、DDS、Fan、Pow、Osc分别为白炽灯、信号发生仪、风扇、电源、示波器。经过多轮重复试验,监测装置均能够准确、及时地将电路中用电器信息显示在屏幕上。

图7 系统实时识别结果

4 结 语

本文在非侵入式负荷监测技术的基础上,利用SOPC技术设计了实验室负荷智能监测装置。监测装置使用全可编程逻辑平台Zybo Z7-20作为系统处理模块。在硬件系统的设计上,使用标准的电源排插模拟实验室的供电入口,安装高精度的电流、电压互感器,并设计了高精度信号采样电路、系统辅助电源电路、信号调理电路和数字逻辑电路。在软件算法设计上,在Matlab中结合机器学习的监督学习方式,使用BP神经网络建立负荷识别算法。然后选用实验室中5种具有代表性的负荷,使用高精度ADC采样负荷稳态下的用电信息,并通过数学方法提取出负荷的特征参数构建特征数据库。最后,使用该数据库对设计的算法模型进行训练和验证,建立负荷识别算法并将模型参数信息导出,在SOPC系统下重建了该识别算法,完成对负荷辨识的算法设计。

仿真及调试结果表明:在Matlab仿真建立识别算法模型时,算法能够对5种负荷的31种组合达到100%识别,说明本文设计的算法是可行的。在实际调试时,将训练好的识别算法导入到SOPC系统中,系统在实际工作时也能够达到对31种组合情况的100%识别,说明监测装置是可行的。由于高校寝室的用电器种类和数量较少,符合检测装置的应用范围,检测装置除了应用在实验室场景,也可以应用于高校寝室的用电管理。

监测装置仍有几点不足和可以改进之处,首先在设计时选用的用电设备不能代表所有实验室的用电设备,因此监测装置有一定的局限性;其次监测装置只是完成了基础功能,后续可以将算法移植到嵌入式系统中,并可加入数据传输模块使监测装置更加智能化;在进行过多的负荷检测时,识别率会稍有下降,训练时间的增加幅度会提高,不利于应用在负荷较多的场景下。

猜你喜欢
用电器特征参数用电
安全用电知识多
冕洞特征参数与地磁暴强度及发生时间统计
对输配电及用电工程的自动化运行的几点思考
带你学习欧姆定律
基于交通特征参数预测的高速公路新型车检器布设方案研究
例析电路中不同用电器的最大功率
为生活用电加“保险”
用电安全要注意
单相用电器分析检测装置
单相用电器分析检测装置