OneCarat的个人博客分享 http://blog.sciencenet.cn/u/OneCarat

博文

在OpenSees中实现结构可靠度分析的Monte Carlo 模拟方法

已有 4299 次阅读 2017-6-23 09:15 |个人分类:科研笔记|系统分类:科研笔记| OpenSees, Monte, Carlo, 结构可靠度

Implementing Monte Carlo Simulation Method forStructural Reliability Assessment in OpenSees

OpenSees中实现结构可靠度分析的Monte Carlo方法

----Implemented by Chao Dang1

(1.党超,湖南大学,土木工程学院,E-mail: chaodang@outlook.com)

OpenSees的全称是Open Systemfor Earthquake Engineering Simulation(地震工程模拟的开放体系),它是由美国国家自然科学基金(NSF)资助、西部大学联盟“太平洋地震工程研究中心”(Pacific EarthquakeEngineering Research Center,简称PEER)主导、加州大学伯克利分校为主研发而成的、用于结构和岩土方面地震反应模拟的一个较为全面且不断发展的开放的程序软件体系。该程序正在引起世界各国结构工程领域众多研究人员的关注和重视,而在国内也开始有少数学校开展了一些初步的学习和相关的研究工作。

经过多年的发展,OpenSees中的可靠度分析模块也在不断完善。为了帮助科研人员更好地使用OpenSees进行结构可靠度分析,本文在综合了其他参考资料的基础上,以一个简单的算例阐明在OpenSees中实现Monte Carlo模拟的编程方法。读者仅需稍微掌握OpenSees有限元分析的基本方法和Tcl语言的简单应用,便可以将本文提供的程序应用于其他随机有限元的分析当中。

算例:一个经典的9杆桁架模型将作为本文的算例(如图1所示),考虑的随机变量如表1所示。结构功能函数定义为,2、3、4和5节点的竖向位移最大值不超过一限值,


图1 9杆桁架模型

表1 随机变量信息

随机变量

分布类型

均值

变异系数

截面面积A

正态分布

2500 mm2

0.2

弹性模量E

正态分布

206000 Mpa

0.2

荷载F1

对数正态分布

3000 kN

0.2

荷载F2

对数正态分布

4000 kN

0.2


程序

# Model Created by Chao Dang 22/06/2017

# The script creates a static model of a nine-bartruss structure

# Monte Carlo methods are used for ReliabilityAssessment

wipe

model BasicBuilder -ndm 2 -ndf 2

reliability

# define node

node 1 0.0      0.0

node 2 4000.0   0.0

node 3 4000.0   3000.0

node 4 8000.0   0.0

node 5 8000.0   3000.0

node 6 12000.0  0.0

# define boundary condition

fix 1 1 1

fix 6 0 1

# define material

set E 2.06E5

uniaxialMaterial Elastic 1 $E

# define element

set A 2500

element truss 1 1 2 $A 1  

element truss 2 2 4 $A 1

element truss 3 4 6 $A 1  

element truss 4 1 3 $A 1

element truss 5 2 3 $A 1  

element truss 6 3 4 $A 1

element truss 7 4 5 $A 1  

element truss 8 5 6 $A 1

element truss 9 3 5 $A 1

# define load

set F1 3000000

set F2 4000000

pattern Plain 1 "Linear" {

   load 20 [expr -$F1]

   load 40 [expr -$F2]

}

# define random variable

randomVariable 1 normal -mean $A -stdv [expr0.2*$A]

randomVariable 2 normal -mean $E -stdv [expr0.2*$E]

randomVariable 3 lognormal -mean $F1 -stdv [expr0.2*$F1]

randomVariable 4 lognormal -mean $F2 -stdv [expr0.2*$F2]

# define parameter

set eleNum 9

parameter 1 randomVariable 1

parameter 2 randomVariable 2

for {set i 1} {$i <= $eleNum} {incr i} {

      # addeara of all elements to parameter 1

      addToParameter1 element $i A

      # addmodulus of all elements to parameter 2

      addToParameter2 element $i E

}

# define nodal load as parameter

parameter 3 randomVariable 3 loadPattern 1loadAtNode 2 2

parameter 4 randomVariable 4 loadPattern 1loadAtNode 4 2

# define the nodal deflections as parameters

parameter 5 node 2 disp 2

parameter 6 node 3 disp 2

parameter 7 node 4 disp 2

parameter 8 node 5 disp 2

# Monte CarloSimulation

set Ntrials 100000

set Nfail 0

for {set i 1} {$i <= $Ntrials} {incr i} {

      reset

      foreachrvTag [getRVTags] {

             setp [expr rand()]

             updateParameter$rvTag [getInverseCDF $rvTag $p]      

      }

      constraintsPlain

      numbererRCM

      systemBandGeneral

      testEnergyIncr 1.0e-6 200

      algorithmNewton

      integratorLoadControl 1

      analysisStatic

      analyze1

  updateParameter 5 [nodeDisp 2 2]

  updateParameter 6 [nodeDisp 3 2]

  updateParameter 7 [nodeDisp 4 2]

  updateParameter 8 [nodeDisp 5 2]

   sets(1) [expr abs([getParamValue 5])]

   sets(2) [expr abs([getParamValue 6])]

   sets(3) [expr abs([getParamValue 7])]

   sets(4) [expr abs([getParamValue 8])]

 

   for{set j 1} {$j < 4} {incr j} {

         if {$s($j) < $s([expr $j+1])} {

                set d $s([expr $j+1])

         } else {

                set d $s($j)

         }

   }

   set g[expr 800-$d]

   if {$g<= 0} {incr Nfail}

      puts$i

}

puts "pf = [exprdouble($Nfail)/$Ntrials]"

nine_bar_truss.tcl (转载、引用请注明出处)





https://blog.sciencenet.cn/blog-3344788-1062452.html


下一篇:OpenSees中截面定位向量的确定方法
收藏 IP: 59.71.66.*| 热度|

0

该博文允许实名用户评论 评论 (1 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-8 06:45

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部