基于BP神经网络的某型空空导弹发控电路故障诊断∗
2019-05-07吕晓峰
马 羚 吕晓峰,2 叶 文 张 磊
(1.海军航空大学 烟台 264001)(2.西北工业大学电子信息学院 西安 710072)
1 引言
某型空空导弹发控电路是某型飞机用来控制某型空空导弹正常发射与应急发射的电路,由“飞机—发射装置—导弹”三部分中的电路组成,是一个复杂的数模混合电路[1]。该发控电路由多个电子元件组成,而电子元件出现问题时故障模式复杂,诊断步骤繁琐,耗费时间长,且故障诊断效率低。
发控电路故障诊断的目的是找出故障元件,然后将其更换,保证发控电路的正常工作。而故障诊断方法的好坏,将直接影响诊断的效率、费用以及某型空空导弹的正常训练及作战使用。因此,合适的发控电路故障诊断方法,可有效地提高诊断效率、缩短诊断时间、减小装备维护的工作量以及保证空空导弹的正常使用,对提高装备战斗力有着重要意义。
发控电路的故障诊断问题属于典型的模式识别和分类问题,而BP神经网络具有建模步骤简单、训练速度快、训练结果鲁棒性好、自适应力强等特点,适用于发控电路的故障诊断[2~4]。本文采用PSpice软件仿真发控电路各故障模式的电压数据,在此基础上建立训练、目标、测试三个样本,构建BP神经网络结构,以实现对发控电路进行诊断。
2 某型空空导弹发控电路故障诊断步骤
基于BP神经网络实现某型空空导弹发控电路故障诊断大致可分为以下几个步骤,如图1所示。
图1 基于BP神经网络的发控电路故障诊断步骤
Step1:分析发控电路故障模式。基于失效模式与影响分析(Failure Mode and Effects Analysis,FMEA)方法分析各个元件对电路的影响,依据该方法由子系统到上级系统的分析原则,将各故障模式基于功能电路的不同进行分类[5]。
Step2:采集仿真电路测试信号。基于PSpice电路仿真软件对确定的发控典型电路进行仿真,仿真典型电路中各元器件,确定其故障模式,利用PSpice软件中的偏压点分析,采集各故障模式的模拟电压[6~7]。
Step3:构造样本集。通过对故障的分析与信号的检测,采用诊断对象的特征参数,形成训练样本与测试样本。对被诊断对象的故障类别进行二进制编码,例如,对于正常、故障状态1、故障状态2、故障状态3共4种模式进行编码:正常(0,0,0)、故障状态1(1,0,0)、故障状态2(0,1,0)、故障状态3(0,0,1),形成期望输出样本。
Step4:构建BP神经网络结构。设计BP神经网络结构,包括网络层数、各层的神经元数目、训练参数、训练函数等[8]。用建立好的BP神经网络训练样本输入,修改训练参数或函数,使实际误差值满足精度要求。
Step5:故障诊断。用训练好的BP神经网络对测试样本仿真,利用其输出值来进行故障模式的识别。将测试输出与期望输出相比较,确定测试结果的诊断故障状态,利用性能评价函数,确定诊断误差的大小。
3 基于PSpice仿真的故障数据获取
3.1 故障设置
某型空空导弹发控电路一个复杂的数模混合电路,以发控电路中的部分电路作为仿真电路进行元器件故障的分析,如图2所示。
图2 某型空空导弹发控电路原理图
考虑各元器件出现单一故障时对正常工作电路的影响,默认开关、按钮、插针一直闭合且接触良好。该仿真电路中共有4部分功能电路,分别为:载机供电、发射允许、正常发射与导弹供电,典型电路故障模式如表1所示。
3.2 搭建电路图
运用PSpice中的OrCAD Capture模块搭建电路原理图,仿真电路中共设置1个直流电压源、2个二极管、2个三极管、15个电阻,设置直流电压源的输出为27V,搭建好的电路图如图3所示,并设置1、2、3、4、5共五个测点。
表1 典型电路故障模式
3.3 故障数据获取
运用PSpice软件中的probe模块的偏压点分析仿真电路,获取设置测点的电压数据。根据设置的故障模式总数,共仿真19次,对于各故障模式获取的测点电压如表2所示。
表2 故障模式电压采集
4 某型空空导弹发控电路故障诊断
4.1 建立样本
对四个功能电路及其正常模式进行二进制编码如表3所示。
图3 仿真电路图
表3 功能电路故障编码
表2中所采集到的故障数据共19组,从中随机选择4组样本作为测试样本如表4所示,剩下的15组样本作为训练样本。
表4 测试样本
4.2 构建BP神经网络
发控电路故障诊断的BP神经网络结构建立如图4所示。
图4 BP神经网络建立步骤
具体建立步骤如下所示:
Step1:确定BP神经网络层数。发控电路故障诊断所用数据为中小规模数据。因此采用三层典型结构,即可解决该问题。
Step2:确定隐含层神经元数目。根据训练样本与目标样本可知,输入层、输出层的神经元为5个,共15组训练数据。隐含层神经的选择目前很难找到具体方法进行确定,大多采用经验公式粗略估计隐含层神经元的范围[9]。公式如下:
式中,l为隐含层神经元数目,p为输入层神经元数目,t为输出层神经元数目,a为1~10的常数。经过大量仿真,得到隐含层神经元为12时,训练效果最好。
Step3:确定传递函数。传递函数是BP神经网络的重要组成部分,必须是连续可维的。常用的传递函数主要有三种:S型对数函数logsig、双曲正切S型函数tansig和线性S型函数purelin[10]。从输入层传递到隐含层选择logsig函数,将不定范围内数据映射到最小的范围内,效果最好;从隐含层传递到输出层选择purelin函数,将隐含层训练结果按照一定比例映射到输出层。
Step4:确定训练函数。Matlab中提供了多种训练函数,如基于最速下降算法的traingd函数、基于BFGS拟牛顿算法的trainbgf函数和基于LM算法的trainlm 函数等[11~12]。其中,trainlm 函数训练时间快,迭代步数最少,且误差最低,适合于发控电路故障诊断数据为中小规模类似的问题,所以训练函数选择trainlm函数。
4.3 训练构建的BP神经网络
利用Matlab2014a中所提供的神经网络工具箱建立BP神经网络,设定参数对网络进行学习、训练最终得到诊断数据,编制M文件如下所示:
经过Matlab软件仿真训练,得到的训练结果如图5所示。
图5 BP神经网络训练结果
得到的误差变化曲线如图6所示。
图6 BP神经网络误差变化曲线
由训练结果及误差曲线可知,在91次迭代后,训练误差到达0.00094637,满足训练误差的要求;且训练过程中收敛速度快。
4.4 故障诊断
用训练好的BP神经网络对测试样本进行仿真验证,得到的诊断数据如表5所示。
表5 诊断数据
由表5中诊断数据可知,诊断数据中0.0529与实际目标数据0差距最大,相差0.0529,;所以,诊断数据误差控制在5.3%以内,即诊断数据在0.947~1.053诊断为1,在-0.053~0.053以内,诊断为0;4个测试故障均可以识别。
5 结语
本文主要研究了基于BP神经网络的某型空空导弹发控电路故障诊断方法。首先,针对某型空空导弹发控电路,分析并构建了基于BP神经网络的故障诊断步骤;其次,通过PSpice电路仿真软件搭建了发控电路的仿真电路图,并设置了5个测点,对19种潜在故障状态进行了仿真,获取了19组故障数据;最后,基于获取的故障数据,构建了BP神经网络,并对其进行了训练与验证。该方法可有效解决某型空空导弹发控电路诊断效率低,诊断速度慢的问题,可用于某型空空导弹发控电路故障诊断系统设计。