OpenSEES学习笔记

更新时间:2023-11-17 17:05:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1、利用零长单元模拟阻尼, uniaxialMaterial Elastic 1 6.8098e6; uniaxialMaterial Viscous 2 3.24e5 1; uniaxialMaterial Parallel 3 3 5;

element zeroLength 1 $iNode $jNode -mat 3 -dir 1; 通常有两种方式:

(1)truss element and viscous material.(桁架单元和阻尼材料)

(2)force-based beam-column element and Maxwell material(基于力的梁柱单元和Maxwell材料)。

-、如何运行OpenSEES

有三种方法可以执行OpenSees/Tcl命令: 1、interactive 交互式 直接将命令输入Prompt。 2、执行文件输入

这种方法是最常用的一种,以source inputfile.tcl方式执行已写好的外部命令文件。 3、Batch模式

即以Opensees inputFile.tcl方式在MS-DOS/Unix promt中运行。

二、定义单位和常数

在编写一个较大的Opensees命令时。最好先定义好单位及常数。在Opensees中,编译器不能自行转换单位。所以一开始就要先定义好。

单位定义包括两部分:首先定义基本单位;再定义合成单位。其中基本单位要相互独立。同时,在定义单位时,既可以按国际公制单位,也可以按私制单位。因些在单位定义文件中可能是混合的。我个人建议,还是采用国际公制单位较好。像国外常用英制单位。很不习惯。 对于一些常数,如?和g等常数要事先定义好。 在定义这些单位时所用的命令是“set”。

三、生成Matlab命令

Matlab是后处理最常用的工具,通过Tcl脚本语言可以得到Matlab命令文件。同时保证相同的分析参数。如下例:

四、定义Tcl命令的方法

这种方法是从Tcl语言获得的工具,他是一种广义上的函数或者子程序协议。这个不是很明白

五、读取外部文件

外部文件可能是Tcl命令或者是数据。 有以下三种方法:(1)普通读取文件法;(2)重复计算读取文件法;(3)外部数据文件读取法。

(1)普通读取文件法:source.inputfile.tcl。当外部文件中包括一系列的常用分析命令时,可用这个方法。

(2)重复计算读取文件法:外部文件可能包括一系列重复的计算,则采用以下方法。随时改变参数。

也是一种交互式的输入

(3)外部数据文件读取法:这个命令可以用于打开一个数据文件。并按行读取,指定每行的值为单变量。如果一行中有多个值时,则变量是列阵。而其中每个元素可用“lindex”命令提取。

六、建立模型

这项是我们做分析时很关键的一个前提。 常规流程包括以下几个方面: (1)定义变量和参数;(2)建立模型和定义节点;(3)建立模型和使用变量定义节点;(4)定义材料;(5)定义单元。

(1)定义变量和参数:在Tcl脚本语言中变量是用来替代数字的。一旦被定义好,则可用来代替数字。当重新要使用这些数字的时候,只需要用“$”字符则可以调用。如果不用此字符。则变量名将会被视为字符串命令将导致错误结果。在定义模型的变量时,通常首先定义好材料参数,然后单元参数,再是重力(质量)参数,最后是分析参数。设定好变量定义的命令文件有很多好处,当需要对材料或尺寸等变量进行修改时,只需在这个文件中修改即可。无需修改后面的文件。

在材料参数中,主要涉及到材料的本构关系变量;单元参数中,主要涉及到单元几何尺寸及数量;重力参数中,主要是模型质量分布;分析参数中,主要是增量步长及数值计算参数。 (2)建立模型和定义节点:这些模型节点通常是置于输入文件的开头。最后的定义结点质量的命令会覆盖先前定义的节点质量。在定义这些节点时也可以使用变量来定义,效果是一样的。

(4)定义材料:以下的例子是用于定义钢筋混凝土结构的材料。假定变量都已定义。当这些命令编制在一个外部文件中时,可以用source命令执行。

(5)定义单元:

七、定义输出

(1)定义生成分析输出

生成的分析输出将取决于分析是静力的还是动力的。如下例子:

(2)定义分析中的数据图

八、重力荷载

(1)定义重力荷载

(2)运行重力分析

九、静力分析

(1)定义静力推覆分析。

这条命令将在重力荷载被定义和应用之后运行。

(2)运行静力推覆分析。

当运行静力推覆分析时可能用一条命令即可,而单分析参数环境下通常不容易收敛。因些写个脚本试用多个算法增加收敛的可能性。

