基于模糊神经网络的复杂网络故障诊断设计
2023-10-28詹进雄杜舒明
詹进雄,杜舒明
(南京电子技术研究所,南京 210039)
0 引言
随着集成电路、计算机网络等技术快速发展,以雷达等为代表的大型复杂电子装备呈现出装备数字化、网络化、集成化、信息化等新特点,是装备适应未来新技术发展以及新型电子战的必然选择。装备高度集成化与网络化对装备配套的保障模式、维修方法等提出更高的要求,嵌入式测试、视情维修等成为目前装备保障研究中重要的研究方向。精准、高效保障的基础是精准定位故障,而故障定位的基础是能够获取被测对象相应的测试点信息。测试信息的获取依赖于装备内部的网络,网络正常工作是装备发挥效能、快速维修保障的基础。当装备网络发生故障时,需快速定位并修复网络拓扑中故障节点,避免出现装备宕机[1-3]。
装备网络化体现在装备内部一张复杂的网络拓扑结构,在该拓扑结构中各个部件节点通过交换机/路由器等网络设备按照一定的层次架构级联连接一起。该复杂网络承担着系统的控制指令、系统响应数据、测试数据等传输任务,是装备各类信息传输的重要基础。装备网络化与集成化带来的是链路故障排查难度的大幅提升。在多级网络拓扑加持下,不同层次网络节点出现故障表现出来的故障现象存在差异,上级的网络节点信息依赖下级节点传递。因此当拓扑结构中若干交换节点特别是中心交换节点出现故障时,在系统层面表现出大量级联网络节点信息的缺失或异常,这类故障的排查耗时费力,缺少有效的快速分析手段,严重影响了装备的可使用性[4]。因此针对这类复杂拓扑结构的网络,构建一种行而有效的快速诊断方法是非常必要的。复杂网络拓扑结构如图1所示。
图1 复杂网络拓扑结构示意图
在针对实际生产生活中产生的大量的模糊问题,传统的基于精确数学模型的解决方法往往需要大量的试验数据,同时因大量模糊情况的存在,导致最终的解决效果并不十分理想,而这些模糊问题往往通过经验、推理、模糊判断等途径反而可以较好解决。模糊神经网络(fuzzy neural network)结合了模糊理论与人工神经网络优势,在大量的模糊问题应用上,具有较好的解决能力[5]。
针对复杂网络精准诊断存在的难题,提出了一种基于模糊神经网络的故障诊断方法,利用模糊理论对监测数据进行模糊化处理,然后基于处理后数据进行神经网络模型参数训练,并结合实际故障数据,对训练好的诊断模型进行测试验证,并对此次基于模糊神经网络的故障诊断方法进行总结与评价。
1 基本概念
1.1 模糊集与隶属函数
模糊集:给定一个论域U,从U到单位区间[0,1]的一个映射称为U上的一个模糊集,或者U的一个模糊子集,模糊集可用A表示[1]。模糊集是用于描述模糊概念的工具,实现精确性与模糊性之间的桥梁连接。
隶属函数:表征从完全隶属到完全不隶属过程中的渐变函数,使用隶属度描述模糊信息量化结果[6],即映射成为模糊集A的隶属度函数,可用A(u)表示:
A:u→[0,1]
(1)
隶属函数根据模糊概函数曲线分布特点可划分为“偏大类型”、“偏小类型”以及“居中类型”3种。图2以梯形形状分布给出这3种类型的分布曲线。
图2 隶属函数3种类型
1.2 模糊神经元
模糊神经元定义为一个系统,该系统响应表征如下所示:
(2)
其中:<∪,∩>为模糊神经元算子,定义域为A;x1,x2,x3,…,xn为n个系统的输入,xi∈A;w1,w2,w3,…,wn是对应上述n个系统输入的权重,且wi∈R,且xi∩wi∈A;θ定义为调节常量,且θ∈R;f(·)是系统响应函数,且f(·)∈[0,1]。模糊神经元的结构如图3所示[7]。
图3 模糊神经元组成图
1.3 神经网络
神经网络是利用电子、光学等技术模拟生物神经网络的某些结构、特征以及功能而具有智能化的网络,用于对信息加工、分析等过程[8-12]。由于神经网络所具有的对非线性映射的拟合以及学习能力,因此适合处理非线性、不确定性的问题,同样适用于网络系统的故障诊断。
根据神经网络架构组成的不同分为前馈神经网络、循环网络以及对称连接网络等。前馈神经网络是最常用的一种类型,包括输入层(第一层)、输出层(最后一层)以及隐藏层(处于输入输出之间)。前馈神经网络是一种静态的非线性映射,其非线性处理能力可通过简单非线性处理单元的复合映射得到。
循环神经网络是一类具有短期记忆能力的神经网络,以序列数据为输入,在序列的演进方向进行递归且所有节点按链式进行连接[13]。循环神经网络擅长解决与时间序列相关的问题,在语音识别、机器翻译等领域得到广泛应用。
典型前馈神经网络结构如图4所示。
图4 神经网络结构图
2 故障诊断系统设计
2.1 监测信息预处理
监测信息预处理主要实现将采集的网络监测数据经过模糊隶属度函数处理后输出模糊集,便于进行后续的推理诊断。根据隶属度划分需要,将各个故障原因的隶属度定义为故障原因对故障现象的贡献大小。隶属度越接近1,说明是该故障原因的可能性越高,相反隶属度越接近0,说明是该故障导致的可能性越低[14-15]。根据实际应用情况文中使用的隶属度划分如表1所示。通过隶属函数的变换,将监测的数据转换为同为隶属度尺度的标化数据,便于实现相应的数学运算和处理。
表1 隶属度划分
设系统有n个监测信号,可表示为:
Fp=[fp1,fp2,fp3,…,fpn](p=1,2,3,…,s)
(3)
其中:p表示第p个监测样本,s代表样本个数。对于各个fpi(i=1,2,3,…,n)而言,经过模糊化后输出的模糊量为:
μi(fpi)=A(fpi;a)
(4)
最终Fp经过模糊化处理后输出为:
Xp=[xp1,xp2,xp3,…,xpn]=
[μ1(fp1),μ2(fp2),μ3(fp3),…,μn(fpn)]
(5)
根据模型训练和验证需要,将Xp数据分为Xpt和Xpv两组,Xpt用于神经网络模型参数的训练,Xpv用于对训练好的模型进行测试验证。
2.2 隶属函数确定
隶属函数变化规律应能反映出客观模糊现象的具体特点,当研究的客观模糊现象的分布规律与给定的模糊分布函数类似时,即可选择这个函数作为所求的隶属函数,并通过实际的数据或先验知识获取具体的符合该现象的隶属函数。如普通家庭轿车根据价格可分为“豪华”、“经济”以及“普通”类型,但实际生活中这3种类型轿车价格存在重叠,针对这种价格模糊情况需要根据分布函数确定轿车类型的隶属函数。
根据表1中隶属度数值定义,隶属度越接近1,说明是该种故障原因的可能性越高。当网络拓扑中某个节点发生故障时,相应的节点监测的收发网络流量信息将受到直接影响,直接表现为该节点上报的收发流量数据断崖式下跌,并同时影响了与该网络节点级联的前后网络节点状态。因此从单个网络节点监测数据分析及规律看,数据分布符合“偏小类型”规律。根据网络节点级联特点,此处的隶属函数采用正态分布的隶属函数,具体公式如下:
(6)
考虑到在网络拓扑结构中,不同的网络设备、交换机级联位置以及接收、发送的数据流量并不一致,因此针对不同网络节点,对应的参数阈值a是不同的,最终形成一组确定的变量数组A:
A=[a1,a2,…,an]
(7)
2.3 基于模糊神经网络的故障诊断流程
基于模糊神经网络的诊断过程就是将经过模糊系统处理后变为模糊输入信号作为神经网络的输入,得到相应的模糊权值,然后将神经网络的输出反模糊化,得到确定的有效数值,从而将神经网络的并行处理优势和模糊系统的推理优势充分发挥[16-17]。
基于模糊神经网络的故障诊断流程如图5所示。根据流程框图,该诊断流程分为以下几个步骤:
图5 故障诊断流程框图
1)数据模糊化:将输入参数通过其隶属函数处理输出模糊矢量,形成训练样本以及试验样本;
2)神经网络训练:根据输入数据以及网络结构计算隐含层输出以及输出层误差,误差小于预设值停止训练,并记录训练好的网络参数;
3)诊断模型验证:将试验样本输入到已经训练好的诊断模型进行计算,得到量化输出;
4)反模糊化:按照设定的模糊隶属度函数进行反模糊化,得到最终的诊断结果。
2.4 模糊神经网络模型设计
模糊神经网络具有较好的结构知识表达、容错以及自然语言处理能力,因此针对复杂网络这类非线性、关系不清晰的模糊诊断具有较好的适应能力[18-20]。BP学习算法是目前神经网络中应用最广的算法之一,其组成包括输入层、输出层以及一个或多个隐含层。神经网络模型训练过程就是不断修正网络权值和阈值,使实际输出与期望输出间误差逐渐减小并达到期望误差的过程[21-22]。
在网络故障诊断实际应用中,考虑到网络系统中的监测信息存在耦合关联、监测对象状态无法直接量化评判的情况,需要将监测数据进行模糊化处理,经过模糊隶属度函数处理得到隶属度向量,再将得到的向量输入到隐含层中,得到模糊输出向量,通过反模糊处理得到最终故障部件。
本次采用的神经网络为5层,组成框图如图6所示。
图6 模糊神经网络诊断模型组成框图
第1层为输入层,输入层与待输入信号fpi(i=1,2,3,…,n)相连接,并且
F=[fp1,fp2,fp3,…,fpn]T
(8)
第2层为模糊化层,其作用是将输入信号根据隶属函数进行模糊化。对于任意一个输入信号fpi(i=1,2,3,…,n),定义xi个模糊子集,具体隶属度函数见3.1小节,模糊化层的输出向量见式(6)。
第3层为隐含层,用于实现模糊化层到模糊输出层的映射,其节点数m可根据输入数据数量最终确定,对于隐含层的第i个节点,设该节点与第二层各节点的赋予的权重为:
WHi=[wH1i,wH2i,wH3i,…,wHmi]T
(9)
第4层为模糊输出层,其输出的模糊数值代表故障存在可能性的程度,每个节点代表一种故障。该模糊输出层的输出为:
yi=f(WHiTX+θHi)
(10)
式中,f(·)为Sigmoid函数,θHi为隐层节点调节阈值。Sigmoid函数如式(11)所示:
f(β)=1/(1+e-β)
(11)
第5层为清晰化层,每一个节点对应一个输出信号zi(i=1,2,3,…,k),通过隶属度反模糊处理,使zi成为所定义模糊子集上。该输出层的输出向量为:
Z=[z1,z2,z3,…,zk]T
(12)
2.5 复杂网络故障诊断软件设计
使用MATLAB的GUI开发了针对网络系统的故障诊断软件。该系统包括了用户登录、网络监测参数接收解析、诊断输出结果、神经网络模型参数训练等功能界面,通过各个功能界面完成复杂网络的故障诊断功能。软件实现具体流程如下:
1)开始输入用户账号与密码,如果信息正确,则直接跳转第2)步;如果信息验证错误,则跳转步骤9)结束;
2)判断登陆是管理员用户还是普通用户:如果是管理员用户,跳转至步骤3);否则跳转至步骤5);
3)展示神经网络模型设置界面,具体包括选择输入的训练数据、网络结构、传递函数等项目设置,设置完成并开始训练;
4)将训练好的网络参数结果进行保存,并跳转至步骤9)结束;
5)加载训练好的保存在本地的参数作为神经网络参数;
6)根据网络节点约定的BIT报文格式进行接收解析;
7)根据设置的隶属函数对解析的BIT监测数据进行模糊化处理并输入到神经网络模型进行运算;
8)将神经网络模型输出结果反模糊化并进行界面显示;
9)软件运行结束。
软件实现流程如图7所示。
图7 软件实现流程图
下面围绕各个功能界面介绍该系统功能。
如图8所示,系统登陆界面包括用户名和密码,对使用软件的用户进行约束。同时针对使用过程中诊断系统诊断结果与实际存在偏差,需要重新训练神经网络参数情况,设计了管理员登录功能,便于更新神经网络模型参数。
图8 复杂网络诊断系统登陆界面
如图9所示,故障诊断界面用于故障网络节点的判断,基于训练好的神经网络模型将模糊化后的状态数据进行判断,输出诊断结果,根据输出结果反模糊化出可能的故障节点。
图9 故障诊断界面
神经网络训练需要依赖大量的样本数据,由于前期使用过程中缺少这样大量的故障案例样本,因此需要在后续使用过程中重新训练模型参数,系统提供了进行神经网络二次训练的设置界面,便于提高模糊神经网络的准性。神经网络训练界面如图10所示。
图10 神经网络模型训练设置界面
3 试验验证与分析
试验验证环节将截取某大型雷达电子装备中部分网络组成结构及监测数据进行神经网络模型训练与验证。该型电子装备设备数量、层次结构多、设备间连接关系复杂,不同设备间通过各类网络完成数据的交换,设备间数据传递依赖于网络链路上路由节点、交换节点等。因此实现对网络设备快速故障定位对提升装备可用性具有重要意义。
考虑到实际雷达装备网络组成及拓扑结构过于复杂,为简化组成便于说明拓扑结构,本节将围绕装备某局部的网络拓扑结构和监测的数据进行模糊神经网络参数训练,并将随机抽取的2组故障数据对训练好的神经网络模型进行验证。
3.1 网络组成及故障信息
图11是某雷达电子装备的局部网络拓扑组成图,该网络拓扑包括12个节点,其中各个节点间连接关系为双向的,其中节点3、7为网络交换机,节点2、4、10等为网络路由节点,节点1、5、6、8、9、11、12为网络终端设备。各类节点监测的BIT信息如表2所示。
表2 网络节点监测BIT
图11 网络拓扑组成框图
考虑网络双向传输链路分析与单向分析方法是一致的,此次试验主要研究单向传输方向下故障定位问题,双向传输链路的分析方法类似。选择其中6条传输链路为研究对象,这6条传输链路分别是:1→2→3→7→9、5→4→3→7→9、6→4→3→7→9、8→10→7→9、11→10→7→9和12→10→7→9。各个网络节点对应的故障模式以及对应的监测项目如表3所示。为简化模型,表中仅列出了与传输链路相关的故障模式以及监测项目,Y1~Y12分别表征各个部件的故障模式(无法发送/转发网络数据),T1~T12分别表示部件的监测项目(发送流量/转发流量)。
表3 网络节点故障模式与监测点 kB/s
3.2 预处理与样本划分
根据网络拓扑组成以及表3中采用的故障模式及监测项目,筛选出各部件在对应故障发生后,各个部件所采集到的监测项目数据,得到不同故障模式下与测试点的对应关系作为模糊神经网络的训练样本,如表4所示。表格中Ti代表监测点,Yi代表故障模式,中间表格数值代表对应网络流量监测结果。
表4 网络拓扑故障模式与测试点对应关系 kB/s
考虑到不同网络节点监测数据类型、数据阈值及变化特征不同,根据实际应用需要,以节点监测点T3为例说明隶属函数变量的确定过程,其它节点的隶属函数变量确定过程类似。文中监测流量数据主要考虑在系统正常工作情况下的情形,在系统正常工作时各网络节点监测的流量信息是相对稳定的,如果出现流量异常变少的情况,则网络拓扑中可能存在异常情况。表5数据为不同情况下节点3对应的隶属值情况。
表5 T3网络节点监测流量信息 kB/s
根据2.2节确定的“偏小类型”的正态分布的隶属函数以及表5的分布情况,求解可得T3节点的隶属公式参数结果:α=8,σ=40.2。因此T3的隶属度公式结果如下:
(13)
T3节点接收的实际监测数据可根据隶属公式转换为对应的隶属度值。对应T3节点的隶属函数曲线如图12所示。
图12 T3节点隶属度函数曲线
同理,其它节点的隶属函数以及隶属度求解过程可参考T3节点求解步骤得到。求解获得所有网络节点的隶属度函数后,将获取的样本数据依据隶属度函数进行模糊化处理,得到故障模式Yi与各个故障现象相关的模糊化矢量,具体见表6所示。
表6 网络故障现象与故障原因的对应关系
3.3 模糊神经网络建立与训练
根据第2.4节确定的方法,该神经网络组成信息如下:网络层数为5层,考虑到输入的监测信号有12个,经过模糊预处理后模糊化层共有12个节点,输出层共有12个节点。其中隐含层根据精度要求、仿真收敛速度等选取73个。神经网络训练选用快速BP算法,设置的最大循环次数为12 000次,学习速率设置为0.1,设置动量常数值为0.95,设定训练的目标误差为0.01。模型训练设置及训练结果如图13所示。
图13 神经网络参数训练结果
网络参数训练的误差结果如图14所示。由训练误差曲线可以看出,神经网络在训练10 033次达到相对稳定状态,此时训练曲线达到预设误差(10-2)虚线下方,满足了设置的0.01的期望误差指标。将训练好的网络参数数组保存为本地文件便于执行诊断过程前加载。
图14 神经网络训练误差收敛曲线
3.4 实例验证
将3.3节训练好的神经网络参数结果作为神经网络模型参数进行故障数据测试验证。试验根据实际网络拓扑故障分布情况分为2组故障数据进行测试。表7展示了待测试验证的2组故障监测数据。其中,第1组为拓扑结构中单个分支节点故障的监测数据,第2组为拓扑结构中的单个中继节点故障的监测数据。将这三组未经训练的故障数据输入到故障诊断系统中,经过诊断系统诊断的输出结果如图15所示。表8为诊断软件针对这2组测试数据输出得到的各个节点发生故障可能性。根据实测数据与诊断软件输出结果,这两组测试数据分别对应着Y11故障、Y4故障,两组测试结果与实际故障结论相同,与预期结论保持一致。经测试,诊断软件单次执行诊断过程耗时3.5 s。
表7 抽取的两组故障数据 kB/s
表8 验证测试输出结果
图15 节点故障诊断输出结果
文中虽然仅是针对单向网络传输链路状态进行分析与验证,双向的链路判断及训练过程与单向判断过程是保持一致的。
当然,实际装备上涉及的网络系统组成以及拓扑结构远比上述局部网络结构复杂得多。同时实际装备在运行过程中各种网络问题(如交换机节点异常、交换机路由设置错误、网络链路断开等等)耦合在一起,故障排除的快慢有时取决于技术人员排故经验。本文通过对局部网络拓扑分析,建立一种基于模糊神经网络的排故方法,便于后期在装备应用上通过对网络系统运行过程相关监测数据、故障信息等逐步积累,逐步优化、训练诊断知识,解决部分已知故障的快速定位。
4 结束语
本文针对大型装备复杂网络故障定位存在的难题,提出了基于模糊神经网络的故障诊断方法。首先依据模糊理论对网络的监测数据进行模糊化处理;接着通过实际装备网络运行过程中采集的故障数据以及通过拓扑分析获取网络组成关系,构建基于模糊神经网络的诊断模型,通过对不同的故障样本数据进行模型参数训练,给出最佳模型训练参数;最后结合实际故障数据,对训练好的诊断模型进行测试验证,并对此次基于模糊神经网络的故障诊断方法进行总结与评价。
基于模糊神经网络的故障诊断方法针对网络类存在的非线性、现象与故障原因关系不清晰的故障具有较好的故障定位能力,有助于提高故障诊断精度,因此针对大型装备复杂网络系统具有较好的应用前景。