首页 > 专利 > 南京信息工程大学 > 基于BP神经网络的发动机故障诊断方法专利详情

基于BP神经网络的发动机故障诊断方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2019-08-13
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2019-12-13
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2020-11-24
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2039-08-13
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201910746595.8 申请日 2019-08-13
公开/公告号 CN110470481B 公开/公告日 2020-11-24
授权日 2020-11-24 预估到期日 2039-08-13
申请年 2019年 公开/公告年 2020年
缴费截止日
分类号 G01M15/05G06N3/04G06N3/08 主分类号 G01M15/05
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 2
权利要求数量 3 非专利引证数量 1
引用专利数量 1 被引证专利数量 0
非专利引证 1、2018.08.30王超.基于神经网络的发动机点火故障诊断研究《.万方》.2013,论文正文第27-29页. 陈瑜等.基于BP神经网络的发动机故障诊断研究《.计算机应用技术》.2008,(第1期),第81-83. R. Rahimi molkdaragh等.Prediction ofthe performance and exhaust emissions ofa compression ignition engine using awavelet neural network with a stochasticgradient algorithm《.Energy》.2018,第142卷第1128-1138页.;
引用专利 US2018247362A 被引证专利
专利权维持 3 专利申请国编码 CN
专利事件 转让 事务标签 公开、实质审查、授权、权利转移
申请人信息
申请人 第一申请人
专利权人 南京信息工程大学 当前专利权人 舯南氢能动力科技(无锡)有限公司
发明人 朱节中、张果荣、余晓栋、陆松、李燕、杨振启、张立新、李天目、姚永雷、丁健、陈道勇、陈永 第一发明人 朱节中
地址 江苏省南京市江北新区宁六路219号 邮编 210044
申请人数量 1 发明人数量 12
申请人所在省 江苏省 申请人所在市 江苏省南京市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
南京苏高专利商标事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
柏尚春
摘要
本发明公开了一种基于BP神经网络的发动机故障诊断方法,包括(1)采集发动机故障数据,列出发动机故障原因;(2)确定BP神经网络模型的最佳隐含层节点数,建立BP神经网络模型;(3)根据已有的故障数据训练BP神经网络模型;(4)利用训练得到的BP神经网络模型,对采集的发动机数据进行分析,确定数据所对应的故障原因。以往发动机故障诊断存在机理复杂、检测精度低、成本高、不能显示故障原因等缺陷,本发明主要应用在发动机的故障诊断诊断方面,比以往的方法更具优势性,节省了成本,提升建模效率,可以快速锁定最优的隐含层节点数。
  • 摘要附图
    基于BP神经网络的发动机故障诊断方法
  • 说明书附图:图1
    基于BP神经网络的发动机故障诊断方法
  • 说明书附图:图2
    基于BP神经网络的发动机故障诊断方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2023-01-13 专利权的转移 登记生效日: 2023.01.03 专利权人由南京信息工程大学变更为舯南氢能动力科技(无锡)有限公司 地址由210044 江苏省南京市江北新区宁六路219号变更为214000 江苏省无锡市新吴区清源路20号立业楼A栋536室
