刘敬敏 王文涛 夏雨
摘 要:工程结构的功能函数大多为隐式表达式,使得以功能函数的显式表达式为基础的可靠度计算方法难以应用。为此,基于BP神经网络法和一次二阶矩法,根据结构随机变量的统计特性进行随机抽样获取有限数量的样本点,计算出每组样本点下结构的响应值;然后,将其代入由结构响应容许值与实际响应值建立的功能函数中,得到每组样本点下结构的功能函数值;利用BP神经网络对功能函数进行拟合,得到其显式表达式之后,采用一次二阶矩法计算结构可靠度,提出了一种针对隐式功能函数的结构可靠度分析方法。本文方法可以将结构的隐式功能函数进行拟合,从而得到显式功能函数,并最终利用基于显式功能函数的可靠度算法来计算结构可靠度。算例分析表明,本文方法能正确计算结构的验算点和可靠指标,具有较高的计算精度,为功能函数无法显式表达的结构可靠度分析提供了一种可行的方法。
关键词:一次二阶矩法;BP神经网络;功能函数;可靠度分析
中图分类号:TP183 DOI:10.16375/j.cnki.cn45-1395/t.2023.01.006
0 引言
当前社会经济快速发展,工程结构数量不断增多,且趋于复杂化。可靠度是结构安全评估的重要指标,为保证结构的安全性,研究其可靠度十分必要。
目前应用较广泛的可靠度计算方法有一次二阶矩法、蒙特卡罗法、响应面法等。工程结构往往比较复杂且随机变量众多,难以得到结构的显式功能函数,这使得以结构功能函数的解析表达式为基础的蒙特卡罗法和一次二阶矩法进行结构可靠度计算变得困难,甚至无法计算。针对该问题,魏志翔等[1-3]采用蒙特卡罗法结合有限元法进行可靠度计算,但蒙特卡罗法需要足够多的样本点才能保证计算精度,因此需要大量的有限元计算,耗时较长,计算效率较低。丁心香等[4-6]采用响应面法计算结构的可靠度,但当随机变量较多时,采用的多项式形式的响应面函数的系数计算工作量大且拟合误差较大。近年来有许多研究者利用神经网络方法来解决隐式功能函数的可靠度求解问题。姜逢源等[7]利用引入Adaboost算法改进后的BP神经网络来模拟结构的功能函数,再结合一次二阶矩法并以差分代替微分的方法来计算板桩结构的可靠度。在一次二阶矩法中需要计算功能函数的偏导数,可以通过直接微分的方法或以差分代替微分的方法进行计算。直接微分方法是针对功能函数为显式的情况,差分代替微分方法是针对功能函数為隐式的情况,采用差分代替微分,直接利用个别点的功能函数值来计算功能函数的偏导数,而无需功能函数的具体表达式。采用BP神经网络结合一次二阶矩法时,通过BP神经网络的拟合,结构功能函数可以显式表达,此时功能函数已知,因此可以采用直接微分的方法来计算功能函数的偏导数。陈松坤等[8]通过改进BP神经网络的训练样本集,并利用训练好的BP神经网络模型代替有限元模型,再结合蒙特卡罗法计算结构的失效概率。张中益等[9]使用BP神经网络对轴承球磨损曲线进行拟合,再结合蒙特卡罗法计算轴承球各时刻点的可靠度。研究表明,神经网络方法通过建立并训练神经网络来拟合结构的极限状态方程,训练后的神经网络可以作为结构的功能函数,拟合精度较高,可以解决结构功能函数难以显式化的问题;再结合结构点可靠度分析的一般方法便可以获得结构的失效概率和可靠指标,如一次二阶矩法[7]、蒙特卡罗法[8-9]等,不需要进行大量的有限元计算,效率较高。
综上所述,本文将可以拟合结构隐式功能函数的BP神经网络法与一次二阶矩法相结合,提出了一种针对功能函数为隐式的结构可靠度分析方法:1)根据结构随机变量的统计特性进行随机抽样,利用有限元分析计算每组样本点下结构的响应值,并以此计算每组样本点下结构的功能函数值;2)利用样本点及其对应的功能函数值作为神经网络的输入向量,建立并训练BP神经网络,获得功能函数的显式表达式;3)采用一次二阶矩法并通过直接微分计算功能函数的偏导数,最终求得结构的验算点和可靠指标。
1 一次二阶矩法
1.1 结构的失效概率和可靠指标
结构在规定时间和规定条件下完成预定功能的概率称为结构的可靠度,相反,结构不能完成预定功能的概率称为结构的失效概率,一般用[pf]表示。结构的极限状态通过结构的功能函数来定义,功能函数[Z]用下式表示[10]:
[Z=gX1, X2, …, Xn=δ-δ]. (1)
式中:[X1, X2, …, Xn]为结构的随机变量;[δ]为结构的实际响应值;[δ]为结构的响应容许值。
当[Z>0]时,结构处于安全状态;当[Z=0]时,结构处于极限状态;当[Z<0]时,结构处于失效状态。那么结构的失效概率即为功能函数小于0的概率[10],即:
[pf=PAZ≤0]. (2)
式中,[PA]表示事件[A]发生的概率。
结构的可靠指标[β]可以直观地描述结构的可靠度,其计算公式为[10]:
[β=μZσZ]. (3)
式中:[μZ]为功能函数的均值;[σZ]为功能函数的标准差。当功能函数[Z]服从正态分布时,结构的失效概率[pf]与可靠指标[β]可以通过式(4)相互转换[10]:
[pf=Φ-β=1-Φβ]. (4)
当功能函数[Z]不服从正态分布时,式(4)不再精确成立,但仍能给出较为精确的结果。
1.2 一次二阶矩法
由于工程结构的复杂性,难以用统一的方法确定其随机变量的实际分布并精确计算其可靠度,目前常采用一次二阶矩等近似方法进行计算[11]。一次二阶矩方法将非线性功能函数进行泰勒级数展开并取其一次项,将非线性的功能函数线性化,然后按照可靠指标的计算公式进行计算,即可求解出结构的可靠指标。
计算可靠指标时,结构随机变量的分布类型会对结构的可靠指标产生影响。本文以随机变量服从独立正态分布的情况为例介绍一次二阶矩法,当随机变量为非正态分布时,可以通过当量正态化法等方法将随机变量转换为正态分布后再进行计算。
设结构的极限状态方程为:
[Z=gX=0]. (5)
隨机变量[X=X1, X2, …, XnΤ]服从正态分布,其均值为[μX=μX1, μX2, …, μXnΤ],标准差为[σX=σX1, σX2, …, σXnΤ],假设结构的验算点为[x*=x*1, x*2, …, x*nΤ]。一次二阶矩法的计算步骤为:
Step 1 假定初始验算点[x*],一般可设为随机变量的均值点,即[x*=μX]。
Step 2 利用式(6)计算灵敏度系数[αXii=1, 2, …, n][10]:
[αXi=-?gx*?XiσXii=1n?gx*?Xi2σ2Xi i=1, 2, …, n]. (6)
式中,[?gx*?Xi]为[gXi]在验算点[x*]处的一阶导数。
Step 3 利用式(7)计算可靠指标[β][10]:
[β=gx*+i=1n?gx*?XiμXi-x*ii=1n?gx*?Xi2σ2Xi]. (7)
Step 4 利用式(8)计算新的验算点[x*][10]:
[x*=μX+βσXαX]. (8)
Step 5 以新的验算点[x*]重复Step 2至Step 4,直至前后两次[x*]的相对误差小于允许误差[ε]。此时得到的[x*]即为结构的验算点,[β]即为结构的可靠指标。
2 BP神经网络基本原理及其MATLAB实现
2.1 BP神经网络基本原理
BP神经网络是一种有监督前馈神经网络,是目前使用最广泛的神经网络[12],可以拟合输入数据与输出数据之间的关系[13-14]。BP神经网络最小的处理单元为神经元,神经元结构图如图1所示。
图1(a)为神经元的一般结构,[X=X1, X2, …, XnΤ]为输入向量,[W=W1, W2, …, WnT]为连接权向量,[θ]为阈值,[f·]为激活函数,也叫传递函数,[Y]为输出向量,其计算公式为[10]:
[Y=fi=1nWiXi-θ=fWΤX-θ]. (9)
阈值[θ]一般不是一个常值,而是随着神经元的兴奋程度而变化。通常假设实际输入变量为[X1, X2, …, Xn-1],再设[Xn=-1,Wn=θ],这样就将阈值也作为连接权来考虑,此时神经元的结构如图1(b)所示,因此式(9)可以简化为[10]:
[Y=fi=1n-1WiXi+WnXn=fi=1nWiXi=fWΤX]. (10)
异层神经元之间按照一定的权值相互连接即可组成一个神经网络。只需3层神经网络,即输入层、隐含层和输出层,就可以任意逼近输入数据与输出数据之间的映射关系[15]。在结构功能函数拟合的问题中,输入层神经元的个数为结构随机变量的个数,隐含层神经元的个数根据经验公式及试验来确定,输出层神经元的个数为功能函数的个数。本文考虑有1个功能函数的结构,故输出层神经元数为1。3层BP神经网络结构如图2所示。
图2中,[X=X1, X2, …, Xn0Τ]为输入向量;[W1=W1ijn0×n1]为输入层与隐含层之间的权值向量;[W2=W2j1n1×1]为隐含层与输出层之间的权值向量;[Y]为输出向量;[n0]和[n1]分别为输入层和隐含层神经元个数。隐含层和输出层的传递函数分别为[f1]和[f2],对于函数逼近问题,MATLAB默认的传递函数在隐含层为双曲正切[sigmoid]函数,在输出层为线性函数,即
[f1x = tanhx,] (11)
那么隐含层的接收向量为:
[Z1=WΤ1X=Z11, Z12, …, Z1n1Τ]. (12)
隐含层的输出向量为:
[Y1=f1Z1=f1Z11, f1Z12, …, f1Z1n1Τ]. (13)
输出层的接收向量为:
[Z2=WΤ2Y1=Z21, Z22, …, Z2n2Τ]. (14)
输出层的输出向量为:
[Y2=f2Z2=f2Z21, f2Z22, …, f2Z2n1Τ]. (15)
即输出向量[Y]可以表示为:
[Y=f2WΤ2f1WΤ1X]. (16)
在结构隐式功能函数模拟问题中,根据结构随机变量的概率特征进行抽样,得到的样本点代入有限元软件中进行计算即可获得该样本点下结构的实际响应值,根据每组样本点下的实际响应值与结构的响应容许值计算得到极限状态下结构的功能函数值。将样本点组成的向量作为BP神经网络的输入向量,该组样本点下的功能函数值组成的向量作为BP神经网络的目标向量,建立并训练BP神经网络,即可建立随机变量与功能函数之间的显式关系式,模拟该结构的功能函数。
2.2 BP神经网络的MATLAB实现
2.2.1 BP神经网络的建立
在MATLAB软件中,采用newff命令建立BP神经网络,以如图2所示的神经网络为例:
PR = minmax(X)
[net=newff(PR,[n1, 1],{'tansig', 'purelin'}, BTF, BLF, PF)]
其中,net为创建的BP神经网络;[PR]为输入向量取值范围的矩阵;[X]为输入向量;[n1]为网络隐含层神经元的个数;1为网络输出层神经元的个数;tansig为网络隐含层的双曲正切sigmoid传递函数;purelin为网络输出层的线性传递函数;BTF表示网络的训练函数,默认为trainlm函数;BLF表示网络的学习函数,默认为learngdm函数;PF表示性能函数,默认为mse函数。以上默认函数也可以根据自己的需要进行修改。BP神经网络的建立就是建立随机变量与功能函数关系式,将功能函数显式化的过程。
2.2.2 BP神经网络的训练
采用train命令对BP神经网络进行训练:
[net=trainnet, X, T].
其中,[T]为目标向量。BP神经网络的学习与训练,就是改变网络的权值,使真实输出与目标输出之间的误差减小,从而更高精度拟合功能函数的过程。
2.2.3 仿真计算
采用sim命令可以进行模拟仿真计算:
[g1=simnet,Y].
其中,[Y]为某一随机变量;[g1]为通过训练好的神经网络模拟仿真得到的与[Y]对应的功能函数值。
3 基于BP神经网络的一次二阶矩法
BP神经网络可以逼近结构的功能函数,将隐式功能函数显式化,采用BP神经网络结合一次二阶矩法可以很好地解决隐式功能函数结构的可靠度计算问题。
根据结构的随机变量及其统计特征信息可随机抽样生成S组样本点[Xii=1, 2, …, S]。用ANSYS软件建模并将各组样本点代入其中进行有限元分析,得到各组样本点下结构的响应值[δii=1, 2, …, S],将其代入式(1)计算各组样本点下结构的功能函数值[gXii=1, 2, …, S]。以上述样本点组成的向量[Xii=1, 2, …, S]作为BP神经网络的输入向量,以各组样本点下的功能函数值向量[gXii=1, 2, …, S]作为BP神经网络的目标向量,采用第2章介绍的MATLAB函数建立并训练BP神经网络,即可模拟出结构的功能函数。再结合第1章介绍的一次二阶矩法即可对结构的可靠指标进行求解,其中功能函数值用第2章介绍的MATLAB函数直接模拟计算。
一次二阶矩法中需要用到功能函数的导数,本文针对3层BP神经网络用于拟合结构功能函数的情况,给出功能函数的导数公式:
[?gX=W1JY1Z1W2JY2Z2]. (17)
式中:[?gX]为功能函数的导数,也称为梯度;[JY1Z1]和[JY2Z2]分别为[Y1]和[Y2]的Jacobi矩阵变换式。
[JY1Z1=?Y1?Z1=diagdY11dZ11,dY12dZ12,…,dY1n1dZ1n1=diagf'1Z11, f'1Z12, …, f'1Z1n1,] (18)
[JY2Z2=?Y2?Z2=diagdY21dZ21,dY22dZ22,…,dY2n2dZ2n2=diagf'2Z21, f'2Z22, …, f'2Z2n2.] (19)
将式(17)代入式(6)和式(7)中,分别得到:
[αXi=-?gx*σXii=1n?gx*2σ2Xi=-?gx*σXi?gx*σXi2,i=1, 2, …, n,] (20)
[β=gx*+i=1n?gx*μXi-x*ii=1n?gx*2σ2Xi=gx*+i=1n?gx*μXi-x*i?gx*σXi2.] (21)
综上所述,基于BP神经网络的一次二阶矩法计算结构可靠度的计算步骤如下:
Step 1 根据随机变量及其统计特性随机抽样生成S组样本点[Xii=1, 2, …, S];
Step 2 采用ANSYS软件建模,将S组样本点作为输入量逐组代入ANSYS程序中进行计算,获得每组样本点下结构的实际响应值[δii=1, 2, …, S],根据每组样本点下的实际响应值与结构的响应容许值计算得到极限状态下结构的功能函数值[gXii=1, 2, …, S];
Step 3 建立BP神经网络,并用训练数据[Xi, gXii=1, 2, …, S]训练BP神经网络;
Step 4 假定初始验算点[x*],一般可设为随机变量的均值点,即[x*=μX];
Step 5 用神经网络直接仿真模拟计算[x*]下结构的功能函数[gx*],用式(17)、式(18)、式(19)计算其导数[?gx*];
Step 6 根据式(20)计算灵敏度系数[αXii=1, 2, …, n];
Step 7 根据式(21)计算可靠指标[β];
Step 8 根据式(8)计算新的验算点[x*];
Step 9 以新的验算点[x*]重复Step 5至Step 8,直至前后两次[x*]的相对误差小于允许误差[ε]。此时得到的[x*]即为结构的验算点,[β]即为结构的可靠指标。
4 算例
4.1 算例1
已知某结构的功能函数为[Z=f W-1 140],[f]和[W]均服从正态分布,其均值和标准差分别为[μf=38,σf=3.8];[μW=54,σW=2.7]。由本文方法计算该结构的可靠指标[β]以及[f]和[W]的验算点[f*]和[W*],并与蒙特卡罗法以及直接的一次二阶矩法计算结果作对比。
采用本文方法计算该结构的可靠指标及验算点,该结构有2个随机变量,1个功能函数,所以BP神经网络输入层神经元数为2,输出层神经元数为1,经过试算选取隐含层单元数为5。根据随机变量的统计参数,随机抽样得到250组样本点,将样本点代入功能函数中得到各组样本点下的功能函数值。
将样本点组成的向量作为BP神经网络的输入向量,将计算所得功能函数值作为BP神经网络的目标向量,建立并训练BP神经网络,训练完成的BP神经网络训练性能图如图3所示。
由图3可知,训练样本的误差曲线呈下降趋势,表明随着神经网络训练次数的增加,其误差逐渐减小,当训练次数为1 000次时神经网络训练样本的均方误差最小,为0.15。均方误差较小,表明BP神经网络拟合的功能函数精度较高。训练完成时输入层与隐含层之间的权值为:
[W1=-15.473 922.536 50.011 60.013 1-106.510 173.588 7-0.036 60.040 917.738 6-6.544 8],
隐含层单元的阈值为:
[θ1=9.881 6-1.631 6-376.163 7-1.546 15.893 4],
隐含层与输出层之间的权值为:
[W2=1.097 2 4.727 1 0.000 3 -0.462 1 0.477 1×103],输出层单元的阈值为:[θ2=1.167 9×103]。
最后将BP神经网络拟合得到的功能函数作为结构的功能函数,采用一次二階矩法计算结构的可靠指标和验算点。计算结果与直接的一次二阶矩法以及蒙特卡罗法计算结果作对比,并列于表1中。
由表1可以看出,一次二阶矩法和本文方法计算出的可靠指标与蒙特卡罗法相比,相对误差较小,均小于1.00%。由一次二阶矩法计算所得验算点与本文方法计算所得验算点几乎相同,且一次二阶矩法计算所得可靠指标与本文方法计算所得可靠指标的相对误差较小,验证了本文方法的正确性。
4.2 算例2
某门式框架结构如图4所示,各单元弹性模量均为[E=2×106 kN/m2],单元截面惯性矩[Ii]与截面面积[Ai]之间的关系为[Ii=αiA2ii=1, 2],取各单元的截面面积[A1]、[A2]和外荷载[P]为随机变量,[αi]为截面惯性矩与截面面积之间的系数,其统计参数见表2。最大变形控制取节点3的水平位移[u3],且允许最大水平位移为0.01 m。首先采用本文方法计算该结构的可靠指标及验算点,然后采用BP神经网络结合蒙特卡罗法(BP-MCS)和文献[16]中的响应面法结果作对比验证。
根据式(1)建立该结构的功能函数:
[g=0.01-u3A1, A2, P]. (22)
其中,[u3]与各随机变量之间的关系式不能明确表示。
根据随机变量的统计特性,用MATLAB软件随机抽样200组样本点,将其逐组代入ANSYS软件中进行有限元计算,得到各组随机变量下节点3的水平位移,并根据式(22)计算得到各组随机变量下的功能函数值。该结构有3个随机变量,1个功能函数,所以建立含有3个输入层神经元、1个输出层神经元的BP神经网络,根据试算,选取20个隐含层神经元。将样本点组成的向量作为BP神经网络的输入向量,将功能函数值作为BP神经网络的目标向量,建立并训练BP神经网络,训练完成的BP神经网络训练性能图如图5所示。
由图5可知,当训练次数为88次时神经网络训练样本的均方误差最小,为2×10-9,均方误差较小,表明BP神经网络拟合的功能函数精度较高。
将BP神经网络拟合得到的功能函数作为结构的功能函数,再结合一次二阶矩法,计算结构的可靠指标和验算点。为进一步验证本文方法的正确性和适用性,用BP-MCS以及文献[16]的计算结果作对比,列于表3中。
由表3可知,3种方法计算的验算点大致相同,且可靠指标的相对误差均小于5.00%,在误差允许范围内,再次验证了本文方法可以有效计算隐式功能函数结构的可靠指标和验算点。
5 结论
本文将BP神经网络法与一次二阶矩法相结合,提出一种针对隐式功能函数的结构可靠度分析方法。详细介绍了BP神经网络法拟合功能函数的MATLAB实现过程以及结合一次二阶矩法的可靠度计算步骤。通过算例分析结果表明:
1)对于具有显式功能函数的算例,本文方法计算得到的验算点和可靠指标与传统一次二阶矩法的结果相对误差较小,验证了本文方法的正确性。
2)对于具有隐式功能函数的算例,本文方法计算得到的验算点和可靠指标与文献[16]中的响应面法以及BP神经网络结合蒙特卡罗法的结果相对误差较小,验证了本文方法可以很好地解决功能函数无法显式表达的结构可靠度分析的问题,并且具有较高的计算精度。
参考文献
[1] 魏志翔,李红,宋亚楠,等.基于蒙特卡罗法的大跨钢管混凝土拱桥结构可靠度分析[J].武汉理工大学学报,2020,42(12):21-26.
[2] 陆征然,郭超,张茂胜,等.基于随机有限元的模板支撑体系井字架结构可靠性研究[J].大连理工大学学报,2018,58(1):79-85.
[3] CAI B,HAO L Y,FU F. Postfire reliability analysis of axial load bearing capacity of CFRP retrofitted concrete columns[J].Advances in Concrete Construction,2020,10(4):289-299.
[4] 丁心香,李帅.基于响应面优化的边坡三维可靠性评估[J].公路,2022,67(3):17-25.
[5] 陈绍军,张强,杨钧杰.基于响应面法的大跨度悬索桥可靠度分析研究[J].工程建设与设计,2021(19):71-74.
[6] ZHOU D,PAN E,ZHANG Y M. Fractional polynomial function in stochastic response surface method for reliability analysis[J].Journal of Mechanical Science and Technology,2021,35(1):121-131.
[7] 姜逢源,董胜,张鑫.基于改进神经网络的板桩结构可靠性分析[J].海洋湖沼通报,2018(2):103-109.
[8] 陈松坤,王德禹.基于神经网络的蒙特卡罗可靠性分析方法[J].上海交通大学学报,2018,52(6):687-692.
[9] 张中益,沈雪瑾.基于神经网络的小样本轴承球可靠度评估[J].工业控制计算机,2019,32(5):66-67,70.