基于神经网络的柴油机遥控系统故障智能诊断研究

2012-01-22 10:29
船海工程 2012年5期
关键词:隐层故障诊断神经网络

(上海交通大学 船舶海洋与建筑工程学院,上海 200030)

船舶主机遥控系统是实现船舶机舱高度自动化的前提,一般由执行器、控制器、传感器、齿轮箱驱动器、连接电缆等部分组成,其中控制器是主机控制系统的核心部分[1]。所以对主机遥控系统特别是控制器的各类故障现象进行迅速准确的分析并及时排除有着非常重大的现实意义。传统模拟电路故障诊断方法,如故障字典法,、参数识别法等,由于自身的局限性和工作量过大等问题,其诊断效果并不理想。为了实现更加快速准确地模拟电路智能故障诊断,必须寻求其它方法。人工神经网络凭借其无需建立诊断对象的精确数学模型、非线性映射、高速的自组织和自学习推理能力等特性[2],成为故障诊断的一种有效方法和手段,在模拟电路故障诊断中也己获得较成功的应用。

1 人工神经网络在模拟电路故障诊断中的应用

反向传播神经网络简称BP神经网络,是一种典型的前向式神经网络,是迄今为止应用最普遍的一种神经网络,在模拟电路故障诊断中目前也是以BP网络为主。图1为采用简化符号来表示的三层BP神经网络结构图,每层都有自己的权值矩阵W、偏置值向量b、净输入向量n和一个

图1 三层神经网络的简化表示

输出向量a,各变量的维数均直接标出,这样就可以不必费心去猜变量的类型或维数,一目了然。这里引入了额外的符号来区分这些层次,即每个变量都附加一个上标来表示其所处层次。这样,第一层的权值矩阵记为W1,第二层的权值矩阵记为W2,以此类推[3]。它的工作方式是一种有教师的学习算法,即它必须已知每种输入模式的精确输出结果。

基于人工神经网络的模拟电路故障诊断系统主要包括两个过程:学习(训练)过程和诊断(测试)过程,每个过程都包括数据预处理和特征提取两部分。模拟电路故障诊断的过程是把症状空间的向量映射到故障空间,即实现故障特征空间到分类(识别)空间的映射。如何快速、有效提取优质的模拟电路故障特征,是进行电路故障诊断和测试的难点和关键所在。

用BP网络进行电路故障诊断的步骤为:①测前,将电路的正常状态及各种故障状态所对应的理论值求出,并作为样本输入给BP网络,训练好BP网络;②加测试激励,将实际状态测出,经过一定预处理后把数据提供给训练好的BP网络进行测试。训练好的网络不仅能识别已经训练过的样本,而且能通过联想推理,识别未出现过的样本,这正是神经网络智能性的体现[4]。

2 遥控系统故障智能诊断的实现

本文所述柴油机遥控系统主控制器主要由24个单独的模块组成。在对24个模块的线路板的具体工作原理进行仔细分析后,通过系统管理软件控制数据采集卡、专用电源、控制板向被测模块相关引脚输入一定的激励信号,并通过采集卡各数字和模拟输入通道采集各引脚的响应信号,由神经网络模型分析线路板性能,进行故障判断并提示故障点位置及其故障类型,并给出维修提示。诊断时,首先将大规模电路按照某种原则撕裂为若干个小网络,再利用 BP 网络的诊断原理分别对每一个子网络进行诊断。M6P3作为柴油机遥控系统24个模块中属于比较简单的一个模块,以此模块为例进行故障诊断。电路原理见图2。

图2 柴油机遥控系统模块M6P3电路原理

如图2所示,这个模块面板上有5个接插件X1,X2,…,X5,通过连线与测试控制板相连,然后运行系统软件里对每个模块单独编制的测试进程程序,通过控制采集卡、控制板上的单片机和继电器等元件来控制模块各引脚和采集卡对应通道间的通断,实现对模块各引脚激励信号输入和对应引脚响应信号采集的过程自动化,再通过训练好的故障诊断神经网络来诊断故障并给出维修提示,这样就大大减少了诊断过程的复杂性,并实现了测试的智能性。