2 2020-11-24 授权
3 2019-12-13 实质审查的生效 IPC(主分类): G01M 15/05 专利申请号: 201910746595.8 申请日: 2019.08.13
4 2019-11-19 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.一种基于BP神经网络的发动机故障诊断方法,其特征在于,该方法包括以下步骤:
(1)采集发动机故障数据,列出发动机故障原因;
(2)确定BP神经网络模型的最佳隐含层节点数,建立BP神经网络模型;所述的确定BP神经网络模型的最佳隐含层节点,包括以下过程:
(21)对已有的发动机故障原始数据进行归一化处理;
(22)利用隐含层节点数确定的经验公式计算隐含层节点数的出现区间[a1,b1],经验公式为:
(m1+m2)/2≤n1≤(m1+m2)+10
其中,m1为输入层节点数,m2为输出层节点数,n1为隐含层节点数;
(23)采用平方分数法,基于数列{Fn},其中 cn=n2,cn+1=(n+1)2,n为项数,确定最佳的隐含层节点数,包括以下过程:
(31)给定最终的不确定区间长度λ>0,以及步骤(22)中获得的隐含层节点数的出现区间[a1,b1],根据 来确定迭代的最小次数N,然后计算u1=a1+(1-F1)(b1-a1),v1=a1+F1(b1-a1),区间中点标志位
(32)比较u1、v1大小,若u1<v1,则维持步骤(31)的u1、v1计算值,若u1>v1,则令u1=a1+F1(b1-a1),v1=a1+(1-F1)(b1-a1),令参数k的初始值为1,进入迭代计算;
(33)比较E(uk)、E(vk)、E(mid)三者的值,若E(mid)最小,则收敛区间为[uk,vk],否则转步骤(34);
(34)若E(uk)>E(vk),则收敛区间为[uk,bk],转步骤(35),否则,收敛区间为[ak,vk],转步骤(36),其中E为数据输出误差;
(35)令ak+1=uk和bk+1=bk,进一步令uk+1=vk和vk+1=ak+1+(1-FN+1-k)(bk+1-ak+1),比较uk+1、vk+1大小,若uk+1<vk+1,则维持二者的计算值,若uk+1>vk+1,则调换二者的值;判断k是否达到N,若k=N,则转步骤(38);否则计算E(vk+1)且转至步骤(37);
(36)令ak+1=ak和bk+1=vk,进一步令vk+1=uk和vk+1=ak+1+(1-FN+1-k)(bk+1-ak+1),若k=N,转步骤(38);否则计算E(uk+1)且转至步骤(37);
(37)令k=k+1,转步骤(33);
(38)令uN=uN-1和vN=uN-1+ε,其中ε为计算精度,ε>0,若E(uN)>E(vN),则令aN=vN和bN=bN-1,否则若E(uN)≤E(vN),令aN=aN-1和bN=uN,停止,则最终的隐含层最佳节点数落在了区间[aN,bN]中;
(39)当计算出的区间[aN,bN]中只包含有一个整数值时,该整数值即确定为隐含层的节点数;如果在最佳区间[aN,bN]内存在多个整数值,则采用穷举法,根据输出数据误差的最低点确定最佳隐含层节点数;
(3)根据已有的故障数据训练BP神经网络模型;
(4)利用训练得到的BP神经网络模型,对采集的发动机数据进行分析,确定数据所对应的故障原因。

2.根据权利要求1所述的基于BP神经网络的发动机故障诊断方法,其特征在于,步骤(1)中所述的发动机故障原因包括喷油故障、油量消耗异常、针阀卡死和出油阀失效。

3.根据权利要求1所述的基于BP神经网络的发动机故障诊断方法,其特征在于:步骤(3)中所述的根据已有的故障数据训练BP神经网络模型,采用MATLAB进行训练,输出层的传输函数采用purelin函数,隐含层的传输函数采用S型函数,训练过程采用L-M算法。
说明书

技术领域

[0001] 本发明涉及一种发动机故障诊断方法,尤其涉及一种基于BP神经网络的发动机故障诊断方法。

背景技术

[0002] 随着人工智能、机器算法的不断发展,基于人工神经网络的故障检测方法比传统诊断方法越来越多地应用于解决复杂故障诊断问题。对于发动机这种复杂结构来说,在不结合神经网络之前,故障诊断困难大工序多。而应用神经网络对数据进行训练以求快速的得到处理结果,预测故障效果较好。特别是针对发动机的故障诊断这样复杂而繁琐的问题,传统方法不能减少工序,而采取神经网络的方法则可以快速定位和预测问题点。然而对于一个神经网络拓扑结构来说,输入输出都是系统自己定义的,但其中的隐含层的节点数却是难以确定的。用穷举法应对小的数据尚且可以,一旦数据量大了,这个方法有诸多弊端。对于现有的黄金分割法和二分法相对于穷举法来说是减轻了很多工作量,但它们存在收敛速度慢,效率不高的缺点。对于二分法来说,由于区间收敛取点,所带来的验证点增加的问题,无法避免;而黄金分割法的迭代步数则无法保证精简。故本发明提出的方法可以有效避免二者的冲突。

