基于BP神经网络的风电系统控制器I/O硬件故障自诊断方法
2020-06-16姜寅任荭葳陈凯朱长江
姜寅,任荭葳,陈凯,朱长江
(1.浙江运达风电股份有限公司,杭州310012;2.浙江省风力发电技术重点实验室,杭州310012)
0 引言
风电控制系统输入/输出(I/O)信号通道(以下简称I/O 信道)硬件众多,其质量和高损耗问题较为集中,常以个别异常的故障形式出现。该问题在库存阶段无法察觉,在后续整机生产或风机故障排除及更换备件时产生故障隐患,影响产能效率。另外,若用户明确I/O 硬件的故障问题,也可更好地进行返修追溯。
重工业大型控制系统自带完备的诊断功能,通过使用专用指令库和软、硬件组态,依靠校验算法实现工业网络内远程I/O 软、硬件在线故障诊断监测[1-3]和日志记录。然而其他定制型控制器和小型可编程逻辑控制器(PLC)不具备上述大型控制系统的硬件配置和网络环境,其I/O 硬件故障尚无标准的诊断方法。传统的PLC 故障诊断方法是结合故障指示对I/O 信道逐一进行排查和信号测量[4-5]。这种诊断方法对故障发掘虽然行之有效,但是依靠人工在大批量模块中去发掘零星的故障难免疏忽遗漏,且效率低下;使用控制器制造商提供的专用硬件检测设备又有成本高、功能冗余,且存在技术服务响应周期长等问题,对于在有时效性要求的风电场和风机整机制造场所推广可行性不佳;通过控制输出信道对输入信道反馈自检的方式具有较高的可行性[6],但若输出信道发生故障则无法有效查验对应输入信道的状态。通过对比外接设备在参考I/O硬件和待测I/O硬件中的反馈信号的诊断方法可以快速、准确地进行诊断[7],但对外接设备和参考I/O 硬件的依赖,会限制其在备件缺乏的风电场应用。
随着近年来人工智能技术的发展,反向传播(BP)神经网络模型在故障诊断领域的应用逐渐增多[8-13]。文献[8]将基于神经网络的诊断模型移植到控制单元,实现了控制系统故障监测功能,提高了系统整体的安全性和可靠性,且用户无须专业知识便可快速定位故障。文献[9]在没有额外设备支持的条件下实现了低成本、便捷的光伏阵列故障诊断方法。文献[10]提出的BP 神经网络模型实现了变压器远程故障诊断,并较传统变压器故障分析法有更高的准确率和更广的测试范围。基于上述分析,结合风电控制系统I/O 硬件用户检测的实际应用需求,本文提出了一种基于BP神经网络算法的诊断模型,辅以常用的中间继电器,在风电控制系统上构建一个I/O 故障自诊断系统。实现了一种低成本,不依赖特殊备件和专用诊断设备,易于风电生产和运维场合使用的控制系统I/O 硬件自诊断方法。
1 自诊断系统设计
自诊断系统由风电控制系统和自诊断电路2大部分构成。风电控制系统由控制器硬件和I/O 信道硬件组成,其中I/O 信道硬件上的待测信道与自诊断电路相连接。控制器加载程序后,采集自诊断电路的信号,并将其数据处理后,输入诊断程序进行分类运算,并输出相应的参考结果,进而实现故障诊断。自诊断系统示意图如图1所示。
1.1 自诊断电路
自诊断电路由5 个输出信道(SO1—SO5)、5 个输入信道(SI1—SI5),以及中间继电器组成,其原理如图2 所示。各输出信道分别连接所有输入信道。诊断运行时,程序控制各输出信道依序分别单独输出片刻,在此期间,5 个输入信道通过反馈回路同时对当前受控输出的输出信道进行采样处理,形成一组控制系统自反馈信号。未受控输出的输出信道所在回路在继电器的常闭触点互锁保护下保持开路,避免硬件被干扰或损坏。例如当输出信道SO1有输出时,其余SO2—SO5 回路开路,此时输入信道SI1—SI5可对SO1的输出情况实现多重采集。
图1 自诊断系统示意Fig.1 Fault self-detecting system
在个别信道故障的情况下,诊断电路可以依靠多重自反馈信号的相补和复核以识别故障特征。当某输出信道故障时,SI1—SI5 仍可依靠其他正常的输出信道的反馈信号进行自诊断。
图2 自诊断电路原理Fig.2 Sketch of fault self-detecting circuit
本文设计特征矩阵来描述信道故障时诊断电路的状态,并作为诊断程序的输入。将处理后的自反馈信号数据依序记录排列,可构成特征矩阵,见表1。反馈信号正常时特征值用1表示,异常时特征值用0 表示。当某输入信道SIi有故障时,其所在列的特征值都为0;同理,当某输出信道SOj有故障时,则所在行的特征值都为0;其余正常信道的特征值都为1。
1.2 诊断程序设计
诊断程序依次按照初始化、采样处理、自诊断模型,以及输出参考结果流程运行,如图3所示。
初始化阶段,程序为自诊断模型中的BP神经网络算法进行参数赋值,并读取预设的训练数据集进行训练;采样处理阶段,程序控制各输出信道逐一向自诊断电路输出高电平1 s。在此时段内,各输入信道分别对当前有高电平的输出信道采样处理,形成表1 中的一行特征值,各特征值为采样周期内自反馈信号的平均值。当数据采样处理完成后,自诊断模型遂获得特征矩阵数据,并输入BP神经网络算法进行计算,形成参考结果,最后在人机界面上显示。
表1 特征矩阵数据Tab.1 Data in a characteristic matrix
图3 诊断程序执行流程Fig.3 Executive process of the diagnostic procedure
1.3 归一化处理
根据采样处理阶段获取信道特征值的方式,当某信道的自反馈信号在各周期中均为低电平,按采样周期取平均值,即获得特征矩阵中最小特征值0;反之,若各周期自反馈信号均为高电平,取均值后获得特征矩阵中最大特征值1。其余情况下,采样获得的特征值介于0∼1之间。
为防止神经网络模型收敛慢、训练时间长和数据值偏小或超限的问题,结合激活函数值域有限的特点,本文采用线性转换算法[14],对上述采样处理阶段获得的各特征值进行处理
式中:x为实际采样获得特征值,且x∈[0,1]。xMin和xMax分别为最小特征值0 和最大特征值1,因此归一化的特征值x*∈[0,1]。
进一步处理x*,为防止特征值0 输入神经网络模型造成诊断失败,将x*转化为i,令其落在[0.01,1]区间内:
使用各特征值i作为元素构造特征矩阵I,
其中,特征值元素ijk∈[0.01,1],j∈[1,5],k∈[1,5]。
2 自诊断模型设计
2.1 BP神经网络模型
本文设计的自诊断模型基于3 层BP 神经网络。根据自诊断电路5路I/O 信道的数量,特征矩阵应含有25 个特征值,利用25 个特征值构建输入矩阵,即设置输入层为25个节点,对应的输入矩阵为
输出层为10 个节点,分别表示5 个输入信道和5 个输出信道的状态。参考隐含层单元数确认方法[15],经过多次试验,设置效果最佳的隐含层节点数为10,其网络模型如图4所示。
图4 神经网络模型Fig.4 Neural network model
为训练神经网络调整权值,还需构造出用于计算输出误差的目标矩阵
式中:t1—t5分别对应SO1—SO5 的目标值,t6—t10分别对应SI1—SI5的目标值。
自诊断应用程序执行初始化时,神经网络模型读取训练数据集,按照指定的训练次数调整权值。
单次训练输出时,输出层获得各节点的输出值与目标值的误差后反向传播回神经网络,使用梯度下降法,根据隐含层和输出层之间已有各权值的大小,进行一次校准[16]。以连接当前节点j前一级节点i的权值wij的一次反向传播校准为例,新的权值wnew为
式中:oi为前一级节点i的输出值;Oij为节点j的输出函数;ej为节点j的误差函数的值,满足
式中:tj∈T,为输出节点j的目标值。
鉴于本文采用Sigmoid激活函数
节点j的输出函数表达式为
将式(8)和式(10)代入式(7),可得
最终,将式(11)代入式(6)可完成权值wij的一次校准。
自诊断应用程序初始化阶段,诊断模型读取训练数据集,并按照指定的训练次数,逐次调整神经网络的权值,使其具备故障数据分类能力。
2.2 神经网络训练
构造各信道单独故障时的理想特征矩阵和目标矩阵的数据作为神经网络的训练数据集。例如SO1故障时理想特征矩阵的数据样本见表2。
表2 SO1故障时理想特征矩阵的数据样本Tab.2 Sample of training data in the characteristic matrix during SO1 fault
鉴于激活函数Sigmoid(x)∈(0,1),为防止权值饱和,调整对应目标矩阵的异常和正常特征值分别为0.01 和0.99。SO1 故障时目标矩阵数据样本见表3。
表3 SO1故障时目标矩阵数据样本Tab.3 Sample of training data in the targeted matrix during SO1 fault
整合表2 和表3 可知SO1 单独故障的训练数据集。结合1.1 节自诊断电路,以此类推构造其他被测信道单独故障的训练数据集,由此整合获得5 输出和5输入信道的自诊断训练数据总集。使用服从标准正态分布的初始权值参与训练,提高训练效率。考虑到BP 神经网络有“训练样本顺序敏感性”的特点[17],各训练数据集按随机顺序输入训练。经过验证,设定学习率l为0.3,总训练次数达到50 000 次,可令自诊断模型获得有效的故障分类能力。
3 实例分析
使用训练好的自诊断模型对归一化处理后的输入数据进行计算分类,参考结果输出在风电控制系统人机界面上。用户可按照常规方式登录人机界面,并浏览指定菜单位置的自诊断参考结果。人机界面显示的数据结果如图5 所示,“DETECTING OUTPUT”栏显示SO1—SI5 信道自诊断后的故障可能性数据。通常数量级为10-1且数值上接近1 的数据表明对应信道具有很大的故障概率。
图5 人机界面显示的数据结果Fig.5 Detecting results on the user interface
以2个有故障的I/O 模块为例验证自诊断系统。验证前对待测的I/O 信道逐一进行信号排查:单独用万用表测量各输出信道的高电平输出时的电压值;使用标准24 V 直流高电平接入各输入信道,查看其逻辑反馈状态(true 或false)。记录上述测量结果作为自诊断模型对照组。
经过排查,模块1 的“发电机加热”输出信道存在故障。使用文中的自诊断系统采样处理获取模块1 的归一化特征矩阵数据,见表4。输入诊断模型,判断其中“偏航扭缆”接收“左偏航”的反馈信号受干扰,其数据值偏低(为0.67)。经过自诊断模型运算后,输出结果见表5。根据表5 可知“发电机加热”信道诊断结果接近1,且其数量级明显大于其他数据,因此有较大的概率出现故障。该结果与“排查结果”列的数据相符。并且在测试中,通过自诊断电路与之相连的“机舱紧停”“紧急顺桨控制(EFC)反馈”“过振动”“风轮过速”和“偏航扭缆”输入信道的诊断未受其故障的影响,且未对受信号干扰的信道造成误诊。
表4 模块1的归一化特征矩阵数据Tab.4 Normalized data in the characteristic matrix of No.1 module
表5 模块1的故障诊断输出结果Tab.5 Detected fault output from No.1 module
模块2的排查结果显示输出信道“偏航断电”和输入信道“顺桨到位”都有故障。自诊断系统采样获得其归一化特征矩阵数据见表6。经过自诊断模型运算后,输出结果见表7。根据表7的“诊断结果”列可知“偏航断电”和“顺桨到位”2 个信道有很大概率出现故障,与“排查结果”列的数据相符。表6 中UPS表示不间断电源。
表6 模块2的归一化特征矩阵数据Tab.6 Normalized data in the characteristic matrix of No.2 module
表7 模块2的故障诊断输出结果Tab.7 Detected fault output from No.2 module
4 结论
本文提出了一种基于BP 神经网络算法的控制器I/O 硬件故障的自诊断方法,经过试验论证,结果表明:
(1)自诊断电路配件为常用的风机备件,成本低,易获取,特征电路连接搭建一次可反复使用,适用于批量检测,无须依赖专用检测设备。可用于缺少备件、出行维护等成本较高的场合;
(2)诊断电路一对多的连接结构可靠性高,多重自反馈信号的设计可对待测信道的状态形成复合校验,具备了在个别信道故障的情况下仍可全面诊断的能力;诊断模型对个别干扰输入不敏感,可以减少误判,具备稳定性;
(3)硬件搭建完备的条件下可快速诊断,实现短时间内逐一、高效排查;
(4)参考结果展示简洁,操作人员无须专业知识,可快速掌握参考结果查阅方法并定位故障。
此外,神经网络算法程序具有一定的泛化能力,通过完善信号采样和数据处理方法,以及权值调整算法,可提升自诊断系统的性能,并拓展到其他控制器的功能诊断。因此,本方法具有良好的应用前景。