OPENSEES 下载本文

材料的本构关系

OpenSEES提供了单轴受力材料和多轴受力材料供使用者选择,考虑论文主要涉及到结构平面问题,这里仅对单轴应力状态的钢筋本构和混凝土本构进行介绍。OpenSEES中为单轴受力材料提供了丰富的对象:弹性材料、理想弹塑性材料、强化材料、滞回材料、粘滞材料、混凝土材料、钢筋材料、Fedeas材料,等等。单轴受力材料中混凝土和钢筋的本构关系是目前研究的最为成熟和最为充分的一类。

钢筋本构模型

OpenSEES程序中钢筋的应力应变关系采用由Menegotto和Pinto建议,并经Filippou等人修正,能够考虑等向应变硬化影响的本构模型。该本构模型采用应变的显函数表达形式,不仅在计算上非常有效率,而且保持了与钢筋反复加载试验结果的非常好的一致性,可以反映包辛格效应(反向加载,弹性极限下降明显)。

混凝土本构模型

混凝土模型如图2.2、图2.3所示,混凝土受压的滞回曲线采用Scott-Kent-Park模型

[42][43]

,该模型通过修正混凝土材料受压时的峰值应力应变和软化段的斜率来考虑混凝土中

横向箍筋的约束影响,修正后的本构模型在简化和精确之间达到了较好的平衡。其调用名为Concrete02。OpenSEES中还提供了不考虑混凝土受拉的本构模型(Concrete01)和考虑材料拉伸强化的两种混凝土模型(Concrete03)。

截面恢复力模型

截面恢复力模型按照建模的细化程度主要可以分为基于构件、基于截面和基于材料的恢复力模型三类。在OpenSEES中直接提供的常规截面恢复力模型主要有弹性恢复力模型、理想弹塑性恢复力模型、两折线强化恢复力模型和滞回恢复力模型,通过定义材料类及材料类派生类对象来完成对积分控制点处截面恢复力模型的定义。如通过建立ElasticSection2d(),SectionAggregator()等类的对象来定义弹性截面恢复力模型和对组合两种或两种以上的截面恢复力模型。如图2.4所示设置截面和确定截面恢复力模型。

OpenSEES将单元沿纵向划分成若干离散的单元,各个单元依靠积分控制点

(integration points)组装成梁柱单元。OpenSEES为位于截面处的积分控制点提供Gauss-Legendre和Gauss-Lobatto等数值积分方法。通过数值积分方法得到整个构件的刚度。众所周知,构件的弹塑性变形往往集中于构件端部截面。OpenSEES提供的Gauss-Legendre数值积分方法对结构构件非线性变形的模拟,只能随着积分控制点的增加才能逐渐接近单元端部截面,因此积分点数目的选择将直接影响该方法对构件弹塑性变形模拟的精确度;而Gauss-Lobatto数值积分方法始终保持两个积分控制点在单元的端部截面处

[44]

,因此使用该方法能够更加有效的模拟构件的非线性行为。

当划分的纤维数目达到一定水平之后,数值积分产生的误差将不再显著。对于平面问题

中的矩形截面分析,纤维数目达到40就可以达到足够的精度

[45]

单元类型

OpenSEES程序提供了多种单元分析模型,如实体模型和杆系模型,实体模型中包括二维实体模型和三维实体模型,如平面多节点实体模型、多节点空间实体模型等;OpenSEES中杆系模型主要包括桁架单元Truss、零长度单元ZeroLength、弹性梁柱单元

ElasticBeamColumn和非线性梁柱单元NonlinearBeamColumn。本研究主要涉及三种非线性梁柱单元:NonlinearBeamColumn单元、DispBeam-Column单元和BeamWith Hinges单元。NonlinearBeamColumn和BeamWithHinges单元是基于有限单元柔度法理论的,在编程过程中由建立Force Beam-Column类的子类来实现;DispBeamColumn单元基于有限单元刚度法理论。这三种单元既能够用于考虑地震作用下结构整体分析,又能够用于构件本身的地震响应的考察。以下将分别进行介绍。

a)NonlinearBeamColumn单元允许刚度沿杆件长度变化,通过确定单元控制截面的各截面抗力和截面刚度,按照Gauss-Lobatto积分方法计算单元抗力和刚度。可以设置多个积分控制点来适当提高精度。实际编程过程中,对于二维结构分析,由BeamIntegration、ForceBeamColumn2d相互协作完成。如通过建立BeamIntegration的子类对象

LobattoBeamIntegration设置积分方法和考虑构件非线性,再建立ForceBeamColumn2d类的实例完成该单元的建立。