发明内容

[0003] 发明目的:针对以上问题,本发明提出一种基于BP神经网络的发动机故障诊断方法,提高了确定BP神经网络隐含层的最佳节点数的效率,节省了计算资源,从而能够明显提高发动机故障诊断的效率以及准确率。
[0004] 技术方案:本发明所采用的技术方案是一种基于BP神经网络的发动机故障诊断方法,该方法包括以下步骤:
[0005] (1)采集发动机故障数据,列出发动机故障原因;其中发动机故障原因包括喷油故障、油量消耗异常、针阀卡死和出油阀失效。
[0006] (2)确定BP神经网络模型的最佳隐含层节点数,建立BP神经网络模型;其中所述的确定BP神经网络模型的最佳隐含层节点,包括以下过程:
[0007] (21)对已有的发动机故障原始数据进行归一化处理;
[0008] (22)利用隐含层节点数确定的经验公式计算隐含层节点数的出现区间,经验公式为:
[0009] (m1+m2)/2≤n1≤(m1+m2)+10
[0010] 其中,m1为输入层节点数,m2为输出层节点数,n1为隐含层节点数;
[0011] (23)采用平方分数法确定最佳的隐含层节点数。其中,平方分数法确定最佳的隐含层节点数包括以下过程:
[0012] (31)给定最终的不确定区间长度λ>0,以及步骤(22)中获得的隐含层节点数的出现区间[a1,b1],根据 来确定迭代的最小次数N,然后计算,u1=a1+(1-F1)(b1-a1),v1=a1+F1(b1-a1),区间中点标志位
[0013] (32)比较u1、v1大小,若u1<v1,则维持步骤(31)的u1、v1计算值,若u1>v1,则令u1=a1+F1(b1-a1),v1=a1+(1-F1)(b1-a1)。令参数k的初始值为1,进入迭代计算。
[0014] (33)比较E(uk)、E(vk)、E(mid)三者的值,若E(mid)最小,则收敛区间为[uk,vk]。否则转步骤(34)。
[0015] (34)若E(uk)>E(vk),则收敛区间为[uk,bk],转步骤(35),否则,收敛区间为[ak,vk],转步骤(36),其中E为数据输出误差;
[0016] (35)令ak+1=uk和bk+1=bk,进一步令uk+1=vk和vk+1=ak+1+(1-FN+1-k)(bk+1-ak+1),比较uk+1、vk+1大小,若uk+1<vk+1,则维持二者的计算值,若uk+1>vk+1,则调换二者的值。判断k是否达到N,若k=N,则转步骤(38);否则计算E(vk+1)且转至步骤(37)。
[0017] (36)令ak+1=ak和bk+1=vk,进一步令vk+1=uk和vk+1=ak+1+(1-FN+1-k)(bk+1-ak+1),若k=N,转步骤(38);否则计算E(uk+1)且转至步骤(37);
[0018] (37)令k=k+1,转步骤(33);
[0019] (38)令uN=uN-1和vN=uN-1+ε,其中ε为计算精度,ε>0。若E(uN)>E(vN),则令aN=vN和bN=bN-1,否则若E(uN)≤E(vN),令aN=aN-1和bN=uN,停止,则最终的隐含层最佳节点数落在了区间[aN,bN]中;
[0020] (39)当计算出的区间[aN,bN]中只包含有一个整数值时,以上步骤即可确定出最后的节点数,即,将该整数值确定为隐含层的节点数。但如果存在大于一个的可取整数值在最佳区间[aN,bN]内,则可采用穷举法作为补充,根据输出数据误差的最低点确定最佳隐含层节点数。
[0021] (3)根据已有的故障数据训练BP神经网络模型;采用MATLAB进行训练,输出层的传输函数采用purelin函数,隐含层的传输函数采用S型函数,训练过程采用L-M算法。
[0022] (4)利用训练得到的BP神经网络模型,对采集的发动机数据进行分析,确定数据所对应的故障原因。
[0023] 有益效果:与现有技术相比,本发明的优点是:(1)由神经网络对发动机故障诊断数据进行训练,得到一个高效的训练结果,由此就可以对发动机的故障诊断快速定位,比起以往的方法更高效,节省了大量的时间和人工成本;(2)在建立BP神经网络的过程中,采用平方分数法进行隐含层节点的确定,这与以往的穷举法、黄金分割法、二分法相比,有着收敛速度快,减少计算量的优点。特别是在面对数据量大的时候,本发明的平方分数法有着明显的优势;(3)区间中点标志位的加入进一步加快了区间收敛的速度,通过对比验证,此方法有效的避免了二分法验证点多和黄金分割法迭代步数多的问题,结合了两者的优点;(4)采用输入层的传输函数为purelin,隐含层的传输函数为S型函数,训练过程采用收敛速度快且能有效避免陷入局部最小化的L-M算法,能够进一步增加收敛速度,提高故障分析的效率;(5)优化了发动机故障诊断中的输出数据以及对应的输入数据,提高诊断的准确性。

