Está en la página 1de 75

UNIVERSIDAD DE LOS ANDES

DEPARTAMENTO DE INGENIERÍA CIVIL Y AMBIENTAL

EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES

Iván Alberto Salazar Moreno

Asesor:
Juan Carlos Reyes Ortiz PhD

Proyecto de grado

Bogotá D.C., Colombia


Diciembre, 2018
ii
RESUMEN

El análisis estructural es el primer paso en el proceso de diseño de una estructura, ya que permite
determinar sus fuerzas y desplazamientos por el efecto de las cargas actuantes en ella. El análisis
estructural se puede hacer de forma lineal o no lineal (estático o dinámico) dependiendo de la
complejidad de la estructura y de la respuesta estructural que se desee analizar, como derivas, fuerzas
internas, aceleraciones, etc. Existen una gran variedad de programas para realizar análisis de
estructuras. Uno de ellos es OpenSees, el cual es un software de elementos finitos enfocado
principalmente en modelar la respuesta sísmica de estructuras; este programa cuenta con una enorme
variedad de tipos de materiales y elementos que facilitan la modelación del comportamiento no lineal
de las estructuras. Sin embargo, su uso es bastante retador dado que no se dispone de una interfaz
gráfica similar a la de los programas comerciales. En este trabajo, se usará OpenSees para desarrollar
ejemplos de análisis lineal, no lineal estático y dinámico de estructuras expuestas a cargas
convencionales y no convencionales tales como presfuerzos y cambios de temperatura; también, se
tendrán en cuenta condiciones específicas de cada estructura como resortes, zonas y elementos
rígidos, etc. Esto, con el fin de desarrollar una guía de ejemplos del usó de OpenSees para futuros
estudiantes. La validación de los modelos desarrollados con OpenSees se hizo comparando los
resultados obtenidos para cada ejemplo con otros programas como SAP2000 o implementando
manualmente el método matricial de rigidez. Las comparaciones realizadas demuestran que los
modelos desarrollados en OpenSees dan resultados similares a sus homólogos desarrollados
manualmente y en SAP2000.

iii
iv
ABSTRACT

Structural analysis is the first step in the design process of buildings and other types of structures
because allows the estimation of forces and displacements due to the effect of acting loads. Structural
analysis can be performed using linear and non-linear procedures according to the complexity and
the type of parameters of interest, for example drifts, internal forces, accelerations, etc. There is a
wide variety of programs to perform structure analysis. One of those is OpenSees which is a finite
element software focused mainly on modeling the seismic response of structures; this program has a
huge collection of materials and element types which permit the nonlinear modeling of complex
structures. However, the main drawback of this program is the graphic interface, which is not as user-
friendly as the one of commercial software. In this study, OpenSees is used to develop examples of
linear, non-linear static and dynamic analysis of structures exposed to conventional and
nonconventional loads as prestress, and temperature changes; also, specific conditions of each
structure such as springs, rigid zones and elements are considered. The main objective is to develop
an OpenSees examples guide for future students. The validation of the OpenSees models is done by
comparing the obtained results for each example with SAP2000 or the matrix stiffness method. The
comparisons performed show that OpenSees models give similar results to their counterparts
developed manually and in SAP2000.

v
vi
Tabla de contenido

1. Introducción............................................................................................................................... 3
1.1 Justificación......................................................................................................................... 3
1.2 Objetivos ............................................................................................................................. 3
1.2.1 Objetivo general .......................................................................................................... 3
1.2.2 Objetivos específicos................................................................................................... 3
1.3 OpenSees ............................................................................................................................. 3
2. Análisis lineal estático ............................................................................................................... 5
2.1 Ejemplo 1: Estructura estáticamente determinada .............................................................. 5
2.2 Ejemplo 2: Estructura estáticamente determinada con carga triangular.............................. 8
2.3 Ejemplo 3: Reacciones a partir de fuerzas y deformaciones básicas ................................ 13
2.4 Ejemplo 4: Viga simplemente apoyada bajo cambio de temperatura axial. ...................... 15
2.5 Ejemplo 5. Puente bajo carga de presfuerzo axial............................................................. 20
2.6 Ejemplo 6: Viga con presfuerzo a flexión. ........................................................................ 24
2.7 Ejemplo 7: Estructura con zonas rígidas ........................................................................... 30
3. Análisis no lineal estático ........................................................................................................ 37
3.1 Ejemplo 1: No linealidad geométrica ................................................................................ 37
3.2 Ejemplo 2: Catenaria de un cable. ..................................................................................... 40
3.3 Ejemplo 3. Pórtico con rotulas plásticas ........................................................................... 48
3.4 Ejemplo 4: Edificio de cortante ......................................................................................... 57
4. Análisis no lineal cronológico ................................................................................................. 61
4.1 Ejemplo 1: Edificio de cortante con aceleración en la base. ............................................. 61
Conclusiones y recomendaciones ................................................................................................... 67
Referencias ............................................................................................................................... 69
2
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 1. Introducción

1. Introducción
En este trabajo se usa el software OpenSees para modelar y analizar estructuras. Los problemas
modelados serán usados como material de estudio en el curso de análisis avanzado de estructuras de
la Universidad de los Andes. El trabajo se divide en tres etapas las cuales son: análisis lineal estático,
análisis no-lineal estático y análisis no-lineal cronológico. Los ejemplos de análisis lineal consisten
en simular la respuesta lineal de estructuras sujetas a varios tipos de fuerzas no convencionales como
cambios de temperatura, presfuerzos, junto con detalles adicionales específicos de cada estructura
como resortes, pasadores, zonas rígidas, etc. En cuanto al análisis no lineal estático y dinámico se
modelarán estructuras sencillas sujetas a un comportamiento no lineal. El cual se representa como no
linealidad geométrica, del material, de contacto, es decir el cambio de condiciones de borde y el
comportamiento de la estructura en función del tiempo, en el caso del análisis cronológico.

1.1 Justificación
OpenSees es un software de análisis estructural desarrollado por el Pacific Earthquake Research
Center (PEER) de la Universidad de Berkeley. Este es un software gratuito, el cual puede ser
descargado de su página oficial [1]. OpenSees cuenta con una gran variedad de algoritmos de análisis,
algoritmos de solución, métodos de integración, materiales como concreto y acero con un
comportamiento muy semejante a la realidad. El programa permite crear la sección de los elementos
a usar como material elástico, uniaxial o de fibras para simular muy certeramente la respuesta
esfuerzo-deformación en las fibras del material, permitiendo así modelar la respuesta no lineal del
material [2].

1.2 Objetivos
1.2.1 Objetivo general

Usar el software OpenSees para desarrollar varios tipos de ejercicios de análisis estructural avanzado
por medio de análisis lineales, no lineales estáticos y cronológicos.

1.2.2 Objetivos específicos

▪ Dar a conocer el funcionamiento del software OpenSees a futuros estudiantes.

▪ Fomentar en los estudiantes el uso del software OpenSees.

▪ Fomentar la investigación en el desarrollo de nuevos modelos de análisis estructural a partir de las


herramientas provistas por OpenSees.

1.3 OpenSees

OpenSees cuenta con una documentación de usuario donde se encuentran manuales para iniciar a usar
el programa, una descripción de cada uno de los comandos disponibles y algunos ejemplos básicos y

3
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 1. Introducción

avanzados de modelos hechos en OpenSees [3]. Esta documentación contiene material de gran ayuda,
en especial el Command Manual, donde se presenta una descripción de todos los comandos de
OpenSess. Estos comandos se pueden dividir en 5 grupos: Modeling Commands, Analysis
Commands, Output Commands, Misc Commands y DataBase Command. En la Figura 1 se presenta
un esquema de los pasos necesarios para crear un modelo en OpenSees.

▪ model: Crea el modelo


▪ node: Crea los nodos
Modelo ▪ element: Crea los elementos
▪ SP_Constraints: Restringe el movimiento en los GDL requeridos
▪ ▪ MP_Constraints: Relaciona el movimiento entre varios nodos

▪ ConstraintHandler: Control de condiciones de borde


▪ DOF_Numberer: Enumeración de GDL
Análisis ▪ Integrator: Integrador del modelo
▪ SolutionAlgorithm: Método para solucionar el sistema de ecuaciones
▪ SystemOfEqn/Solver: Arma el sistema de ecuaciones
▪ Convergence Test: Determina cuando se ha llegado a la convergencia

▪ recorder: Se encarga de almacenar datos de un objeto del modelo mientras se


Resultados ejecuta
▪ print: Imprime en consola datos sobre un objeto específico

Figura 1. Fases del modelo.

4
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

2. Análisis lineal estático


2.1 Ejemplo 1: Estructura estáticamente determinada
Para la estructura estáticamente determinada de la Figura 2, calcular las reacciones en los apoyos y
dibujar los diagramas de fuerza cortante, axial y momento del elemento ab y cd.

10 kN/m
b c
45° 20 kN
3.5(1+sin(45))

3.5

a e

3.5

Figura 2. Estructura estáticamente determinada (dimensiones en metros).

▪ Código en OpenSees
Modelo
# Análisis lineal estático, ejemplo 1, unidades en kN,m
# modelo.tcl
# Crear modelo
model BasicBuilder -ndm 2 -ndf 3
#------------------------------------------------------------------------------------------------
## Nodos
# Nodo tag xCrd byCrd ndf
node 1 0.0 0.0 -ndf 3; # Nodo a
node 2 0.0 3.5 -ndf 3; # Nodo b
node 3 3.5 3.5 -ndf 3; # Nodo c
node 4 3.5 3.5 -ndf 3; # Nodo cAux (Se usan 2 nodos en la misma posición para modelar el
pasador)
node 5 5.974874 5.974874 -ndf 3; # Nodo d
node 6 5.974874 0.0 -ndf 3; # Nodo e
#------------------------------------------------------------------------------------------------
# Restricción de movimiento
# SPC tag Dx Dy Rz
fix 1 1 1 0; # Apoyo con restricción de movimiento en X e Y
fix 6 0 1 1; # Apoyo con restricción al giro y movimiento en Y
# MPC nodoi nodo j dof1 dof2
equalDOF 3 4 1 2; #El comando equalDOF se usa para igualar el movimiento X e Y de los
nodos 3 y 4. Esto para modelar el pasador
#------------------------------------------------------------------------------------------------

5
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

# Transformación geométrica
# GeoTran type tag
geomTransf Linear 1; # Se usará una transformación lineal para pasar de valores locales a
globales
#------------------------------------------------------------------------------------------------
# Elementos
# Todos los elementos a continuación tienen área, modulo e inercia unitarios debido a que las
propiedades geométricas y del material no son necesarias para resolver esta estructura
# Element "Elemento ab": eleTag NodoI NodoJ A E Iz geoTranTag
element elasticBeamColumn 1 1 2 1.0 1.0 1.0 1
# Element "Elemento bc": eleTag NodoI NodoJ A E Iz geoTranTag
element elasticBeamColumn 2 2 3 1.0 1.0 1.0 1
# Element "Elemento cd": eleTag NodoI NodoJ A E Iz geoTranTag
element elasticBeamColumn 3 4 5 1.0 1.0 1.0 1
# Element "Elemento de": eleTag NodoI NodoJ A E Iz geoTranTag
element elasticBeamColumn 4 5 6 1.0 1.0 1.0 1
Análisis y resultados
# analisis.tcl
#------------------------------------------------------------------------------------------------
# Serie de tiempo
# TimeSeries "Lineal": tsTag cFactor
timeSeries Linear 1 -factor 1.0; # Problema es estático
#------------------------------------------------------------------------------------------------
# Patrón de carga
# LoadPattern "Plain": patternTag tsTag factor
pattern Plain 1 1 -fact +1.0 {
# eleLoad eleTags beamUniform Wy <Wx>
eleLoad -ele 2 -type -beamUniform -10.0 0.0; # Carga distribuida del elemento bc
eleLoad -ele 3 -type -beamUniform -7.5 0.0; # Carga distribuida del elemento cd
# eleLoad eleTags beamPoint Py xL <Px>
eleLoad -ele 4 -type -beamPoint 20 0.4142136 0.0; # Carga puntual en el elemento de.
# La distancia xL del anterior comando es relativa a la longitud del elemento.
}
#------------------------------------------------------------------------------------------------
# Archivos de resultados
# Node Recorder "Desplazamientos": fileName <nodeTag> dof respType
recorder Node -file DespNodos.out -nodeRange 1 5 -dof 1 2 3 disp; # Desplazamientos
# Node Recorder "Reacciones": fileName <nodeTag> dof respType
recorder Node -file ReacNodos.out -nodeRange 1 5 -dof 1 2 3 reaction; # Reacciones
# Node Recorder "Fuerzas internas"
recorder Element -file ElementoAB.out -ele 1 localForce; # Fuerzas locales del elemento ab
recorder Element -file ElementoBC.out -ele 2 localForce; # Fuerzas locales del elemento bc
recorder Element -file ElementoCD.out -ele 3 localForce; # Fuerzas locales del elemento cd
recorder Element -file ElementoDE.out -ele 4 localForce; # Fuerzas locales del elemento de
#------------------------------------------------------------------------------------------------
# Opciones de análisis
constraints Plain; # Control de constraints
numberer Plain; # Numeración de GDL
system UmfPack -lvalueFact 10; # Sistema de ecuaciones
algorithm Linear; # Algoritmo de solución
integrator LoadControl 1.0 4 0.001 1.0; # Integrador
analysis Static; # Tipo de análisis
analyze 1; #Ejecutar análisis

6
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

▪ Resultados
En la Tabla 1 se presentan las reacciones obtenidas en cada nodo de la estructura. También, se
calcularon las fuerzas internas en los extremos de los elementos de la estructura, a partir de las cuales
se dibujaron diagramas de fuerza axial, cortante y momento de los elementos ab y cd teniendo en
cuanta la carga distribuida en cada elemento. Los resultados se presentan en la Figura 3.
Tabla 1. Reacciones en los nodos.
Nodo Fx, kN Fy, kN Mz, kN-m
a -38.5616 -21.0616 -2.84E-14
b -2.06E-13 7.11E-15 -2.84E-14
c 38.5616 56.0616 6.57E-14
d -38.5616 -56.0616 -1.15E-13
e -3.55E-14 74.6231 -138.745

Figura 3. Diagramas de fuerzas internas obtenidos con OpenSees. Izquierda, diagramas del elemento ab. Derecha,
diagramas del elemento cd. De arriba hacia abajo, diagrama de fuerza axial, diagrama de fuerza cortante y diagrama de
momentos.

▪ Comparación de resultados
Los resultados obtenidos en OpenSees se comparan con SAP2000 en el caso de las fuerzas internas
en los elementos (Tabla 2). Las reacciones se comparan con resultados teóricos calculados a partir de
principios de estática, (Tabla 3). Los modelos hechos en OpenSees arrojan resultados satisfactorios
ya que son completamente iguales a los valores obtenidos en SAP2000 y resultados teóricos
calculados a partir de principios de estática, en el caso de las reacciones en los nodos. Los resultados
solo difieren en una cantidad mínima de cifras significativas.

7
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

Tabla 2. Comparación de fuerzas internas obtenidas en OpenSees y SAP2000.


Elemento ab bc cd de
Nodo i j i j i j i j
OpenSees -21.062 21.062 -38.562 38.562 -66.909 66.909 74.623 -74.623
P, kN SAP2000 -21.062 21.062 -38.562 38.562 -66.909 66.909 74.623 -74.623
Error absoluto 4.0E-04 4.0E-04 4.0E-04 4.0E-04 4.0E-04 4.0E-04 1.0E-04 1.0E-04
OpenSees 38.562 -38.562 -21.062 56.062 -12.374 38.624 -20.0 0
V, kN SAP2000 38.562 -38.562 -21.062 56.062 -12.374 38.624 -20.0 0
Error absoluto 4.0E-04 4.0E-04 4.0E-04 4.0E-04 4.0E-04 4.0E-04 0 1.8E-14
OpenSees -2.6E-13 134.965 -134.97 9.4E-14 9.9E-14 -89.248 89.248 -138.745
M, kN-m SAP2000 0 134.965 -134.965 8.5E-14 1.1E-13 -89.248 89.248 -138.745
Error absoluto 2.6E-13 4.0E-04 4.0E-04 8.9E-15 1.5E-14 0 0 3.0E-04

