郭瑞东,陈 燕,崔 江
(南京航空航天大学 自动化学院,南京 211106)
三级式无刷同步发电机以结构简单、可靠性高和维护方便等优势在航空电源和电网等领域都有较为广泛的应用[1],其结构如图1所示。
图1 同步发电机结构图
发电机在起动和运行过程中,主励磁机通过整流器为主发电机供应励磁电流,因此旋转整流器在同步发电机的工作状态下起着重要的作用。考虑旋转整流器长期处于高转速和高温的工作环境,在离心力和热应力的影响下,旋转整流器极易损坏部件[2]。对整流器的运行状态实现监测,确保发电机处于安全运行状态具有一定的实际工程价值。
目前,针对发电机故障多通过采集内部可监测信号,并使用信号处理方法实现诊断分析。例如,海军工程大学的张超等[5]通过对励磁电流进行频谱分析。并以谐波含量为依据完成旋转整流器的状态分析;哈尔滨工程大学的Zhang Jingnan等[6]搭建仿真模型,并对定子相电流实现傅里叶变换,通过分析谐波幅值实现故障识别,最后在LabVIEW中设计相应的故障检测系统。空军工程大学的刘志勇等[7]人利用经验模态分解对励磁电流信号进行特征提取,并使用LS_SVM模型对所提取的特征实现故障识别。发电机故障的常见诊断方法多为离线完成诊断分析,而没有考虑发电机实时监测问题,虽有相关的PC机监测系统,但基于PC机的系统存在体积大、耗时长等问题。
通常整流器的常见故障可以分为开路故障和短路故障。从图1可以看出,整流器是由6个功率二极管组成的桥式电路,其常见模式可细分为正常运行、单管开路、同相双管开路、同桥双管开路、异相异桥双管开路和单管短路。
当整流桥上的二极管出现故障时将影响桥式电路的对称性,主励磁机的励磁电流会出现谐波变化[8],通过励磁电流信号的谐波特性便可以监测整流器的运行状态。本文利用FFT(快速傅里叶变换)对励磁电流信号实现频域分析,选取谐波成分组成故障特征向量作为网络学习样本进行训练。并选取经典的BPNN模型用于故障识别,可以有效监测整流器的健康状态。
反向传播神经网络(以下简称BPNN)是常见的机器学习模型,网络通过输入数据前向传播并反向传播误差以缩减输出数据与目标数据间的误差,对模型参数不断更新,以达到模型的预期功能。BP模型的优势在于,以反向传播的方式使模型具备强大自学习能力,在模式识别和预测等领域[10]都有很多的应用实例。
图2为3层BPNN结构的示意图。BPNN的输入为X={xi}(i=1,2,3,…,n),输出为Y={yj}(j=1,2,3,…,m),Wij和Wjk分别为网络输入层与隐含层及隐含层与输出层之间的权值。
图2 BPNN结构图
本文使用一个3层BPNN模型作为发电机整流器二极管故障诊断模型,实验将采集的励磁电流信号进行FFT变换,并选取频谱幅值的1、2、6和12次谐波[4]作为故障特征向量进行归一化处理。本文所设计的BPNN模型结构为4-9-6,可以有效诊断同步发电机的常见故障模式。利用MATLAB训练获取BPNN模型的权值等参数,并在FPGA中进行模型搭建。
本套故障监测系统的设计流程如图3所示。硬件部分包含三级式同步发电机、数据采集卡、PC机、AD7606数据采集模块和FPGA开发板。首先利用数据采集卡采集发电机故障监测信号,并在MATLAB完成信号频谱分析和BPNN模型训练;之后使用Verilog语言在Quartus II软件对算法进行设计,并借助ModelSim完成模块仿真;最后对所设计的系统实现故障监测,并利用SignalTap观察监测系统的内部时序。
图3 系统设计流程图
FPGA以其并行算法以及低功耗的特性,目前在神经网络硬件加速领域得到广泛的应用。本故障监测系统包含励磁电流采集、FFT信号分析、Sigmoid激活函数和故障识别等模块。所设计的系统可以有效采集发电机故障检测信号、信号处理和故障识别。
(1) 数据采集模块
未来,中国食品工业将面对更为广阔的前景。实现网络化、高科技化将会成为越来越多中国食品企业的选择。它们要参与到全球资源配置与全球市场竞争中去,真正实现国际与国内业务的包容、整合,这也要求我国食品企业逐渐具备系统整合与文化融合、吸收对方先进技术、经验、提升业务共识、融合多方优势等方面的能力。
AD7606是8通道ADC采样器件,输入范围为 5 V,采样分辨率16位。本文将AD7606模块与FPGA开发板的GPIO口连接, 利用FPGA编写状态机控制AD7606采集实验数据,设计AD7606的采样频率为10 kHz,单次连续采集1 024个数据信号,并利用异步RAM实现采集数据缓存。
(2) 信号分析模块
数据分析模块调用Altera公司提供的FFT IP核对连续采集的1 024点信号进行频谱分析,同时设计相应的控制时序程序,控制FFT IP的数据读取和幅值谱计算,并使用异步RAM对频谱幅值进行数据缓存,便于选取谐波成分作为故障特征。
(3) Sigmoid激活函数设计
激活函数在神经网络模型学习相对复杂和非线性等问题中具有重要作用。激活函数为指数函数运算,在FPGA中并不支持相应的函数运算,本文针对目前常见基于FPGA的Sigmoid函数设计方法,最终选择分段拟合法[3]在FPGA中设计Sigmoid激活函数。Sigmoid函数是一种常见的非线性激活函数,其表达式:
(1)
激活函数的几何图象如图4所示。在MATLAB中对Sigmoid函数进行分段线性拟合,就是将函数看作不同的数据段,并利用线性拟合法实现函数拟合。
图4 Sigmoid激活函数几何图象
本文将激活函数的正半轴区间分为6个子区间,每个区间采用2阶多项式函数无限逼近原激活函数,保证拟合函数与原函数的数据绝对误差在0.000 5以下。
神经网络模型的运算过程需要大量的浮点数实现乘加运算,如果在FPGA中采用IEEE 32位浮点标准表示,虽然可以有效提高浮点数精度,但将消耗大量乘法和加法计算资源。本文将BPNN的权值采用25位定点数对浮点数进行量化处理,其中低12位是小数,最高位为符号位,其余是整数部分。并将拟合的分段函数进行定点化处理。因激活函数关于(0,0.5)的对称特性,对负半轴区间进行对称处理完成运算。实验利用Quartus II和ModelSim完成激活函数模块仿真分析,仿真如图5所示。
图5 激活函数仿真输出
(4) 故障识别模块设计
BPNN是常见的机器学习算法,被应用于各个领域。BPNN的测试阶段可以理解为数据的乘法运算。考虑故障识别模块内部参数较少,在FPGA的设计过程中可采用并行输入并行运算的方式实现其矩阵乘法运算过程,并行计算模块的优势在于数据计算速度更快,在网络规模较小的模型可以较好地实现模型设计,将权值和偏置等参数在程序中直接建立查找表,模型通过调用权值参数矩阵实现特征值识别。隐含层神经元经过激活函数输出后与输出层权值和偏置实现最终结果运算。
利用发电机实验平台采集的数据对监测系统进行验证分析。数据采集卡主要为PC机采集数据,用于模型训练;AD7607模块与FPGA的GPIO连接用于实时数据采集;FPGA为主芯片,用于时序控制和数据处理。
信号调整电路使用HNC-25LA霍尔电流传感器,以便数据采集卡和AD7606采集发电机故障检测信号。HNC-25LA霍尔电流传感器信号测算公式如下:
(2)
实验借助SignalTap对故障监测系统内部模块信号时序变化实现观测和分析,通过AD7606的采样时序和FPGA内部诊断识别时序可以看出,系统可以在AD转换期间完成对信号实现FFT频谱分析并识别相应的故障。单管开路时故障检测系统的实验结果如图6所示。从图6可以看出,系统可以对故障监测信号实现频谱分析、故障识别。
图6 单管故障仿真图
本文设计的故障监测系统数据采集与诊断时序如图7所示。从图7可以看出,系统可以在AD采样间隔内实现故障诊断,系统可以保证对发电机实现连续故障检测。
图7 数据采集与监测系统时序图
本文所设计的故障监测系统FPGA逻辑资源消耗为32%,存储资源消耗为26%,乘法器使用资源为98%。其中乘法器资源主要用于Sigmoid分段拟合函数的乘法计算。AD7606的单次采样时长为100 μs,而设计的系统信号分析时长为64.1 μs。FPGA平台对BPNN模型单次测试时间为200 ns,而MATLAB中BPNN模型单次测试时间为404 μs。通过时间对比可以看出,FPGA对BPNN有一定的硬件加速效果。
本文主要研究设计了一套基于FPGA的故障监测系统,并将该套监测系统用于发电机状态监测。
该套故障诊断系统内部包含数据采集、信号分析、故障识别功能,能够保证有效监测发电机故障。在FPGA中设计的激活函数保证了资源和速度的有效均衡,同时利用FPGA并行计算特性设计的BPNN模型具有一定的硬件加速效果。