b)DispBeamColumn单元允许刚度沿杆件长度变化,通过节点位移计算得到单元的端部位移,进而求得截面的变形,再根据截面恢复力关系得到相应的截面抗力和刚度,再按照Gauss-Legendre积分方法得到单元内力和刚度。可以通过增加积分控制点提高计算精度。实际编程过程中,对于二维结构分析,由BeamIntegration、DispBeamColumn2d相互协作完

成。如通过建立BeamIntegration的子类对象LegendreBeamIntegration设置积分方法和考虑构件非线性,再建立DispBeamColumn2d类的实例完成该单元的建立。

c)Beam With Hinges 单元假定非线性变形集中在构件两端,沿杆长在杆件两端设置积分控制截面和塑性较长,按照Gauss-Radau积分方法沿塑性铰长积分,模拟构件和整体结构的非线性行为,杆件中间保持弹性。实际编程过程中,对于二维结构分析,由

BeamIntegration、ForceBeamColumn2d相互协作完成。如通过建立BeamIntegration的子类对象的实例HingeRadauBeamIntegration(double lpI,double lpJ)设置积分方法和两端塑性铰长度,再建立ForceBeamColumn2d类的实例完成该单元的建立。

结构分析

OpenSEES中非线性方程组的求解采用增量迭代法进行。该方法将外荷载的施加划分成若干加载步,在每一级荷载步中进行迭代计算,使每一级增量步中计算误差减到很小的范围内。该方法在结构分析中得到广泛应用。OpenSEES程序中外荷载的施加可以通过以下方法控制:基于位移控制的施加方法、基于荷载控制的施加方法、荷载-位移组合控制方法和弧长控制法,各级增量步作用下的迭代方法也比较丰富,主要包括:线性迭代、牛顿线性迭代、Newton-Raphson方法、改进的Newton-Raphson方法、Krylov-Newton方法、Broyden方法和BFGS方法。

OpenSEES程序中同时也给出了增量迭代法求解时容差判敛精度的确定方法,向使用者提供了基于增量位移、不平衡力和能量控制等几种不同的收敛准则,通过设置函数的参数收敛容差达到确定判敛精度的目的。以能量控制为例,当结构第j次迭代的能量增量值和结构第一次迭代时的能力相比满足下式时,可以认为结构此时内外力平衡。

此外,OpenSEES程序中还提供了节点编号的优化方法。如逆Cuthill-Mckee算法,简称RCM算法

[39]

,用于非线性分析开始前对用户编制的节点编号进行优化,以减小结构整体刚

度矩阵的带宽和数据存储量,提高了计算效率;同时OpenSEES程序提供了罚函数法、拉格朗日乘子法和Transformation等方法来处理多点约束的情况,这些方法用来决定在非线性方程组求解过程中如何处理约束自由度所对应的行列向量;不仅如此,针对刚度矩阵的不同类型(稀疏程度,是否对称,是否正定等),OpenSEES程序向使用者提供了各种不同的数据存储方式和求解方法。如SparseSPD类对象用于对称的稀疏矩阵,BandGeneral类对象用于

非对称的带状矩阵等,使用者可以根据实际情况选用。

OpenSEES中结果输出简介

在结果输出部分,OpenSEES程序为使用者提供了极其灵活的方式,主要依靠Recorder类完成。用户可以根据需要自定义需要记录的计算数据,例如,输出参数中包括非线性时程分析中各点的位移、速度、加速度、位移增量以及整个过程中各个响应量的包络值;单元在各时刻的内力、变形以及截面抗力、变形和刚度等信息;当采用纤维界面梁柱单元进行分析时,用户可以输出指定位置的钢筋和混凝土纤维的应力应变关系等数据。

节点类

节点类的对象指的是有限元域内定义了自由度的离散点。节点类中的成员函数用来存储节点坐标、节点响应和节点不平衡力等信息,并提供了设置和检查这些信息的接口函数。节点类的接口函数主要包括以下几类:

a)节点构造函数允许建立1、2、3维节点,自由度数由用户自定义; b)类中提供了检查节点坐标和自由度等相关信息的方法;

c)类中提供了设定和检查节点当前响应量和求解路径上节点响应量的方法,这些响应量包括节点位移、荷载增量等;

d)类中提供了设定节点不平衡荷载归零、不平衡荷载增量及其检查的方法; e)类中还提供了设定和检查节点质量等方法。

单元类

单元类对象的基本功能是提供基于当前应力状态和单元荷载状态下单元的线刚度、质量、阻尼和残余应力等信息。

a)每个单元类对象与多个节点对象相关联,如图2.10,在单元类中提供了获得相关节点数目和节点标识符的方法;