中国民用航空西南地区空中交通管理局 四川成都 610202
摘要:本文针对传统BP算法的缺点,提出了将权值修正式中增加附加动量项和改进激发函数的方法以弥补传统BP算法的不足。同时在LabVIEW环境下搭建的故障诊断系统中利用LabSQL工具包访问数据库,提出数据库与BP算法之间的接口解决方案,将改进后的BP算法应用于民航设备故障诊断系统,通过matlab仿真得到良好验证。
关键词:BP算法;LabSQL;数据库;故障诊断
0引 言:BP算法,又叫误差方向传播算法,是一种有效的多层神经网络学习方法。神经网络因其较强的容错能力与自适用能力广泛应用于故障诊断领域。但传统的基于梯度下降法的BP网络具有训练时间过长、误差不收敛或者收敛至局部极小值而不是全局最小值等的弊端。针对这些弊端,本文提出了将权值修正式中增加附加动量项和改进激发函数的方法以弥补传统BP算法的不足。
1 传统BP算法与改进后的BP算法
1.1传统BP算法
BP神经网络模型结构一般由三层组成,分别为输入层、隐层、输出层。在实际应用中一般会根据所解决问题的需求来决定隐层数和隐层节点数。
1.1.1 网络的正向计算过程
1)隐层的输入
式中:g,q为可调参数。通过对g,q值的合理调整,能增加BP算法的稳定性,减少迭代次数。
2 利用LabSQL访问数据库
前面分析了传统BP算法与改进后的BP算法,为仿真改进后的BP算法的可用性,本文引入LabVIEW软件环境。当今大量测试系统都是在LabVIEW环境下搭建的,在LabVIEW软件中,合理正确使用LabSQL工具包,即可实现对数据库的访问,在使用LabSQL之前,需要在Windows操作系统中的ODBC数据源中创建一个DSN,如图1所示。
图2 SQL执行语句VI程序框图
第一步创建一个Connection对象;第二步建立与数据库的连接并对DSN进行设置;第三步创建一个Recordset对象,并通过指令打开;第四步通过SQL命令来选择控制对数据库的查询、添加、删除、修改等操作;最后关闭与数据库之间的连接。
3 数据库与BP算法之间接口的实现
BP算法和数据库管理两大功能模块构成了故障诊断系统的核心,两大功能模块之间的接口尤为重要。故障诊断系统通过数据库对故障知识进行存储和管理,在实际应用过程中,故障点数量增加1,则对应的神经网络的输入节点和输出节点数增加1,故障点数量减少1,对应输入节点和输出节点数减少1,以添加到数据表尾为例修改网络如下:
第一步,根据网络的隐层神经元数的经验计算公式:
式中m:隐层神经元数;N:输入层神经元数;L:输出层神经元数。添加1个故障点,则隐层节点数加1;第二步,将所有原有节点与新增节点之间的连接权值置0,将新节点之间的连接权值置1。第三步,保存所有权值【3】。BP算法与数据库接口程序流程如图3所示。
经过88次迭代计算,误差曲线如图4所示,计算出的权值和最终结果如图5图6所示。
图6计算最终结果
通过matlab仿真,结果与期望值基本一致,表明该算法具有一定的可行性。
5 结 语
本文在传统BP算法的基础上,提出了将权值修正式中增加附加动量项和改进激发函数的方法以弥补传统BP算法的不足。同时提出了LabVIEW环境下搭建的故障诊断系统中数据库与BP算法之间的接口解决方案,最后将改进后的BP算法应用于民航设备故障诊断系统,通过matlab仿真得到验证。
参考文献:
[1] 刘浩,白振兴. BP网络的Matlab 实现及应用研究[J ] .现代电子技术 ,2012 (2) :249-251.
[2] 陈孝趋,鲁聪达.BP算法的改进及其在 Matlab 上的实现[J] .控制工程 ,2005. 12 (10) :296-298.
[3] 段芙蓉.基于VXI总线的ATC自动测试系统-故障诊断系统设计[D].电子科技大学:2003:33-34
论文作者:管世龙
论文发表刊物:《防护工程》2018年第30期
论文发表时间:2019/1/14
标签:算法论文; 节点论文; 数据库论文; 故障诊断论文; 传统论文; 系统论文; 神经元论文; 《防护工程》2018年第30期论文;