APP下载

基于物联网及神经网络的谐波诊断仪研制

2017-10-18郑思凡郭宝英

黎明职业大学学报 2017年3期
关键词:暂态小波谐波

郑思凡,郭宝英

(1.黎明职业大学 机电工程与自动化学院,福建 泉州 362000;2.仰恩大学 工程技术学院, 福建 泉州 362000)

基于物联网及神经网络的谐波诊断仪研制

郑思凡1,郭宝英2

(1.黎明职业大学 机电工程与自动化学院,福建 泉州 362000;2.仰恩大学 工程技术学院, 福建 泉州 362000)

随着深度学习等人工智能技术的发展,为了充分挖掘计算机数据处理潜力并应用在实际的电网故障检测上,在物联网及模式识别技术的基础上,实现一个Stm32为前端智能信号采集结点,后端以Matlab为数据处理引擎的基于“互联网+”架构的分布式电网暂态故障谐波诊断仪。实验证明:相比传统的谐波分析仪,该诊断仪具有在线实时提取故障谐波小波能量特征,并具有多层前馈神经网络的实时诊断识别故障类型的功能。同时,也表明仪器分布式的网络架构比传统仪器对新算法新技术具有更大的移植空间。

小波能量谱; 暂态谐波; Levenberg-Marquardt; 机器学习; LWip协议栈

当前,随着码分多址CDMA及正交频分复用OFDM等扩频通讯技术发展,使得互联网通讯进入4G时代,而这种新的信息通信技术及平台,给传统各行业带来新的发展契机,在将互联网的成果深度融合并使之在社会资源优化配置中起作用后,使得各行业呈现出一个新的“互联网+”的发展生态。另一方面,根据国家电网“十三五”规划[1],为适应新能源及多元化负荷快速发展,配电网转型升级显得非常紧迫,特别是以配电网为支撑平台,实现大数据、物联网、云计算等技术在电网运行管理的深化应用,使配电网智能化、信息化,实现用电服务的多渠道互动、分布式电源的友好接入、智能电表的多元双向互动功能。由于节能与高效是电网建设中的两大目标,因此影响电网功率因子的谐波污染成了一个重要课题,具有较大的经济社会效益。而在谐波检测仪的研制方面,当前的工业成品如美国Fluke电子仪器仪表公司、德国Janitza仪表公司、上海宝钢安大电能质量有限公司[2]、长沙威胜信息技术有限公司等生产的三相不平衡度检测仪、谐波检测仪等测试功能单一,只局限于分析周期性的稳态整次谐波,对于非整次谐波(间谐波)和电网大量存在的暂态扰动产生的谐波则不具备智能识别和诊断功能。有鉴于此,本文立足于将大数据中机器学习算法结合小波多分辨率分解提取谐波特征实现一个在线训练、能够实时对突变谐波智能分类的产品,帮助用户实现电能质量监控和治理的智能仪表,利于供电部门加强对电能质量的技术监督和对电力系统的运行管理。

1 谐波诊断仪整体思路及架构

为充分利用当前大数据技术潜力及物联网技术,本课题组将整个谐波诊断仪规划为一个分布式的网络架构,前端利用当前主流的32位单片机stm32F107为智能采集节点,通过嵌入轻量级的TCP/IP协议栈(LwIP)实现一个socket通讯的客户端,后端则利用vs2010的CAsyncSocket类实现一个socket服务端,利用CAsyncSocket类的可重入接收事件处理函数区分各通讯socket句柄来完成一对多的通讯功能。根据国际电气和电子工程师协会制定的IEEE 1100,IEEE-519,IEEE-C62.41[3]等的对电网谐波种类的规定,重点对电压凹陷(sag)、电压凸起(swell)、暂态脉冲(spike)、暂态震荡(oscillatory transient) 、谐波(harmonics)这5种常见谐波进行分类识别。

谐波数据的处理主要包括谐波特征向量的提取及分类,采用“db4”小波函数对电网信号进行12个尺度分解,并计算每个尺度的能量占比,将谐波各个小波分解尺度的能量占比与标准电网信号的相应小波分解的能量占比相减,把各个尺度与正常信号的能量占比之差共12个数,作为一个12维特征空间的向量参与下一阶段的神经网络的训练学习,以此建立各个特征与相应谐波类型的非线性映射关系。

