o p e n s e e s总结
-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII
1、定义梁柱单元局部坐标轴的命令流为:
geomTransf Linear $transfTag $vecxzX $vecxzY $vecxzZ
其中,$transfTag 代表局部坐标轴矢量的编号,$vecxzX $vecxzY $vecxzZ 表示局部坐标轴的方向矢量值。
2、OPENSEES 的刚性隔板假定命令流格式为:
rigidDiaphragm $perpDirn $masterNodeTag $slaveNodeTag1 $slaveNodeTag2 ...
其中,$perpDirn 表示刚性隔板的方法,如实例中楼板的刚性隔板的平移方向为U1(X 方向)与U2(Y 方向),即1-2 平面,该值应为3。$masterNodeTag 为主结点,$slaveNodeTag1 为从结点。主结点一般为刚性隔板刚心。
实例中:rigidDiaphragm 3 35 2,表示刚性隔板平动方向为1-2 平面,刚心主节点为35 点,2号结点为从结点。
3、弹性梁柱单元的命令流:
element elasticBeamColumn $eleTag $iNode $jNode $A $E $G $J $Iy $Iz $transfTag
需要提供截面的截面积A、截面Y 轴惯性矩Iy,截面Z 轴惯性矩Iz,截面扭转矩,截面材料的弹性模量E 及剪切模量G。其中:$transfTag 与$eleTag 是一致的,表示一个单元有自已特定的坐标轴向量,为了编程的方便。
陈:例题三
4、非线性材料模型的定义
(1)uniaxialMaterial Steel01 1 335 200000 0.00001
表示,钢筋的屈服强度为335MPa,弹性模量为200000MPa,硬化系数为0.00001,即屈服平台基本上为水平段。
将混凝土材料本构C40 改为非线性混凝土本构【Concrete01】,
命令流如下:
(2)uniaxialMaterial Concrete01 2 -26.8 -0.002 -10 -0.0033材料参
数意见参考图所示。
注意:混凝土本构Concrete01 是最简单的混凝土本构,注意数值是负数,即表示受压段。该本构没有受拉段,即受拉强度为0,表示结构一分析即进入弹塑性。
5、采用纤维单元,需要定义纤维截面,纤维截面的定义如下面代码所示:
section Fiber 1 {
fiber -1.125E+002 -2.700E+002 4.500E+003 2
………
fiber 1.150E+002 -2.650E+002 4.900E+002 1
}
以上命令流表示,纤维截面编号为1,{}内部为子命令流,表示每一个纤维的信息,每一个纤维的定义格式如下:
fiber $Y $Z $Area $Mat
命令中,$Y 表示每个纤维的截面Y 坐标(截面中心为原点0);$Z 表示每个纤维的截面Z 坐标(截面中心为原点0);$Area 表示每个纤维的贡献面积;$ Mat 表示每个纤维使用的非线性材料本构的编号。
注意:纤维的坐标与材料切线模量可以组装成截面的刚度,而纤维的坐标与材料的应力可以组装成截面的内力(抗力),那么每个纤维的应变可以通过截面的变形与坐标求出。采用纤维截面的单元,即为基于平截面假定。截面变形求解应变是基于平截面假定的。
6、采用的单元为非线性梁柱单元,即基于柔度法的纤维单元(Nonlinear BeamColumn Element or Force Beam Column Element),需要输入命令流如下:
element nonlinearBeamColumn $eleTag $iNode $jNode $numIntgrPts $secTag $transfTag
其中,$eleTag 为单元编号;$iNode 为开始结点;$jNode 为结束结点;$numIntgrPts 为积分点数量;$secTag 为纤维截面编号,$transfTag 为局部坐标轴编号。积分点数量,也就纤维单元的计算截面数量,纤维单元的刚度与抗力是由截面刚度与抗力沿杆件长度积分所得,显然,不能将全部截面积分,只能采用离散积分,OPENSEES 默认的积分方法是高斯-洛贝塔积分(Guass-Lobotto),各阶积分点分布及权函数如下图所示。(OPENSEES 后期版本可提供其它积分方法:Legendre, Radau,NewtonCotes, Trapezoidal)。梁柱单元的局部坐标的计算与编号在上章节已描述。
7、截面变形记录:本实例采用纤维单元,即可输出每段积分点处截面的变形,记录截
面变形的命令如下:
recorder Element -file $File -time -eleRange 1 6 section $SecPos deformation
其中,$File 为记录的文本文件名;-eleRange 1 6,表示记录单元为1~6 号;$SecPos为输出积分点号,如下图所示,开始结点为1 号,如果积分点数为N,结束结点的截面编号为N,deformation 表示记录内容为截面变形。截面变形输出结果中,输出三个数值分别是轴向应变,绕Z 轴弯曲曲率,绕Y 轴弯曲曲率。
积分点分布示意图
8、均布荷载的定义。本实例采用均布线荷载,即施加于单元的均布荷载,OPENSEES的线性荷载有两种,一种是均布荷载,另一种是线上点荷载。以均布荷载为例,命令流格式如下:
eleLoad -ele $eleTag1 <$eleTag2 ....> -type -beamUniform $Wy $Wz <$Wx>
其中,$eleTag1 为施加荷载的单元编号,-type –beamUniform 表示均布线荷载,$Wy $Wz <$Wx>为三个轴方向的均布荷载值。$Wy 表示截面局部坐标轴垂直方向的均布荷载,$Wz 表示截面局部坐标轴方向的均布荷载,$Wx 表示沿单无长度方向的均布荷载,如下图所示。
梁荷载向量示意图
陈:例题四
9、截面组装。纤维截面是依据纤维截面(Section Fiber)命令流形成,命令流如下所示:##NC400X400
section Fiber 1 {
fiber -1.667E+002 -1.667E+002 4.444E+003 2
…………
fiber 1.650E+002 0.000E+000 4.900E+002 1
}
可见,纤维截面的编号为1(纤维截面算1 个截面本构),对应该截面的抗剪与抗扭本构编号分别为201,301 及401,通过截面组装的方式将这四个截面本构组装在一起,命令流如下:
section Aggregator 1001 201 Vy 301 Vz 401 T -section 1
其中,1001 为组装后的截面编号,201 Vy 代表Vy(Y 方向抗剪)采用单轴本构201号;301 Vz 代表Vz(Z 方向抗剪)采用单轴本构301 号;401 T 代表T(抗扭)采用单轴本构401 号;-section 1 表示参与组装的纤维截面为1 号截面;就这样将三个材料本构与一个纤维截面组装在一组,那么组装后的纤维截面编号即改为1001 号。那么,在纤维单元定义时,单元采用的纤维截面编号即不为1 号,为1001 号,如下命令流所示。
element nonlinearBeamColumn 1 1 2 4 1001 1
上述6:
element nonlinearBeamColumn $eleTag $iNode $jNode $numIntgrPts $secTag $transfTag 其中,$eleTag 为单元编号;$iNode 为开始结点;$jNode 为结束结点;$numIntgrPts 为积分点数量;$secTag 为纤维截面编号,$transfTag 为局部坐标轴编号。
10、Push-over 分析设置。Push-over 是高层建筑结构弹塑性分析方法的一种,其分析过程分两个部分,一个就是静力弹塑性分析部分,另一部分为Push-Over 曲线转化为能力需求曲
线进行抗震评估。本实例只完成第一部分。一般情况下,Push-over 过程分重力荷载加载过程(力控制),水平位移加载过程(位移控制)。命令流如下:重力加载的命令流如下:puts "gravity"
## Load Case = DEAD
pattern Plain 1 Linear {
eleLoad -ele 5 -type -beamUniform 0 -3.797E+000 0
…………
eleLoad -ele 46 -type -beamUniform 0 -3.797E+000 0
}
puts "analysis"
constraints Plain
numberer Plain
system BandGeneral
test EnergyIncr 1.0e-6 200
algorithm Newton
integrator LoadControl 1.000E-001
analysis Static
analyze 10
与上述章节介绍的是一样的,是一个简单的力控制加载,假定总施加的重力荷载为G,总荷载步为10 步,每步施加0.1G。
注意:施加的荷载工况(pattern Plain)与分析设置,一般连在一起,表明后面的分析工况采用的荷载就是上面的命令流描述的荷载。所以力控制分析(loadControl)的分析工况所采用的荷载为上面的荷载(pattern Plain 1)。
位移控制加载的命令流如下:
loadConst 0.0
puts "pushover"
## Load Case = PUSH
pattern Plain 2 Linear {
load 6 1.350E+004 0.000E+000 0.000E+000 0.000E+000 0.000E+000 0.000E+000
…………
load 20 4.500E+003 0.000E+000 0.000E+000 0.000E+000 0.000E+000 0.000E+000
}
puts "analysis"
constraints Plain
numberer Plain
system BandGeneral