Tabla 3. Comparación de reacciones en nodos en OpenSees y teóricos.


Nodo a b c d e
OpenSees -38.562 -2.1E-13 38.562 -38.562 -3.5527E-14
Fx, kN Teórico -38.562 0 38.56 -38.56 0
Error absoluto 4.0E-04 2.1E-13 1.6E-03 1.6E-03 3.6E-14
OpenSees -21.062 7.11E-15 56.062 -56.062 74.623
Fy, kN Teórico -21.06 0 56.06 -56.06 74.62
Error absoluto 1.6E-03 7.1E-15 1.6E-03 1.6E-03 3.1E-03
OpenSees -2.8E-14 -2.8E-14 6.6E-14 -1.1E-13 -138.745
Mz, kN-m Teórico 0 0 0 0 -138.75
Error absoluto 2.8E-14 2.8E-14 6.6E-14 1.1E-13 5.0E-03

▪ Detalles clave de modelación en OpenSees


Al ser una estructura estáticamente determinada no fue necesario tener en cuenta parámetros
relacionados con la rigidez de la estructura como el módulo de elasticidad del material, la inercia y el
área de la sección transversal de los elementos.
Por otro lado, para modelar los pasadores de la estructura se usó el comando equalDOF el cual es un
Multiple Point Constraint el cual relaciona los grados de libertad deseados de un nodo maestro con
un nodo esclavo. En este caso se usó en 2 nodos ubicados en la misma posición y se transmitió la
fuerza en los grados de libertad 1 y 2, que son X e Y, para así liberar el momento en el elemento. Sin
embargo, los pasadores también podían ser modelados con el comando Zero Length Element con un
material muy rígido en la dirección axial y cortante del elemento. Este tipo de elementos, como su
nombre lo dice, tiene longitud cero, (2 nodos en la misma posición) y recibe por parámetro un material
para cada dirección del elemento.

2.2 Ejemplo 2: Estructura estáticamente determinada con carga triangular.

Modelar la estructura estáticamente determinada presentada en la Figura 4, y calcular las reacciones


en los nodos, las fuerzas internas y los diagramas de fuerzas cortante, axial y momento del elemento
ab.

8
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

8 kN/m

b c
10 kN

10 kN/m
6 kN*

4.5

6 kN*

a d
60°

4.5/tan(60°) 3.9

Figura 4. Estructura estáticamente determinada con carga distribuida triangular (*cargas a 1/3 y dimensiones en metros).

▪ Código en OpenSees
Modelo
# Análisis lineal estático, ejemplo 2, unidades en kN,m
# modelo.tcl
# Crear modelo
model BasicBuilder -ndm 2 -ndf 3
#------------------------------------------------------------------------------------------------
# Nodos
# Node tag xCrd yCrd ndf
node 1 0.0 0.0 -ndf 3; # Nodo a
node 2 2.598076 4.5 -ndf 3; # Nodo b
node 3 2.598076 4.5 -ndf 3; # Nodo bAux (modelar pasador)
node 4 6.498076 4.5 -ndf 3; # Nodo c
node 5 6.498076 4.5 -ndf 3; # Nodo cAux (modelar pasador)
node 6 6.498076 0.0 -ndf 3; # Nodo d
#------------------------------------------------------------------------------------------------
# Restricciones de movimiento en nodos
# SPC tag Dx Dy Rz
fix 1 1 1 1; # Apoyo empotrado
fix 6 1 1 0; # Apoyo con restricción de movimiento en X e Y
#------------------------------------------------------------------------------------------------
# Restricciones múltiples de movimiento
# Equal DOF: MPConstraint01: mNodeTag sNodeTag dof
equalDOF 2 3 1 2; # Modela el pasador del nodo b
# Equal DOF: MPConstraint02: mNodeTag sNodeTag dof
equalDOF 4 5 1 2; # Modela el pasador del nodo c
#------------------------------------------------------------------------------------------------
# Transformación geométrica

9
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

# GeoTran type tag


geomTransf Linear 1; # Transformación lineal para pasar de valores locales a globales
#------------------------------------------------------------------------------------------------
# Elementos
# Element "Elementoab": eleTag NodoI NodoJ A E Iz geoTranTag
element elasticBeamColumn 1 1 2 1 1 1 1
# Element "Elementobc": eleTag NodoI NodoJ A E Iz geoTranTag
element elasticBeamColumn 2 3 4 1 1 1 1
# Element "Elementocd": eleTag NodoI NodoJ A E Iz geoTranTag
element elasticBeamColumn 3 5 6 1 1 1 1
Análisis y resultados
# analisis.tcl
#------------------------------------------------------------------------------------------------
# Serie de tiempo
# TimeSeries "Lineal": tsTag cFactor
timeSeries Linear 1 -factor 1.0; # Problema estático
#------------------------------------------------------------------------------------------------
# Patrón de carga
# LoadPattern "Plain": patternTag tsTag factor
pattern Plain 1 1 -fact +1.0 {
# Load nodoTag Cargas
load 5 10.0 0.0 0.0; # Carga puntual en el nodo c
# eleLoad eleTags beamUniform Wy <Wx>
eleLoad -ele 1 -type -beamUniform -5.0 -8.660254; # Carga elemento ab
# eleLoad eleTags beamPoint Py xL <Px>
eleLoad -ele 2 -type -beamPoint -15.6 3.333333E-01 0.0; # Carga puntual en elemento bc
para simular carga distribuida triangular
eleLoad -ele 3 -type -beamPoint 6.0 3.333333E-01 0.0; # Carga elemento cd
eleLoad -ele 3 -type -beamPoint 6.0 6.666667E-01 0.0; # Carga elemento cd
}
#------------------------------------------------------------------------------------------------
# Archivos de resultados
# Node Recorder "Desplazamiento": fileName <nodeTag> dof respType
recorder Node -file Desplazamineto_Nodos.out -nodeRange 1 6 -dof 1 2 3 disp
# Node Recorder "Reacciones": fileName <nodeTag> dof respType
recorder Node -file Reacciones_Nodos.out -nodeRange 1 6 -dof 1 2 3 reaction
# Resultados elementos
# Elemento ab
recorder Element -file ElementoAB.out -ele 1 localForce;
# Elemento bc
recorder Element -file ElementoBC.out -ele 2 localForce;
# Elemento cd
recorder Element -file ElementoCD.out -ele 3 localForce;
#------------------------------------------------------------------------------------------------
# Opciones de análisis
# "Estático": Tipo: Estático
constraints Plain; # Control de constraints
numberer Plain; # Numeración de GDL
system UmfPack -lvalueFact 10; # Sistema de ecuaciones
algorithm Linear; # Algoritmo de solución
integrator LoadControl 1.0 4 0.001 1.0; # Integrador
analysis Static; # Tipo de análisis
analyze 1; # Ejecutar análisis

10
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

▪ Resultados
En la Tabla 4 se presentan las reacciones obtenidas en los nodos de la estructura. Al igual que en el
Ejemplo 1, se calcularon las fuerzas internas en los extremos de los elementos y a partir de estas
fuerzas y la carga aplicada, se calcularon los diagramas de fuerzas internas del elemento ab (Tabla 5
y Figura 5).
Tabla 4. Reacciones en los nodos de la estructura.
Nodo Fx, kN Fy, kN Mz, kNm
a -16 62.3615 166.52
b 16 -10.4 0
c -16 -5.2 0
d -6 5.2 0

Tabla 5. Fuerzas internas en los extremos de la estructura.


Elemento P, kN V, kN M, kNm
Nodo i j i j i j
ab 46.0067 -1.00667 45.0372 -19.0564 166.52 -6.93E-14
bc -16 16 10.4 5.2 -3.73E-14 -2.84E-14
cd 5.2 -5.2 -6 -6 -6.93E-14 -8.26E-14

Figura 5. Diagramas de fuerzas internas del elemento ab. De arriba a abajo diagrama de fuerza axial, cortante y momento
respectivamente.

▪ Comparación de resultados
En la Tabla 7 se presentan los resultados obtenidos en OpenSees, los cuales se comparan con un
modelo de SAP2000 en el caso de las fuerzas internas de los elementos. Para las reacciones se usan

11
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

resultados teóricos desarrollados a partir de principios de estática como se muestra en la Tabla 6. Al


igual que en el ejemplo 1, los resultados obtenidos con el modelo desarrollado en OpenSees fueron
iguales a los resultados obtenido teóricamente y en SAP2000.

Tabla 6. Comparación de reacciones en los nodos con resultados teóricos.


Nodo a b c d
OpenSees -16.0 -16.0 16.0 -6.0
Fx, kN
Teórico -16.0 -16.0 16.0 -6.00
OpenSees 62.362 10.4 5.2 5.2
Fy, kN
Teórico 62.362 10.4 5.2 5.2
OpenSees 166.52 0 0 0
Mz, kN-m
Teórico 166.52 0 0 0

Tabla 7. Comparación entre fuerzas internas obtenidas en OpenSees y SAP2000.


Elemento ab bc cd
Nodo i j i j i j
OpenSees 46.007 -1.007 -16.0 16.0 5.2 -5.2
P, kN SAP2000 46.007 -1.007 -16.0 16.0 5.2 -5.2
Error absoluto 3.0E-04 3.3E-04 0 0 0 0
OpenSees 45.037 -19.056 10.4 5.2 -6.0 -6.0
V, kN SAP2000 45.037 -19.056 10.4 5.2 -6.0 -6.0
Error absoluto 2.0E-04 4.0E-04 0 0 0 0
OpenSees 166.52 -6.9E-14 -3.73E-14 -2.84E-14 -6.9E-14 -8.3E-14
M, kN-m SAP2000 166.52 2.4E-14 -3.7E-14 -2.4E-15 -2.8E-14 3.6E-14
Error absoluto 0 9.3E-14 1.7E-16 2.6E-14 4.1E-14 1.2E-13

▪ Detalles clave de la modelación en OpenSees


La estructura del ejemplo 2 es bastante similar a la del ejemplo 1 por ende, el modelo en OpenSees
no tiene muchas diferencias más que la ubicación de los nodos y magnitud de las cargas. Sin embargo,
OpenSees no cuenta con un comando específico para agregar una carga distribuida no uniforme, en
este caso triangular. Por lo tanto, para simular el efecto de una carga distribuida triangular, se aplicó
una carga puntual tal que al hacer equilibrio la fuerza y momento generado sean iguales, es decir se
hizo un sistema equivalente de cargas. En la ecuación 1 se presenta la fuerza puntual resultante
estimada para el modelo, luego en la ecuación 2 y 3 se calcula el punto de aplicación de la carga en
distancia absoluta y relativa respectivamente. Es necesario aclarar que la ubicación de una carga
puntual aplicada en un elemento en OpenSees se debe ingresar en distancia relativa a la longitud del
elemento.
𝑊𝐿 8 × 3.9
𝐹= = = 15.6 kN (1)
2 2

𝐿 3.9
𝑥= = = 1.3 m (2)
3 3

1.3
= 0.33333 (3)
3.9

12
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

2.3 Ejemplo 3: Reacciones a partir de fuerzas y deformaciones básicas

Para la estructura de la Figura 6 calcular las reacciones generadas en el nodo b a partir de los
desplazamientos dados en el nodo en cuestión.
En este ejemplo se hace la suposición de que el ángulo de giro final es diferente al ángulo de
inclinación inicial de la estructura, por lo que el análisis realizado deja de ser lineal. Para esto, se usa
una transformación corrotacional en OpenSees.

▪ Parámetros
Los desplazamientos en el nodo b son, 𝑈1 = 0.01 m, 𝑈2 = 0.005 m y 𝑈3 = 0.1 rad. Las propiedades
geométricas y del material son, 𝐸 = 1400E6 kPa, 𝐼 = 1406.25 cm4 y 𝐴 = 75 cm2.

𝑈2
𝑈3

𝑈1 c
b

Figura 6. Estructura con desplazamientos en el nodo b (dimensiones en metros).

▪ Código en OpenSees
Modelo
# Análisis lineal estático, ejemplo 3, unidades en kN, m
wipe
#------------------------------------------------------------------------------------------------
#Se establecen los parámetros del modelo
set E 1400e6; # Modulo de elasticidad
set I [expr 1406.25/1e8]; # Inercia de la sección
set A 0.0075; # Área de la sección
set U1 0.01; # Desplazamiento GDL 1

13
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

set U2 0.005; # Desplazamiento GDL 2


set U3 0.1; # Desplazamiento GDL 3
#------------------------------------------------------------------------------------------------
# Crear modelo
model BasicBuilder -ndm 2 -ndf 3
#------------------------------------------------------------------------------------------------
# Nodos
# Nodo tag xCrd yCrd
node 1 0.0 0.0; # Nodo a
node 2 0.0 0.0; # Nodo aAux (Modelar pasador)
node 3 0.0 3.0; # Nodo b
node 4 3.0 3.0; # Nodo c
#------------------------------------------------------------------------------------------------
# Restricciones de movimiento
# SPC tag Dx Dy Rz
fix 1 1 1 1
fix 3 1 1 1
fix 4 1 1 1
# MPC nodoi nodoj dof1 dof2
equalDOF 1 2 1 2; # Este comando se usa para modelar el pasador del nodo a
#------------------------------------------------------------------------------------------------
# Transformación geométrica
# GeoTram type tag
geomTransf Corotational 1; # Se usará una transformación lineal en los elementos
#------------------------------------------------------------------------------------------------
# Elementos
# Element "Elemento ab": eleTag NodoI NodoJ A E Iz
element elasticBeamColumn 1 2 3 $A $E $I 1
# Element "Elemento bc": eleTag NodoI NodoJ A E Iz
element elasticBeamColumn 2 3 4 $A $E $I 1
Análisis y resultados
# Analisis.tcl
#------------------------------------------------------------------------------------------------
# Serie de tiempo
#timeSeries tsTag
timeSeries Linear 1
#------------------------------------------------------------------------------------------------
# Patrón de carga
# pattern Plain patternTag tsTag
pattern Plain 1 1 {
#Se aplica un desplazamiento en el nodo 2
# sp NodoTag GDL Desp
sp 3 1 $U1
sp 3 2 $U2
sp 3 3 $U3
}
#------------------------------------------------------------------------------------------------
# Archivos de resultados
# Node Recorder "Reacciones": fileName <nodeTag> dof respType
recorder Node -file nodo.out -node 3 -dof 1 2 3 reaction
#------------------------------------------------------------------------------------------------
system BandGeneral; # Sistema de ecuaciones
numberer RCM; # Numeración de GDL
constraints Transformation; # Control de constraints

14
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

integrator LoadControl 1; # Integrador


algorithm Linear; # Algoritmo de solución
analysis Static; # Tipo de análisis
analyze 1; # Ejecutar análisis

▪ Resultados y comparación
En la Tabla 8 se presentan las fuerzas que deben ser aplicadas en el nodo b de la estructura para causar
los desplazamientos requeridos. Por otro lado, los resultados de este problema son comparados con
los obtenidos al calcular manualmente el estado de cada elemento, para obtener deformaciones
básicas {v}, matriz de rigidez básica [Kb], fuerzas básicas {q} y transfórmalas a fuerzas globales y
mediante equilibrio calcular las fuerzas aplicadas en el nodo b (Tabla 9). Los resultados obtenidos en
OpenSees y cálculos manuales fueron iguales, por lo cual con la implementación realizada en
OpenSees se obtuvieron resultados satisfactorios.

Tabla 8. Fuerzas necesarias para causar desplazamientos U en el nodo B.


Dirección Magnitud
Fx, kN 35723
Fy, kN 18858.3
Mz, kN-m 4725.11

Tabla 9. Comparación de resultados en OpenSees con cálculos manuales.


Fuerza Fx, kN Fy, kN Mz, kN-m
OpenSees 35723 18858.3 4725.11
MATLAB 35722.9773 18858.3112 4725.10999
Error relativo (%) 6.35445E-05 5.939E-05 2.1164E-07

▪ Detalles clave de la modelación en OpenSees.