十、动力分析

(1)定义动力地面动动分析

(2)运行动力地面运动分析

十一、关于OpenSEES例子的介绍。

通常在建立分析模型时,重力分析是其中的一部分。 (一)建立模型 1、弹性单元

2、非弹性单元:包括两种截面类型,a、单轴截面;b、纤维截面。 3、水平荷载:a、静力推覆(包括单调加载和循环往复加载);b、随时间变化的动力加载(动力分析):包括均匀正弦波、多点激励正弦波、均匀地震波、多点激励地震波、双向激励地震波

(二)分析过程 1、建立模型

(1)定义模型维数和自由度数 (2)定义节点坐标

(3)定义节点约束——边界条件 (4)定义节点质量

(5)定义单元和单元连接 (6)定义输出记录

以上为OpenSEES建立模型时的常规步骤。 2、定义和施加竖向荷载

(1)定义节点或单元的竖向荷载

(2)定义静力分析参数——容差、算法、约束,方程和加载步 (3)运行分析

(4)保持竖向荷载为常数(为后续的水平荷载分析) (5)重置时间为0。 3、定义和施加水平荷载

(1)定义荷载模式(节点荷载为静力分析,支点运动为地震分析) (2)水平荷载分析参数(容差或时间/位移增量) A、静力水平荷载分析:定义位移增量和位移加载路径

B、动力水平荷载分析:定义输入地震动及所有相关参数,例如地震波调整和输入类型; 定义分析持时和时间增量;定义阻尼。 (3)运行分析

十二、OpenSees初级入门篇及简单例子

To conduct a simulation in OpenSees, the user creates an input file (a script). A script is just a series of commands that instruct the interpreter what to do. In the case of OpenSees, the commands either create objects or invoke methods (procedures) on those objects. In OpenSees there are 3 types of objects the user must create: 1. Modeling: The user first creates a ModelBuilder object which defines the type of model, and commands available for building the model. With a ModelBuilder defined the user then creates the Element, Node, LoadPattern and Constraint objects that define the model. In this primer the use of the basic ModelBuilder will be demonstrated.

2. Analysis: After the user has defined the model, the next step is to create the Analysis object for analyzing the model. This may be a simple static linear analysis or a transient non-linear analysis. In OpenSees, an Analysis object is composed of several component objects and these define the type of analysis that is performed. The component objects consist of the following: SolutionAlgorithm, Integrator, ConstraintHandler, DOF Numberer, SystemOfEqn, Solver, and ConvergenceTest. This approach provides a great deal of flexibility in how an analysis is conducted, but requires knowledge on behalf of the user as to what the different options provide.

3. Output Specification: Once the model and analysis have been defined, the user must specify what is to be monitored during the analysis. OpenSees by default will producde no output. The outputs specified could for example be the displacement history at a node or internal stress state at some material point in an element element. The user typically creates Recorder objects to store what the user wants to examine, though the user can also use the tcl puts command. In each of the following examples, tcl scripts are used to create model, analysis and a recorder objects. After these objects have been created, the analysis is performed. The analyses performed on these models consist of simple static gravity analysis and pushover analysis and transient analysis of models subjected to earthquake excitation.

The examples are not meant to be completely realistic, but they are representative of typical structures. They are intended to remain s

以上这些文字的主要是意思是:

为了用OpenSees完成模拟,用户先要创建一个输入文件(脚本),这个脚本是由一系列命令构成的,这些命令指导编译器如何进行。在OpenSees例子中,这些命令有的是建立对象,有的是为实现对象而引入方法(程序)。在OpenSees中,以下三种对象类型是必需建立的:

1、模型:用户首先要建立模型对象,用于定义模型类型。通过ModelBuilder命令可以定义单元、节点、荷载模式及约束条件。

2、分析:在模型建立之后,用户的下一步就是要建立分析对象。分析对象可能是简单的静力线性分析,或者是瞬时非线性分析。在OpenSees中,分析对象包括多个对象元素,有数值算法(SolutionAlgorithm), 加载方式(Integrator), 边界处理方法(ConstraintHandler), 自由度编号处理(DOF Numberer), 计算方法,解方程(SystemOfEqn), 求解器(Solver), 和收敛准则(ConvergenceTest)

