结构可靠度分析的响应面法及其Matlab实现
第21卷第6期
计算力学学报
V01.21。No.62004年12月
ChineseJournalofComputationalMechanics
December2004
文章编号:1007—4708(2004)06—0683—05
结构可靠度分析的响应面法及其Matlab实现
桂劲松1’2,康海贵¨
(1.大连理工大学海岸和近海工程国家重点实验室,辽宁大连116024;
2.大连水产学院土木工程学院,辽宁大连116023)
摘
要:对功能函数不能明确表达的问题进行可靠度分析,常采用响应面法。其中以求得验算点为目的迭代的二
次多项式序列响应面法应用较为广泛,本文给出了该方法的Matlab源程序。提出了基于Matlab的插值响应面法和BP神经网络响应面法,介绍了其在Matlab环境下的实现方法,并进行了三种方法的对比分析。Matlab语言基本元素是矩阵,提供了各种矩阵的运算和操作,其中包含结构可靠度计算中常用的各种数值计算方法工具箱。采用Matlab语言构造响应面函数,进行结构可靠度计算,可充分发挥其矩阵运算功能及各种工具箱的作用,使编程效率大大提高,且语法简便,易于掌握。Matlab语言在可靠度计算中的应用,会对结构可靠性理论的推广使用起到积极推进作用。
关键词:结构可靠度;Matlab;响应面法
中图分类号:TU451
文献标识码:A
1
引言
在可靠度计算中,需要用到很多与概率、统计和最优化方法有关的数值计算方法,这些在计算结构可靠度,如果功能函数已知,即为显Matlab环境中均可以轻易实现。我们用它编制了示功能函数,可采用一次二阶矩法。在实际工程中用于结构可靠度计算的二次多项式序列响应面法、的结构构造非常复杂,既使对其进行确定性分析,插值响应面法以及神经网络响应面法计算程序,可都需要借助于有限元等数值分析工具。在这种情况供工程技术人员参考使用。
下进行结构可靠度分析时,常不能给出功能函数的明确表达式。这一类问题,可采用蒙特卡罗结合有2最优化方法计算可靠度数学模型
限元法、随机有限元法及响应面法[1]进行求解。其目前,结构的极限状态方程都基于抗力一荷载中,响应面法是选用一个适当的、可以明确表达的效应模型,现有可靠度计算方法多采用一次二阶矩函数来近似代替不能明确表达的函数,即通过一系法计算结构可靠度,包括中心点法、验算点法(JC真实的极限状态曲面。其优点是可以直接利用已经
法)、映射变换法、实用分析法、最优化方法等,其中验算点法、映射变换法及最优化方法由于计算效果理想而使用较多。由于Matlab软件包具有最优化Matlab软件包是当今国际认可的最好的科学工具箱,可以方便地实现各类优化问题的求解,且该方法不需进行功能函数的求导计算,故文中采用最优化方法进行结构可靠度计算。
X。,x:,…,x。是结构可靠度分析中行个任意分布的独立随机变量,由这些随机变量表示的结构极限状态方程为:Z=g(X。,X:,…,X。)一0,采用拉科维茨一菲斯莱法将非正态变量当量正态化,可
的亲睐¨J。
得等效正态分布的均值以、标准差呶:及可靠指标
p。
收稿日期:2003—02—21;修改稿收到日期:2003—08—25.基金项目:国家自然科学基金重大项目(59895410);辽宁省
ax:一西{垂~EFx.(z,)]}/^.(x7)
(1)自然科学基金(002067)资助项目.
作者简介:桂劲松(1968一),男.副教授,博士生;
P《=z,一垂一1IF置(z,)]盯x:
(2)
康海贵+(1945一),男。教授,博士生导师.
p一{≥:[(zl*~段:)/鲰:2])“2
(3)
列有限元数值计算拟合一个响应面以代替未知的、广泛应用的确定性有限元分析程序,因其思路清
晰,编程方便,在实际工程中得到广泛应用。
计算工具,目前最新的6.X版本是一种功能强、效率高、便于进行科学和工程计算的交互式软件包。Matlab语言中基本元素是矩阵,它提供了各种矩阵的运算和操作,且其中包含有科研和工程设计中常用的各种数值计算方法的计算程序。由于Matlab的强大功能,它日益受到广大科技工作者
计算力学学报第21卷
由可靠指标的几何意义可知,在标准正态坐标系中,极限状态曲面上与坐标原点距离最近的点为验算点,其最短距离为可靠指标卢。开始时验算点未知,把卢看成极限状态曲面上点P(x。,z。,…,z。)的函数,求解可靠指标可以归结为求解以下约束优化模型L3J:
fmin卢2一∑[(zi—px',)/axi32
<
i一1
(4)
ls.t.g(z1
7./72,…,z。)一0
通过优化求解,找到卢最小值,即可得到可靠指标卢和验算点P。(zi,z手,…,x,7)。计算结构可靠度的响应面法
在传统的结构可靠度分析中,一次二阶矩法得
到了广泛的应用,但这类方法以功能函数具有明确的解析表达式为基础,要求功能函数已知,或可用二次多项式序列响应面法
该方法用不含交叉项的二次多项式表示响应
Z—g(x)一日+∑biXi+∑cix;
(5)
计算步骤如下[1]:
(1)假定初始迭代点z‘1’=(z{",z5¨,…,(2)通过结构有限元等数值方法计算功能函(3)解线性方程组,得2咒+1个待定系数,从(4)用一次二阶矩法求解验算点z“”及可靠(5)计算I卢(是)一p(是一1)I<给定精度(文中取0.001),如条件满足,则输出p;如不满足,经z嚣’一z强’+(z’。)一z。’’;i;蕊焉等‰
步迭代,直至收敛为止。
(6)
在计算中需用到三个工具,即结构分析、线性方程组求解、一般的可靠度求解。进行结构分析可采用现已在工程中得到广泛应用的ANSYS、SAP
等有限元商业软件。采用Matlab语言编程进行线性方程组求解及可靠度计算,可使问题大大简化。
线性方程组的一般式为Ax—b,其中A是m×咒阶矩阵,b是m维列向量,未知数z是咒维列向量。利用Matlab进行线性方程组求解,只须输入指
令z—A\6即可。
可靠度计算转化为求解形如式(4)的约束优化问题,可利用Matlab优化工具箱提供的函数插值响应面法
插值法是利用已知数据点寻求函数近似表达
式的一种方法。
对于有两个随机变量的可靠度计算问题,采用调用格式为[2]
Z—griddata(X,Y,Z,XI,YI,’method7)
其意义为依据已知数据X,Y和Z,可构造插值函数Z—g(x,Y),返回在响应数据点XI,YI处函7(三次多项式插值),7nearest7(最7及7v47方法可生成光滑曲面,可用于构造响
其计算步骤如下:
(1)假定初始迭代点zn’=(z{¨,z;",…,(2)通过结构有限元等数值方法计算功能函
(3)调用Matlab的griddata函数,构造插值响(4)调用Matlab优化方法工具箱的fmincon(5)同序列响应面法。
神经网络响应面
大量中外文献的分析研究认为,不管多么复杂
3
fmincon方便进行求解。
3.2
数学表达式明确描述,因此其应用受到一定限制。在实际工程中,由于影响结构受力状态的因素非常复杂,基本随机变量的输入与输出量之间的关系可能是高度非线性的,在进行可靠度分析时往往不能给出功能函数的明确表达式,在计算这类复杂结构的可靠度时,采用一次二阶矩法求解存在困难。对这一类问题,可采用响应面方法求解,常用的响应面法为以求得验算点为目的的迭代的二次多项式序列响应面法,本文采用与此方法相同的思路,提出了基于Matlab的插值响应面法和神经网络响应面法。
3.1
Matlab提供的二元随机数据点插值函数GRIDDATA构造响应面函数,计算效果较好。
数值ZI—g(XI,YI)。7method’可采用’linear’(线性插值),’cubic近邻插值),7v4’(Matlab随机数据点插值),其中
7cubic面函数,待定系数为2咒+1个。
应面函数,经比较,7v47方法效果较好,故文中采用
此方法。
z:¨),取均值点。
z:”),一般取均值点。
数值g(zf¨,…z;¨,…,z:")以及g(zi",…,z;D±
数值g(zf¨,z5D),g(ziD_-4-fa,,z{D±如:),其中
,第一步取3,此后取1。
应面。
函数求解验算点z“”及可靠指标卢娃’。
3.3
fa∥..’z:D),其中厂第一步取3,此后取1。
而确定由二次多项式表示的响应面函数。
指标卢(走)。
线性插值得新展开点z茹’,然后返回(2)进行下一
第6期桂劲松,等:结构可靠度分析的响应面法及其Matlab实现
的结构都可以运用BP网络进行快速的分析与计算E4|。其方法为:首先用传统力学方法进行结构分析;其次用所得结果训练神经网络,建立输入与输出之间的映射函数关系;最后用训练后所得神经网络进行结构分析与设计。神经网络可以看成是一个从输入到输出的高度非线性映射,它通过对简单的非线性函数进行数次拟合,可近似复杂的函数。神经网络响应面法根据一系列确定性试验(通常为结构有限元数值计算),采用一个三层BP神经网络来拟合一个响应面以代替未知的真实的极限状态曲面。
其计算步骤(1),(2),(3),(4)步同二次多项式序列响应面法,第(5)步不用经线性插值得新展开点z茹’,直接利用第(4)步所得验算点z“舯,返回(2)进行下一步迭代,直至收敛为止。直接采用上步所得验算点进行下一步迭代,不经线性插值得新展开点,可减少结构有限元数值计算次数。经若干实例分析,效果较好。
响应面法在Matlab环境下的实现
为了便于说明响应面法的应用,选用功能函数
已知的情况,这样可以省去大量繁琐的有限元计算算例1
功能函数Z。=18.46—7.48X。/xi,
算例2
功能函数z:一1+X。Xz—X:,
限于篇幅,仅给出算例1Matlab源程序。
二次多项式序列响应面法
2.53;%输入平均值。0.375]%输入标准差。2.5];
%输入初始迭代点。
EX,fval,exitflag,output3一fmincon(@bata2,CC—bata2(X)
%目标函数子函数。
globalMuSigama
%定义全局变量。
CC一((X(1)一Mu(1))/Sigama(1))62+
((X(2)一Mu(2))/Sigama(2))“2%X均为正态分布。
function
Ec,ceq3一st(X)%约束条件子函数。
c=[];%非线性不等式约束。
ceq—xym(X)
oA非线性等式约束
functionZ—xym(X)%响应面函数值子函数。
A1一E1.0000
10.00002.5000
100.0000
6.25001.000016.00002.5000256.00006.25001.0000
4.00002.5000
16.0000
6.2500
1.000010.00003.6250100.000013.14061.000010.00001.3750100.0000
1.8906];
B1=E13.6728;10.8005;16.5451;16.8897;
一10.31363;
C=AI\B1;%求解二次响应面函数各项系数。
Z—C(1)+C(2)’X(1)+C(3)。X(2)+
C(4)’X(1)+C(5)+X(2);
%计算功能函
数值。
4.2
插值响应面法
仅约束条件子函数与二次多项式序列响应面方法有所不同。
Ec,ceq3=st(X)%约束条件子函数。
Z—inter(X)
%插值响应面子函数。
16.04.010.010.03;2.5
2.5
3.625
1.375];
一10.31363;
7);%计算功能
函数值。
4.3
神经网络响应面法
本文算例采用具有一个隐层的BP神经网络。
网络结构见图1。
结合题意,输入层采用5个神经元,输出层采以精确实现。
4
工作,且可以与一次二阶矩法计算结果(文中看作精确解)进行对比分析。
X。~N(10,2),X:~N(2.5,0.375),求验算点P‘(z?,z手)及结构可靠指标p。
X。~LN(2,0.4),X:~LN(4,0.8),求验算点P。(z?,z≠)及结构可靠指标p。
4.1
function
C=[];
ceq—inter(X);%调用插值响应面函数子函数。
functionX1一[10.0X2一[2.5
Mu—ElOSigama—E2Xo—ElO
ZZ=E13.6728;10.8005;16.5451;16.8897;
Z=griddata(X1,X2,ZZ,a,b,7v4A一[];b一[];Aeq一口;beq一口;%意义参见文献E23。
Ib—r];ub一[];
X0,A,b,Aeq,beq,lb,ub,@st);%调用优化工具箱求解。
bata—sqrt(fval);%计算可靠指标p。
Pf—cdf(7norm7,一bata,0,1);%计算失效概率。
用1个神经元。隐层结合具体问题并经试算分析采用3个神经元。该BP神经网络通过对有限元分析所得样本的学习,可获得输入和输出问的高度非线性映射关系。而此关系利用一般的解析表达式均难
function
计算力学学报第21卷
B2一[一10.85553;XX—Ex(1);X(2)];
Z=simuff(XX,wl,bl,’logsi97,w2,b2,’purelin7);
%’计算功能函数值。
function[wl,bl,w2,b23=trainBplm(X);%训练BP神经网络响应面,lm算法。X1一[10.0X2一[2.5P—EXl;X23;
t一[13.6728;10.8005;16.5451;16.8897;
t=logsig(w+p+b)图l
Fig.1
16.02.5
4.02.5
10.03.625
10.o];1.375];
一10.3136-1;
sl一3;
ofBP
BP网络结构
structure
%设定隐层神经元个数。
1000
Network
tp一[1
Matlab程序与二次多项式序列响应面法比较,仅约束条件子函数有所不同,另外需增加训练BP神经网络响应面的trainBplm(X)子函数。经比较,训练时采用lm算法,即Levenberg—Marquardt优化算法,其相对于Matlab神经网络工具箱提供的其他方法(trainbp,trainbpx)[s],训练速度更快,训练效果更好。
function
0.00000013;%设定显示频率、最
大训练步数、误差指标。
Ewl,bl,w2,bZ-1一initff(p,sl,’logsig’,t,
7purelin’);
%Bp网络初始化。
%采用L—M优化算法训练Bp网络,得权值。[-wl,bl,w2,b2-1一trainlm(wl,bl,7logsi97,w2,
b2,’purelin’,P,t,tp)
Ec,ceq]一st(X)%求可靠度约束条件
5
计算结果分析
计算结果见表1。
若把一次二阶矩结果作为精确解,可见,各种
子函数。
c一[];ceq—stBplm(X);应面函数子函数。
%调用神经网络响
响应面方法计算效果均较理想。二次多项式序列响
functionz—stBplm(X)
%BP神经网络响应
应面法符合最好,但相对比较起来,迭代次数最多,进行有限元数值计算次数也最多,计算工作量大。
面。
%权值通过调用trainBplm子函数,进行网络训练得到。W1一E0.1242
—1.9466;
67.3014
22.5133;
而其他两法计算效果虽然稍差,但其精度基本满足工程精度要求,且迭代次数相对较少,计算工作量相应减少。其中,神经网络响应面法,在达到同样预定计算精度情况下,所需迭代次数最少,且其无需进行线性插值求得新展开点,因此,在迭代次数相同的情况下,计算工作量最少。
——90.9424——20.8143]:
B1一[一1.5036;4.0199;W2一[一552.2048
3.09053;
—130.49543;
表1
Tab.1
28.3283
计算结果比较
Comparisonofresults
第6期桂劲松,等:结构可靠度分析的响应面法及其Matlab实现
687
6
结论
质量,这将对结构可靠度理论的推广使用起到积极推进作用。
对于实际工程中功能函数无法明确表达的可靠度计算问题,利用文中所介绍的各种响应面方法进行求解,可使问题大大简化。响应面法是用数值拟合方法构造一个代用函数,代替原功能函数进行可靠度分析,所求得的可靠度指标是针对代用功能函数的,因此,所构造代用函数对原功能的拟合效果直接影响到可靠度计算结果。采用BP神经网络拟和响应面函数,可从理论上解决响应面的精度问题,从理论上和实际上均证明是行之有效的一种方法。用Matlab语言构造响应面函数,进行结构可靠度计算,可充分发挥其矩阵运算功能及各种工具箱的作用,使编程效率大大提高。若用Fortran,C等计算机语言编程,不仅需要对有关算法有深刻的了解,还需熟练掌握所用语言的算法及编程技巧,这对许多工程技术人员来说有一定难度。而Matlab语言语法简便,易于掌握,更便于工程技术人员使用。文中所给出的源程序稍加修改,即增加非正态随机变量当量正态化、相关变量处理子函数及循环调用响应面函数语句,可用于功能函数无法明确表达的可靠度计算问题,这些用Matlab语言编制程序非常简单,限于篇幅,文中不予列出。相信Matlab语言在可靠度计算中的应用,可使工程技术人员从繁琐的计算机编程中解脱出来,从而集中精力去思考问题和解决问题,提高工作效率和解题
参考文献(References):
[1]
赵国藩,等.工程结构可靠性理论与应用[M].大连:大连理工大学出版社,1996,(Zhao
Guofan,et
a1.
ReliabilityTheoryandItsApplicationsring
forEnginee-
of
Structures[M].Dalian:DalianUniversity
Press,1996.(inChinese))
Technology
E2-1刘则毅,等.科学计算技术与Matlab[M].北京:科学出版社,2001.(Liu
tionwith
Zeyi。et
a1.NumericalComputa—
Press,2001.
Matlab[M].Beijing:Science
(inChinese))
E33冷伍明.基础工程可靠度分析与设计理论[M].长沙:中南大学出版社,2000.(LengWuming.Reliability
Ana妇sisandDesignTheoryofFoundationEnginee-
ring[M].Changsha:Central
Press,2000.(inChinese))
South
University
[43姜绍飞.基于神经网络的结构优化与损伤检测[M].北京:科学出版社,2002.(Jiang
Optimization
and
Damage
Shaofei.Structure
Based
on
Detection
Artificial
NeuralNetworkFM].Beijing:Science
Press,2002.(inChinese))
[5]闻新,等.MATLAB神经网络应用设计[M].北京:
Xin,eta1.Applicationand
in
科学出版社,2001.(Wen
Design
ofArtificial
NeuralNetwork
Matlab[M].
Beijing:SciencePress,2001.(inChinese))
Responsesurfacemethodforstructuralreliabilityanalysisand
itsrealizationwith
GuiJinson91~.
Matlab
KangHaigui。1
(1.StateKeyLaboratorofCoastalandOffshoreEngineering,DalianUniversityofTechnology,Dalian116024,China;
2.CollegeofCivilEngineering,DalianFisheries
University,Dalian116023,China)
can
Abstract:Theresponsesurfacemethodforstructuralreliabilityanalysisbeusedwhenperformance
functionisunknown,inwhichtheiterativesequenceresponsesurfacemethodofquadraticpolynomialisoften
used.This
paper
introduceshow
to
realizethe
programs
ofthe
response
surfacemethodof
interpolationandBPartificialneuralnetwork(ANN)inMatlab.The
contrast
analysisismadeamong
thethreemethods.ThebasicelementofMatlabismatrixwhichprovidesmanykindsofoperationandcalculation
of
matrix
including
sometoolboxesincommon
use
forthenumerical
computationof
reliability.Theadvantagesofmatrixoperationandvarioustoolboxes
can
befullyusediftheresponse
to
surfacefunctionisadoptedandprogrammedinMatlab.Itisveryefficientandconvenientprogramin
use
Matlabforthereliabilitycalculation.BecauseoftheaboveadvantagesofMatlab,itsextensive
inthe
structuralreliabilityanalysiswillpushforwardthetheoryandapplicationofstructuralreliability.Keywords:structuralreliability;Matlab;responsesurfacemethod