El modelo de este ejemplo es en realidad muy sencillo, ya que solo cuenta con 3 nodos que hacen
parte de la estructura como tal y un nodo adicional para modelar el pasador en la columna. Las cargas
aplicadas son desplazamientos en los nodos y el objetivo es determinar la fuerza que provoca tales
desplazamientos. Para esto, es esencial que se empotren todos los nodos de la estructura. En el caso
de los nodos a y c el esquema lo requiere por ser apoyos empotrados, pero a pesar de que el nodo b
sea libre, se debe empotrar para así hacer creer al programa que este nodo es un apoyo y se calculen
las reacciones.

2.4 Ejemplo 4: Viga simplemente apoyada bajo cambio de temperatura axial.

Determinar la fuerza axial generada en la viga de la Figura 7 por el efecto de un cambio de temperatura
axial de 30°C. Luego, variar el cambio de temperatura y comparar con resultados teóricos.
En este ejemplo se usarán comandos de propiedades térmicas disponibles en OpenSees y los
resultados serán comparados con valores teóricos. En la Figura 7 se muestra un esquema de la viga y
su sección transversal. La viga tiene un área de 0.24 m2 y un módulo de elasticidad de 200 GPa.

15
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

∆𝑇𝑎 = 30°C

0.6

0.4

Figura 7. Viga simplemente apoyada con cambio de temperatura axial y sección de acero (dimensiones en metros).

Las propiedades térmicas están incluidas en el código fuente de OpenSees. Estas propiedades están
basadas en la norma EN 1993-1-2 (2005) [4]. En la Figura 8, se presenta un esquema de la forma en
que se aplica un cambio de temperatura en OpenSees, según el cual la temperatura en la fibra superior
de la sección corresponde a la temperatura 2 ingresada en OpenSees, luego la temperatura en la fibra
inferior es la temperatura 1. Por otro lado, si se aplican solo 2 temperaturas el resto de las temperaturas
que siente la sección se calcula con interpolación. En la Figura 9 se presenta la sección de fibras
modelada en OpenSees, la cual tiene 2 fibras que están en la parte superior de inferior de la sección.

Sección
viga (T9, Y9) (T5, Y5) (T2, Y2)
Aplicación de
•• (T8, Y8)
temperatura •• (T7, Y7) (T4, Y4)
(T6, Y6)
• (T5, Y5) (T3, Y3) Interpolación
Fibras • (T4, Y4)
• (T3, Y3) (T2, Y2)
• (T2, Y2)
(T1, Y1) (T1, Y1) (T1, Y1)

Figura 8. Esquema de aplicación de temperatura en OpenSees. [5]

(z, y)
J
-0.2,0.3

0.6

Y
0.2, -0.3
Z I
0.4

Figura 9. Esquema de la sección de fibras modelada en OpenSees (dimensiones en metros).

16
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

▪ Código en OpenSees
Modelo
# Análisis lineal estático, ejemplo 4, unidades en kN,m,°C
# -----------------------------------------------------------------------------------------------
wipe; # Borrar resultados anteriores
puts "Crear modelo"
# modelo.tcl
#------------------------------------------------------------------------------------------------
# crear modelo
model BasicBuilder -ndm 2 -ndf 3
#------------------------------------------------------------------------------------------------
# Nodos
# Node tag xCrd yCrd ndf
node 1 0.0 0.0 -ndf 3
node 2 1.0 0.0 -ndf 3
#------------------------------------------------------------------------------------------------
# Constraints
# SPC tag Dx Dy Rz
fix 1 1 1 0
fix 2 1 1 0
#------------------------------------------------------------------------------------------------
# Materiales
# uniaxialMaterial Tipo matTag Fy E b
uniaxialMaterial Steel01Thermal 1 420000 2e8 0.01
# Sección
# Section Tipo:(Fibras)
section FiberThermal 1 {
# patch rect matTag #SdivY #SdivZ yI zI yJ zJ
patch rect 1 2 1 -0.3 0.2 0.3 -0.2
}
#------------------------------------------------------------------------------------------------
# Transformación geométrica
# GeoTran type tag
geomTransf Linear 1
#------------------------------------------------------------------------------------------------
# Elementos
# element "Viga" eleTag NodoI NodoJ NumInt secTag geomTransf
element dispBeamColumnThermal 1 1 2 5 1 1;
puts "Modelo creado"
Análisis y resultados
puts "Crear analisis"
# analisis.tcl
#------------------------------------------------------------------------------------------------
# Serie de tiempo
# TimeSeries "Lineal": tsTag cFactor
timeSeries Linear 1 -factor 1.0
#------------------------------------------------------------------------------------------------
# Patrón de carga
# LoadPattern "PatronCarga": patternTag tsTag factor
pattern Plain 1 1 -fact 1.0 {
# eleLoad eleTags beamThermal T1 y1 T2 y2
eleLoad -ele 1 -type -beamThermal 30.0 -0.3 30.0 0.3
}

17
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

#------------------------------------------------------------------------------------------------
# Recorders
# Elemento ab
# Node recorder "Reacciones" :Arichivo <ndTag> dof tipoResp
recorder Node -file Reac.out -node 1 2 -dof 1 2 reaction
# element recorder "Fuerzas internas" Archivo <ele> tipoResp
recorder Element -file ElementoAB.out -ele 1 localForce;
#------------------------------------------------------------------------------------------------
# Opciones de análisis
constraints Transformation; # Control de constraints
numberer RCM; # Numeración de GDL
system FullGeneral; # Sistema de ecuaciones
algorithm Linear; # Algoritmo de solución
integrator LoadControl 1; # Integrador
analysis Static; # Tipo de análisis
analyze 1; # Ejecutar análisis
puts "Analisis finalizado"
puts "Resultados"
print ele 1

▪ Resultados en OpenSees y comparación


A partir del modelo anterior se obtuvo una carga axial de 17683.2 kN. Esto será corroborado con
cálculos teóricos. Para esto, es sabido que la fuerza axial generada en una viga bajo un cambio de
temperatura axial se calcula con la ecuación 4.

𝑃 = 𝐸𝐴𝛼 𝑇 ∆𝑇 (4)

Como se dijo anteriormente, el coeficiente de expansión térmica del acero usado en OpenSees es
tomado de la norma EN 1993-1-2 (2005) [4]. La ecuación depende del cambio de temperatura y
funciona en un rango de 20 a 750°C. Sin embargo, a temperaturas muy altas el cálculo de la fuerza
axial cambia puesto que empiezan a afectar otras variables que afectan la resistencia del material. La
expresión para calcular el coeficiente de expansión térmica se presenta en la ecuación 5.

(1.2 × 10−5 × 𝑇𝑓 + 0.4 × 10−8 × 𝑇𝑓2 − 2.416 × 10−4 )


𝛼𝑇 = (5)
∆𝑇

La expresión de la ecuación 5 supone una temperatura inicial de 20°C por lo cual para obtener el
coeficiente de expansión térmica para un cambio de 30°C se debe aplicar una temperatura 𝑇𝑓 = 50°C.
Los cálculos realizados se presentan en la ecuación 6 y 7.

(1.2 × 10−5 × 50 + 0.4 × 10−8 × 502 − 2.416 × 10−4 ) 1


𝛼𝑇 = = 1.228 × 10−5 (6)
30 °C

𝑃 = 200 × 0.6 ∗ 0.4 ∗ 1.228 × 10−5 × 30 = 17683.2 kN


(7)

El resultado teórico fue exactamente igual al obtenido en OpenSees. En la Tabla 10 y Figura 10 se


presentan los resultados teóricos y en OpenSees obtenidos para cambios de temperatura desde 10°C

18
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

a 80°C. Estos resultados fueron idénticos a los teóricos. Sin embargo, como se dijo al inicio del
problema, para temperaturas muy altas el comportamiento y resistencia de los materiales varía.

Tabla 10. Fuerza axial en viga simplemente apoyada para diferentes cambios de temperatura axial.
To, °C Tf, °C ΔT, °C αT, 1/°C P Teórico, kN P OpenSees, kN
20 30 10 0.0000122 5856 5856
20 40 20 0.00001224 11750.4 11750.4
20 50 30 0.00001228 17683.2 17683.2
20 60 40 0.00001232 23654.4 23654.4
20 70 50 0.00001236 29664 29664
20 80 60 0.0000124 35712 35712
20 90 70 0.00001244 41798.4 41798.4
20 100 80 0.00001248 47923.2 47923.2

Figura 10. Comparación de fuerza axial en viga simplemente apoyada obtenida con OpenSees y resultados teóricos.

▪ Detalles clave de la modelación en OpenSees


Primero, es importante aclarar que los comandos de OpenSees que incorporan el comportamiento
termo-mecánico de materiales fueron desarrollados por un grupo de investigación de la Universidad
de Edinburgh y tiene una documentación propia, separada de la documentación principal [6]. El
código realizado para modelar el comportamiento termo-mecánico de la estructura es similar a los
modelos realizados en ejemplos anteriores, con la diferencia de que en este caso se tuvo que crear un
material que luego se relaciona con una sección de fibras y un elemento, todos de tipo térmico. Los
comandos de comportamiento térmico son muy similares a comandos que ya existían anteriormente
en OpenSees. Los comandos térmicos usados en este modelo fueron: Steel01Thermal, FiberThermal,
dispBeamColumnThermal y para agregar la carga de temperatura se usa un patrón de carga
convencional, como los realizados en ejemplos anteriores, sin embargo, el tipo de carga es
beamThermal. Los demás comandos son iguales a los usados en otros ejemplos.
Es de vital importancia crear un recorder con las reacciones de todos los nodos de la estructura para
así obtener resultados correctos cuando se calculen las fuerzas internas en los elementos. Aunque, en

19
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

los demás ejemplos no era necesario crear un recorder para las reacciones, a menos que se requiriera
en los resultados, en el modelo de comportamiento térmico estas reacciones son necesarias. Esto no
es algo común en un software de análisis estructural ya que se está requiriendo un archivo de resultado
externo al método para que este funcione correctamente.

2.5 Ejemplo 5. Puente bajo carga de presfuerzo axial


Realizar un análisis lineal estático del modelo estructural del puente de la Figura 11 para obtener los
diagramas de fuerza axial, cortante y momento de la estructura.

a 75 kN/m b 75 kN/m c

7.5 7.5

Figura 11. Esquema simplificado de un puente con un cable con presfuerzo axial (dimensiones en metros).

▪ Parámetros
La viga tiene una sección de 0.3 × 0.45 m2, y un módulo de elasticidad 𝐸 = 2 × 107 kPa. El cable
tiene un diámetro 𝑑 = 7.62 cm, un módulo de elasticidad 𝐸 = 2 × 108 kPa y una carga de presfuerzo
𝑓𝑜 = 1200 kN. La constante del resorte es 𝐾 = 10000 kN/m. A continuación, se presenta el modelo
desarrollado en OpenSees.

▪ Código en OpenSees
Modelo
# Análisis lineal estático, ejemplo 5, unidades en kN, m
# -----------------------------------------------------------------------------------------------
wipe; # Borrar resultados anteriores
# Parámetros
set b 0.3; #Base de sección de viga
set h 0.45; #Altura de sección de viga
set Ev 2E7; #Modulo de elasticidad de viga
set Av [expr $b*$h]; #Área de sección de viga
set Iv [expr ($b*pow($h,3))/12]; #Inercia de sección de viga
set Wv 75.0; #Carga distribuida en viga

20
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

# Cable
set pi [expr acos(-1)]; # Constante pi
set Ec 2E8; #Modulo de elasticidad del cable
set di 0.0762; #Diámetro del cable
set Ac [expr ($pi*pow($di,2))/4]; # Área del cable
set Ic [expr ($pi/4)*pow(($di/2),4)]; #Inercia del cable
set fo 1200; #Carga de presfuerzo
set stress [expr $fo/$Ac]; #Esfuerzo inicial
set strain [expr $stress/$Ec]; #Deformación inicial del cable
#Resorte
set k 10000; #Constante de rigidez del resorte
# modelo.tcl
#------------------------------------------------------------------------------------------------
# crear modelo
model BasicBuilder -ndm 2 -ndf 3
#------------------------------------------------------------------------------------------------
# Nodos
# Node tag xCrd yCrd ndf
node 1 0.0 0.0 -ndf 3
node 2 7.5 0.0 -ndf 3
node 3 15.0 0.0 -ndf 3
node 4 0.0 6.0 -ndf 3
node 5 15.0 0.0 -ndf 3
#------------------------------------------------------------------------------------------------
# Constraints
# SPC tag Dx Dy Rz
fix 1 1 1 1
fix 3 0 1 0
fix 4 1 1 1
fix 5 1 1 1
#------------------------------------------------------------------------------------------------
# Materiales
# Material "Cable": matTag E
uniaxialMaterial Elastic 1 $Ec
# Material "Presfuerzo": matTag tag iniStress
uniaxialMaterial InitStrainMaterial 2 1 $strain; # Material con presfuerzo
inicial
# Material "Resorte": matTag E
uniaxialMaterial Elastic 3 $k
#------------------------------------------------------------------------------------------------
# Transformación geométrica
# GeoTran tipo tag
geomTransf Linear 1
#------------------------------------------------------------------------------------------------
# Elementos
# Element "Viga": eleTag NodoI NodoJ A E Iz geoTranTag
element elasticBeamColumn 1 1 2 $Av $Ev $Iv 1
# Element "Viga": eleTag NodoI NodoJ A E Iz geoTranTag
element elasticBeamColumn 2 2 3 $Av $Ev $Iv 1
# Element "Cable": eleTag NodoI NodoJ A matTag
element truss 3 2 4 $Ac 2
# Element "Resorte": eleTag NodoI NodoJ -mat matTag1 -dir dir1
element twoNodeLink 4 3 5 -mat 3 -dir 1
Análisis y resultados

21
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

# analisis.tcl
#------------------------------------------------------------------------------------------------
# Serie de tiempo
# TimeSeries "Lineal": tsTag cFactor
timeSeries Linear 1 -factor 1.0
#------------------------------------------------------------------------------------------------
# Patron de carga
# LoadPattern "Patron Carga": patternTag tsTag factor
pattern Plain 1 1 -fact +1.0 {

# eleLoad eleTags beamUniform Wy <Wx>


eleLoad -ele 1 -type -beamUniform -$Wv 0.0
eleLoad -ele 2 -type -beamUniform -$Wv 0.0
}
#------------------------------------------------------------------------------------------------
# Recorders
# Node Recorder "Desplazamientos": fileName <nodeTag> dof respType
recorder Node -file DespNodos.out -time -nodeRange 1 5 -dof 1 2 3 disp
# Node Recorder "Reacciones": fileName <nodeTag> dof respType
recorder Node -file ReaccionesNodos.out -time -nodeRange 1 5 -dof 1 2 3 reaction
# Elemento ab
recorder Element -file ElementoAB.out -ele 1 localForce;
# Elemento bc
recorder Element -file ElementoBC.out -ele 2 localForce;
# Elemento bd
recorder Element -file ElementoBD.out -ele 3 localForce;
#------------------------------------------------------------------------------------------------
# Opciones de análisis
constraints Transformation; # Control de constraints
numberer RCM; # Numeración de GDL
system BandGeneral; # Sistema de ecuaciones
algorithm Linear; # Algoritmo de solución
integrator LoadControl 1; # Integrador
analysis Static; # Tipo de análisis
analyze 1; # Ejecutar análisis

▪ Resultados
Ahora, se presentan las fuerzas internas en los extremos de los elementos de la estructura, seguido de
los diagramas de fuerzas internas del elemento ab, ver Tabla 11 y Figura 12.

Tabla 11. Fuerzas internas en los extremos de los elementos.


P, kN V, kN Mz, kN-m
Elemento
i j i j i j
ab 782.708 -782.708 -261.001 301.499 -300.684 -452.555
bc -21.154 21.154 -341.591 220.909 -452.555 0
cd 1029.450 -1029.450 0 0 0 0

22
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

Figura 12. Diagramas de fuerzas internas del elemento ab. Primero, diagrama de fuerza axial, seguido del diagrama de
fuerza cortante y finalmente diagrama de momentos.

▪ Comparación de resultados
Los resultados obtenidos con OpenSees son similares a los obtenidos en SAP2000 como se presenta
en la Tabla 12. Las fuerzas internas obtenidas en los extremos de los elementos fueron iguales en
ambos modelos desarrollados.