3、输出定义:一旦模型和分析定义好,用户则需要规定在分析时得到什么结果。若无输出定义,OpenSees本身不会输出结果,输出结果可是一节点上的时程位移或者一个单元在某点上的内部应力状态。用户通常用Recorder命令保存想要得到的结果。同样也可以用TCL命令。

在以下每个例子中,tcl脚本命令是用于建立模型、分析及记录对象。在这些对象定义好之后,运行分析。在这些模型执行分析时,包括简单的重力分析、推覆分析和由于地震激励下的瞬时分析。这些例子并不意味着和现实完全相同,但是是典型结构的代表。

For OpenSees we have added commands to Tcl for finite element analysis. These commands can be grouped into four sections:

1. Modeling Commands commands added to the interpreter to create the finite element model.

2. Analysis Commands commands added to Tcl to create the analysis procedure. 3. Output Commands commands aded to Tcl to monitor what is happening in the model during the analysis.

4. Misc Commands commands added to Tcl to help monitor and modify the model and analysis during the run-time.

5. DataBase Commands commands added to Tcl to construct a FE_Datastore object. 对于利用OpenSees进行有限元分析,我们已经创建了Tcl命令。这些命令总共可以分成以下四个板块:

1、模型命令:用于建立有限元模型; 2、分析命令:用于建立分析程序;

3、输出命令:用于建立在分析时,输出所要的结果; 4、混合命令:用于在分析时修改模型和分析; 5、数据库命令:用于建立FE数据保存。

到目前为止,主要是用到前三板块,后面两板块尚不知道为何物。

十三、目前关于OpenSees初学习时的问题

1、目前基本知道OpenSees是如何进行结构分析的,但是还是不能整体把握住全过程。这个问题可以通过多练习解决。

2、建立模型的部分基本上没有大问题,不过对于非线性问题的建模还比较大。特别是对于材料定义、截面定义、单元定义这三方面,有待加强。

3、工况定义和分析定义方面现在还比较生疏,特别是对分析元素的理解,现在很不明确。这点急需加强。

4、对于输出定义问题。这个不是很难,可是还不能灵活掌握。可以通过练习解决。

5、最后一点,就是关于整个程序命令的先后顺序问题,这个目前个人觉得没什么大影响,可是把握主要路线可不分先后(如分析时)。可以向高人请教下! 细节问题:

在定义几何转换时,对于二维问题,单元方向不用考虑。对于三维问题,则要定义好。其中有个vecxz是平行于局部座标系x-z平面的向量。还就是关于单元座标系的指定:通常规定,x轴是连接单元两端节点的一个座标轴。而y、z轴的定义是通过向量vecxz定义的,y轴的定义是通过vecxz和x轴的向量积得到。但是现在的问题是vecxz向量是通过z、y轴来确定的。可是z、y轴如何确定呢? In addition to using recorders, it is possible to specify output using the print and puts commands. When no file identifiers are provided, these commands will print results to the screen. We use the nodeReaction command to return the reactions at the individual nodes and the tcl lindex command to obtain the values from these lists. 对于结果输出问题,在输出时如果只用recorders命令,会得到一大堆数据。这很不方便提出有用结果数据。因此,除了使用recorders命令外,还可以用print和put命令规定输出。当没有指定文件标号时,这些命令将会把结果显示在屏幕上。我们用nodeReaction命令回每个节点的反应,以及用lindex命令获得这些结果数据。这样就便于我们直观的检查结果数据。

要求:利用变量定义,为抗地震倒塌和IDA分析建立好备用模型,单自由度和多自由度的模型。在建立模型时,把影响抗倒塌的结构因素全都考虑进去。这是第一步。第二步将是整理好施加工况(荷载、地震)。并建立好分析因素,提取必要的数据结果。第三步通过增加界面应用程序。处理好分析得到的结果。

十四、运行OpenSees的全过程(初学)

(-)、问题定义

在介绍运行OpenSees的全过程时,以一个门式框架以例子进行

讲解。

这个门式框架的简图如下图。

图上尺寸均是英制单位,在下面建立模型时,将全改成国际单位。

这个模型中的单元,可以先以弹性单元,后面可根据需要对单元进行修改。对于分析方面,将会施加三种不同的工况。即: (1)水平位移控制的静力推覆;

(2)水平循环往复位移控制的静力推覆; (3)动力地震动下时程分析。 (二)、建立模型

本文来源:https://www.bwwdw.com/article/ea2v.html

Top