实施方案

[0026] 下面结合附图和实施例对本发明的技术方案作进一步的说明。
[0027] 本发明所述的一种基于BP神经网络的发动机故障诊断方法,适用于输入、输出的因素量较大的情况,该方法包括以下步骤:
[0028] (1)采集发动机故障数据,列出发动机故障原因。
[0029] 本例中,某发动机故障诊断系统有X1~X8,8个输入,T1~T4,4个输出,对应4个不同发动机故障的物理含义如表1所示。其中发动机故障原因包括喷油故障、油量消耗异常、针阀卡死和出油阀失效。本例中所述的这四个输出因素在发动机故障诊断应用中有较好的诊断效果。其中,对应的故障数据包括最大及次最大喷油压力、油耗传感器的波形参数、针阀位置传感器的波形数据、出油阀传感器的波形数据以及起喷压力(出油阀开启压力)。
[0030] 表1
[0031]
[0032] (2)确定BP神经网络模型的隐含层节点数,建立BP神经网络模型。
[0033] BP神经网络三层拓扑结构如图1所示,包括输入层、隐含层和输入层。其输入层和输出层分别是步骤(1)中的发动机故障数据和发动机故障原因。隐含层的节点数
[0034] 确定该BP神经网络隐含层节点数的方法包括以下步骤:
[0035] (21)在一个发动机系统中的输入输出数据,为了消除指标间量纲的影响并且保证网络学习的稳定性,将原始数据进行归一化处理。在数据归一化处理过程中,根据公式x1=(ymax-ymin)*(x-xmin)/(xmax-xmin)+ymin,其中xmin为样本数据中最小值,xmax为样本数据中最大值,ymax和ymin分别取1和-1,经过处理的数据均映射到[-1,1]之间,在MATLAB中是通过“mapminmax”函数实现的。如下表2所示的,就是发动机故障诊断数据归一化处理后的结果。
[0036] 表2
[0037]
[0038] (22)利用隐含层节点数确定的经验公式计算隐含层节点数频繁出现的区间,经验公式为:
[0039] (m1+m2)/2≤n1≤(m1+m2)+10
[0040] 其中,m1为输入层节点数,m2为输出层节点数,n1为隐含层节点数。这样就可以得到隐含层节点数频繁出现的区间,在此基础上再进一步确定一个准确的节点数个数。在本例发动机故障诊断中,输入层节点数m1=8,输出层节点数m2=4,则可以由经验公式可以得到一个隐含层节点数频繁出现的区间[6,22]。
[0041] (23)采用平方分数法进一步确定隐含层节点数。所述平方分数法的基本形式为cn=n2,Cn+1=(n+1)2,而 最终得到的数列 平方分数法是用来确定隐含层节点数的方法,是由斐波那契数列和黄金分割法得到的启发,再通过结合一维搜索的概念设计出来用于确定节点数的新方法。所述平方分数法确定隐含层节点数的具体步骤如下:
[0042] (31)给定最终的不确定区间长度λ>0,以及步骤(22)中获得的初始区间[a1,b1],根据 来确定迭代的最小次数N,然后计算u1=a1+(1-F1)(b1-a1),v1=a1+F1(b1-a1),区间中点标志位
[0043] (32)比较u1、v1大小,若u1<v1,则维持步骤(31)的u1、v1计算值,若u1>v1,则令u1=a1+F1(b1-a1),v1=a1+(1-F1)(b1-a1)。令参数k的初始值为1,进入迭代计算。
[0044] (33)比较E(uk)、E(vk)、E(mid)三者的值,若E(mid)最小,则收敛区间为[uk,vk]。否则转步骤(34)。
[0045] (34)若E(uk)>E(vk),则收敛区间为[uk,bk],转步骤(35),否则,收敛区间为[ak,vk],转步骤(36),其中E为数据输出误差,其中E的计算公式为:数据输出误差E=输出数据(T)-输入数据(X)经神经网络训练后得到的输出数据(T’);
[0046] (35)令ak+1=uk和bk+1=bk,进一步令uk+1=vk和vk+1=ak+1+(1-FN+1-k)(bk+1-ak+1),比较uk+1、vk+1大小,若uk+1<vk+1,则维持二者的计算值,若uk+1>vk+1,则调换二者的值。判断k是否达到N,若k=N,则转步骤(38);否则计算E(vk+1)且转至步骤(37)。
[0047] (36)令ak+1=ak和bk+1=vk,进一步令vk+1=uk和vk+1=ak+1+(1-FN+1-k)(bk+1-ak+1),若k=N,转步骤(38);否则计算E(uk+1)且转至步骤(37);
[0048] (37)令k=k+1,转步骤(33);
[0049] (38)令uN=uN-1和vN=uN-1+ε,其中ε为计算精度,ε>0。若E(uN)>E(vN),则令aN=vN和bN=bN-1,否则若E(uN)≤E(vN),令aN=aN-1和bN=uN,停止,则最终的隐含层最佳节点数落在了区间[aN,bN]中;
[0050] (39)以上步骤即可算出最后的节点数。但在最佳区间[aN,bN]内,穷举法可作为补充,根据输出数据误差的最低点确定最佳隐含层节点数。
[0051] 根据上述平方分数法确定隐含层节点数,本例中取不确定区间长度λ=0.5,根据步骤(22)中得到的a1=6,b1=22,则cN+1≥32,确定最小迭代次数N=5。进入迭代计算,在经过多次迭代计算以后,最终得到最佳隐含层节点数为13。如果由第三次迭代中得到第三次收敛区间[12,13],根据隐含层节点数为正整数的条件,在第三次区间中采用穷举法,则无需再进一步验证k>3的步骤,也可以得到最佳隐含层节点数为13。如下表3所示,取误差最小值对应的隐含层节点数,即min{E(12),E(13)},通过对比得到最佳的隐含层节点数为13。
[0052] 表3
[0053]
[0054] 为了防止在区间[6,10]和[18,22]之间出现数据的突变,故增加了一个验证点6和22,最后依然得出最佳隐含层节点数为13。不同隐含层节点数对应的误差折线图如图2所示。
[0055] (3)根据已有的故障数据训练BP神经网络模型。采用具有合理算力的处理器,利用采集到的故障数据对步骤(2)中建立的BP网络模型进行训练。计算软件可以采用MATLAB,在使用MATLAB对数据进行BP网络训练时,输入层的传输函数为purelin,隐含层的传输函数为S型函数,训练过程采用收敛速度快且能有效避免陷入局部最小化的L-M算法,学习率设置的是0.05,目标误差0.0001。
[0056] (4)利用训练得到的BP神经网络模型,对采集的发动机数据进行分析,确定数据所对应的故障原因。以采集的发动机数据作为输入,通过上述步骤所建立的BP神经网络模型进行分析计算,根据模型的输出来确定故障原因。

附图说明

[0024] 图1是本发明所述的BP神经网络三层拓扑结构示意图;
[0025] 图2是在不同隐含层节点数下的误差折线图。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号