Tabla 12. Comparación de fuerzas internas en los extremos de los elementos obtenidas en OpenSees y SAP2000
Elemento ab bc bd
Nodo i j i j i j
OpenSees 782.708 -782.708 -21.154 21.154 1029.450 -1029.450
P, kN SAP2000 782.708 -782.708 -21.154 21.154 1029.450 -1029.450
Error absoluto 0 0 3.0E-04 3.0E-04 0 0
OpenSees -261.001 301.499 -341.591 220.909 0 0
V, kN SAP2000 -261.001 301.499 -341.591 220.909 0 0
Error absoluto 0 0 0 0 0 0
OpenSees -300.684 -452.555 -452.555 0 0 0
M, kN SAP2000 -300.684 -452.555 -452.555 8.53E-14 0 0
Error absoluto 0 0 0 8.527E-14 0 0

23
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

▪ Detalles clave de la modelación en OpenSees


Este ejemplo contiene dos requerimientos que no se han tenido en cuenta en modelos anteriores, un
presfuerzo axial y un resorte. En el caso del resorte, se creó un material elástico con el comando
uniaxialMaterial Elastic, el módulo de este material es la constante K del resorte. Luego, se usó un
elemento tipo twoNodeLink el cual está ubicado entre el nodo c de la estructura y un nodo auxiliar
en la misma posición del nodo c. El elemento recibe por parámetro el material del resorte y trabaja
en la dirección axial. También, es posible modelar el resorte usando un zeroLengthElement.
Para modelar la carga de presfuerzo se creó un material con una deformación inicial, el cual recibe
por parámetro el material del cable y la deformación deseada. Esta deformación inicial se calculó a
partir de la carga de presfuerzo, el módulo de elasticidad y el área del cable 𝜀 = 𝑓𝑜 /𝐸𝐴. Luego, el
material resultante es usado en un elemento tipo truss el cual es como una riostra con pasadores en
los extremos. El presfuerzo también puede ser modelado con un material con esfuerzo inicial.

2.6 Ejemplo 6: Viga con presfuerzo a flexión.

Para la estructura presentada en la Figura 13 calcular el diagrama de momentos generado por la acción
de carga uniforme distribuida y el presfuerzo a flexión generado por un cable.
Modelar un elemento con presfuerzo a flexión en OpenSeess es bastante desafiante, ya que no se
cuenta con funciones que faciliten este tipo de modelación como en SAP2000. En este ejemplo se
hará un modelo en OpenSees de un puente con presfuerzo a flexión y carga distribuida para calcular
el diagrama de momentos en la viga generado por ambos efectos. Se harán comparaciones con
resultados teóricos y dos modelos de SAP2000 con elementos tipo tendon y frame. En la Figura 13
se presenta un esquema del puente junto con una simplificación de la estructura, hecha por simetría
de cargas y geométrica.

285 kN/m 285 kN/m


a b c

(a)

40 40

e2

(b)

e1 e1

(c)

Figura 13. (a) Esquema del puente con presfuerzo a flexión y carga muerta. (b) Esquema de las excentricidades en el
puente. (c) Simplificación de la estructura para disminuir GDL (dimensiones en metros).

24
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

Como se muestra en el esquema de la Figura 13, una vez simplificado el modelo, no se consideran
las deformaciones axiales de la viga. La carga de presfuerzo será de 20 MN y el módulo de elasticidad
del cable es de 200 GPa. Las excentricidades del cable son de 0, -1.16 y 0.675 m. En el modelo de
OpenSees se debe calcular la excentricidad en cualquier punto arbitrario de la viga. Para esto se creó
un procedimiento, equivalente a una función en MATLAB, el cual contiene la aproximación
cuadrática de la deformada de un cable, ver ecuaciones 8,9,10 y 11.
(𝑒3 − 𝑒1 − 𝑏𝐿𝑜 )
𝑎= (8)
𝐿2𝑜

2
𝑏=− √𝑒 − 𝑒2 (√𝑒1 − 𝑒2 + √𝑒3 − 𝑒2 ) (9)
𝐿𝑜 1

𝑐 = 𝑒1
( 10 )

𝑒(𝑥) = 𝑎𝑥 2 + 𝑏𝑥 + 𝑐
( 11 )

Los valores e1, e2 y e3 son las excentricidades del cable.


▪ Código en OpenSees con efecto de presfuerzo a flexión
Procedimiento (función)
# exce.tcl
# Procedimiento para calcular el valor de excentricidad en un punto de elementos a partir de 3
puntos de excentricidad y la longitud del elemento
proc exce { e1 e2 e3 L x } {
global ex
set c $e1
set b [ expr (-2/$L)*pow($e1-$e2,0.5)*(pow($e1-$e2,0.5)+pow($e3-$e2,0.5))]
set a [ expr ($e3 - $e1 -$b*$L)/pow($L,2)]
set ex [ expr $a*pow($x,2) + $b*$x + $c]
}
Modelo
# Análisis lineal estático, ejemplo 6, unidades kN,m
# Parámetros
set fo 20000; #Carga de presfuerzo
set Av 100000000000000; #Área de viga
set Iv 100000000000000; #Inercia de viga
set Ev 1; #Modulo de viga
set Ac 1; #Área de cable
set Ic 1; #Inercia de cable
set Ec 2e8; #Modulo del cable
set L 40.0; #Longitud de la viga
set paso 0.1; #Valor del paso
set n 401; #(L/paso) +1
set eo [ expr $fo/$Ec ]; #Deformación inicial del presfuerzo
# Excentricidades
set e1 0.0
set e2 -1.16
set e3 0.675
# Parámetros de ecuación de excentricidad
set a 0.01478236
set b -0.26189722

25
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

set c 0
source exce.tcl; #Función de excentricidad
#------------------------------------------------------------------------------------------------
# Modelo
puts "Crear modelo"
model BasicBuilder -ndm 2 -ndf 3
#------------------------------------------------------------------------------------------------
# Nodos de viga
for {set i 0} {$i <= [expr $n -1]} {incr i} {
# node nodoTag nodoI Nodoj ndf
node [ expr $i +1] [ expr $paso*$i] 0. -ndf 3
}
# Nodos del cable
for {set i 1} {$i <= [ expr $n-1]} {incr i} {
set ID [ expr $i + $n]
# Proc exce e1 e2 e3 L pos
exce $e1 $e2 $e3 $L [expr $paso*$i]
# node nodoTag nodoI Nodoj ndf
node $ID [ expr $paso*$i] $ex -ndf 3
}
#------------------------------------------------------------------------------------------------
# Restricciones de movimiento
# SPC tag Dx Dy Rz
fix 1 0 1 0
fix $n 1 1 1
fix [expr 2*$n -1] 1 1 1
#------------------------------------------------------------------------------------------------
# Material
# uniaxialMaterial Elastic matTag E
uniaxialMaterial Elastic 1 $Ec
# uniaxialMaterial InitStrainMaterial matTag matRef e0
uniaxialMaterial InitStrainMaterial 2 1 [ expr $eo]
#------------------------------------------------------------------------------------------------
# Transformación geométrica
geomTransf Linear 1
#------------------------------------------------------------------------------------------------
# Elementos
# Viga
for {set i 1} {$i <= [expr $n -1]} {incr i} {
# element elasticBeamColumn eleTag NodoI NodoJ A E Iv geomTransf
element elasticBeamColumn $i $i [expr $i +1] $Av $Ev $Iv 1
}
# Cable
# element truss eleTag NodoI NodoJ A matTag
element truss $n 1 [expr $n+1] $Ac 2
for {set i 1} {$i <= [expr $n -2]} {incr i} {
# element truss eleTag NodoI NodoJ A matTag
element truss [expr $i + $n] [expr $i + $n] [expr $i +$n+1] $Ac 2
}
# Uniones
for {set i 1} {$i <= [expr $n-2]} {incr i} {
# element elasticBeamColumn eleTag NodoI NodoJ A E Iv geomTransf
element elasticBeamColumn [ expr 2*$n-2+$i] [expr $i+1] [expr $i + $n] $Av $Ev $Iv 1 2
}

26
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

Análisis y resultados
# timeSeries
timeSeries Linear 1 -factor 1.0
#------------------------------------------------------------------------------------------------
# Output
recorder Element -file FuerzasInternas.out -eleRange 1 [expr $n-1] force
#------------------------------------------------------------------------------------------------
# Opciones de análisis
constraints Transformation; # Control de constraints
numberer RCM; # Numeración de GDL
system BandGeneral; # Sistema de ecuaciones
algorithm Linear; # Algoritmo de solución
integrator LoadControl 1.0; # Integrador
analysis Static; # Tipo de análisis
analyze 1; # Ejecutar análisis

Para tener en cuenta el efecto de la carga distribuida en la estructura, se debe crear un patrón de carga
y asignar la carga deseada a cada elemento viga del modelo.
Análisis y resultados con carga muerta
#------------------------------------------------------------------------------------------------
# timeSeries
timeSeries Linear 1 -factor 1.0
#------------------------------------------------------------------------------------------------
#Patrón de carga
pattern Plain 1 1 {
for {set i 1} {$i <= $n-1} {incr i} {
#eleLoad eleTags beamUniform Wy <Wx>
eleLoad -ele $i -type -beamUniform -285.0
}
}
#------------------------------------------------------------------------------------------------
# Output
recorder Element -file FuerzasInternas.out -eleRange 1 [expr $n-1] force
#------------------------------------------------------------------------------------------------
# Opciones de análisis
constraints Transformation; # Control de constraints
numberer RCM; # Numeración de GDL
system BandGeneral; # Sistema de ecuaciones
algorithm Linear; # Algoritmo de solución
integrator LoadControl 1.0; # Integrador
analysis Static; # Tipo de análisis
analyze 1; # Ejecutar análisis

▪ Resultados
En la Figura 14, se presentan los diagramas de momento generados por el efecto de presfuerzo para
los modelos hechos al igual que los diagramas con efecto de presfuerzo y carga muerta combinados.

27
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

Figura 14. Primero, diagrama de momentos generados por el efecto del presfuerzo a flexión para modelos con paso de 0.5
(arriba) y 0.1 m (abajo). Seguido de diagramas de momentos generados por la combinación del presfuerzo a flexión y la
carga muerta distribuida para modelos con paso de 0.5 (arriba) y 0.1 m (abajo).

El momento al final de la luz obtenido con el modelo con paso de 0.1 m fue de -27620,2 kN-m
mientras que en el modelo con paso de 0.5 m fue de -27631.6 kN-m.
▪ Comparación de resultados
Para modelar la viga con presfuerzo a flexión en SAP2000 se hicieron 2 casos, uno con elementos
tipo tendón para modelar el cable y el otro con elementos tipo frame cada metro. En la Figura 15 se
presentan un esquema gráfico de los modelos creados. Es importante aclarar que en el modelo de

28
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

SAP2000 los elementos que une el frame del cable con la viga son infinitamente rígidos. En la Figura
16 se presenta la comparación entre los diagramas de momento obtenidos con OpenSees y SAP2000
con el efecto combinado de presfuerzo a flexión y carga muerta.

Figura 15. Modelos de viga con presfuerzo a flexión en SAP2000. Arriba, modelo con elementos tipo frame, abajo
modelo con elemento tipo tendon.

Figura 16. Comparación de diagramas de momento con efecto combinado de presfuerzo a flexión y carga muerta con
OpenSees y SAP2000.

Como se presenta en la Figura 16, los diagramas de momento obtenidos en los 2 modelos de SAP2000
y OpenSees tuvieron resultados iguales. La única diferencia es que en el caso del modelo en OpenSees
con paso de 0.5 m y SAP2000 con elementos tipo frame, se tienen menos puntos que en los otros 2
modelos, por lo cual dependiendo de la función que se use para graficar, los diagrama pueden tener
una forma continua o muy segmentada como se observa en la sección de resultados.
En la Tabla 13 se compara el momento al final de la luz obtenido en las 4 opciones de modelación
con el valor teórico para los efectos de presfuerzo, carga muerta y el combinado de ambos. El modelo
realizado en OpenSees con paso de 0.5 y 0.1 m tuvo un menor error relativo porcentual que los
modelos hechos en SAP2000. Además, tal como se esperaba el modelo en OpenSees con paso de 0.5
tuvo un mayor error porcentual que el modelo con paso de 0.1. Aunque, la diferencia es mínima entre

29
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

ambos modelos. En todo caso, el modelo en OpenSees con un paso de 0.1 es una mejor opción para
modelar este problema, ya que da la posibilidad de obtener más resultados a lo largo del elemento, lo
cual permite trazar diagramas de momentos más continuos.

Tabla 13. Comparación de modelos en OpenSees y SAP2000 con resultado teórico.


OpenSees SAP2000 Resultado teórico
Paso de 1 Paso de 0.1 Tipo Efecto Efecto
Tipo frame Total
m m tendon primario secundario
Efecto de carga muerta
M, kN-m -56999.9 -56999.9 -56530.53 -56995.90 [-] -57000.0
error relativo,
0.0002 0.0002 0.8236 0.0072 [-]
%
Efecto de presfuerzo a flexión
M, kN-m 29368.4 29379.7 29121.46 29358.75 13320.54 16064.72 29385.27
error relativo,
0.0574 0.0189 0.8977 0.0902 [-]
%
Efecto combinado
M, kN-m -27631.6 -27620.2 -27409.07 -27637.15 13320.54 16064.72 -27614.64
error relativo,
0.0614 0.0201 -0.7444 -0.0815 [-]
%

▪ Detalles clave de la modelación en OpenSees


Como se dijo al inicio de este ejemplo, modelar en OpenSees la respuesta de una viga con presfuerzo
a flexión requiere un modelo bastante complicado, ya que se deben crear n-elementos para la viga y
cable dependiendo del tamaño del paso que se quiera usar. Para esto se usaron recorridos con el
comando for. El presfuerzo se modeló igual a como se hizo con el ejemplo de presfuerzo axial, con
una deformación inicial, pero esta vez se aplicó a muchos elementos que formaban un cable con
excentricidades.
Los elementos tipo viga del modelo, se crearon como elementos tipo elasticBeamColumn, al igual
que las uniones entre el cable y la viga. Los elementos del cable se modelaron con el comando truss,
mismo comando usado en el ejemplo 5 para modelar el cable del puente. La función de las uniones
es transmitir la fuerza vertical que se genera en el cable, por efecto del presfuerzo, a la viga principal.
Esto, genera una especie de carga distribuida no uniforme que tiene el efecto contrario al de una carga
distribuida uniforme gravitacional en una viga. Como se puede ver el diagrama de momentos
generado por el presfuerzo a flexión es como el reflejo al generado por una carga distribuida
gravitacional. Al igual que en SAP2000 los elementos que forman las uniones viga-cable son
infinitamente rígido ya que su función es transmitir fuerza y deformar la viga por el efecto del
presfuerzo en el cable.

2.7 Ejemplo 7: Estructura con zonas rígidas

Para la estructura de la Figura 17 calcular los desplazamientos y fuerzas internas. Tener en cuenta la
longitud de las zonas rígidas al comparar las fuerzas internas obtenidas con OpenSees e
implementación manual.

30
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

𝑈2 𝑈3

a b
𝑈1

0.5

3 0.5

Figura 17. Estructura con zonas rígidas (dimensiones en metros).


▪ Parámetros
Para este ejemplo se usarán propiedades hipotéticas tal que 𝐸𝐴 = 65𝐸𝐼, de forma que se selecciona
un módulo de elasticidad e inercia unitarios para cumplir con el requerimiento. La estructura de la
Figura 17 solo tiene 3 grados de libertad en el nodo b.

▪ Código en OpenSees
Modelo
# Análisis lineal estático, ejemplo 7, unidades en kN,m
wipe
#------------------------------------------------------------------------------------------------
# modelo.tcl
model BasicBuilder -ndm 2 -ndf 3
#------------------------------------------------------------------------------------------------
# Nodos
# Nodo tag xCrd yCrd ndf
node 1 0.0 3.5 -ndf 3
node 2 3.0 3.5 -ndf 3
node 3 3.5 3.5 -ndf 3
node 4 3.5 3.0 -ndf 3
node 5 3.5 0.0 -ndf 3
#------------------------------------------------------------------------------------------------
# SP Constraints
# SPC tag Dx Dy Rz
fix 1 1 1 1
fix 5 1 1 1
#------------------------------------------------------------------------------------------------
# MP constraints
# MPC tipo msNd slNd

