用于斜拉桥主梁损伤识别的神经网络设计
2016-08-16赵世英孟凯杨
赵世英 孟凯杨
(中国核电工程有限公司河北分公司 河北省石家庄市 050011)
用于斜拉桥主梁损伤识别的神经网络设计
赵世英 孟凯杨
(中国核电工程有限公司河北分公司 河北省石家庄市 050011)
本文针对神经网络设计中存在的一些问题,结合斜拉桥主梁损伤的特点,详细讨论了多层BP神经网络设计中有关输入参数、输出向量以及最佳隐藏层节点数等问题。
损伤识别;BP神经网络;网络设计
近些年随着对神经网络技术研究的进一步深入,采神经网络技术对结构进行损伤识别研究已成为一个热门的研究课题。由于多层BP网络可以实现对几乎任意非线性映射的近似,因此目前其应用较广。BP神经网络用于损伤识别的研究已成功应用于悬索桥[1]、连续梁桥[2],桁架桥[3]和斜拉桥[4]等桥梁结构中。但是在多层BP神经网络的设计方面,尤其是最佳隐藏层节点数的确定方面,仍然没有一套较为完善的设计方法,往往要根据多次试凑或经验公式来确定[5~6]。因此如何快速设计一个规模较大的多层BP网络仍然值得深入探讨。
为快速设计一个高效的多层神经网络,本文针对BP网络设计中使用人员关注的问题进行了研究,找到了一种可以有效减小神经网络规模多层BP神经网络的设计方法,并可以通过自动试算确定最佳隐藏层节点数。
1 BP神经网络的设计
1.1 神经网络输入参数的选择
由于斜拉桥结构的特殊性,当主梁某部位发生损伤时,使斜拉索的索力发生变化;同时斜拉索是沿桥面分布的,因此斜拉桥主梁的损伤位置可依据索力的变化来确定。斜拉索索力指标可以反映索力的变化:
1.2 输出向量的表示
使用神经网络对结构损伤位置进行识别时,损伤位置数与输出层节点一般情况下是一一对应的,即输出向量的分量与损伤位置一般情况下是一一对应的,因此网络的输出向量采用“n中取1”的表示法非常适合。若网络在训练阶段的输出向量中第i个分量为1,例如(0…1…0),这就表示第i个位置发生了损伤,而其余的位置没有损伤。但是由于神经网络训练误差的影响,神经网络在测试阶段的输出向量为(c1…ci…cn)T,由于输出向量与期望的输出向量可能会存在误差,其中设计人员期望的输出向量为第i个分量ci远大于其余的分量,如(0.002…0.99…0.1)T。
实际情况下,损伤位置可能多达上百处,若神经网络输出层节点与损伤位置一一对应,这样输出层节点数也多达上百个,网络的规模就会很大,网络的结构会很难确定。这种情况下,本文为减少输出向量的维数,将斜拉桥主梁分别沿纵桥向和横桥向划分m和n块区域,(以斜拉桥主梁顶板为例)就可以将顶板划分为m×n块损伤区域,这种划分方法下,可以方便采用平面坐标的形式实现对损伤的准确定位。
确定神经网络的结构时,输出层的节点数可以取为m+n,其中前m个分量表示桥面沿纵向划分的m个损伤位置,后n个分量表示桥面沿横向划分的n个损伤位置,例如网络的一个目标输出向量为
其中输出向量的前一部分m个分量中第i个分量为1表示损伤发生在纵桥向定义的第i个区域,输出向量的后一部分的个分量中第n个分量为1表示损伤发生在横桥向的第j个区域,这样神经网络的输出向量分成两个分量,分别定义损伤位置在纵桥向和横桥向的位置,最终以平面坐标形式准确定位损伤。输出向量中的分量个数由m×n个减少为m+n个,有效减小了网络的规模。
1.3 隐藏层节点数的确定
单个隐藏层的BP神经网络可以映射几乎所有的连续函数,只有单隐层的网络不能满足要求时才考虑使用多隐层的BP网络,因此本文的BP神经网络采用单隐层。
神经网络隐藏层节点的作用是提取训练样本集的输入数据与输出数据之间函数关系,将这种函数存储在隐藏层节点的连接权中,每个隐藏层节点的权值都是增强神经网络映射能力的一个参数[7]。因此神经网络隐藏层的节点数量与网络的训练时间以及泛化能力密切相关。目前,在多层BP神经网络的设计方面,多数文献推荐使用经验公式来确定网络结构较为简单时的隐藏层节点数。
对于规模较大的神经网络,经验公式确定的最佳隐节点数网络的泛化能力可能较差,很难满足要求。为解决这一问题,本文使用MATLAB数学软件编程实现隐节点数的自动试算,主要步骤为:①先利用公式粗略计算得到的隐节点数作为程序试算的初始隐节点数;②选择一个隐节点数的合适范围,利用MATLAB编程来实现自动试算,保存神经网络的训练误差以及与之相对的网络的隐藏层节点数;③MATLAB循环结束后,选择训练误差最小的神经网络来作为最终的网络结构,最佳隐藏层节点数也随之认。
2 损伤识别的有限元模拟
本节以实验室的模型斜拉桥为研究对象,模拟对其主梁进行损伤识别,以验证本文设计方法的优越性。
2.1 三维有限元模型的建立
本文采用ANSYS有限元分析软件建立了三维有限元模型。斜拉索采用杆单元模拟,主梁和桥塔采用壳单元模拟。有限元模型共6733个节点,6955个单元。
2.2 主梁损伤的有限元模拟
损伤位置的模拟按照1.2中方法对顶板、底板和腹板分别进行位置划分。将顶板沿桥纵向划分40份,沿桥横向划分4份,这样顶板就划分为160个损伤位置;采用同样的方法将底板和腹板分别划分为40×5个损伤位置。通过折减相应位置内单元的弹性模量来实现不同损伤程度的模拟。
3 神经网络的建立
3.1 样本集的准备
本文选择4#斜拉索的索力指标作为构造的BP神经网络的输入参数,所以输入层节点数为4#拉索的斜拉索数。对2.2节中定义的损伤位置分别模拟了以下9种不同程度的损伤(15%、20%、35%、45%、50%、65%、70%、75%、85%、95%),取损伤程度为(15%、35%、50%、70%、95%)时各个位置的索力指标作为本文采用的训练样本,用损伤程度(20%、45%、65%、75%、85%)下的索力数据作为神经网络的测试样本。
3.2 BP网络的构造
BP神经网络采用MATLAB数学软件编程实现。在3.1中采用4#斜拉索(4根拉索)的索力指标作为神经网络的输入,可以确定BP网络的输入层有4个节点;采用1.2节中的输出向量表示方法,斜拉桥主梁的顶板、腹板和底板的BP网络输出层分别有44、45、45个节点;以顶板为例,网络输入层有4个节点,而输出层有44个节点,设定隐藏层节点数的试算范围为:1~100,BP网络隐藏层节点数与训练误差之间的关系见图1。
由图1可以看出网络的训练误差整体随着隐藏层节点数的增加呈现减小趋势,虽然在小范围内有一定波动,但不影响整体趋势,隐藏层节点数为95时训练误差最小,由此确定网络的最佳隐节点数为95。隐节点数为95时网络的测试误差非常接近测试误差的最小值,这说明网络的隐节点数为95时网络具有较好的泛化能力。
图1 隐节点数与训练误差的关系图
4 结论
本文针对神经网络设计中输入参数的选择、输出向量的表示和最佳隐藏层节点数的确定进行了深入讨论,通过对模型斜拉桥损伤识别的数值模拟,得到:①网络的输出向量在采用“n中取1”表示法的基础上,采用坐标方式定义损伤位置,可以有效减少输出层的节点数;②采用MATLAB数学软件编程实现确定最佳隐节点数的自动试算,可以减少人为操作量,能较快确定具有较好泛化能力的网络结构。综上所述,文中的网络设计方法能够较快确定一个泛化能力较好的神经网络,为神经网络的使用者在设计网络时提供了一种参考。
[1]伍雪南,孙宗光,毕波.基于吊索振动测量与神经网络技术的悬索桥损伤识别方法[J].大连海事大学学报,2008,34(4):132~134.
[2]M.Mehrjoo,N.Khaji.H.Moharrami.Damage detection of truss bridge joints using ArtificialNeural Networks[J].Expertsystemswith applications,2008,9(4):259~265.
[3]杜永锋,张冬兵.曲率模态和神经网络在损伤识别中的应用[J].公路交通科技,2007,24(11):77~80.
[4]赵玲,李爱群.基于神经网络技术的斜拉桥损伤分步识别方法[J].公路交通科技,2009,26(9):70~75.
[5]沈花玉,王兆霞,高成耀,等.BP神经网络隐含层单元数的确定[J].天津理工大学学报,2008,24(5):13~15.
[6]王柏生,丁浩江.用于结构损伤识别的神经网络设计[J].工程设计,1999,29(5):29~33.
[7]韩立群.人工神经网络理论、设计及应用[M].北京:化学工业出版社,2002:55.
U446
A
1004-7344(2016)17-0232-02
2016-6-1
赵世英(1986-),男,河南林州人,助理工程师,硕士研究生,主要从事有限元仿真与力学计算工作。