基于BP 神经网络的电路板故障征兆获取研究
2015-07-01谢永成刘磊峰李光升
谢永成,刘磊峰,李光升,魏 宁
(装甲兵工程学院控制工程系,北京 100072)
人工神经网络具有记忆功能和函数逼近功能[1]。BP 神经网络在对样本训练的过程中,通过不断地调整连接权值,从而得到一个输入与输出的、存在一定误差的函数映射关系。将大量故障数据训练好的网络权值和阈值存储在故障诊断专家系统的知识库中,使用的时候读取相应的网络,就可以进行数据的征兆提取。电路板故障征兆获取的流程如图1 所示。
1 隶属函数概念
在传统的逻辑判断中,一个被定义的、可判断的事物,能用真和假对其进行描述。其中可用数字1 表示真,数字0 表示假,这是一种非此即彼的逻辑。
图1 电路板故障征兆获取流程
但在现实生活中,有许多事物不能确切地进行描述。例如:电压值过高,“过高”是一个模糊概念,具体多高没有一个明确的分界点。为了较为准确的描述“过高”这一概念,需要用一个数来反映它隶属于该模糊概念的程度。对于类似的问题不能用特征函数,但可以用与特征函数相似的隶属函数表征。
定义1:设A 是论域U 上的一个集合,对于任意的u∈U,令
则GA(u)为集合A 的特征函数,特征函数GA(u)在u =u0处的取值GA(u0)称为u0对A 的隶属度。
定义2:A 是论域U 上的一个集合,μA是把任意u∈U 映射为[0,1]上的某个值的一种函数,即: μA: U →[0,1],u→μA(u)。
其中μA是定义在U 上的隶属度函数,μA(u)(u∈U)构成的集合A 是U 上的一个模糊集,μA(u)被称为u 对A 的隶属度。μA把所有的u∈U 中的元素都映射到[0,1]上的某个值μA(u),值越大说明隶属于A 的程度越高。当μA(u)的值仅为0 和1 时,A 就变成一个普通集合,隶属函数就变成了特征函数。
2 BP 神经网络
BP 神经网络具有很强的映射能力,它能对网络的输入输出进行处理,从实例中获取知识,用训练好的网络连接权值和阈值,记录知识。
2.1 概念
BP 神经网络是一种多层前馈神经网络,该网络的特点是信号前向传播,误差反向传播[5]。在前向传播的过程中,信号经过输入节点、隐含节点、输出节点,每个节点都会影响下一个节点的状态。如果得不到期望的输出,就进入反向传播,根据预测误差来调整网络权值和阈值,最终使得网络的预测输出不断的逼近期望输出。BP 神经网络的拓扑结构图如图2 所示。
图2 BP 神经网络拓扑结构
图2中,X1,X2,…,Xn是BP 神经网络的输入值,Y1,Y2,…,Ym是BP 神经网络的预测值,ωji和vlj为网络权值。BP 神经网络可以看作一个非线性的函数,网络的输入值和输出值可以看作是函数的自变量和因变量。
2.2 算法原理
BP 神经网络学习规则的思想为: 对网络权值和阈值的修正沿着表现函数下降最快的方向,即负梯度方向[1]。用公式表示为其中,xi为当前的网络权值或者阈值矩阵,ai为学习速率,gi为表现函数的梯度。
以三层BP 网络为例,输入节点xi,隐含节点yi,输出节点zi,输入节点与隐含节点的网络权值为ωji,隐含节点与输出节点的网络权值为vlj,隐含阈值为θj,输出阈值为θl,当输出节点的期望值为ci时,模型公式为
1)隐含节点输出:
2)输出节点输出:
3)输出节点误差:
式(2)代入式(3)得:
式(1)代入式(4)得:
4)误差函数对vlj求导得:
(E 中有多个zm,只有一个zl与vlj有关,zm之间相互独立)
所以,
输入节点误差:
则:
5)误差函数对ωji求导得:
(E 中有多个zl,针对某一个ωji,对应一个与所有zl有关,zm之间相互独立)
其中:
则:
隐含节点误差为:
则:
6)权值的修正:
由于权值修正Δvlj、Δwji正比于误差函数沿梯度下降,则有:
隐含节点误差δ'j中的∑δl·vlj表示输出节点zl的误差δl通过权值vlj向节点yj反向传播成为隐含节点的误差。
7)阈值的修正:
阈值也是变化的,同样需要修正。误差函数对输出节点阈值求导:
输出节点的阈值修正:
误差函数对隐含节点阈值求导:
其中:
所以,
隐含节点阈值修正:
2.3 网络设计
2.3.1 组建样本集
组建样本集是进行神经网络设计的基础,电路板故障特征集和故障模式组成了神经网络的输入和输出序列。输出是代表了神经网络要完成的功能,对问题进行分类归纳。输出的表示方法较为简单,通常用0 和1 表示正常和故障。输入则需要选择对输出影响较大的变量,同时要求输入之间的关联关系较小。
2.3.2 隐层数设计
单层隐层设计能够反映所有的连续函数,两个隐含层能够反映不连续函数。对于两层神经网络,第一层隐含节点少,第二层隐含节点多,有利于改善多层前馈网络的性能。对于单层网络,如果增加节点数量不能够达到明显的误差下降,就应该考虑增加隐含层数。
2.3.3 隐含节点数设计
节点的作用是从样本中提取知识,并存储内在的规律,每个节点都有若干个权值,每个权值都是增强网络映射能力的一个参数。节点数越少,它获取信息的能力就差;节点过多,又会出现“过度吻合”的问题。所以确定节点数主要采用经验公式
m 为隐层节点数;n 为输入节点数;l 为输出节点数;a 为1 ~10 的常数。
3 电路板仿真实验
模拟电路参数的测试较为容易,但具体的故障判断就显得十分困难。以信号放大器电路板(图3)为例,在获取其故障征兆的过程其实就是把症状空间上的向量映射到故障空间的过程。首先,对输入数据进行预处理,选取U1,U2,U3构建数据空间;其次,将得到的数据空间通过故障隶属度函数获取数据中的不变特征,得到故障模式空间;最后,经过神经网络训练,将故障模式空间映射到故障特征空间。
图3 放大器电路
采用常用的故障路数函数为
其函数曲线图如图4 所示。
图4 隶属函数曲线
取a=1,e=0,t=x0,改变U1和U2放大器输入电压值,测试U1、U2、U3三个放大器输出电压值,然后将3 个电压值通过上述隶属度函数归一化到[0,1]上。如表1 所示。
表1 输出电压归一化处理
根据神经网络设计,选取网络结构为3—5—3,以第一组和第二组数据为训练数据,用第三组数据作为测试数据,得到表2 中的结果。
4 结论
在保证一定精度的情况下,采用BP 神经网络能够获取电路板的故障征兆。通过训练后得到的神经网络可以适应不同故障状态下的U1、U2、U3电压值。得到的故障征兆精度较高,能够解决故障的判断问题。
表2 训练和测试数据的电压值
[1]郎荣玲,潘磊,吕永乐.基于飞行数据的民航飞机故障诊断专家系统[M].北京:国防工业出版社,2014.
[2]张鹏.民航飞机故障诊断方法研究[D].天津:中国民航大学,2008.
[3]张景新.专家系统知识获取方法研究与应用[D].北京:北京航空航天大学,2009.
[4]刘陶.基于飞行参数的故障诊断技术研究[D].北京:北京航空航天大学,2008.
[5]梁春泉,李峥嵘.基于BP 神经网络的小麦病害诊断知识获取[J].微计算机信息,2008,24(5):203-205.
[6]李敏,夏跃武,乔斌.基于STM8 和nRF24L01 的智能车库门控制系统设计[J]. 重庆工商大学学报:自然科学版,2014,31(7):81-84.
[7]赵守伟,马飒飒,吴国庆.基于故障仿真的诊断知识获取关键技术研究[J].计算机仿真,2008,25(1):31-35.