31
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

rigidLink beam 3 2
rigidLink beam 3 4
#------------------------------------------------------------------------------------------------
# Transformación geométrica
# GeoTran tipo tag
geomTransf Linear 1
#------------------------------------------------------------------------------------------------
# Elementos
# Element "Viga": eleTag NodoI NodoJ A E Iz geoTranTag
element elasticBeamColumn 1 1 2 65.0 1.0 1.0 1

# Element "Columna": eleTag NodoI NodoJ A E Iz geoTranTag


element elasticBeamColumn 2 4 5 65.0 1.0 1.0 1
Análisis y resultados
# analisis.tcl
# Serie de tiempo
# TimeSeries "Lineal": tsTag cFactor
timeSeries Linear 1 -factor 1.0
#------------------------------------------------------------------------------------------------
# Patrón de carga
# LoadPattern "Patrón carga": patronTag stTag factor
pattern Plain 1 1 -fact 1.0 {
# eleLoad eleTags Uniforme Wy <Wx>
eleLoad -ele 1 -type -beamUniform -50.0 0.0
}
#------------------------------------------------------------------------------------------------
# Recorders
# Node Recorder "Deformada": Nombre Archivo <nodeTag> GDL resp
recorder Node -file DespNodos.out -nodeRange 1 3 -dof 1 2 3 4 5 disp
# Node Recorder "Reacciones": Nombre Archivo <nodeTag> GDL resp
recorder Node -file ReaccNodos.out -nodeRange 1 3 -dof 1 2 3 4 5 reaction
# Element recorder "Fuerzas internas" Nombre Archivo Elemento resp
recorder Element -file ab.out -ele 1 localForce
# Element recorder "Fuerzas internas" Nombre Archivo Elemento resp
recorder Element -file bc.out -ele 2 localForce
#------------------------------------------------------------------------------------------------
# Opciones de análisis
# -----------------------------------------------------------------------------------------------
constraints Transformation; # Controlador de restricciones
numberer Plain; # Numeración de GDL
system FullGeneral; # Sistema de ecuaciones
algorithm Linear; # Algoritmo de solución
integrator LoadControl 1.0 4 0.001 1.0; # Integrador
analysis Static; # Tipo de análisis
analyze 1; # Ejecutar

▪ Resultados
Los desplazamientos obtenidos en los grados de libertad libres se presentan en la Tabla 14. Por otro
lado, las fuerzas internas en los extremos de los elementos y los diagramas de fuerzas internas de la
estructura se presentan en la Tabla 15 y Figura 18.

32
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

Tabla 14. Desplazamientos {UL}.


GDL Desplazamiento, m
1 -0.6972
2 -2.6948
3 17.3426

Tabla 15. Fuerzas internas en los extremos de los elementos obtenidas en OpenSees.
P, kN V, kN Mz, kN-m
Elemento
i j i j i j
Viga 15.1058 -15.106 91.6133 58.3867 56.6391 -6.79913
Columna 58.3867 -58.387 15.1058 -15.106 28.4396 16.8778

Figura 18. Diagramas de fuerzas internas en los elementos ab y bc de la estructura.

▪ Comparación de resultados

Para comparar los resultados obtenidos en OpenSees se usó el método matricial de rigidez
considerando zonas rígidas implementado manualmente. Primero, los desplazamientos obtenidos en
los grados de libertad libres, en OpenSees y la implementación manual fueron idénticos, ver Tabla
16. Luego, en cuanto a las fuerzas internas, los resultados obtenidos también fueron iguales con ambas
metodologías usadas, para la fuerza axial y cortante, pero en el caso de los momentos, se obtuvieron
resultados diferentes en los extremos de los elementos con zonas rígidas (Tabla 17).

33
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

Tabla 16. Comparación de desplazamientos obtenidos en OpenSees e implementación manual


Desplazamiento {UL}, m
GDL Error, %
OpenSees MATLAB
1 -0.6972 -0.6972 6.41E-05
2 -2.6948 -2.6948 2.80E-05
3 17.3426 17.3426 8.66E-05

Tabla 17. Comparación de fuerzas internas obtenidas en OpenSees e implementación manual.


P, kN V, kN Mz, kN-m
Elemento
i j i j i j
OpenSees 15.106 -15.106 91.613 58.387 56.639 -6.799
Viga
Manual 15.106 -15.106 91.613 58.387 56.639 -35.992
OpenSees 58.387 -58.387 15.106 -15.106 28.440 16.878
Columna
Manual 58.387 -58.387 15.106 -15.106 35.992 16.878

Los momentos que difieren entre ambas implementaciones son los generados al final de la viga y al
inicio de la columna. Sin embargo, este resultado difiere debido a que en OpenSees ambos elementos
del modelo tienen una longitud de 3 metros que va desde un nodo inicial, o final, hasta el inicio de la
zona rígida, por lo tanto, el momento obtenido en el extremo con zona rígida no tienen en cuenta la
longitud de la zona rígida. Mientras que, en la implementación manual, las fuerzas internas ya están
transformadas a la longitud total del elemento más zona rígida. Sin embargo, es posible demostrar
que los resultados son iguales, como se muestra en las ecuaciones 12, 13 y 14.

𝑀(𝑥) = 𝑀𝑖 − 𝑉𝑥 ( 12 )

▪ Viga
𝑀(𝑥) = −6.79913 − 58.3867𝑥
𝑀(0.5) = −35.992 kN-m ( 13 )

▪ Columna

𝑀(𝑥) = 28.4396 + 15.106𝑥


( 14 )
𝑀(0.5) = 35.992 kN-m

El proceso demostrado anteriormente consiste en usar la ecuación de la recta para determinar el


momento en el extremo de la zona rígida. Esto, es posible debido a que no hay carga distribuida en
la zona rígida, razón por la cual la ecuación de momento pasa a ser lineal. Por lo tanto, el momento
en el extremo se calcula usando la pendiente de la ecuación de momento la cual corresponden a la
fuerza cortante en el extremo de la zona rígida y el valor inicial de momento. Lugo, los momentos
obtenidos en los extremos de cada zona rígida fueron iguales a lo calculados con la implementación
desarrollada manualmente.

34
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

▪ Detalles clave de la modelación en OpenSees

Para modelar las zonas rígidas de este ejemplo se usó el comando rigidLink tipo beam el cual es un
constraint de puntos múltiples (MP Constraint), cuya función es transmitir la traslación y rotación
entre los grados de libertad relacionados. Esta relación funciona solo para rotaciones pequeñas. Los
demás comandos usados en este modelo son muy sencillos y similares a los usados en otros ejemplos.

35
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 2. Análisis lineal estático

36
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

3. Análisis no lineal estático


3.1 Ejemplo 1: No linealidad geométrica

Graficar el cambio en la fuerza aplicada en el nodo b y la carga axial en los elementos de la estructura
presentada en la Figura 19 en función de los desplazamientos del nodo b. Se deben tener en cuenta
no linealidades geométricas.

Pb

a c

16
Figura 19. Estructura con 2 elementos tipo 4 (dimensiones en metros).

▪ Código en OpenSees
Modelo
# Análisis no lineal estático, ejemplo 1, unidades en kN,m
# modelo.tcl
model BasicBuilder -ndm 2 -ndf 3
#------------------------------------------------------------------------------------------------
# Nodos
# Nodo tag xCrd yCrd ndf
node 1 0.0 0.0 -ndf 3
node 2 8.0 1.0 -ndf 3
node 3 16.0 0.0 -ndf 3
#------------------------------------------------------------------------------------------------
# SP Constraints
# SPC tag Dx Dy Rz
fix 1 1 1 1
fix 2 1 0 1
fix 3 1 1 1
#------------------------------------------------------------------------------------------------
# Material
#uniaxialMaterial tipo matTag E
uniaxialMaterial Elastic 1 1.0
#------------------------------------------------------------------------------------------------
# Elementos
# Element "Elemento ab": eleTag NodoI NodoJ A matTag
element corotTruss 1 1 2 1.0 1
# Element "Elemento bc": eleTag NodoI NodoJ A matTag
element corotTruss 2 3 2 1.0 1

37
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

Análisis y resultados
# analisis.tcl
# Serie de tiempo
# TimeSeries "Lineal": tsTag cFactor
timeSeries Linear 1 -factor 1.0
#------------------------------------------------------------------------------------------------
# Patrón de carga
# LoadPattern "Patrón carga": patronTag stTag factor
pattern Plain 1 1 -fact 1.0 {
# Load nodoTag Valores Carga ( 1 2 3)
load 2 0.0 -1.0 0.0
}
#------------------------------------------------------------------------------------------------
# Recorders
# Node Recorder "Deformada": Nombre Archivo <nodeTag> GDL resp
recorder Node -file DespNodos.out -node 2 -dof 2 disp
# Node Recorder "Reacciones": Nombre Archivo <nodeTag> GDL resp
recorder Node -file ReaccNodos.out -node 2 -dof 2 reaction
# Element recorder "Fuerzas internas" Nombre Archivo Elemento resp
recorder Element -file ab.out -ele 1 force
# Element recorder "Fuerzas internas" Nombre Archivo Elemento resp
recorder Element -file bc.out -ele 2 force
#------------------------------------------------------------------------------------------------
# Opciones de análisis
# -----------------------------------------------------------------------------------------------
# Controlador de restricciones
constraints Transformation
# Numeración de GDL
numberer Plain
# Sistema de ecuaciones
system FullGeneral
# Prueba de convergencia
test NormDispIncr 0.001 100
# Algoritmo de solución
algorithm Newton
# Integrador
integrator DisplacementControl 2 2 -0.01
# Tipo de análisis
analysis Static
# Ejecutar
analyze 200

▪ Resultados
La carga unitaria aplicada en el nodo b de la estructura varía a medida que la estructura se desplaza
hacia abajo. También, la fuerza axial que siente ambos elementos varía como se presenta en la Figura
20.

38
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

Figura 20. Curva de variación de fuerza axial en los elementos contra desplazamiento del nodo b (azul). Curva de
variación de carga aplicada y desplazamientos en el nodo b (naranja).

Acorde con la Figura 20, la carga axial tiene un comportamiento parabólico y aumenta en magnitud
a medida que los elementos de la estructura se declinan hasta llegar a una magnitud máxima cuando
la estructura está totalmente horizontal. Por otro lado, la fuerza Pb se comporta como una función
sinusoidal la cual es igual a cero cuando la estructura está totalmente horizontal.

▪ Comparación de resultados

La misma estructura fue modelada en SAP2000 con un análisis no lineal con efectos P-Delta más
largos desplazamientos. Ambas curvas resultaron totalmente iguales como se presenta en la Figura
21.

Figura 21. Comparación de curva Fb vs Ub y q1 vs Ub obtenida en OpenSees y SAP2000.

39
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

▪ Detalles clave de la modelación en OpenSees


En el modelo realizado en OpenSees se usaron elementos tipo coroTruss el cual es similar al elemento
truss usado en ejemplos anteriores, pero considera la no linealidad geométrica del elemento. Por otro
lado, el análisis realizado es controlado por desplazamientos y se escogió el nodo b como referencia.
El análisis aplica un desplazamiento hacia abajo en el nodo b con una magnitud de 0.01 m y se itera
200 veces para llegar a un desplazamiento objetivo de 2 m. A diferencia de los modelos realizados
en la sección anterior, en este se usa el algoritmo de Newton para resolver el sistema de ecuaciones
no lineal del problema.

3.2 Ejemplo 2: Catenaria de un cable.

Calcular las fuerzas internas y desplazamientos generados por el efecto de catenaria en el cable de la
Figura 22.
El efecto de catenaria en un cable hace referencia a la deformada generada en el cable bajo la acción
del preso propio de este. El efecto de catenaria se hace más notorio a medida que el cable en estudio
esté más extendido horizontalmente. Este problema se debe modelar a partir de un análisis no lineal
ya que así es posible realizar un equilibrio de fuerzas en la deformada del cable e iterar hasta lograr
que las fuerzas resistentes de la estructura sean iguales a las fuerzas actuantes, es decir el peso propio
de cable. En este caso se hicieron 2 modelos discretizados en OpenSees. Uno usando 4 elementos
tipo truss y el otro con 10 elementos tipos truss, ambos con formulación corrotacional. En la Figura
22, se presenta un esquema del cable sin deformar y la curva de esfuerzo deformación del material
del cable luego en la Figura 23, se presenta un esquema discretizado del mismo cable.

𝛾𝐴 𝐴
𝜎, MPa
160

1862
1582 10 GPa
𝑘𝑥
200 GPa
𝜀
𝑘𝑦

160
Figura 22.Esquema del cable a modelar, el nodo subrayado en negro hace referencia al que el giro es cero en este nodo. A
la derecha se presenta la curva esfuerzo deformación del material (dimensiones en metros).

▪ Parámetros

Rigidez de resortes 𝑘𝑦 = 10000 kN/m , 𝑘𝑥 = 100000 kN/m, área del cable 𝐴 = 0.0023688 m2 ,
módulo de elasticidad del cable 𝐸 = 200 GPa, presfuerzo en el cable 𝑞𝑜 = 1442 kN, deformación

40
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

axial causada por el presfuerzo 𝜀𝑜 = 𝑞𝑜 /𝐸𝐴 = 0,003, peso propio del material 𝛾 = 76.9729 kN/m3 ,
lo cual equivale a una carga distribuida 𝑊 = 𝛾𝐴 = 0.1823 kN/m.

10.45 kN

10.45 kN 8

7 160
10.45 kN 6

5
1000 kN 4

3
2

160
Figura 23. Esquema discretizado del cable (dimensiones en metros).

Como se presenta en el anterior esquema, la carga distribuida equivalente al peso propio en el cable
fue idealizada como cargas puntuales en los nodos del cable discretizado.
𝑊𝐿 = 0.1823 × 40√2 ≈ 10.45 kN ( 15 )

▪ Código del modelo discretizado con 4 elementos


Modelo
# Modelo de cable catenaria con 4 elementos tipo truss
# Análisis no lineal estático, ejemplo 2, unidades en kN,m
# Parámetros
wipe
set A 0.0023688
set qo 1442; #Presfuerzo en el cable
set E 2e8; # Modulo de elasticidad del cable
set fy [expr 1582*1000]; #Esfuerzo de fluencia del material
set ey [expr $fy/$E]; #Deformación de fluencia del material
set E2 1e7; # Modulo plástico del material
set fy2 [expr 1862*1000]; #Esfuerzo plástico del material
set eo [ expr $qo/($E*$A)]; #Deformación causado por el presfuerzo
set ky 10000; # Rigidez resorte en dirección Y
set kx 100000; # Rigidez resorte en dirección X
# modelo.tcl
# Crear modelo
model BasicBuilder -ndm 2 -ndf 2
#------------------------------------------------------------------------------------------------
# Nodos
# node ndTag X Y GDL
node 1 0.0 0.0 -ndf 2
node 2 40.0 40.0 -ndf 2
node 3 80.0 80.0 -ndf 2

41
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

node 4 120.0 120.0 -ndf 2


node 5 160.0 160.0 -ndf 2
node 6 -1.0 0.0 -ndf 2
node 7 0.0 -1.0 -ndf 2
#------------------------------------------------------------------------------------------------
#SP constraints
# ndTag X Y
fix 5 1 1
fix 6 1 1
fix 7 1 1
#------------------------------------------------------------------------------------------------
# Materiales
# tipo matTag E e
uniaxialMaterial ElasticPP 1 $E $ey
# tipo matTag E fy gap
uniaxialMaterial ElasticPPGap 2 $E2 $fy2 $ey
# tipo matTag mat1 mat2
uniaxialMaterial Parallel 3 1 2
# tipo matTag matRef eo
uniaxialMaterial InitStrainMaterial 4 3 $eo
# tipo matTag E
uniaxialMaterial Elastic 5 $ky
uniaxialMaterial Elastic 6 $kx
#------------------------------------------------------------------------------------------------
#Elementos
# tipo eleTag ndi ndj A matTag
element corotTruss 1 1 2 $A 4
element corotTruss 2 2 3 $A 4
element corotTruss 3 3 4 $A 4
element corotTruss 4 4 5 $A 4
# tipo eleTag ndi ndj -mat<> -dir <>
element twoNodeLink 5 1 6 -mat 6 -dir 1
element twoNodeLink 6 1 7 -mat 5 -dir 2
Análisis y resultados
#analisis.tcl
timeSeries Linear 1 -factor 1
#------------------------------------------------------------------------------------------------
#Patrón de carga
pattern Plain 1 1 {
#Carga Nodo X Y
load 1 0.0 -1000.0
load 2 0.0 -10.45
load 3 0.0 -10.45
load 4 0.0 -10.45
}
#------------------------------------------------------------------------------------------------
#Output
recorder Node -file "desp.out" -nodeRange 1 4 -dof 1 2 disp
recorder Element -file "fuerzasInte.out" -eleRange 1 4 force
#------------------------------------------------------------------------------------------------
# Opciones de análisis
# Sistema de ecuaciones
system FullGeneral
# Manejo de constraints