谐波分类是个模式识别的问题,考虑到matlab当前已经集成相当丰富的模式识别的算法,其中包括神经网络、支持向量机、无监督自聚类、贝叶斯分类器以及基于深度学习的多隐层卷积神经网络等机器学习算法工具箱,为了使系统具有算法拓展空间,同时充分挖掘云计算的速度优势,采用在VC++.net中直接嵌入Matlab数据处理引擎的方法[4],对前端STM32 单片机采集的数据进行小波变换完成特征提取并进行神经网络运算识别。系统总结构与功能组成图1所示。

图1 系统总结构与功能组成

2 电网远程数据采集

2.1数据采集与数据传输的并行工作问题

目前,市面上谐波分析仪一般分析的最高谐波为25次谐波,而暂态谐波(如暂态震荡或暂态脉冲)一般包含比从5次谐波更高的频谱分量,为不丢失暂态谐波的高频特征分量,在此采用5K采样频率。对于stm32F107则选择AD1的通道10、对应引脚PC0、 AD转换模式为单次转换,定时器触发。因为采样间隔200us,为保证最大采样精度,在此选取AD转换周期为71.5个 ADCCLK,关键设置代码[7]如下:

……;

ADC_DeInit(ADC1); //选择AD1

RCC_ADCCLKConfig(RCC_PCLK2_Div4); //设置ADC模块外设时钟ADCCLK=14MHZ;

RCC_APB2PeriphClockCmd(RCC_ADC1, ENABLE); //使能ADC对应GPIO口,外设区域及复用功能时钟

//初始化ADC模块对应GPIO

GPIO_InitStructure.GPIO_Pin = GPIO_ADC1_Pin;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;

GPIO_Init(GPIO_ADC1, &GPIO_InitStructure);

ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; //ADC1和ADC2工作在独立模式

ADC_InitStructure.ADC_ScanConvMode = DISABLE; //工作在独立模式

ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; //转换工作在单次转换模式

ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T2_CC2; //由TIM2的CC2触发

ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //ADC数据右对齐

ADC_InitStructure.ADC_NbrOfChannel = 1; //ADC通道数目为1

ADC_Init(ADC1, &ADC_InitStructure);

ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_71Cycles5); //指定ADC转换的通道和转换周期

……;

每采满1024个数据后即启动一次远程TCP/IP数据传输,由服务端完成特征提取与识别,为了保证在数据传输与数据采集并行工作,程序将数据采集工作交由硬件DMA后台进行,主程序则通过1024个数据DMA传输完成标志位启动相关的socket远程TCP/IP通讯。具体实现代码如下:

……;

if(DMA_GetITStatus(DMA1_IT_TC1))