在此模块中,全部的可能故障可分为三大类:①接插件各引脚连线故障;②继电器故障,各开关不能有效动作;③电容短路故障。通过仔细分析,为了减少神经网络结构的复杂性及考虑到采集卡输入输出通道数目的有限性,将测试过程分成9个独立的小阶段。这9个阶段因故障类型均为硬故障,故采用同一个训练好的神经网络。原理阐述如下。

从图2中可以看到X5:A1与X2:b0~b9,X5:A2与X1:b0~b9,X5:A3与X4:a0~a9,X5:A4与X3:a0~a9,X5:Б1与X4:c0~c9,X5:B2与X3:c0~c9各脚均互连,另还有14组诸如X1:a8与X1:a9两两互连的引脚,9个开关和3个电容(只检测电容有无短路),据此分为9个检测阶段,每个阶段均采取10输入10输出的神经网络结构,10输出编号为0~9,在每一检测阶段每一编号对应某一特定的故障。现以第一检测阶段即检测X5:A1与X2:b0~b9连线故障来具体阐述其实现过程:通过采集卡对X5:A1施加直流+5 V电压激励,通过采集卡数字端口检测X2:b0~b910个引脚的电平情况,即这里采取的神经网络故障特征提取方法是根据CMOS电平来确定的,高为1,低为0,然后作为神经网络的输入,经过训练好的BP网络处理后,10个输出中若有某编号(在这阶段编号0~9对应X2:b0~b9)如3号输出为0,说明X2:b3与X5:A1有断线故障,若输出为1则表示正常。

需特别说明的是,对继电器各开关进行故障检测时,各继电器均上电,对应于常闭开关的编号输出为1,表示故障,输出为0则正常,与常开开关相反。

3 BP神经网络结构确定方法

关于BP神经网络的应用主要包括:确定网络结构、训练BP网络、测试训练过的BP网络。确定网络结构包括确定网络的隐层数及各隐层的单元数。对于网络的层数,不少学者做了理论上的研究。Lippmann提出,有2个隐层的神经网络可以解决任何形式的分类问题[5]。之后,Robert Hecht Nielson从理论上证明,对于任何在闭区间内的一个连续函数都可以用具有一个隐层的BP网络来逼近,因而一个三层的BP网络可以完成任意的M维到m维的映射[6]。这一理论在设计BP神经网络结构时可以作为一个基本原则。实际上,增加层数的目的是找到输入输出变量之间的映射关系,进一步降低误差,提高学习精度,但另一方面,这样做也使得网络结构复杂化,从而增加了网络权值的训练时间。

本文用于故障诊断的BP神经网络采用三层结构,除输入和输出层外只有一个隐性层,而通过隐层单元数的设置来调节误差。众所周知,隐层节点数必须设置合适,否则若节点数过少,学习的容量有限,不足以存储训练样本中蕴含的所有规律;节点数过多会增加网络的训练时间,且会将样本中非规律性的内容存储进去,反而降低泛化能力。对此,除了许多学者提出不少经验公式外,也有人提出试凑法, 即初始放入足够多的隐层单元, 然后把学习后那些不起作用的隐层单元逐步去掉, 一直减少到不可收缩为止或者初始时放入比较少的隐层单元, 学习一定的次数后, 不成功再增加隐层单元数, 一直达到比较合理的隐层单元数为止[7]。本文通过经验公式首先将隐层单元数确定在一个范围中,然后通过试凑法将此范围稍加扩大,比较这些模型的仿真结果,以此确定网络的结构。根据第二部分的输入输出数和某经验公式,初步确定隐层单元数的范围在 6~15之间,而为了体现出隐层单元数对模型精度、训练速度的影响,在仿真中,将这个范围稍微放大将隐层单元数取在 6~20之间,仿真并比较各结果。