42
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

constraints Plain
# Numeración de GDL
numberer Plain
#Prueba de convergencia
test NormUnbalance 1e-7 100 2
# Integrador
integrator LoadControl 1.0
# Algoritmo de solución
algorithm Newton <-initialThenCurrent>
#Tipo de análisis
analysis Static;
# Ejecutar
analyze 1

La misma estructura de este ejemplo, se modeló también con 10 elementos para obtener una mejor
aproximación al comportamiento de una catenaria. Esto implica que cada elemento tiene una longitud
inicial de 𝐿𝑜 = 16√2 m. En este caso, el peso propio del cable se aplicó en los elementos como carga
distribuida en los ejes locales x e y, así: 𝑊𝑥 = 𝑊𝑠𝑖𝑛(𝜃) y 𝑊𝑦 = 𝑊𝑐𝑜𝑠(𝜃), donde 𝜃 son 45°. Los
grados de libertad de este modelo se enumeraron en el mismo sentido que el modelo de 4 elementos
para un total de 20 GDL.

▪ Código del modelo discretizado con 10 elementos.

Modelo
# Modelo de cable catenaria con 10 elementos tipo truss
# Análisis no lineal estático, ejemplo 2, unidades en kN,m
# Parámetros
wipe
set gamma 76.9729; #Peso específico del acero
set d 0.05; # Diámetro del cable
set pi [expr acos(-1)]; # Constante Pi
set A 0.0023688; # Área del cable
set W [ expr $gamma*$A]; #Peso muerto del cable
set theta [expr 45*$pi/180]; #Ángulo de inclinación
set Wx [ expr -$W*sin($theta)];
set Wy [ expr -$W*cos($theta)];
set qo 1442; #Presfuerzo en el cable
set E 2e8; # Modulo de elasticidad del cable
set fy [expr 1582*1000]; #Esfuerzo de fluencia del material
set ey [ expr $fy/$E]; #Deformación de fluencia del material
set E2 1e7; #Modulo plástico del material
set fy2 [expr 1862*1000]; #Esfuerzo plástico del material
set eo [ expr $qo/($E*$A)]; #Deformación causado por el presfuerzo
set ky 10000; # Rigidez resorte en dirección Y
set kx 100000; # Rigidez resorte en dirección X
# modelo.tcl
# Crear modelo
model BasicBuilder -ndm 2 -ndf 2
#------------------------------------------------------------------------------------------------
# Nodos
node 1 0.0 0.0 -ndf 2

43
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

node 2 16.0 16.0 -ndf 2


node 3 32.0 32.0 -ndf 2
node 4 48.0 48.0 -ndf 2
node 5 64.0 64.0 -ndf 2
node 6 80.0 80.0 -ndf 2
node 7 96.0 96.0 -ndf 2
node 8 112.0 112.0 -ndf 2
node 9 128.0 128.0 -ndf 2
node 10 144.0 144.0 -ndf 2
node 11 160.0 160.0 -ndf 2
node 12 -1.0 0.0 -ndf 2
node 13 0.0 -1.0 -ndf 2
#------------------------------------------------------------------------------------------------
#SP constraints
fix 11 1 1
fix 12 1 1
fix 13 1 1
#------------------------------------------------------------------------------------------------
# Materiales
# tipo matTag E e
uniaxialMaterial ElasticPP 1 $E $ey
# tipo matTag E fy gap
uniaxialMaterial ElasticPPGap 2 $E2 $fy2 $ey
# tipo matTag mat1 mat2
uniaxialMaterial Parallel 3 1 2
# tipo matTag matRef eo
uniaxialMaterial InitStrainMaterial 4 1 $eo
# tipo matTag
uniaxialMaterial Elastic 5 $ky
uniaxialMaterial Elastic 6 $kx
#------------------------------------------------------------------------------------------------
#Elementos
# tipo eleTag ndi ndj A matTag
element corotTruss 1 1 2 $A 4
element corotTruss 2 2 3 $A 4
element corotTruss 3 3 4 $A 4
element corotTruss 4 4 5 $A 4
element corotTruss 5 5 6 $A 4
element corotTruss 6 6 7 $A 4
element corotTruss 7 7 8 $A 4
element corotTruss 8 8 9 $A 4
element corotTruss 9 9 10 $A 4
element corotTruss 10 10 11 $A 4
# tipo eleTag ndi ndj -mat<> -dir<>
element twoNodeLink 11 1 12 -mat 6 -dir 1
element twoNodeLink 12 1 13 -mat 5 -dir 2
Análisis y resultados
#analisis.tcl
timeSeries Linear 1 -factor 1
#------------------------------------------------------------------------------------------------
#Patrón de carga
pattern Plain 1 1 {
# Carga Nodo X Y
load 1 0.0 -1000.

44
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

for {set i 2} {$i<= 10} {incr i} {


load $i 0.0 -4.18
}
}
#------------------------------------------------------------------------------------------------
#Output
recorder Node -file "desp.out" -nodeRange 1 10 -dof 1 2 disp
recorder Element -file "fuerzasInte.out" -eleRange 1 10 force
#------------------------------------------------------------------------------------------------
#Opciones de análisis
# Sistema de ecuaciones
system FullGeneral
# Manejo de constraints
constraints Plain
# Numeración de GDL
numberer Plain
# Prueba de convergencia
test NormUnbalance 1e-6 100 2
# Integrador
integrator LoadControl 1.0
# Algoritmo de solución
algorithm Newton <-initialThenCurrent>
# Tipo de análisis
analysis Static
#Ejecutar
analyze 1

▪ Resultados
En la Tabla 18 y Tabla 19 se presentan los desplazamientos obtenidos en cada grado de libertad,
acorde con el esquema presentado anteriormente de la estructura. También, se presenta la fuerza axial
en cada elemento contando de izquierda a derecha. Además, la deformada del cable generada por el
efecto de catenaria se presenta en la Figura 24. Como era de esperar, en el modelo realizado con 4
elementos para discretizar el cable, la deformada resultante tiene cambios de pendiente muy abruptos,
mientras que al discretizar el modelo del cable en más elementos, en este caso 10, la curva de la
deformada resulta en una línea más suavizada la cual representa de una manera más aproximada la
deformada en el cable por el efecto de catenaria. Sin embargo, los desplazamientos de ambos modelos
son similares.

Tabla 18. Desplazamientos en los GDL y fuerza axial en los elementos del modelo con 4 elementos.
GDL UL, m Elemento q1, kN
1 0.00923226 1 1425.25
2 -9.95E-05 2 1432.60
3 0.315184 3 1439.99
4 -0.31126 4 1447.42
5 0.414928
6 -0.412845
7 0.309512
8 -0.308044

45
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

Tabla 19. Desplazamientos en los GDL y fuerza axial en los elementos del modelo con 10 elementos.
GDL UL, m Elemento q1, kN
1 0.009 1 1427.47
2 -0.003 2 1430.40
3 0.156 3 1433.34
4 -0.152 4 1436.28
5 0.270 5 1439.23
6 -0.267 6 1442.19
7 0.351 7 1445.15
8 -0.349 8 1448.12
9 0.399 9 1451.09
10 -0.398 10 1454.07
11 0.414
12 -0.413
13 0.396
14 -0.395
15 0.346
16 -0.345
17 0.263
18 -0.262
19 0.148
20 -0.147

Figura 24. Deformada del cable por efecto de catenaria en modelos de 4 y 10 elementos.

▪ Comparación de resultados
Como punto de comparación, se usaron los resultados obtenidos de implementar el método matricial
de análisis no lineal estático para el modelo de 4 elementos y una implementación en SAP2000 en el
caso del modelo de 10 elementos (Figura 25). Ambos modelos realizados en OpenSees tuvieron

46
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

resultados iguales a sus homólogos implementados manualmente y en SAP2000. En la Tabla 20, se


comparan la fuerza axial en cada elemento obtenida en ambos modelos realizados.

Figura 25. Comparación de deformada de catenaria. A la izquierda, modelo en OpenSees con 4 elementos y comparación
con implementación manual, seguido de modelo en OpenSees con 10 elementos y comparación con SAP2000.

Tabla 20. Comparación de fuerza axial en los elementos de la estructura. A la izquierda modelo de 4 elementos seguido
del modelo de 10 elementos.
q1 q1 Manual Error q1 q1 SAP2000 Error
Elemento Elemento
kN (kN) % kN kN %
1 1425.25 1424.17 0.076 1 1427.47 1424.25 0.226
2 1432.60 1432.00 0.042 2 1430.40 1427.14 0.228
3 1439.99 1439.00 0.069 3 1433.34 1430.05 0.230
4 1447.42 1446.35 0.074 4 1436.28 1432.96 0.232
5 1439.23 1435.87 0.234
6 1442.19 1438.79 0.236
7 1445.15 1441.72 0.238
8 1448.12 1444.65 0.240
9 1451.09 1447.59 0.242
10 1454.07 1450.53 0.244

▪ Detalles clave de la modelación en OpenSees


Como se dijo al inicio de este ejemplo, los elementos discretizados del cable se modelaron como
elementos tipo coroTruss, comando que ya había sido usado en el ejemplo 1 de la sección de análisis
no lineal estático. También, se modelaron los 2 resortes de la estructura con elementos tipo
twoNodeLink, igual a como se hizo en ejemplos anteriores de la sección de análisis lineal estático.
Por otro lado, los elementos que conforman el cable reciben por parámetro un material tipo Parrallel
creado anteriormente. Este material es clave, ya que se encarga de modelar la curva de esfuerzo
deformación presentada al inicio del problema. Esto, lo hace a partir de otros 2 materiales los cuales
trabajan en paralelo, lo cual indica que la deformación de ambos modelos del material es igual, pero
la rigidez y el esfuerzo es aditivo. Los materiales escogidos para representar la curva esfuerzo-
deformación del material del cable fueron ElasticPP y ElasticPPGap, los cuales crean un material
elástico perfectamente plástico, pero difieren en que con el comando ElasticPPGap se puede agregar
una deformación inicial o Gap. Sin embargo, estos 3 materiales podrían haber sido reemplazados por

47
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

un único material de tipo Steel01 el cual crean una curva esfuerzo-deformación, o fuerza-
desplazamiento, bilineal que es una aproximación al comportamiento real del acero, el cual tiene una
parte elástica lineal y luego de pasar la fluencia tiene un comportamiento plástico con un
endurecimiento por deformación.

3.3 Ejemplo 3. Pórtico con rotulas plásticas


El pórtico de la Figura 26 tiene rotulas plásticas a flexión en los extremos de la viga y un elemento
ARP (Arriostramiento Restringido al Pandeo) con una rotula plástica axial. Obtener la curva de
Pushover de esta estructura.

400 kN 400 kN
10 kN/m
b c
100 kN

4.5

a d

Figura 26. Pórtico con rotulas plásticas a flexión y ARP con rotula plástica axial (dimensiones en metros).

Los elementos del pórtico son de acero con un módulo de elasticidad E=200 GPa. El elemento ARP
tiene un área equivalente de 6 cm2 y una rotula plástica elastoplástica con fuerza de fluencia qy1=224
kN. La viga tiene sección W18×76 y 2 rótulas plásticas a flexión, ambas con un comportamiento
elastoplástico y un momento de fluencia qy2=1013 kN-m. Las columnas del pórtico tienen sección
W14×132.
El pórtico se modela con 2 metodologías diferentes en OpenSees. En la primera se usan elementos
tipo ZeroLenght para modelar las rotulas plásticas de la viga y en la segundo se usa un elemento tipo
Displacement Beam Column (DBCE) para modelar la viga con una sección de fibras y el
comportamiento elastoplástico del material. Se usa un elemento tipo TwoNodeLink para modelar la
riostra y un material elastoplástico para modelar el comportamiento del elemento.

En ambos modelos, se hace un análisis no lineal controlado por carga para la carga vertical inicial, y
un análisis no lineal lateral controlado por desplazamiento, hasta que el desplazamiento horizontal
del nodo b sea de 40 cm. Al final, se debe obtener la curva Pushover con ambos métodos. En la Tabla
21 se presentan las propiedades geométricas de las secciones de la viga y las columnas, tomadas de
las Tablas AISC 13 [7] de propiedades de secciones de vigas y columnas.

48
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

Tabla 21. Propiedades geométricas de vigas y columnas de acero con sección W (AISC-13).
Viga W18×76 Columna W14×132
Parámetro
[in] [m] [in] [m]
A 22.3 in2 1.439E-02 m2 38.8 in2 2.503E-02 m2
d 18.2 in 4.623E-01 m 14.7 in 3.734E-01 m
tw 0.425 in 1.080E-02 m 0.645 in 1.638E-02 m
bf 11 in 2.794E-01 m 14.7 in 3.734E-01 m
tf 0.68 in 1.727E-02 m 1.03 in 2.616E-02 m
I 1330 in4 5.536E-04 m4 1530 in4 6.368E-04 m4
Z 163 in3 2.671E-03 m3 234 in3 3.835E-03 m3

▪ Código en OpenSees con ZeroLenghtElement


Modelo
# Análisis no lineal estático, ejemplo 3, unidades en kN, m
# Modelo con zeroLenght element
wipe
#------------------------------------------------------------------------------------------------
# modelo.tcl
# Crear modelo
model BasicBuilder -ndm 2 -ndf 3
#------------------------------------------------------------------------------------------------
# Nodos
# Node tag xCrd yCrd ndf
node 1 0.0 0.0 -ndf 3
node 2 0.0 4.5 -ndf 3
node 3 9.0 4.5 -ndf 3
node 4 9.0 0.0 -ndf 3
node 5 0.0 4.5 -ndf 3
node 6 9.0 4.5 -ndf 3
#------------------------------------------------------------------------------------------------
# SP constraints
# SPC tag Dx Dy Rz
fix 1 1 1 0
fix 4 1 1 0
#------------------------------------------------------------------------------------------------
# Materiales
# Material "ARP": matTag E epsyP epsyN
uniaxialMaterial ElasticPP 1 1.192570E+04 1.878296E-02 -1.878296E-02
# Material "matRigido": matTag E
uniaxialMaterial Elastic 2 1e10
# Material "rotulaM": matTag Fy E b
uniaxialMaterial Steel01 3 1013.0 1.000000E+13 0.0
#------------------------------------------------------------------------------------------------
# Transformación geométrica
# GeoTran type tag
geomTransf Linear 1
# Usar transformación corrotacional o lineal para tener o no en cuenta efectos no lineales
geométricos
#------------------------------------------------------------------------------------------------
# Elementos
# Element "Columna": eleTag NodeI NodeJ A E Iz geoTranTag

49
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

element elasticBeamColumn 1 1 2 2.503221E-02 2e8 6.368341E-04 1