{ DMA_ClearFlag(DMA1_FLAG_TC1);//清楚传输完成标志

ADC_DMACmd(ADC1, DISABLE); //暂停DMA传输

ADC_Cmd(ADC1, DISABLE); //暂停AD转换

DMA_InitStructure.DMA_MemoryBaseAddr = ADC_DMAresultB; //重新设置DMA目标缓冲区

DMA_Init(DMA_Channel10, &DMA_InitStructure); /

ADC_DMACmd(ADC1, ENABLE); ADC_Cmd(ADC1, ENABLE); //重启DMA与AD转换

for(k=0;k<1024;k++)

{

ADC_floatVal[k]=(float)(ADC_DMAresult[k]*3.3/4096);

}

……;

TCP_Client_Send_Data(tcp_data,sizeof(tcp_data));//启动远程socket传输

……;

其中tcp_data为最终发送给服务端的单字节数组,其数据来源于前述共用体数组的Intdat成员。ADC_DMAresultB与之前的ADC_DMAresult构成DMA的双缓冲结构,当主程序对其中一个缓冲区进行数据定标,浮点数格式转换以及数据搬移和socket传输等任务时,另外一个缓冲区可以同时以DMA后台收集AD转换结果的方式并行工作,从而保证系统的实时性。

2.2浮点数的封装及格式转换

Stm32f107的AD转换分辨率为12位,当使用规则转换时,其转换结果放在32位寄存器ADC_DR里,经过右对齐设置后,取ADC_DR寄存器的[0:11]位作为转换结果,当开启DMA模式时,把转换结果将连续自动存放在所定义的16位uint类型数组ADC_DMAresult里。此采样结果并无量纲,经过参考电压的定标转换后,实际的电压值是以4字节的单精度浮点数形式存储,为了方便TCP/IP的socket字节为单位的传输,将16位的整型数组与浮点数数组以共用体的形式定义在同一块内存空间,这样在服务端用C编译器的情况下仍然可以正确地映射回浮点数。此共用体定义如下:

union MyFloatUint

{ float fVal;

unsigned char Intdat[4];

}ADC_floatVal[1024];

其中ADC_floatVal为所定义的共用体数组,每批1 024个定标后的电压采样值以浮点数形式存储在此共用体的fVal成员里。

2.3远程数据socket传输实现

基于物联网技术的电网远程数据采集在硬件上是利用Stm32F107内嵌的MAC控制器与以太网DMA控制器搭配外置的PHY芯片DM9161来构建一个完整的服务端的局域网[8]。软件上,则利用ST公司已经移植好的一个轻量级的TCP/IP协议栈LWIP来实现一个应用层编程接口,其中,协议栈的LwIP_Init函数则完成由IEEE 802.3标准所规定的物理层传输速度、数据编码方式和独立介质接口MII时钟及IO配置等参数的初始化,在数据链路层则完成MAC物理地址的初始化。在利用宏IP4_ADDR完成IP层网关及远程服务端目标IP地址设置后,编程者只需要在应用层创建socket通讯的结构体并设置相关事件处理的回调函数便可进行远程TCP/IP通讯。应用层具体实现的代码如下:

struct tcp_pcb *Clipcb;

struct ip_addr ipaddr;

struct ip_addr ipaddr_1;

IP4_ADDR(&ipaddr,192,168,1,2);

Clipcb = tcp_new(); /* 建立通信的TCP控制块(Clipcb) */

tcp_bind(Clipcb,IP_ADDR_ANY,1025); /* 绑定本地IP地址和端口号 */

tcp_connect(Clipcb,&ipaddr,1027,TcpCli_Connected);

其中TcpCli_Connected为连接成功后的回调函数。

3 故障谐波样本的确立

3.1谐波的定义及matlab数学建模

因为各种暂态谐波及电压扰动的具体参数范围随着用电设备和负载的不同而不同,在工程实践上,对于带有机器学习功能的仪表来说,使用前必须对现场实际出现的故障暂态谐波做大量的采集来建立样本并进行神经网络训练后,才可投入真正使用。考虑到本文旨在于研制一种具有远程采集及实时在线诊断的通用仪表系统,因此采用文献三及国际电气和电子工程师协会制定的IEEE 1100,IEEE-519,IEEE-C62.41等的对电网谐波通用的数学模型出发来构建谐波样本。其中五种常见谐波即电压凹陷(sag)、电压凸起(swell)、暂态脉冲(spike)、暂态震荡(oscillatory transient) 、谐波(harmonics)各自的数学模型如下表1所示[3]。

表1 5种谐波数学模型及参考条件

其中T为基波周期0.02 ms;t1,t2为暂态谐波发生与结束时刻;ωd为基波角频率,在此取100π;u为阶跃函数;a1,a2,a3分别为1次,3次,5次谐波幅度;H为构成暂态谐波最高次数,k为构成暂态脉冲的调制指数,fn为暂态震荡频率。

3.2谐波样本的批量生成

为了对各谐波的信号特征进行学习,在谐波数学模型的基础上对上述各模型参数按照其定义范围取随机值,同时加入30 db信噪比的高斯白噪声,对每种谐波模型循环运行100次便得到各种谐波样本100套。以电压凹陷为例,样本具体以如下方式运行matlab仿真代码得到:

……………..;

t1=randint(1,1,[510,630]);t2=randint(1,1,[840,923]);%随机生成谐波起止时刻

y1=stepfun(t,t1);y2=stepfun(t,t2);

y3=y1-y2;

a=randint(1,1,[100 900])/1000;%随机产生凹陷幅度

data=(1-a*y3).*sin(w0*0.0002*t);%产生SAG信号

data_noise=awgn(data,30,‘measured’);%产生30dB的高斯白噪声

……………..;

其中t为采样序号,因此,在5K采样频率下要得到t对应的采样时刻必须乘以因子0.000 2。

4 谐波特征提取

4.1小波能量谱计算

因为暂态谐波不同于能量无穷大的功率信号或周期信号,其在时频域均为幅度有限的信号,因此采用小波变换对其在时频域作二维的正交投影分解[5]。连续小波变换定义如下:

(1)

其中a为与频率相关的尺度参数,b为时间偏移参数。将a,b参数离散化,使a尺度参数形成2的幂次关系,可以得到如下形式的小波基函数与尺度基函数:

ψm,n(t)=2-m/2ψ(2-mt-n),m,n∈Z,

(2)

φm,n(t)=2-m/2φ(2-mt-n),m,n∈Z。

(3)

理论上可以证明这样构成的各基函数依然正交,此时各尺度及各时间偏移的小波基函数及尺度基函数的正交关系分别可以表示如下:

(4)

(5)

将上述小波基函数的递归关系看成是滤波器的输入及输出,则可以推导出小波母函数对应的滤波器系数,由此可以得到工程上小波变换的快速算法mallat算法。因此,为了计算小波的小波能量谱特征,在matlab中,由封装了mallat算法的wavedec函数完成小波12个尺度MRA分解后,再由detcoef取得各尺度分解系数,并计算各尺度能量占比。计算公式如下:

(6)

其中,信号总能量为:

(7)

xk为信号采样点,信号各尺度小波变换的能量为:

(8)

按照此方法可以得到正常电网正弦波12尺度小波分解能量谱如下:

Epure=[E1pure,E2pure,E3pure,…,E12pure]。

(9)

而各谐波的12尺度小波分解能量谱如下:

Esignal=[E1signal,E2signal,E3signal,…,E12signal]。

(10)

为了突出异常的能量分量,将上述二者的差值作为各暂态谐波的小波能量谱特征矢量,表达式如下:

ΔE=Esignal-Epure

(11)

4.2各谐波的小波能量谱特征提取结果

按照式(11)得到100个样本的电压凹陷、电压突升、暂态震荡、暂态脉冲和谐波3,5,7奇数谐波这五种故障谐波的小波分解尺度能量分布如图2~6所示。

图2 电压凹陷小波分解尺度能量分布 图3 电压突升小波分解尺度能量分布

图4 暂态震荡小波分解尺度能量分布 图5 暂态脉冲小波分解尺度能量分布

图6 奇数谐波小波分解尺度能量分布

5 样本的神经网络训练及谐波识别

5.1神经网络结构的确立

根据映射存在定理[6]可知:“给定任一连续函数,这里u是闭单位区间(0,1), 则总可以精确地用一个三层感知器网络实现”。因此,采用1个隐层的多层前馈神经网络进行机器学习与识别,因为特征矢量的维数为12,为防止过拟合,假设其局部极值点不超过12,故隐层节点数取12;由于需要识别5种谐波,故输出神经元个数取5以分别对5种谐波进行一对一编码,编码方式为每种谐波对应一个神经元输出1,其余为-1。为了在输入层对特征矢量完成五种故障的初步归类,输入神经元个数也取5。另外,设置训练算法为Levenberg-Marquardt,神经元的激活函数为Sigmoid函数后,在Matlab可得到如图7所示的右神经网络结构。

图7 神经网络结构

5.2特征向量的预处理及训练结果

在神经网络训练前,5种样本的12维特征矢量组成12行500列的矩阵,每列代表一个样本,输出矩阵为编码后的5行500列矩阵,每列代表一个编码输出,对应一种谐波。另外,因为神经元激活函数斜率在[-1,1]外趋于0,求梯度时对连接权值的影响很小,故在输入神经网络前,对数据作归一化处理,将所有数据映射到[-1,1]区间,经过预处理后,算法只经过14次循环就达到预期的误差目标。算法训练结果如图8所示。

图8 训练性能

6 实时识别效果验证

训练好网络后,按照之前的仿真模型重新运行便可得到新的500套测试样本,为验证准确率并同时验证实时性,将此样本由Stm32计算生成来模拟AD采集后经过Socket网络编程接口传输至PC服务端,服务端在对测试样本同样归一化后输入进行分类识别,最后按照编码方式即谐波的类别映射到输出最大值(即+1)神经元的位置,只要逐一比较测试集样本输出与相应类型谐波训练集输出矢量最大值脚标,即可完成识别正确率的统计。对五种谐波进行交叉验证后得到识别结果如表2所示。

表2 测试样本识别结果汇总

由表2可见,误判率最高发生在暂态脉冲与奇次谐波之间,这主要是由于高次谐波产生的脉冲与暂态脉冲能量分布接近所致。总体上识别准确率达到95%以上,可以满足一般的工业应用要求。

7 结 论

本文在32位单片机Stm32基础上通过嵌入轻量级TCP/IP协议栈完成一个分布式的远程电网谐波信号采集节点,服务端则嵌入Matlab数据处理引擎,完成对谐波信号的小波能量谱特征提取及基于神经网络的识别,准确率达95%以上。因为系统的采集与数据传输是并行工作的,在保证实时性的情况下,充分挖掘Matlab强大的数据处理能力,为未来进一步移植新的机器学习算法提供了移植拓展空间。

[1] 张运洲,程路.中国电力 “十三五” 及中长期发展的重大问题研究[J].中国电力,2015 (1):3.

[2] 李素萍,夏飞,彭道刚.基于嵌入式的旋转设备状态监测诊断系统研究[J].机电一体化,2016(3):15.

[3] KANNAN A,KYMAR V,CHANDRASEKAR T,et al.A review of power quality standards,electrical software tools,issues and solutions[C]∥Renewable Energy and Sustainable Energy (ICRESE),2013 International Conference on.IEEE,2014:91.

[4] LU Y, WAN L, LIU Y. Development of an experimental software for rub-impact fault recognition research[C]∥Control and Decision Conference (CCDC),2015 27th Chinese.IEEE,2015:4605.

[5] ROY S,NATH S.Classification of power quality disturbances using features of signals[J].International Journal of Scientific and Research Publications,2012,2(11):1.

[6] 赵会敏,雒江涛,杨军超,等.集成 BP 神经网络预测模型的研究与应用[J].电信科学,2017,32(2):64.

[7] 代勇.基于 STM32 定时电压采集与报警系统的设计[J].电子世界,2017 (7):180.

[8] 刘嘉诚,段磊磊,朱郧涛,等.基于以太网的温湿度检测及控制系统设计[J].湖北农机化,2017(2):58.

Abstract: With the development of artificial intelligence technology such as deep learning, in order to fully exploit the potential of computer data processing and apply it to the actual electricity power fault detection, this paper implements an internet-architecture distributed power quality transient fault diagnosis instrument which used Stm32 as a front-end intelligent signal acquisition node, and Matlab as the data processing engine based on the Internet of things and the pattern recognition technology. Experiments show that, compared with the traditional harmonic analyzer, the diagnostic instrument developed in this paper has the performance of extracting harmonic wavelet energy characteristics and identifying the type of transient harmonics in real-time via a multi-layer feed forward neural network. At the same time, it also shows that the instrument, based on the distributed network architecture, has a broader space to update more powerful algorithm than the traditional instrument.

Keywords: wavelet energy spectrum; transient harmonics; Levenberg-Marquardt; machine learning; LWip protocol stac

(责任编辑:黄韡 英文审校:杨德权)

DevelopmentofHarmonicDiagnosticInstrumentBasedonInternetofThingsandNeuralNetwork

ZHENGSifan1,GUOBaoying2

(1. College of Mechanical Engineering and Automation, Liming Vocational University, Quanzhou 362000, China;2. College of Engineering and Technology, Yang’en University, Quanzhou 362000, China)

TP 37

A

2017-03-15

郑思凡(1975-),男,实验师,主要从事人工智能技术与计算机视觉研究。

泉州市科技局科研项目(2014Z138)

1008-8075(2017)03-0070-08

10.13446/j.cnki.jlvu.20170046

猜你喜欢

暂态小波谐波
300Mvar空冷隐极同步调相机暂态特性仿真分析
构造Daubechies小波的一些注记
基于MATLAB的小波降噪研究
电力系统全网一体化暂态仿真接口技术
基于改进的G-SVS LMS 与冗余提升小波的滚动轴承故障诊断
除氧器暂态计算研究
虚拟谐波阻抗的并网逆变器谐波抑制方法
基于ELM的电力系统谐波阻抗估计
基于ICA和MI的谐波源识别研究
基于FPGA小波变换核的设计