4 算法优化及仿真验证

BP网络通过调整网络的权值和阈值建立起了输入与输出之间的隐含数学关系,实现了对学习样本的记忆,从而具有分类的功能。但是传统的BP算法自身仍有缺陷和不足,比如收敛速度慢,再如,由于采用梯度下降训练算法,因此有可能陷入局部极小。这些缺陷和不足都将导致对电路故障诊断效率不能达到最优。针对这一点,考虑了一些改进网络学习和训练的算法,包括动量方法和Levenberg-Marquardt数值优化算法。反向传播的动量改进(MOBP)公式如下[8]:

ΔWm(k)=γΔWm(k-1)-(1-γ)αsm(am-1)T
Δbm(k)=γΔbm(k-1)-(1-γ)αsm

(1)

F(x)——均方误差函数。

加入动量因子γ的动量方法有助于减少训练过程中振荡的数目,可以加速收敛。Levenberg-Marquardt算法主要优点是算法的每次迭代都能减少平方误差和。其权重和阈值更新公式为

X(k+1)=X(k)-(JTJ+μI-1)JTe

(2)

式中:J——误差对权值微分的雅可比矩阵;

e——误差向量。

最后通过上述介绍的经验公式和试凑法,确定BP神经网络的结构为10-20-10,采用反向传播的动量改进(MOBP)的学习方法和Levenberg-Marquardt算法的训练方法,网络圴方误差MSE=1×10-10。训练结果见图3。

图3 BP神经网络训练结果显示

从图3中可以看出,1 min 02 s后,神经网络就能训练达到所要求的精度。接下来通过随机生成一组模拟输入向量(共200个),并用训练好的网络来产生其输出结果,试验结果表明网络的实际输出跟理论输出几乎一致,从而能达到所训网络诊断故障的目的。

5 结论

改进的算法能有效加快网络的收敛速度,缩短训练时间,而且对系统电路的硬故障诊断准确率极高,能真正实现快速自动智能的故障检测功能。但是应该指出的是,就一些元器件的软故障,如电阻、电容或三极管参数偏离正常值等,用BP神经网络实现这类故障类型的判断有着一定的欠缺。

[1] 陈鸿璎.船舶柴油机主机遥控[M].北京:人民交通出版社,1996.

[2] 王 承.基于神经网络的模拟电路故障诊断方法研究[D].电子科技大学,2005.

[3] Hagan Martin T, Demuth Howard B, Beale Mark H.神经网络设计[M].戴葵,译.北京:机械工业出版社,2002.

[4] 谭阳红,何怡刚,陈洪云,等.大规模电路故障诊断神经网络方法[J].电路与系统学报,2001,6(4):25-28.

[5] Lippmann R P.An introduction to computing with neural nets[J].IEEE ASSP Magazine,1988,16(1):4-22

[6] Nielson R H.Theory of the backpropagation neural network[C]∥Washington,DC,OSA: International Joint Conference on Neural Net Works, 1989.

[7] 张立明.人工神经网络的模型及其应用[M].上海:复旦大学出版社,1995.

[8] 丁士圻,郭丽华.人工神经网络基础[M].哈尔滨:哈尔滨工程大学出版社,2008.

猜你喜欢
隐层故障诊断神经网络
基于RTD可编程逻辑门的n变量函数实现算法
一种自适应确定隐层节点数的增量半监督超限学习机算法
基于递归模糊神经网络的风电平滑控制策略
基于包络解调原理的低转速滚动轴承故障诊断
一种深度梯度提升回归预测模型
神经网络抑制无线通信干扰探究
基于RDPSO结构优化的三隐层BP神经网络水质预测模型及应用
基于神经网络的中小学生情感分析
数控机床电气系统的故障诊断与维修
基于量子万有引力搜索的SVM自驾故障诊断