# Element "Viga": eleTag NodeI NodeJ A E Iz geoTranTag
element elasticBeamColumn 2 5 6 1.438707E-02 2e8 5.535878E-04 1
# Element "Columna": eleTag NodeI NodeJ A E Iz geoTranTag
element elasticBeamColumn 3 4 3 2.503221E-02 2e8 6.368341E-04 1
# Element "ARP": eleTag NodeI NodeJ -mat -dir
element twoNodeLink 4 1 3 -mat 1 -dir 1
# Element "rotulaM": eleTag NodeI NodeJ -mat 1 2 3 .. -dir 1 2 3 ..
element zeroLength 5 2 5 -mat 2 2 3 -dir 1 2 6
# Element "rotulaM": eleTag NodeI NodeJ -mat 1 2 3 .. -dir 1 2 3 ..
element zeroLength 6 6 3 -mat 2 2 3 -dir 1 2 6
Análisis de carga vertical y resultados
# analisis.tcl
# Análisis no lineal vertical
#------------------------------------------------------------------------------------------------
# timeSeries
# TimeSeries "Lineal": tsTag cFactor
timeSeries Linear 1 -factor 1.0
#------------------------------------------------------------------------------------------------
# Patrón de carga vertical
# LoadPattern "Vertical": patternTag tsTag factor
pattern Plain 2 1 -fact 1.0 {
# Load nodeTag Fx Fy Mz
load 2 0.0 -400.0 0.0
load 3 0.0 -400.0 0.0
# eleLoad eleTags beamUniform Wy <Wx>
eleLoad -ele 2 -type -beamUniform -10.0 0.0
}
# Recorders
# Node Recorder "DefoShape": fileName <nodeTag> dof respType
recorder Node -file Vertical_Dsp.out -nodeRange 1 6 -dof 1 2 3 disp
# Node Recorder "Reactions": fileName <nodeTag> dof respType
recorder Node -file Vertical_Reac.out -node 1 4 -dof 1 reaction
# Opciones de análisis
# "Análisis Vertical": Tipo: Estático
# -----------------------------------------------------------------------------------------------
# Control de constraints
constraints Transformation
# Numeración de GDL
numberer RCM
# Sistema de ecuaciones
system BandGeneral
# Prueba de convergencia
test EnergyIncr +1.000000E-06 25 0 2
# Algoritmo de solución
algorithm Newton
# Integrador
integrator LoadControl +1.000000E+00
# Tipo de análisis
analysis Static
# Ejecutar análisis
analyze 1
#------------------------------------------------------------------------------------------------
# Reiniciar para el siguiente caso de análisis

50
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

# -----------------------------------------------------------------------------------------------
setTime 0.0
loadConst
remove recorders
wipeAnalysis
Análisis de carga lateral y resultados
#------------------------------------------------------------------------------------------------
# Análisis lateral
# Patrón de carga lateral
# LoadPattern "Lateral": patternTag tsTag factor
pattern Plain 1 1 -fact 1.0 {
# Load nodeTag Fx Fy Mz
load 2 100.0 0.0 0.0
}
#------------------------------------------------------------------------------------------------
# Recorders
# TwoNodeLink Recorder "ARP": fileName <eleTag> arguments
recorder Element -file Lateral_ARP_BasForc.out -ele 4 basicForce
recorder Element -file Lateral_ARP_BasDefo.out -ele 4 basicDeformation
# Node Recorder "DefoShape": fileName <nodeTag> dof tipoResp
recorder Node -file despOP_rotula.out -node 2 -dof 1 disp
# Node Recorder "Reactions": fileName <nodeTag> dof tipoResp
recorder Node -file reacOP_rotula.out -node 1 4 -dof 1 reaction
# ZeroLength Recorder "rotulaM": fileName <eleTag> arguments
recorder Element -file Lateral_rotulaM_BasForc.out -ele 5 6 basicForce
recorder Element -file Lateral_rotulaM_BasDefo.out -ele 5 6 deformation
#------------------------------------------------------------------------------------------------
# Opciones de análisis
# "Análisis Lateral": Tipo: Estático
# -----------------------------------------------------------------------------------------------
# Control de constraints
constraints Transformation
# Numeración de GDL
numberer RCM
# Sistema de ecuaciones
system BandGeneral
# Prueba de convergencia
test EnergyIncr +1.000000E-06 25 0 2
# Algoritmo de solución
algorithm Newton
# Integrador
integrator DisplacementControl 2 1 0.01
# Tipo de análisis
analysis Static
# Ejecutar análisis
analyze 40

▪ Código en OpenSees con DBCE


Modelo
# Análisis no lineal estático, ejemplo 3, unidades en kN,m
# Modelo con elementos dispBeamColumn
#------------------------------------------------------------------------------------------------
wipe

51
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

# Parámetros
set E 2e8; #Modulo de elasticidad de materiales
# Parámetros del ARP
set Ar [expr 6/pow(100,2)]; # Área de riostra
set qy1 224; # Fuerza de fluencia de riostra
set Lr [expr pow(pow(9,2)+pow(4.5,2),0.5)]; # Longitud de riostra
set Ka [expr $E*$Ar/$Lr]; # Rigidez Axial
# Parámetros viga
set Lv 9; # Longitud de viga
set Iv [expr 1330*pow(0.0254,4)]; #Inercia de viga
set qy2 1013; # Momento de fluencia de viga
set Zx [expr 163*pow(0.0254,3)]; #
set fy [expr $qy2/(1.1*$Zx)]; # Esfuerzo de fluencia del acero
# Parámetros columna
set Ac [expr 38.8*pow(0.0254,2)]; # Área de columna
set Ic [expr 1530*pow(0.0254,4)]; # Inercia de columna
#------------------------------------------------------------------------------------------------
# modelo.tcl
#------------------------------------------------------------------------------------------------
# Crear modelo
model BasicBuilder -ndm 2 -ndf 3
#------------------------------------------------------------------------------------------------
# Nodos
# Node tag xCrd yCrd ndf
node 1 0.0 0.0 -ndf 3
node 2 0.0 4.5 -ndf 3
node 3 9.0 4.5 -ndf 3
node 4 9.0 0.0 -ndf 3
#------------------------------------------------------------------------------------------------
# SP constraints
# SPC tag Dx Dy Rz
fix 1 1 1 0
fix 4 1 1 0
#------------------------------------------------------------------------------------------------
# Materiales
# Material "ARP": matTag fy E b
uniaxialMaterial Steel01 1 $qy1 $Ka 0.0
# Material "Viga": matTag Fy E b
uniaxialMaterial Steel01 2 $fy 2e8 0.0
#------------------------------------------------------------------------------------------------
# Sección
#section tipo secTag matTag d tw bf
tf Nfw Nff
section WFSection2d 1 2 [expr 18.2*0.0254] [expr 0.425*0.0254] [expr 11*0.0254] [expr
0.68*0.0254] 1 3
#------------------------------------------------------------------------------------------------
# Transformación geométrica
# GeoTran type tag
geomTransf Corotational 1
#------------------------------------------------------------------------------------------------
# Elementos
# Element "Columna": eleTag ndI ndJ A E Iz geoTranTag
element elasticBeamColumn 1 1 2 $Ac $E $Ic 1
# Element "Viga": eleTag ndI ndJ numIntPts secTag geoTranTag

52
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

element dispBeamColumn 2 2 3 5 1 1
# Element "Columna": eleTag ndI ndJ A E Iz geoTranTag
element elasticBeamColumn 3 4 3 $Ac $E $Ic 1
# Element "ARP": eleTag NodeI NodeJ -mat -dir
element twoNodeLink 4 1 3 -mat 1 -dir 1
Análisis de carga vertical y resultados
# analisis.tcl
#------------------------------------------------------------------------------------------------
# Análisis de carga vertical
#------------------------------------------------------------------------------------------------
# timeSeries
# TimeSeries "Lineal": tsTag cFactor
timeSeries Linear 1 -factor 1.0
#------------------------------------------------------------------------------------------------
# Patrón de carga vertical
# LoadPattern "Vertical": patternTag tsTag factor
pattern Plain 2 1 -fact +1.000000E+00 {
# Load nodoTag Fx Fy Mz
load 2 0.0 -400.0 0.0
load 3 0.0 -400.0 0.0
# eleLoad eleTags beamUniform Wy <Wx>
eleLoad -ele 2 -type -beamUniform -10.0 0.0
}
#------------------------------------------------------------------------------------------------
# Recorders
# Node Recorder "DefoShape": nombreArchivo <nodeTag> dof respType
recorder Node -file Vertical_Dsp_DBE.out -nodeRange 1 4 -dof 1 2 3 disp
# Node Recorder "Reactions": nombreArchivo <nodeTag> dof respType
recorder Node -file Vertical_Reac_DBE.out -node 1 4 -dof 1 reaction
#------------------------------------------------------------------------------------------------
# Opciones de análisis
# "Análisis Vertical": Tipo: Estático
# -----------------------------------------------------------------------------------------------
# Control de constraints
constraints Transformation
# Numeración de GDL
numberer RCM
# Sistema de ecuaciones
system BandGeneral
# Prueba de convergencia
test EnergyIncr 1.0E-06 100 0 2
# Algoritmo de solución
algorithm Newton
# Integrador
integrator LoadControl 1.0
# Tipo de análisis
analysis Static
# Ejecutar análisis
analyze 1
puts "analisis vertical finalizado"
#------------------------------------------------------------------------------------------------
# Reiniciar para siguiente análisis
setTime 0.0
loadConst

53
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

remove recorders
wipeAnalysis
Análisis de carga lateral y resultados
# Análisis de carga lateral
#------------------------------------------------------------------------------------------------
# Patrón de carga vertical
# LoadPattern "Lateral": patternTag tsTag factor
pattern Plain 1 1 -fact 1.0 {
# Load nodeTag Fx Fy Mz
load 2 100.0 0.0 0.0
}
#------------------------------------------------------------------------------------------------
# Recorders
# TwoNodeLink Recorder "ARP": nombre Archivo <eleTag> arguments
recorder Element -file ARP_BasForc.out -ele 4 basicForce
recorder Element -file ARP_BasDefo.out -ele 4 basicDeformation
# Node Recorder "DefoShape": nombre Archivo <nodeTag> dof respType
recorder Node -file Desp_DBE.out -node 2 -dof 1 disp
# Node Recorder "Reactions": nombre Archivo <nodeTag> dof respType
recorder Node -file Reac_DBE.out -node 1 4 -dof 1 reaction
#------------------------------------------------------------------------------------------------
# Opciones de análisis
# AnalysisOptn "Análisis Lateral": Tipo: Estático
# -----------------------------------------------------------------------------------------------
# Control de constraints
constraints Transformation
# DOF Numberer
numberer RCM
# Sistema de ecuaciones
system BandGeneral
# Prueba de convergencia
test EnergyIncr +1.000000E-06 25 0 2
# Algoritmo de solución
algorithm Newton
# Integrador
integrator DisplacementControl 2 1 1.0E-02
# Tipo de análisis
analysis Static
# Ejecutar análisis
analyze 41
puts "Analisis lateral finalizado"

▪ Resultados
Ambos modelos creados en OpenSees pueden tener o no en cuenta la no linealidad geométrica de la
estructura, esto se hace al escoger el tipo de transformación geométrica a usar, la cual puede ser lineal,
P-Delta o corrotacional. A continuación, en la Figura 27 se presenta la curva Pushover obtenida con
el modelo con ZeroLenghtElement y DBCE con y sin efectos no lineales geométricos.

54
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

Figura 27. Curva PushOver de modelos en OpenSees con zeroLenghtElement y DBCE. Arriba, curva con efectos no
lineales geométricos, seguida de curva sin efectos no lineales geométricos.

Cuando se considera la no linealidad geométrica de la estructura, la curva Pushover tiene una


pendiente menor a lo largo de sus tramos y en el tramo final presenta una pendiente negativa,
característico de la perdida de resistencia que generan los efectos geométricos no lineales. Por otro
lado, la curva PushOver sin efectos no lineales geométricos no tiene la caída de resistencia en su
último tramo, ya que al no tener en cuenta estos efectos, la matriz de rigidez se mantiene constante
en cada tramo de la curva.

▪ Comparación de resultados
Para comparar los resultados obtenidos en OpenSees se hicieron 2 modelos en SAP2000, uno
teniendo en cuenta la no linealidad geométrica de la estructura y el otro sin considerar efectos
geométricos no lineales y también se usó el método de evento a evento manualmente, sin considerar
efectos geométricos no lineales, como referencia a los resultados teóricos. Las curvas de Pushover
obtenidas en OpenSees fueron muy similares a las obtenidas en SAP2000 y el método de evento a
evento para los modelos con zeroLenghtElement y DBCE (Figura 28). Además, se observa más
claramente como la pendiente de las curvas Pushover sin efectos geométricos no lineales es mayor
en todos los tramos a sus homologas con efectos de no linealidad geométrica. Por otro lado, es posible
notar que en los modelos realizados en OpenSees no se graficaron los resultados desde las reacciones
del análisis vertical ya que sus respectivas curvas de Pushover no empiezan desde cero, como lo hacen
las de SAP2000. Sin embargo, es también notorio que una extrapolación de la gráfica hacia cero sería
muy parecida a los resultados de SAP2000.

55
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

Figura 28. Comparación de curvas PushOver de OpenSees, SAP2000 e implementación manual.

▪ Detalles clave de la modelación en OpenSees


Para el primer modelo se usan elementos elásticos para vigas y columnas y a estas se le agregaron
pasadores y rotulas plásticas acordes con el esquema de la estructura. Los pasadores se modelan con
el comando zeroLenghtElement, y un material infinitamente rígido en dirección axial y cortante. Para
modelar las rotulas plásticas se usó el mismo tipo de elemento, pero con un material elástico
perfectamente plástico (ElasticPP) y Steel01 para las rotulas axiales y a flexión respectivamente. En
el caso de la rótula axial, lo que se modela corresponde al comportamiento del elemento completo
por lo que se usaron elementos tipo twoNodeLink, mientras que, en el caso de las rótulas a flexión,
se modela solo el comportamiento de la rótula a parte del elemento. Para esto, se usa un material
Steel01, con una pendiente muy grande y luego un factor de disminución de pendiente igual a cero,
para que la curva sea elastoplástica. El momento de fluencia es el mismo indicado en el enunciado
del problema. Finalmente, se crea un caso de análisis de carga vertical, y luego otro caso de carga
lateral el cual inicia a partir de los resultados del caso vertical.
En el caso del modelo con elementos tipo DBCE, la plasticidad de las vigas se modela de manera
distribuida. Para esto, se crean secciones de fibras para las vigas con el comando WFSection2d, el
cual recibe por parámetros las dimensiones geométricas de un elemento de sección W. El material de
la sección se modela con el comando Steel01, pero la curva modelada por el material no corresponde
a una relación fuerza-desplazamiento como se hizo en modelos anteriores, sino a una curva esfuerzo-
deformación, donde la pendiente es el módulo de elasticidad del material y el esfuerzo de fluencia se
calcula con la ecuación 16, tomada del estándar ASCE 41-17 [8]:
𝑞𝑦 = 𝑅𝑦 𝑍𝑥 𝑓𝑦
( 16 )

donde, 𝑓𝑦 es el esfuerzo de fluencia, 𝑞𝑦 es el momento de fluencia, 𝑅𝑦 es un coeficiente el cual


depende del tipo de acero usado, para este caso tiene un valor de 1.1 y 𝑍𝑥 es una propiedad geométrica

56
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

de la sección de viga W. Los elementos ARP y columnas se modelan igual que en el modelo con
plasticidad concentrada.
3.4 Ejemplo 4: Edificio de cortante

Graficar la curva Pushover del edificio de cortante presentado en la Figura 29. También, graficar la
curva de fuerza cortante contra deriva para cada piso.

185 kN

148 kN

111 kN
𝑉, kN
20
74 kN

556 876
37 kN
17513
𝑣, m

Figura 29. Esquema del edificio de cortante y curva de fuerza-desplazamientos de las columnas (dimensiones en metros).

Para modelar la estructura anterior, solo se tendrá en cuenta una columna del edifico ya que, al tener
vigas infinitamente rígidas, el desplazamiento horizontal en un piso es igual en ambos nodos de la
viga del piso.

▪ Código en OpenSees
Modelo
# Análisis no lineal estático, ejemplo 4, unidades en kN, m
wipe
# modelo.tcl
# Crear modelo
model BasicBuilder -ndm 2 -ndf 2
#------------------------------------------------------------------------------------------------
# Nodos
# Node tag xCrd yCrd ndf
node 1 0.0 0.0 -ndf 2
node 2 0.0 4.0 -ndf 2
node 3 0.0 8.0 -ndf 2
node 4 0.0 12.0 -ndf 2
node 5 0.0 16.0 -ndf 2
node 6 0.0 20.0 -ndf 2
#------------------------------------------------------------------------------------------------
# SP constraints
# SPC tag Dx Dy
fix 1 1 1

