杨英楠 庄新伟 韩金良
(1.海军工程大学 武汉 430000)(2.天津航海仪器研究所 天津 300131)
随着舰船电子设备不断向集成化和自动化方向发展,设备的硬件组成和模块电路变得更加复杂,当设备发生故障时,需要繁琐的测试才能查明故障原因,甚至只能更换整个模块,这在大规模应用电子硬件的场所,既不经济、又不便捷[1~3]。常用的故障诊断方法有人工神经网络、小波分析和模糊推断等[4~7],这些故障诊断方法效果较好,但诊断方式与对象大多局限于对故障现象的分析和预测,无法对硬件故障进行定位和原因分析。
随着计算机技术和人工智能技术的发展,如何实现电子硬件的在线检测与实时故障诊断,建立智能化的故障诊断系统,是故障诊断系统研究的主要方向[8~12]。为准确定位、隔离故障,加强设备的可靠性设计和应用,研究了一种基于神经网络的节点模块级硬件故障诊断方法,对提升设备的综合使用能力和工作稳定性具有重要意义。
综合监测模块能够对反射内存模块的电流、电压、温度等硬件数据进行监测,实时判断模块的运行工作状态。综合监测模块硬件电路原理图如图1所示,模块以ARM处理器为核心,通过外部检测电阻、多路模拟开关和温度传感器等实时获取反射内存模块中关键节点的运行数据,将运行数据与正常工作阈值进行比较,可进一步判断节点运行状态和模块的工作状态。
图1 综合监测模块硬件电路原理图
综合监测模块基于ARM处理器,软件设计包含主程序和中断服务程序两部分。主程序的主要任务是实现IO口、串口、A/D、D/A、温度传感器等的初始化。中断服务监听程序用于设定温度、电流、电压和电源的采样频率和采样时间,以及设定测试FPGA处理器和存储器的时间间隔。当发生中断请求时,综合监测模块会执行相应的中断操作,然后将测试结果与正常阈值进行比较以判断测试数据是否正常,若异常则进入故障处理程序对模块故障进一步定位。
分析舰船电子设备中反射内存模块的故障模式,主要有处理器故障、光电转换模块故障、存储器故障和电源故障等,每种故障模式在实际运行过程中又会有多种不同的故障表现形式。
同种故障模式可能对应着多种故障特征,整理出12种主要故障特征码如表2所示,其中前9种故障特征码包含3种状态,后3种故障特征码包含两种状态。
表1 反射内存模块主要故障模式
表2 反射内存模块主要故障特征
反射内存模块的故障定位与诊断是一个需要考虑多种节点因素的复合问题,以模块中的处理器异常为例,除处理器本身故障外,还有可能是电路故障,建立处理器的电路故障诊断表如表3所示。
表3 处理器电路故障诊断表
根据表3可以发现,同一故障模式可能对应着多种不同的节点故障状态,将不同的节点故障状态进行组合又可以衍生出多种不同的故障模式,而通过对故障影响因素进行综合考虑,可以找到确定唯一的故障原因,即故障模式与故障原因之间存在一一对应的非线性数学联系。通过对所有故障模式、故障特征和故障状态进行梳理,建立故障诊断表,使得基于舰船电子设备节点模块级故障模式确定故障原因成为可能。
综合考虑反射内存模块故障诊断模型的复杂度和诊断效率,采用3层BP神经网络,设定输入层、隐含层和输出层的神经元数目分别为m、n和k,定义p=(p1,p1,......,pm)为神经网络的输入向量,hi=(hi1,hi2,......,hin)和ho=(ho1,ho2,......,hon)为隐含层的输入和输出向量,yi=(yi1,yi2,......,yik)和yo=(yo1,yo2,......,yok)为输出层的输入和输出向量,d=(d1,d2,......,dk)为网络的期望输出,wij和ujt分别为输入层到隐含层和隐含层到输出层的连接权值,θj和δt分别为隐含层和输出层的阈值,其中i=1,2,…,m,j=1,2,…,n,t=1,2,…,k。基于期望输出d和实际输出yo计算网络误差E为
分析反射内存模块的异常状态数据与故障征兆,选取输入层节点数为a为12,输出层节点数b为4,基于经验公式估算隐含层节点数S为8。
首先基于故障诊断案例和仿真模拟数据等对神经网络模型的式(1)进行训练,不断调整网络连接权值使网络误差最小,进而建立硬件运行状态(输入)与故障模式(输出)之间的非线性数学关系;当模块功能失调或者硬件节点监测数据异常时,诊断模型能够应用故障模式与硬件运行状态之间的非线性数学关系,以及模块中节点的采集数据状态,基于正向推理、反向推理和混合推理三种机制对故障进行判断和原因定位;对于新增的故障诊断案例和诊断经验,可通过人机交互接口输入故障诊断模型,对神经网络模型进行再训练,使其不断优化。
分析舰船电子设备中反射内存模块的常见故障特征状态和故障模式,建立得到仿真验证数据。例如当PA[4]=1,PV[4]=1,RM[1]=1时,可认为是由电压过高引起的FPGA处理器故障。
基于仿真验证数据,建立故障特征状态数据向量为X= (x1,x2,......,x12)=(PT[1],PV[1],……,PM[1]),以及故障模式向量为Y=(y1,y2,......,y4)=(RM[1],RM[2],…,RM[4]),采用收敛较快的Levenberg-Marquard训练函数,设置训练精度为E-10,最大训练次数为10^6,对上述神经网络模型进行训练得到反射内存模块故障诊断模型。
基于反射内存模块故障特征码代入故障诊断模型计算出故障模式码,然后将实际故障模式码与期望故障模式码进行对比,得到故障模式码对比如图2所示。若已知故障模式码和部分故障特征码,代入到故障诊断模型进行计算,将计算得到的故障特征码与期望故障特征码进行对比,得到故障特征对比如图3所示。
图2 故障模式码对比图
图3 故障特征码对比图
由图2中数据可知,实际输出故障模式码相对期望输出故障模式码的平均相对偏差主要在10%以内,最大平均相对偏差不超过15%,表明该故障诊断模型能够依据舰船电子设备模块级故障特征码推算出故障模式码。由图3中数据可知,实际输出故障特征码相对期望输出故障特征码的平均相对偏差主要在10%以内,最大平均相对偏差不超过15%,表明该故障诊断模型能够依据故障模式和部分故障特征推算出其他故障特征。
为进一步验证模型的故障诊断能力,将反射内存模块中通向处理器的电流切断,以造成处理器故障。
测试条件为正常工作温度26℃,正常工作电压3.3V,设定电流的最小故障诊断阈值为5mA,即认为工作电流低于5mA时发生断路。将通向处理器的电流切断后,故障特征向量X=(PT[1],PV[1],…,PM[1])=(0,0,0,0,2…,0),此时综合监测模块与反射内存模块的收发数据功能异常,提示为处理器异常,故障模式向量为Y=(RM[1],RM[2],…,RM[4])=(1,0,0,0)。经故障诊断模型进行诊断,诊断结果为由于处理器供电电路断路引起故障,符合神经网络模型对故障特征向量X和故障模式向量Y的计算结果。将通向处理器的电流恢复正常后,反射内存模块工作正常,将上述操作重复10次,故障诊断模型均能诊断出由于处理器供电电路断路引起故障,表明故障诊断模型能够对舰船电子设备中反射内存模块故障进行正确定位和检出。
以舰船电子设备的反射内存模块为例,通过设计综合监测模块和故障诊断对照表,提出了基于神经网络的节点模块级硬件故障诊断方法。通过开展反射内存模块故障特征码和故障模式码互相求解的验证实验,结果表明基于神经网络的故障诊断模型能够依据故障特征推算出故障模式,同时能够依据故障模式和部分故障特征推算出其他故障特征。最后通过切断电流造成处理器故障的方式,对故障诊断模型进行实例验证,表明诊断模型能够对反射内存模块故障进行正确定位和检出。通过在舰船电子设备中设计更多的综合监测模块,可实现对整个设备的故障定位和诊断,且随着模型对新的故障特征和故障模式进行持续学习,其故障诊断精度将会进一步提高。