57
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

fix 2 0 1
fix 3 0 1
fix 4 0 1
fix 5 0 1
fix 6 0 1
#------------------------------------------------------------------------------------------------
# Materiales
# Material "matRigi": matTag E
uniaxialMaterial Elastic 1 1e10
# Material "materialCorte": matTag Fy E b
uniaxialMaterial Steel01 2 556.0 17513.0 [expr 876.0/17513.0]
#------------------------------------------------------------------------------------------------
# Elementos
# Element "Columna": eleTag NodoI NodoJ -mat -dir
element twoNodeLink 1 1 2 -mat 2 -dir 2
# Element "Columna": eleTag NodoI NodoJ -mat -dir
element twoNodeLink 2 2 3 -mat 2 -dir 2
# Element "Columna": eleTag NodoI NodoJ -mat -dir
element twoNodeLink 3 3 4 -mat 2 -dir 2
# Element "Columna": eleTag NodoI NodoJ -mat -dir
element twoNodeLink 4 4 5 -mat 2 -dir 2
# Element "Columna": eleTag NodoI NodoJ -mat -dir
element twoNodeLink 5 5 6 -mat 2 -dir 2
Análisis y resultados
# analisis.tcl
# timeSeries
# TimeSeries "Lineal": tsTag cFactor
timeSeries Linear 1 -factor 1.0
#------------------------------------------------------------------------------------------------
# Patrón de carga
# LoadPattern "Lateral": patternTag tsTag factor
pattern Plain 1 1 -fact +1.0 {
# Load nodeTag Cargas
load 2 37.0 0.0
load 3 74.0 0.0
load 4 111.0 0.0
load 5 148.0 0.0
load 6 185.0 0.0
}
#------------------------------------------------------------------------------------------------
# recorders
# Node Recorder "Deformada": fileName <nodeTag> dof respType
recorder Node -file desp.out -nodeRange 1 6 -dof 1 disp
# Node Recorder "Reacciones": fileName <nodeTag> dof respType
recorder Node -file reac.out -node 1 -dof 1 reaction
# TwoNodeLink Recorder "respuestaBasica": fileName <eleTag> arguments
recorder Element -file respuestaBasica_BasForc.out -ele 1 2 3 4 5 basicForce
recorder Element -file respuestaBasica_BasDefo.out -ele 1 2 3 4 5 basicDeformation
#------------------------------------------------------------------------------------------------
# Opciones de análisis
# "Análisis": Tipo: Estático
constraints Transformation; # Control de constraints
numberer RCM; # Numeración de GDL
system BandGeneral; # Sistema de ecuaciones

58
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

test EnergyIncr 1e-6 25 0 2; # Prueba de convergencia


algorithm Newton; # Algoritmo de solución
integrator LoadControl 0.1; # Integrador
analysis Static; # Tipo de análisis
analyze 16; # Ejecutar

▪ Resultados y comparación
A continuación, se presentan las curvas fuerza-deformación básica obtenida para cada piso del
edificio, junto con una gráfica que esquematiza el desplazamiento obtenido por piso para cada
aumento de carga, ver Figura 30. Solo los pisos 1, 2 y 3 llegan a la fuerza de fluencia, luego la
pendiente de su curva fuerza-deformación cambia tal y como indica el modelo del material. En el
caso del piso 4, se obtuvo una fuerza muy cercana a 556 kN, pero no alcanza a fluir. Esto también se
hace evidente al analizar el desplazamiento obtenido por piso para cada aumento de carga, ya que en
los primero pisos se dan las mayores derivas mientras que, en los pisos superiores, el desplazamiento
es mucho mayor pero la deriva es mucho menor que en los primeros pisos.
Por otro lado, Las curvas PushOver obtenidas con OpenSees y SAP2000, ver Figura 31, fueron
iguales. Como se esperaba, se presenta un cambio de pendiente para un cortante basal de 556 kN,
seguido de varios cambios de pendiente pequeños correspondientes a la fluencia de los primeros pisos
del edificio.

Figura 30. Gráficas 1-5 contando de arriba a abajo e izquierda a derecha, son curva de fuerza-deformación de cada piso de
la estructura. Gráfica 6, corresponde a un esquema del desplazamiento por piso del edificio para cada aumento de carga.

59
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 3. Análisis no lineal estático

Figura 31. Comparación de curva PushOver obtenida con OpenSees y SAP2000.

▪ Detalles clave de la modelación en OpenSees


La estructura modelada es un edificio de cortante por lo cual solo fue necesario modelar una columna
por cada piso del edificio y a los nodos de cada piso se les restringió el giro y el desplazamiento
vertical. Las columnas fueron modeladas como elementos TwoNodeLink el cual recibe un material y
toma su comportamiento en la dirección requerida, en este caso la dirección de cortante. La curva del
material se modeló con el comando Steel01.

60
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 4. Análisis no lineal cronológico

4. Análisis no lineal cronológico

4.1 Ejemplo 1: Edificio de cortante con aceleración en la base.

Modelar la estructura presentada en la Figura 32 y graficar ciclos de histéresis para cada piso, la
aceleración y el desplazamiento en cubierta en función del tiempo.
La estructura es un edificio de cortante y se somete a una señal de sismo sinusoidal. En la Figura 32
se presenta la curva del comportamiento de las columnas del edificio y la señal de sismo en unidades
de pseudo aceleración. La masa de cada piso es de 45.36 Mg y el amortiguamiento para los 2 primeros
modos de vibración es de 5%.

𝑉, kN

556
17512
𝑣, m
20

𝑈ሷ𝑔 (𝑡)

𝑡, seg

𝑈ሷ𝑔 (𝑡)

Figura 32. Esquema de edificio de cortante, A la derecha, curva de comportamiento de columnas (arriba), Señal de
aceleración (abajo).

▪ Código en OpenSees
Modelo
# Análisis no lineal dinámico, ejemplo 1, unidades kN,m
wipe
# modelo.tcl
model BasicBuilder -ndm 2 -ndf 2
#------------------------------------------------------------------------------------------------
# Nodos
# Node tag xCrd yCrd ndf
node 1 0.0 0.0 -ndf 2
node 2 0.0 4.0 -ndf 2
node 3 0.0 8.0 -ndf 2
node 4 0.0 12.0 -ndf 2
node 5 0.0 16.0 -ndf 2
node 6 0.0 20.0 -ndf 2
#------------------------------------------------------------------------------------------------

61
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 4. Análisis no lineal cronológico

# Masas
# Mass tag mx my
mass 2 45.36 0.0
mass 3 45.36 0.0
mass 4 45.36 0.0
mass 5 45.36 0.0
mass 6 45.36 0.0
#------------------------------------------------------------------------------------------------
# constraints
# SPC tag Dx Dy
fix 1 1 1
fix 2 0 1
fix 3 0 1
fix 4 0 1
fix 5 0 1
fix 6 0 1
#------------------------------------------------------------------------------------------------
# Materiales
# Material "Material": matTag E epsyP epsyN
uniaxialMaterial ElasticPP 1 17512.0 0.03175 -0.03175
#------------------------------------------------------------------------------------------------
# Elementos
# Element "Columna": eleTag NodeI NodeJ -mat -dir
element twoNodeLink 1 1 2 -mat 1 -dir 2 -doRayleigh
element twoNodeLink 2 2 3 -mat 1 -dir 2 -doRayleigh
element twoNodeLink 3 3 4 -mat 1 -dir 2 -doRayleigh
element twoNodeLink 4 4 5 -mat 1 -dir 2 -doRayleigh
element twoNodeLink 5 5 6 -mat 1 -dir 2 -doRayleigh
Análisis y resultados
# analisis.tcl
#------------------------------------------------------------------------------------------------
# timeSeries
# timeSeries path tag dt Archivo .tcl factor
timeSeries Path 1 -dt 0.01 -filePath acel.tcl -factor 9.81;
#------------------------------------------------------------------------------------------------
# Análisis eigen
set lambda [eigen 3]
set omega {}
set f {}
set T {}
set pi 3.141593
foreach lam $lambda {
lappend omega [expr sqrt($lam)]
}
puts "frecuencia: $omega"
#------------------------------------------------------------------------------------------------
# Rayleigh Damping
set z 0.05
set w1 [lindex $omega 0]
set w2 [lindex $omega 1]
set a0 [expr $z*$w1*$w2/($w1+$w2)]
set a1 [expr $z*2/($w1+$w2)]
rayleigh $a0 $a1 $a1 $a1
# LoadPattern "Patrón Carga": patternTag dir tsTag

62
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 4. Análisis no lineal cronológico

pattern UniformExcitation 1 1 -accel 1


#------------------------------------------------------------------------------------------------
# recorders
# Node Recorder "Aceleracion": Archivo <nodeTag> dof tipo
recorder Node -file Aceleracion.out -time -node 6 -dof 1 accel
# TwoNodeLink Recorder "BasDefo": Archivo <eleTag> tipo
recorder Element -file BasDefo.out -time -ele 1 2 3 4 5 basicDeformation
# TwoNodeLink Recorder "BasForc": Archivo <eleTag> tipo
recorder Element -file BasForc.out -time -ele 1 2 3 4 5 basicForce
# Node Recorder "Deformada": Archivo <nodeTag> dof tipo
recorder Node -file desp.out -time -node 6 -dof 1 disp
# Node Recorder "Reacciones": Archivo <nodeTag> dof tipo
recorder Node -file reac.out -time -nodeRange 1 6 -dof 1 reaction
#------------------------------------------------------------------------------------------------
# Opciones de análisis
# Tipo: dinámico
# -----------------------------------------------------------------------------------------------
# Control de constraints
constraints Plain
# Numeración de GDL
numberer Plain
# Sistema de ecuaciones
system BandGeneral
# Prueba de convergencia
test NormUnbalance 1.E-06 25 0 2
# Algoritmo de solución
algorithm Newton
# Integrador
integrator Newmark 0.5 0.25
# Tipo de análisis
analysis Transient
# Ejecutar
analyze 1600 0.01

▪ Resultados y comparación
En la Figura 33 se presentan los ciclos de histéresis obtenidos, a partir de OpenSees para cada piso
de la estructura. Acorde con estos resultados, los pisos 1, 2 y 3 llegan a la fuerza cortante de fluencia,
mientras que los pisos 4 y 5 no. Además, el piso 1 es el único en completar un ciclo de histéresis
completo. Por otro lado, se compara el ciclo de histéresis del piso 1 obtenido en OpenSees, SAP2000
y la implementación manual, ver Figura 34, y los ciclos obtenidos fueron muy similares, en especial
los obtenidos con OpenSees y la implementación manual. Sin embargo, se diferencian ligeramente
cuando el elemento está en el rango elástico.
En la Figura 35 y Figura 36 se presenta la comparación entre la aceleración y desplazamiento en
cubierta obtenidos en OpenSees, SAP2000 y manualmente. Las curvas fueron similares, pero al igual
que en el ciclo de histéresis, los resultados de la implementación manual fueron más similares a los
obtenidos con OpenSees que con SAP2000. Incluso, la curva de desplazamiento en cubierta de
SAP2000 converge a un valor ligeramente diferente a las obtenidas en OpenSees y la implementación
manual.

63
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 4. Análisis no lineal cronológico

Figura 33. Ciclos de histéresis por piso.

Figura 34. Comparación de ciclo de histéresis obtenido en OpenSees y SAP2000.

64
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 4. Análisis no lineal cronológico

Figura 35. Comparación de aceleración en cubierta en OpenSees, SAP2000 e implementación manual.

Figura 36. Comparación de desplazamiento en cubierta en OpenSees, SAP2000 e implementación manual.

65
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES Capítulo 4. Análisis no lineal cronológico

▪ Detalles clave de la modelación en OpenSees


El edificio de cortante se modela con elementos tipo twoNodeLink igual que en el ejemplo 4 de
análisis no lineal estático. Sin embargo, al requerir un análisis dinámico se debe calcular una matriz
de amortiguamiento. En este caso, se usó el método de Rayleigh Damping el cual arma la matriz de
amortiguación de la estructura en función de la matriz de masa, rigidez y coeficientes que multiplican
ambas matrices. La masa de la estructura se agregó al modelo con el comando mass el cual aplica una
masa en un nodo en la dirección deseada, en este caso horizontal. Los coeficientes de Rayleigh
Damping se calculan con las ecuaciones 17 y 18 y se agrega al modelo con el comando rayleigh.
2𝜔𝑖 𝜔𝑗
𝑎𝑜 = 𝜀 ( 17 )
𝜔𝑖 + 𝜔𝑗

2
𝑎1 = 𝜀 ( 18 )
𝜔𝑖 + 𝜔𝑗

Por otro lado, la señal del sismo se agrega a la serie de tiempo del problema con el comando
timeSeries, en el cual se indica el tamaño del paso de tiempo y se agrega la ruta y el nombre del
archivo que contiene la señal. También, se debe especificar un factor por el cual se multiplicará la
señal, en este caso 9.81, por la aceleración de la gravedad en unidades SI. Luego, se usa el integrador
de Newmark con coeficientes gamma y beta iguales a 0.5 y 0.25 respectivamente y el tipo de análisis
correspondiente es Transient. Finalmente, se ejecuta el modelo con el comando analyze el número de
veces necesarias para alcanzar una duración requerida teniendo en cuenta el tamaño de paso de
tiempo.

66
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES

Conclusiones y recomendaciones

Este documento presenta una serie de ejemplos de análisis estructural con procedimientos lineales y
no lineales desarrollados en OpenSees. Cada ejemplo fue comparado con una solución obtenida en
SAP2000, principios de estática o implementando manualmente el método matricial de rigidez. En
todos los ejemplos, los resultados obtenidos con OpenSees fueron similares a los calculados a partir
de otros métodos.
Para facilitar la modelación en OpenSees se recomienda el uso de la herramienta OpenSees Navigator
lo cual es un complemento de MATLAB que funciona como interfaz gráfica del programa [9]. El uso
de esta herramienta es ligeramente similar a la modelación en SAP2000, aunque no tiene su gran
variedad de comandos que facilitan al usuario la modelación. Este complemento se encarga de escribir
el código de OpenSees en el lenguaje Tcl y requiere una ruta de acceso a un ejecutable de OpenSees,
luego los resultados obtenidos se pueden procesar gráficamente. La mayoría de los modelos
desarrollados en este trabajo se realizaron usando OpenSees Navigator, aunque los archivos de texto
Tcl que contienen el código generado por el programa se modificaron manualmente, dependiendo de
los requerimientos de cada ejemplo.

67
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES

68
EJEMPLOS DE MODELOS DE ANÁLISIS ESTRUCTURAL USANDO OPENSEES

Referencias

[1] PEER, “OpenSees”, 2006. [En línea]. Recuperado de: http://opensees.berkeley.edu/index.php


[2] R.V. Merchán, Uso de OpenSees para generación de secciones con fibras para elementos
(viga, columna) para el análisis no-lineal de una estructura, tesis pregrado, Escuela de
Ingeniería Civil, Universidad Técnica Particular de Loja, Loja, 2010.
[3] Pacific Earthquake Engineering Research Center, PEER, 2018. OpenSees User. [En línea],
Recuperado de: http://opensees.berkeley.edu/wiki/index.php/OpenSees_User
[4] Eurocode 3: Design of Steel structures- Part 1-2: General rules- Structural fire design, EN
1993-1-2, 2005.
[5] Liming Jiang & Xu Dai, “OpenSees Workshop: day 1”, Brunel, 2016, The University of
Edinburgh.
[6] A. Usmani et al, OpenSees for fire, [En línea], Recuperado de:
http://openseesforfire.github.io/docs.html
[7] American Institute of Steel Construction, AISC, 2005, AISC 13th edition member dimensions
and properties viewer.
[8] Seismic Evaluation and Retrofit of Existing Buildings, ASCE 41-17, 2017.
[9] Pacific Eartgquake Engineering Research Center, PEER, 2018. OpenSees Navigator. [En
línea], Recuperado de: http://openseesnavigator.berkeley.edu/

69

También podría gustarte