Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Opensees PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 75

COMPORTAMIENTO SÍSMICO DE

CONEXIONES DE HORMIGÓN
ARMADO CON FORJADOS

JUNIO 2019

Jaime Riera Mialdea


TRABAJO FIN DE GRADO PARA
LA OBTENCIÓN DEL TÍTULO DE TUTORES DEL TRABAJO FIN DE GRADO:
GRADUADO EN INGENIERÍA EN
TECNOLOGÍAS INDUSTRIALES Amadeo Benavent Climent

David Galé Lamuela

1
Estado del conocimiento

RESUMEN

El presente trabajo aborda el comportamiento sísmico de estructuras de hormigón armado


formadas por losas sobre pilares aislados, desde el punto de vista energético. El trabajo se
divide en dos partes. La primera parte consiste en desarrollar un modelo numérico que
represente este tipo de estructura, y mediante un programa llamado OpenSees simular su
respuesta dinámica no lineal bajo la acción de un terremoto. El modelo se somete a unas
cargas gravitatorias que se mantienen constantes, y a un registro de aceleración medido en la
ciudad de Kobe (Japon, 1995) durante el terremoto de Hyogo-ken Namby. Como resultado se
obtienen esfuerzos, deformaciones, desplazamientos, reacciones y velocidades en los nodos
de la estructura.

La segunda parte consiste en un análisis energético del comportamieto de la estructura durante


el sismo a partir del postprocesado de los resultados de los cálculos dinámicos que
proporciona Opensees. Concretamente se trata de obtener la energía introducida en la
estructura, la energía disipada por ésta y cómo se ha distribuido entre los diferentes tipos de
energía y entre los diferentes componentes estructurales. Para abordar esta parte, se realizan
unas funciones en el programa Matlab que permiten hacer un cálculo de las distintas formas
de energía que intervienen en el balance energético. Concretamente, el input de energía en la
estructura (E), la energía de deformación elástica (Wes), la energía de deformación plástica
(Wp), la energía disipada por amortiguamiento (Wh), y la energía cinética (Wk).

Una vez obtenidas estas energías se comprueba de manera numérica o gráfica que el balance
energético E=Wes+Wp+Wh+Wk se cumple.

Para abordar esta investigación se ha utilizado una estructura consistente en una placa
soportada en cuatro pilares en las esquinas, cada uno empotrado en su base. Esta estructura
esta construida con los materiales hormigón y acero, y tiene unas secciones de hormigón
armado definidas. Se ha considerado que los materiales tienen un comportamiento no lineal.
Esto es así porque los terremotos inducen grandes fuerzas en la estructura y no sería viable
económicamente proyectarlas para que se mantuviesen elásticas para este tipo de acciones que
tienen una probabilidad de ocurrencia muy baja.

La energía total disipada es la suma de la energía disipada en los pilares y en las placas. Estas
energías se calculan en unos puntos de Gauss de la estructura. Además, se realizan unas
funciones para calcular la energía de amortiguamiento, la energía cinética y la energía total
introducida en la estructura.

Finalmente, se compara y se discute sobre la proporción de energía disipada en los pilares y


en las placas con respecto al input de energía introducida.

2 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

Contenido
RESUMEN .............................................................................................................................................. 21
1. INTRODUCCIÓN ................................................................................................................................... 5
1.1 Antecedentes ................................................................................................................................ 5
1.2 Objetivos ....................................................................................................................................... 5
1.3 Metodología .................................................................................................................................. 5
2. ESTADO DEL CONOCIMIENTO ............................................................................................................. 6
2.1 Métodos de proyecto sismorresistente ........................................................................................ 6
2.1.1 Método de proyecto basado en fuerzas (DBF)....................................................................... 6
2.1.2 Método de proyecto basado en desplazamientos (DBD) ...................................................... 6
2.1.3 Método de proyecto basado en energías (DBE) .................................................................... 6
3. DESCRIPCIÓN DEL MODELO ................................................................................................................ 8
3.1 Descripción .................................................................................................................................... 8
3.1.1 Geometría............................................................................................................................. 10
3.1.2 Materiales............................................................................................................................. 10
3.1.3 Secciones .............................................................................................................................. 12
3.1.4 Tipos de elementos empleados en Opensees ...................................................................... 15
3.1.5 Análisis .................................................................................................................................. 16
3.1.6 Outputs ................................................................................................................................. 17
4. CÁLCULOS DINÁMICOS Y RESULTADOS............................................................................................. 20
4.1 Funciones..................................................................................................................................... 21
4.1.1 Buscarnuevo ......................................................................................................................... 21
4.1.2 Coordglnuevo ....................................................................................................................... 21
4.1.3 Infgpnuevo............................................................................................................................ 22
4.1.4 LeeDato ................................................................................................................................ 23
4.1.5 CurvasNivelPasoNEW ........................................................................................................... 24
4.2 Análisis energético ...................................................................................................................... 25
4.2.1 Energía elástico plástica de la placa ..................................................................................... 25
4.2.2 Energía elástico plástica de los pilares ................................................................................. 27
4.2.3 Energía de amortiguamiento................................................................................................ 28
4.2.4 Energía cinética .................................................................................................................... 29
4.2.5 Input de energía ................................................................................................................... 29
4.2.6 Balance energético ............................................................................................................... 30
4.3 Resultados gráficos...................................................................................................................... 35

3
Indice

4.3.1 Gráficas de la distribución de la energía .............................................................................. 35


4.3.2 Gráficas de desplazamientos y velocidades ......................................................................... 37
4.3.3 Gráficas de la distribución de esfuerzos y energías en la placa ........................................... 39
5. CONCLUSIONES ................................................................................................................................. 44
6. BIBLIOGRAFÍA .................................................................................................................................... 45
7. PLANIFICACIÓN Y PRESUPUESTO ...................................................................................................... 46
Anexos ................................................................................................................................................... 47
1. Programas en OpenSees ........................................................................................................... 47
2. Funciones en Matlab ................................................................................................................. 47
Anexo 1 .............................................................................................................................................. 48
Anexo 2 .............................................................................................................................................. 66

4 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

1. INTRODUCCIÓN

1.1 Antecedentes

Para diseñar la estructura de los edificios situados en zonas sísmicas se requiere realizar un
proyecto sismorresistente. El paradigma actual al que se orienta el proyecto sismorresistente
de estructuras es el llamado Proyecto Sismorresistente Basado en Prestaciones (Performance
Based Seismic Design, PBSE), que persigue evaluar los daños producidos en la estructura
para un determinado nivel de terremoto. Evaluar cuantitativamente el daño es algo que no se
puede hacer mediante los métodos de proyecto convencionales basados en fuerzas. Para ello
hay que emplear métodos basados en desplazamientos o, métodos basados en el balance
energético. Este último método tiene en cuenta de forma directa que la respuesta de la
estructura debido a un seísmo se produce en el campo fuertemente no lineal, permite
cuantificar el daño en términos de desplazamientos máximos y de energía de deformación
plástica acumulada.

En el presente trabajo se enfoca desde la perspectiva de los métodos basados en la energía y


se centra en un tipo particular de estructuras, que son especialmente vulnerables en caso de
sismos severos: las estructuras de hormigón armado fomadas por losas sobre pilares aislados.

1.2 Objetivos

El presente trabajo tiene como objetivo investigar cómo se distribuye la energía introducida
por sismo en una estructura de hormigón armado fomada por losas sobre pilares aislados,
empleando modelos no lineales y cálculos dinámicos directos con terremotos históricos. Se
desarrolla un modelo numérico y se analiza para obtener los esfuerzos, desplazamientos y
energía introducida en los elementos de los que está compuesto. Con ello se persigue
averiguar cómo se distribuye el daño (es decir, la energía de deformación plástica) en la
estructura, y localizar las zonas en las que se concentra.

1.3 Metodología

En primer lugar se desarrolla un modelo numérico de un prototipo estructural, con unos


materiales y secciones específicos. Este modelo, materiales y secciones son definidos en un
software de simulaciones sísmicas llamado “OpenSees” (Open System for Earthquake
Engineering Simulation) con el que se realizan cálculos dinámicos directos bajo la acción de
un terremoto, para obtener resultados de esfuerzos, deformaciones, desplazamientos,
reacciones y velocidades en los elementos de la estructura. Una vez el modelo numérico no
lineal esta definido, la siguiente parte del trabajo consiste en utilizar el programa Matlab y
definir unas funciones descritas en este trabajo que procesan estos resultados para calcular la
energía introducida y disipada en la estructura.

5
Estado del conocimiento

2. ESTADO DEL CONOCIMIENTO

2.1 Métodos de proyecto sismorresistente

2.1.1 Método de proyecto basado en fuerzas (DBF)

Este es el método que utilizan mayormente todas las normas sísmicas para el proyecto
sismorresistente de estructuras. Estos métodos caracterizar el terremoto en términos de
fuerzas. Con ello se realiza un cálculo elástico y las fuerzas laterales y esfuerzos obtenidos se
dividen por un factor de ductilidad. La hipótesis fundamental que hay detrás de estos métodos
es que el desplazamiento máximo de la estructura es igual en régimen elástico y en régimen
elastoplástico; esto se conoce como “regla de igualdad de desplazamientos”.

Este método tiene algunos inconvenientes que son:

 Este método caracteriza el efecto de carga del sismo en términos de fuerzas, lo


cual es apropiado mientras la estructura no plastifica, pero inadacuado cuando
entra en el dominio no lineal porque entonces el valor de las fuerzas estan
controladas por la propia resistencia de la estructura.
 No se puede obtener el daño en la estructura ni su ubicación en la estructura.

2.1.2 Método de proyecto basado en desplazamientos (DBD)

Este método caracteriza el terremoto en términos de desplazamientos laterales máximos


impuestos en la estructura. Para aplicar este método es necesario conocer la llamada curva de
capacidad de la estructura, para lo cual a un modelo no lineal de la misma se le aplica una
distribución de cargas horizontales y se obtiene una curva que relaciona el cortante en la base
de la estructura y el desplazamiento de un nodo de control que suele ser el forjado de la última
planta. Utilizando el DBF se tiene en cuenta explícitamente el comportamiento plástico de la
estructura. Este método proporciona directamente la demanda de deforamción plástica
máxima en los elementos estructurales, sin embargo no proporciona información sobre la
demanda de energía de deformación plástica acumulada.

2.1.3 Método de proyecto basado en energías (DBE)

Este método caracteriza el efecto de carga del terremoto en términos de energía total
introducido por el sismo, que es en definitiva el producto de fuerza por desplazamiento. La
hipótesis fundamental sobre la que se apoyan estos métodos procede de la evidencia
(demostrada numérica y experimetalmente) de que la energía total introducida por un sismo
en una estructura esta gobernada por su masa total y su periodo fundamental, y se puede
considerar independiente de la resistencia, nivel amortiguamiento, nivel de plastificación, y

6 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

en definitiva de cómo se reparta esta energía total introducida entre energía de vibración
elástica, energía de deformación plástica y energía disipada por amortiguamiento. Esta regla
de igualdad de enegía total introducida, juega en estos métodos un papel neurálgiuco similar
al de la regla de igualdad de desplazamientos de los métodos basados en fuerzas.

Una de las ventajas de estos métodos es que permiten cuantificar el daño de forma explícita
en términos de deformaciones plásticas acumuladas y de desplazamientos máximos.

El presente trabajo, se enmarca en los métodos basados en el balance energético y se centra en


un tipo de estructuras particularmente vulnerables frente a sismos: las estructuras de hormigón
armado formadas por losas sobre pilares aislados.

7
Descripción del modelo

3. DESCRIPCIÓN DEL MODELO

3.1 Descripción

El tipo de estructura investigada en este trabajo son las losas macizas de hormigón armado
soportadas en pilares aislados. El trabajo se podría extender a losas aligeradas (waffle plate
structures) siguiendo un planteamiento y procedimiento similar. Las Figuras 1 y 2 muestran
detalles de este tipo de estructuras y la nomenclatura empleada.

En este tipo de estructuras se suelen diferenciar varias zonas, que se ilustran en la Figura 3:

 El recuadro interior que es el que corresponde a cuatro pilares de los cuales ninguno
está en el borde.
 El recuadro de borde que es el que tiene dos pilares en el borde de placa
 El recuadro de esquina que es el que tiene dos pilares en borde de placa y uno en
esquina.
 La banda de pilares que corresponde a un ancho determinado a cada de lado de los
pilares.
 El pórtico virtual que está constituido por una fila de pilares y la zona de placa lateral
 El recuadro central que es el situado entre dos bandas de pilares.

Las losas aligeradas de tipo reticular o nervado utilizan bovedillas, moldes recuperables
metálicos o de plástico organizados formando una malla rectangular. Se les conoce también
como forjados reticulares.

Los sistemas de forjados reticulares son competitivos para resistir cargas gravitacionales en
comparación con los sistemas de forjados unidireccionales hormigón armado porque los
costes de encofrado pueden ser reducidos, hay más libertad para colocar las columnas en
planta y se pueden conseguir grandes luces (10m-12m) con espesores pequeños de placa. Aun
así, tienen desventajas para resistir cargas sísmicas ya que tienen poca rigidez horizontal y
ductilidad limitada.

Este tipo de forjado reticular requiere métodos de cálculo que se recogen, por ejemplo, en la
Norma Norteamericana ACI 318-95. Esta norma incluye dos métodos, uno simplificado y uno
general de esfuerzos. La instrucción EHE española copia la Norma Norteamericana que
utiliza el método general.

Según la norma Europea EN 1998-1, los sistemas de forjados reticulares deben considerarse
como de ductilidad baja, y se recomienda que se empleen sólo en zonas de sismicidad baja.
La norma Española NCSE-02 limita el uso de estos sistemas.

La estructura investigada en este trabajo consiste en una losa maciza de hormigón soportada
en cuatro pilares situados en las esquinas como se muestra en la figura 4.

8 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

Figura 1. Forjado reticular. Detalle de zona pilar placa.

Figura 2. Detalle sección placa pilar

Figura 3. Zonas del forjado reticular.

9
Descripción del modelo

3.1.1 Geometría

El modelo numérico desarrollado representa una estructura del tipo indicado en el apartado
anterior a escala ½. Se ha empleado un modelo a escala para que los resultados de este trabajo
se puedan comparar en el futuro con resultados de ensayos con mesa sísmica disponibles.
Tiene una parte que son los pilares y otra parte que es la placa. Las dimensiones de la placa
son 2000mm x 2000mm y se utilizan cuatro pilares en las esquinas del forjado de 1500mm de
longitud.

Como condiciones de contorno del modelo, los cuatro pilares están empotrados en la base. Es
decir, tienen restringidos todos los grados de libertad en esas zonas. La estructura se modeliza
con 13 nodos dispuestos como se muestra en la figura 4. Contiene una masa puntual de 0,5
toneladas en los nodos 1,3,5 y 7 de la estructura. Según este criterio de nodos, el modelo está
empotrado en los nodos 10,11,12 y 13. El origen de coordenadas global es en el nodo 1 de la
geometría.

En el anexo 1 apartado 1.1 se puede ver el código en OpenSees en AD.tcl con la definición
del modelo, las masas y las condiciones de contorno. En el anexo 1 apartado 1.2 se puede ver
el código en Nodes.tcl de la definición de los nodos de la estructura.

Figura 4. Modelo numérico de OpenSees de la estructura.

3.1.2 Materiales

Los materiales empleados en la estructura son el hormigón y el acero. El hormigón utilizado


en esta estructura tiene de módulo de Young 30000MPa y resistencia a la compresión de -
44MPa. El acero utilizado, es decir las barras que se utilizan en el armado tienen de módulo
E=200000MPa y resistencia a la tracción 525MPa. En el anexo 1 apartado 1.3 en
Materiales.tcl se puede ver la definición de los materiales hormigón y acero anteriormente
comentados.

10 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

El programa Opensees ofrece la posibilidad de crear materiales con propiedades no elásticas.


El modelo empleado en este estudio es un modelo no lineal y las leyes constitutivas
empleadas para los materiales se describen a continuación.

La figura 5 muestra la relación entre la tensión y la deformación del material de hormigón


“Concrete02” utilizado para esta estructura. El programa “OpenSees” ofrece varios tipos de
materiales con propiedades diferentes por lo que se ha utilizado este material porque es
adecuado para la estructura que se analiza en este trabajo.

Figura 5. Relación tensión deformación para el material Concrete02.

Obsérvese que en Opensees la variable $fpc representa el límite a compresión del hormigón y
$epsc la deformación que alcanza con esa tensión anterior.

Para el acero se utiliza el material “Steel02”. El programa tiene varios tipos de leyes
constitutivas para el acero. Se ha utilizado el tipo Steel02 porque es adecuado para los
elementos viga y placa analizados en este trabajo. En la figura 6 se tiene una relación de la
tensión y la deformación de este material.

11
Descripción del modelo

Figura 6. Relación tensión deformación para el material Steel02.

3.1.3 Secciones

3.1.3.1 Pilares

La estructura tiene un tipo de sección para los pilares y las placas. En primer lugar, las
secciones de los pilares son de 100mm x 100mm con hormigón confinado a 10mm del lado en
la parte central que está situada en el plano yz. Se tiene que la sección está formada también
por hormigón no confinado en la periferia y armaduras de acero.

El programa “OpenSees” da la posibilidad de formar secciones para el hormigón en forma de


fibras, que se definen dividiendo la sección en áreas en el plano yz. Las armaduras de acero
están localizadas en la parte inferior, en la parte superior y dos barras a la altura de la
coordenada (0,0) local en ambos lados de la sección como se muestra en la figura 7 siguiente.

En la sección definida por defecto que tiene “OpenSees” se consideran sólamante las
deformaciones a axil y a flexión por tanto, ha sido necesario añadir el comportamiento a
cortante y a torsión. Concretamente las rigideces a cortante en los ejes “y” y “z” y la rigidez a
torsión. El código empleado se muestra en el anexo 1 apartado 1.4.

12 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

En “OpenSees” es necesario definir unas coordenadas locales para los elementos del modelo
utilizado. Esto se requiere porque los esfuerzos y las deformaciones vienen definidos en estos
ejes anteriormente comentados.

En primer lugar, los pilares tienen unas coordenadas locales que se definen de manera que el
eje x va desde el nodo inicial al nodo final del elemento líneal. Estos nodos inicial y final
están localizados en la definición de los elementos lineales como se muestra más adelante. El
eje z local, se ha definido en la dirección del eje X global (1 0 0). El eje local y se puede
obtener como el producto vectorial de los ejes locales x y z como se indica en la figura 8
siguiente.

Figura 7. Sección de los pilares.

z
y

Estas son las coordenadas locales de la sección del pilar. Estas se utilizan para localizar las
fibras de hormigón confinado, no confinado y las barras de acero. También, sirven para
expresar los resultados de esfuerzos y deformaciones obtenidos.

13
Descripción del modelo

Figura 8. Ejes locales en pilares.

3.1.3.2 Placa

Es necesario definir también las secciones de los elementos placa. Las secciones de la placa
maciza contienen hormigón y las barras de acero. El programa “OpenSees” da la posibilidad
de obtener una sección equivalente, por lo que la sección original se modela en forma de
capas de hormigón y acero.

La sección de la placa tiene un espesor de 138mm. Se compone de capas de hormigón y


acero. Las capas de acero (que representan las barras de acero) se definen en las direcciónes X
e Y globales es decir, longitudinales o transversales. La secuencia de capas es la siguiente:
10mm de hormigón, 0,5mm de acero en dirección Y, 0,5mm de acero en dir. X, 116mm de
hormigón, 0,5mm de acero en dir. X, 0,5mm de acero en dir. Y y 10mm de hormigón como se
muestra en la figura 9 siguiente.

En los elementos placa utilizados se identifican los nodos y los ejes locales como se muestra
en la figura 10.

Figura 9. Sección de la placa.

14 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

Figura 10. Nodos y ejes locales del elemento placa.

Obsérvese que el eje x’ en coordenadas locales está entre los nodos i y l y el eje y’ está entre
los nodos i y j como se muestra en la figura 10 correspondiente. En el anexo 1 apartado 1.4 se
tiene el código para crear una sección en forma de capas con los materiales de hormigón y
acero definidos anteriormente.

3.1.4 Tipos de elementos empleados en Opensees

La estructura se compone de cuatro elementos tipo pilar numerados del 1-4, y cuatro
elementos tipo placa, numerados del 5-8, como se muestra en la figura 4 anterior.

Los pilares de la estructura utilizan elementos de OpenSees del tipo “forceBeamColumn”.


Estos elementos utilizan un método iterativo en fuerzas. Esto es, permiten aumentar la
precisión de los resultados obtenidos sin necesidad de añadir más elementos sino añadiendo
más puntos de Gauss. Como se comentó anteriormente, los puntos de Gauss de un elemento
son los puntos donde se obtiene la información de los esfuerzos y deformaciones.

Una ventaja de la utilización de estos elementos es que permite al usuario elegir la ubicación
de los puntos de Gauss a lo largo del elemento. En este caso, se ha tratado de espaciar los
puntos de Gauss de manera uniforme en 5 segmentos del mismo tamaño. Para este caso se
han utilizado cinco puntos de Gauss que se han definido previamente su localización como
0,1, 0,3, 0,5, 0,7 y 0,9 que son las coordenadas “eta” de un elemento normalizado [0,1].

El objeto de añadir más puntos de Gauss es para poder conseguir una mejor aproximación de
la energía disipada desde el primer nodo al último del elemento y así conseguir que el balance
energético sea más preciso.

Obsérvese que como se comentó anteriormente se utiliza el parámetro “$Trz” en la definición


de los elementos tipo pilar para indicar la colocación del eje z’ y en consecuencia, la del resto
de ejes en pilares.

Para las placas se utilizan los elementos de OpenSees del tipo “shellMITC4” en los que se
definen los nodos del elemento y el tipo de sección comentada anteriormente en el apartado
de secciones a la que pertenece. La descripción de esta información está en el archivo

15
Descripción del modelo

PlateElem.tcl en el anexo 1 apartado 1.6 que contiene la información de estos parámetros


anteriormente comentados.

3.1.5 Análisis

Una vez definidos los materiales, secciones y elementos se realiza el análisis de la estructura.
El análisis de la estructura se compone de tres partes:

 Análisis de obtención de las matrices de rigidez, masas y los modos propios de


vibración y periodos de vibración de la estructura.
 Análisis estático
 Análisis dinámico

En el análisis del modelo se obtiene inicialmente la matriz de masas mediante la función


“MassMatrix” ya que en “OpenSees” para ejecutar una función, en este caso, MassMatrix se
utiliza el código “doMassMatrix”. Esta función está en el programa principal llamado AD.tcl
en la que está incluida el archivo Analysis.tcl ejecutado al principio del programa principal.
Esta función describe un análisis dinámico utilizando la intrucción “analysis transient” y la
instrucción “printA” que permite obtener la matriz de masas de la estructura. Esta matriz se
guarda en la carpeta especificada en el programa Analysis.tcl anterior.

Para el análisis del modelo se obtiene también la matriz de rigidez mediante la función
“StiffnessMatrix” que está incluida en el programa principal AD.tcl en la parte “model
matrices”. Esta función está incluida en el archivo Analysis.tcl ejecutado al principio del
programa principal, donde se describe en la función un análisis estático. Por tanto, a
diferencia del análisis de la matriz de masas describe un análisis como “analysis Static” y la
instrucción “printA” que devuelve la matriz de rigidez de la estructura. Esta matriz se guarda
en el archivo especificado en el programa. El código para estas funciones está en el archivo
Analysis.tcl en el anexo 1 apartado 1.7 correspondiente.

Una vez obtenidas la matriz de masas y la matriz de rigidez se obtiene el análisis modal de la
estructura. Esto es, se utiliza una función “Modes” para obtener los modos de vibración que
se requieran. Esto es, un archivo que describe la forma de la estructura sometida a los
esfuerzos por el análisis dinámico. También, esta función devuelve los periodos de vibración
de la estructura. En este trabajo, se obtienen los tres primeros modos de vibración y se utiliza
el primer modo de vibración para obtener la primera frecuencia propia de vibración asociada
ya que es el modo de vibración más significativo en el análisis realizado. Esta función está
incluida en el archivo Analysis.tcl también.

3.1.5.1 Análisis estático

Una vez se realiza esta parte anterior del análisis, se realiza el análisis gravitatorio de la
estructura. Por tanto, se definen cuatro cargas en los nodos 1, 3, 5 y 7 correspondientes a las
masas en cada nodo. Esto es, las cargas se definen como m*g en cada nodo considerado
teniendo en cuenta que las masas son 0,5 toneladas en cada nodo respectivamente.
16 Escuela Técnica Superior de Ingenieros Industriales (UPM)
Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

Para ejecutar este análisis, se utiliza la función “Gravity” que realiza un análisis estático en el
que se añade la carga en 10 pasos y se utiliza un algoritmo específico de OpenSees para la
resolución del análisis anteriormente comentado.

3.1.5.2 Análisis dinámico

La siguiente parte es realizar el análisis dinámico. En la definición de los parámetros


correspondientes a este análisis cabe destacar el amortiguamiento y el paso de tiempo del
seismo que es 0,01s en este caso y 0.024 (2,4%) para el valor del amortiguamiento (ξ) de la
estructura. Para el cálculo de la matriz de amortiguamiento se emplea la función
“DampingModel” que permite calcular la matriz de amortiguamiento de Rayleigh
C=alpha*M+beta*K. En nuestro caso beta es nulo ya que se ha optado por una matriz de
amortiguamiento que es proporcional a la matriz de masas únicamente. Por tanto, alpha=2* ξ
* ω siendo ω la frecuencia del primer modo de vibración ya que es el modo de vibración más
significativo y el código se realiza como se indica en el anexo 1 apartado 1.1 para esta parte
del análisis.

La siguiente parte del análisis es la introducción de la aceleración del suelo que se produce
debido al terremoto que se considera. En este caso, se ha considerado el terremoto registrado
de la ciudad de Kobe durante el terremoto de Hyogoken-Nambu de 1995 y se utilizan las
aceleraciones en unidades de g producidas en el archivo de texto Kobe. Estas aceleraciones
son las que se agregan en OpenSees y que están establecidas en un intervalo de tiempo de
0,01s. Obsérvese que las aceleraciones se multiplican por g para incluirlas en el análisis. Esta
parte del análisis se encuentra en el archivo AD.tcl del anexo 1 apartado 1.1. La dirección
considerada para el terremoto es la del primer grado de libertad, esto es en la dirección del eje
X global utilizado.

Además, se utiliza una instrucción para crear las aceleraciones que se quieren introducir en el
suelo y se introducen estas aceleraciones utilizando una instrucción como se muestra en la
parte de “análisis dinámico” en el archivo AD.tcl en la estructura. Finalmente, se utiliza la
función “Dynamic” incluida en Analysis.tcl para realizar el análisis dinámico de la estructura.

3.1.6 Outputs

Una vez realizado el análisis, el programa “OpenSees” permite obtener los resultados del
análisis realizado. Mediante el uso de la instrucción “recorder” se puede obtener información
acerca de los esfuerzos y deformaciones en los puntos de Gauss, desplazamientos en los
nodos, reacciones en los nodos y velocidades en los nodos.

Para obtener la información de “OpenSees” respecto a los elementos pilar y placa de la


estructura se requiere definir unas instrucciones que devuelven esta información. El archivo
Outputs.tcl es donde se incluyen las instrucciones necesarias para obtener:

 Las reacciones en todos los grados de libertad de los nodos empotrados.

17
Descripción del modelo

 El desplazamiento de todos los grados de libertad de todos los nodos de la estructura y


de los nodos de grados de libertad no restringidos necesarios para el cálculo de las
energías en el balance energético de la estructura.
 El desplazamiento y velocidad del nodo central de la placa de control de la estructura.
 Los esfuerzos y las deformaciones de cada punto de Gauss de los pilares almacenados
en archivos diferentes individuales en Outputs.
 Los esfuerzos y las deformaciones de cada punto de Gauss de las placas.

Es decir, los resultados se devuelven en el formato definido por el usuario en el programa. Por
defecto, el programa “OpenSees” devuelve los resultados como una serie de filas que
representan los parámetros de respuesta cada 0,01s, y las columnas que indican el tipo de
esfuerzo, deformación, desplazamiento, reacción o velocidad.

El programa “OpenSees” ofrece los resultados en formato xml. Los resultados obtenidos en
este formato devuelven además de los esfuerzos y deformaciones, el punto de Gauss y la
localización del punto de Gauss. Esto permite representar con precisión los resultados de
esfuerzos, deformaciones y energía en la estructura.

Cada resultado obtenido tiene un formato diferente según sea para pilares o placas en la
estructura. Esta disposición es la que se obtiene de los resultados obtenidos.

Los resultados obtenidos en pilares y placas de desplazamientos en coordenadas globales


tienen por columnas la distribución:

 T ux uy uz θx θy θz

Los resultados de reacciones en coordenadas globales en pilares y placas tienen por columnas
la distribución:

 T Rx Ry Rz RMx RMy RMz

Los resultados de los esfuerzos y las deformaciones en coordenadas locales en los puntos de
Gauss en pilares tienen la distribución:

 t N Mz My Mx Tz Ty Mx

Obsérvese que el momento torsor está repetido, se utiliza el primero para el cálculo de la
energía debida al torsor en la estructura.

 T εx γz γy γtr εz εy γtreal

Los resultados de los esfuerzos y las deformaciones en coordenadas locales en cada uno de
los cuatro puntos de Gauss en placas tienen la distribución:

 t Nxx Nyy Nxy Mxx Myy Mxy Vxz Vyz


 t εxx εyy γxy κxx κyy κxy γxz γyz

El formato de los resultados expuesto se resumen en la tabla siguiente.

18 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

Output Pilar Placa


Desplazamientos T ux uy uz θx θy θz T ux uy uz θx θy θz

Reacciones T Rx Ry Rz RMx RMy RMz T Rx Ry Rz RMx RMy RMz

Esfuerzos t N Mz My Mx Tz Ty Mx t Nxx Nyy Nxy Mxx Myy


Mxy Vxz Vyz

Deformaciones T εx γz γy γtr εz εy γtreal t εxx εyy γxy κxx κyy κxy


γxz γyz

Tabla 1. Formato de los resultados obtenidos de OpenSees

19
Cálculos dinámicos y resultados

4. CÁLCULOS DINÁMICOS Y RESULTADOS

En este apartado se describen los diferentes tipos de energía que disipa/almacena la estructura
obtenidos postprocesando la salida de resultados que ofrece el programa Opensees. Este
postprocesado se realiza con funciones en Matlab.

Inicialmente, se requiere obtener los archivos que genera el programa principal, principal.m y
que se almacenan en el fichero OpenSees AD.tcl. Estos archivos se producen al ejecutar la
función Outputs.tcl como se comentó anteriormente. Estos resultados son los desplazamientos
en los nodos, velocidades en los nodos, esfuerzos y deformaciones en los puntos de Gauss de
la estructura. El programa principal.m se expone en el anexo 2 apartado 2.1.

Una vez generados los archivos con los resultados de los desplazamientos, velocidades,
reacciones, esfuerzos y deformaciones para calcular la energía disipada en la estructura se
realiza un análisis energético. Este análisis energético proporciona la energía de deforamación
elástica y plástica de las placas y pilares (Wes+Wp), la energía de amortiguamiento (Wh), la
energía cinética (Wk) y la energía introducida por el terremoto (E). Estas energías se calculan,
respectivamente, mediante las funciones PrincipalPlaca.m, Principalpilar.m y
BalanceEnergético.m del anexo 2 apartado 2.2 cuya descripción es:

 Energía disipada en las placas


 Energía disipada en los pilares
 Balance energético que incluye la energía de amortiguamiento, energía cinética y
input de energía.

La siguiente tabla resumen indica las funciones principales y el cálculo de la energía disipada
que se obtiene:

Nombre de la función Energía obtenida


PrincipalPlaca.m Wes+Wp
Principalpilar.m Wes+Wp
BalanceEnergetico.m Wh, Wk, E
DampingEnergy.m Wh
InputEnergy.m E
Tabla 2. Funciones principales y tipo de energía que devuelven.

A partir de estos resultados se debe comprobar en primer lugar que se cumple el balance de
energías en la estructura, es decir que E=Wes+Wp+Wh+Wk.

20 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

4.1 Funciones

El análisis de la energía disipada/almacenada en las placas y los pilares requiere varias


funciones además de las funciones principales descritas en apartado anterior. Estas funciones
se describen en este apartado.

Estas funciones proporcionan los esfuerzos y las deformaciones en los puntos de Gauss
almacenados en la salida de resultados en los archivos “.out”. Estos esfuerzo y deformaciones
se precisan para el cálculo de la energía disipada en las placas Wes+Wp y en los pilares
Wes+Wp.

Además, para las placas se necesitan funciones que proporcionen las coordenadas globales de
los puntos del elemento donde se calcula la energía. Estos son los puntos de Gauss del
elemento. Estas funciones son parte también del programa principal de las placas y los pilares
ejecutados en Matlab.

4.1.1 Buscarnuevo

Esta función tiene como objetivo buscar un valor que se encuentra después de una palabra
seguida de “=” en un archivo de texto en formato -xml que proporciona el programa
OpenSees.

Este archivo proporciona también información adicional del elemento: los nodos del
elemento, el punto de Gauss y la ubicación del punto de Gauss en coordenadas normalizadas.
Estas coordenadas normalizadas son eta y neta para las placas y eta para los pilares. Las
coordenadas anteriores están en el intervalo [0,1].

La ventaja de esta función es que permite filtrar la búsqueda de un valor en un archivo de


texto para obtener la información que se indique por el usuario en los parámetros de entrada
de la función. Esta función es la que está en el anexo 2 apartado 2.3 que contiene el archivo de
Matlab utilizado.

4.1.2 Coordglnuevo

Esta función es necesaria para obtener las coordenadas globales de los nodos de un elemento.
Se requiere porque para obtener las coordenadas globales de los puntos de Gauss se necesita
realizar una transformación de coordenadas. Por tanto, esta función obtiene las coordenadas
globales X, Y y Z de los nodos de un elemento placa o pilar. Estas coordenadas se almacenan
en variables por filas siendo cada fila la que corresponde a un elemento de la estructura. Por
ejemplo:

Node 1 0 0 0

Node 2 1 0 0

21
Cálculos dinámicos y resultados

Node 3 1 1 0

Node 4 0 1 1

La variable obtenida es:

Coord. X 0 1 1 0

Coord. Y 0 0 1 1

Coord. Z 0 0 0 1

Así, se obtienen las coordenadas globales de los nodos de la estructura como se indica en el
anexo 2 apartado 2.4 correspondiente.

4.1.3 Infgpnuevo

Esta función devuelve las coordenadas globales de los puntos de Gauss del elemento a partir
de las coordenadas normalizadas y las coordenadas globales del elemento utilizado. Esta
función se utiliza únicamente en las placas para obtener los puntos de Gauss de la placa que
son necesarios para poder representar de manera gráfica los resultados obtenidos. El motivo
de que esta función únicamente se utilice para las placas es porque estas son elementos
bidimensionales y las coordenadas de los nodos requieren una transformación para obtener las
nuevas coordenadas anteriores. En cambio, los pilares tienen las coordenadas localizadas en
los elementos lineales de tipo pilar anteriormente comentados.

Esta función está en el anexo 2 apartado 2.5 correspondiente. Como se comentó anteriormente
en el formato de archivo utilizado para los resultados se utiliza –xml en este TFG porque el
archivo da información sobre las coordenadas normalizadas eta y neta del punto de Gauss en
el elemento que se necesita, para posteriormente transformarlas en las coordenadas globales
del punto de Gauss del elemento. Estas coordenadas están en el intervalo [0,1] en un elemento
placa normalizado como se muestra en la parte derecha de la figura 11 correspondiente.

Los elementos utilizados para modelar la placa son cuadriláteros con cuatro nodos. Los
archivos que dan los resultados dan información de las coordenadas eta y neta de cuatro
puntos de Gauss en coordenadas naturales y se requieren las coordenadas geométricas
globales de estos puntos para obtener los esfuerzos y deformaciones. Los puntos de Gauss en
placas están situados dentro del perímetro que establecen los cuatro nodos. Para esto se
realiza una transformación isoparamétrica que se realiza de la siguiente manera.

x(ξ,η) = ∑xeANA(ξ,η)

y(ξ,η) = ∑yeANA(ξ, η)

Siendo:

xeA: Las coordenadas x del elemento al que pertenece el punto de Gauss.

22 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

yeA: Las coordenadas y del elemento al que pertenece el punto de Gauss.

NA: Las funciones de interpolación utilizadas.

Obsérvese que es una suma del primer nodo al último del elemento considerado.

Figura 11. Coordenadas globales. Coordenadas del elemento normalizado en cuadrilátero.

Las N son las funciones de interpolación que son las que se aplican para convertir las
coordenadas naturales de la parte derecha de la anterior figura 11 a las coordenadas de la parte
izquierda de la figura 11.

N1=1/4*(eta-1)*(neta-1)

N2=-1/4*(eta+1)*(neta-1)

N3=1/4*(eta+1)*(neta+1)

N4=-1/4*(eta-1)*(neta+1)

Las coordenadas xe son las coordenadas globales de los nodos.

4.1.4 LeeDato

Esta función devuelve una matriz con los valores que se encuentran después de una palabra en
un archivo obtenido de la salida de resultados. Estos archivos son de formato -xml obtenidos
de los resultados del programa principal. Estos archivos representan un punto de Gauss y por
tanto, los esfuerzos o deformaciones en ese punto concreto.

Esta información de los esfuerzos o deformaciones viene en la parte de “Data” en forma de


filas y columnas. Esto es, las filas muestran los esfuerzos o deformaciones en cada paso de
tiempo y las columnas muestran cada tipo de esfuerzo o deformación como se vio
anteriormente en el apartado de Outputs. Por tanto, esta función surge de la necesidad de
23
Cálculos dinámicos y resultados

guardar la información de los esfuerzos y las deformaciones de cada punto de Gauss de un


elemento. Esta información se utiliza para el cálculo de la energía elástico plástica de las
placas y los pilares.

A diferencia de la función anterior “Buscarnuevo.m” esta función permite obtener un


conjunto de valores para guardar en una variable en Matlab en vez de un valor después de una
palabra en el archivo. Esta función está en el anexo 2 apartado 2.6 correspondiente.

4.1.5 CurvasNivelPasoNEW

Esta función se utiliza para la representación de los resultados de forma gráfica únicamente
para la placa. Una vez obtenida la información de esfuerzos, deformaciones y energías en los
puntos de Gauss de la placa se puede visualizar de manera gráfica la distribución de esta
información utilizando esta función.

Las magnitudes de los parámetrsos de respuesta representados varían en cada paso del tiempo,
por lo tanto esta función representa de forma gráfica estas magnitudes en un instante concreto.
El instante elegido ha sido el correspondiente a un pico de aceleración del terremoto para
visualizar las zonas sometidas a mayores esfuerzos.

Este programa está en el anexo 2 apartado 2.11.

24 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

4.2 Análisis energético

La secuencia seguida para evaluar la energía introducida y disipada en la estructura es el de la


siguiente figura.

Energía disipada en la placa Energía disipada en los pilares

Wplaca Wpilares

Energía de amortiguamiento

Wh

Resultados gráficos Input de energía Energía cinética

E Wk

4.2.1 Energía elástico plástica de la placa

La función PrincipalPlaca devuelve la energía elástico plástica de la placa. Esta función


utiliza los archivos de los puntos de Gauss obtenidos de los esfuerzos y las deformaciones
para realizar un cálculo que tiene como resultado la energía almacenada y disipada en cada
punto de Gauss y en toda la placa. Esta función realiza una serie de procesos para cada punto
de Gauss considerado, siguiendo el siguiente procedimiento.

 Primero, se inicializan las variables que se van a utilizar en el programa y que


contienen los nodos de los elementos, las coordenadas globales de los puntos de
Gauss, los esfuerzos y las deformaciones.
 Los resultados obtenidos tienen el formato para las fuerzas “PlacaElexgpxforce.out” y
para las deformaciones “PlacaElexgpxdef.out” correspondiente.

25
Cálculos dinámicos y resultados

4.2.1.1 Construcción de la matriz nodal

En primer lugar, se construye una matriz nodal que tenga los nodos de los elementos por filas
para las placas. Para realizar esto, se utiliza la función “Buscarnuevo.m” que devuelve los
nodos del elemento y lo guarda en una variable correspondiente.

4.2.1.2 Obtención de las coordenadas de los puntos de Gauss

La siguiente parte es la obtención del archivo del punto de Gauss considerado de las
coordenadas eta y neta correspondientes utilizando la función “Buscarnuevo” anterior. Estas
coordenadas se guardan en variables separadas que contienen las coordenadas de los
elementos por filas.

4.2.1.3 Obtención de las coordenadas globales de los nodos

En esta parte del programa principal, se obtienen las coordenadas globales de los nodos del
elemento al que pertenece el punto de Gauss considerado. Para la obtención se utiliza la
función “Coordglnuevo” anterior. Esta función guarda las coordenadas de los nodos de los
elementos por filas.

4.2.1.4 Obtención de coordenadas globales de los puntos de Gauss

Esta parte del programa principal obtiene las coordenadas globales de los puntos de Gauss
considerados. Para esto, se utiliza la función “Infgpnuevo” anterior. Esta función guarda las
coordenadas de los nodos de los elementos por filas.

4.2.1.5 Obtención de esfuerzos

En esta parte del programa principal se obtienen los esfuerzos de los resultados anteriores.
Para esto, se utiliza la función “LeeDato” que guarda los esfuerzos en una variable. Por tanto,
cada esfuerzo se guarda en una variable que corresponda con el tipo de esfuerzo según la
columna como se vio en el apartado Outputs anterior.

4.2.1.6 Cálculo de las energías

En esta última parte, se definen las longitudes efectivas en las direcciones x e y de la placa. Se
realiza el cálculo de la energía elástico plástica (Wes+Wp) que corresponde a cada esfuerzo
en la placa. Al final, se suman las contribuciones energéticas correspondientes a todos los
esfuerzos para obtener la energía elástico plástica almacenada/disipada en toda la placa.

Esta función principal está en el anexo 2 apartado 2.7 correspondiente. El cálculo teórico es:

Wes+Wp=∑∫ F*e dl

26 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

Siendo:

F: El esfuerzo producido en el punto de Gauss de la placa

E: La deformación producida en el punto de Gauss de la placa

dl: Es la longitud de la mitad de un elemento de la placa en la dirección x o la dirección y


correspondiente.

Se realiza una integral entre 0 y t y un sumatorio de todos los puntos de Gauss de la placa.
Obsérvese que dl se toma en dirección x o y de la placa según afecte al esfuerzo
correspondiente.

4.2.2 Energía elástico plástica de los pilares

La función Principalpilar.m devuelve la energía elástico plástica de los pilares. Esta función
utiliza los archivos de los puntos de Gauss de los pilares obtenidos de los esfuerzos y
deformaciones para realizar un cálculo que tiene como resultado la energía disipada en cada
punto de Gauss y en los pilares. Esta función realiza una serie de procesos para cada punto de
Gauss considerado. El procedimiento es el siguiente:

 Primero, se inicializan las variables de la longitud efectiva de cada punto de Gauss, los
nodos de cada elemento, las coordenadas globales de los puntos de Gauss, los
esfuerzos y las deformaciones de los pilares de la estructura.
 Los resultados tienen el formato para las fuerzas “VigaElexgpxforce.out” y para las
deformaciones “VigaElexgpxdef.out” correspondientes.

4.2.2.1 Construcción de la matriz nodal

En primer lugar, se obtienen los nodos del elemento a los que pertenecen los puntos de Gauss
considerados. Esto se realiza mediante la función “Buscarnuevo” anterior. Se guarda en una
variable los nodos de los elementos por filas correspondiente.

4.2.2.2 Obtención de las coordenadas globales de los puntos de Gauss

En esta parte, se obtienen las coordenadas globales de los puntos de Gauss. Esto es, la
coordenada eta del punto de Gauss considerado. Obsérvese, que a diferencia de las placas
únicamente hay una coordenada para los pilares. Esta coordenada se guarda en una variable
correspondiente.

4.2.2.3 Obtención de esfuerzos

En esta parte se obtienen los esfuerzos de los resultados obtenidos anteriormente en el


programa de OpenSees en la primera parte del trabajo. Es decir, se trata de utilizar la función

27
Cálculos dinámicos y resultados

“LeeDato” para obtener los valores de esfuerzos o deformaciones en los archivos xml de los
resultados. Estos valores se guardan en una variable que contiene los diferentes tipos de
esfuerzos o deformaciones por columnas como se vio en el apartado de Outputs anterior.

4.2.2.4 Cálculo de las energías

En esta parte del programa principal, se calcula la energía elástico plástica (Wes+Wp)
almacenada/disipada por los pilares. Esto es, se cálcula la contribución a la energía de cada
esfuerzo considerado. En concreto, cada energía correspondiente a un esfuerzo es una variable
que contiene la energía disipada por los puntos de Gauss por columnas en los pilares.
Finalmente, se suman las contribuciones a la energía de los esfuerzos para obtener la energía
elástico plástica en los pilares.

Esta función está en el anexo 2 apartado 2.8 correspondiente. El cálculo teórico es:

Wes+Wp=∑∫ F*e dl

Siendo:

F: El esfuerzo en el punto de Gauss del elemento pilar.

E: La deformación en el punto de Gauss del elemento pilar.

dl: La longitud entre dos puntos de Gauss en un elemento pilar. En los puntos de Gauss
laterales es la mitad de esta distancia.

Se realiza una integral entre 0 y t y un sumatorio de todos los puntos de Gauss de los pilares.

4.2.3 Energía de amortiguamiento

La función DampingEnergy.m devuelve la energía de amortiguamiento de la estructura. Para


el cálculo de esta energía se emplea una matriz amortiguamiento proporcional a la matriz de
masas, es decir, C=a0*M, donde a0=2*ξ*ω siendo ξ la fracción de amortiguamiento y ω la
frecuencia propia del primer modo de vibración.

En el cálculo de la energía de amortiguamiento no se utilizan todos los grados de libertad sino


que la matriz de amortiguamiento incluye los grados de libertad no restringidos
correspondientes a la estructura. Finalmente, se obtiene una variable con la energía disipada
de los puntos de Gauss por columnas en la estructura. Esta función está en el anexo 2 apartado
2.9. El cálculo teórico es:

Wh= ∑∫ C*v2 dt

Siendo:

C: La matriz de amortiguamiento de la estructura

v: La velocidad de los nodos de la estructura

28 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

Se realiza una integral entre 0 y t y un sumatorio de los puntos de Gauss considerados.

4.2.4 Energía cinética

En esta parte se considera la energía cinética debida al movimiento de los nodos. Esta energía
se obtiene multiplicando las masas de los grados de libertad no restringidos por el resultado
del vector velocidad al cuadrado e integrar con respecto del tiempo. La función
“BalanceEnergetico.m” correspondiente al anexo 2 apartado 2.2 tiene una parte para el
cálculo de la energía cinética de la estructura. El cálculo teórico es:

Wk= ½*M*u2

Siendo:

M: La matriz de masas de la estructura

u: El desplazamiento de los nodos de la estructura

Donde u es el desplazamiento de todos los grados de libertad de los nodos no restringidos de


la estructura. En esta estructura son todos los nodos que no tienen un empotramiento
correspondiente. Así, se obtiene la energía cinética de la estructura.

4.2.5 Input de energía

En este apartado, se analiza la energía introducida en la estructura. Esta energía se utiliza para
comprobar el balance energético. Este trabajo considera el terremoto en una dirección que es
la del primer grado de libertad. En consecuencia, el vector de arrastre “J” contiene valores uno
en las partes del vector que correspondan al primer grado de libertad de cada nodo.

La función InputEnergy devuelve la energía introducida por el terremoto en la estructura que


se ha utilizado. Esta función está en el anexo 2 apartado 2.10. El cálculo teórico es:

E= ∫ (-M*J*ug)*v dt

Siendo: M la matriz de masas de la estructura

J: El vector de arrastre

ug: El vector de aceleraciones del terremoto considerado

Se realiza una integral entre 0 y t. Obsérvese que ug es un vector que resulta de multiplicar la
información del archivo del terremoto por g (aceleración de la gravedad) para utilizarlo en el
cálculo de la energía.

29
Cálculos dinámicos y resultados

4.2.6 Balance energético

Para comprobar el balance energético de la estructura se utiliza la función


“BalanceEnergetico.m”. Esta función tiene varios procesos para enlazar las funciones
anteriores descritos de la siguiente manera:

 Inicialmente, se cargan los datos del modelo numérico como las matrices de rigidez y
de masas y las variables que contienen la información de la energía disipada en la
placa y los pilares. Además, se cargan las aceleraciones del terremoto que se quiere
utilizar en el análisis del balance de energía.

 El siguiente paso es el cálculo de la energía de amortiguamiento de la estructura. En la


siguiente figura 12 se tiene una representación gráfica realizada en Matlab de la
energía de amortiguamiento. Obsérvese que al estar las dimensiones del modelo en
mm y las masas en toneladas las unidades de la energía son N.mm como se ve en la
figura.

Figura 12. Energía de amortiguamiento disipada en la estructura.

Obsérvese en la figura 12 que en los primeros 30s de duración del terremoto la energía de
amortiguamiento alcanza valores de 57000 N.mm de forma aproximada. Es decir, en los
primeros instantes del terremoto se disipa una gran cantidad de energía debido al
amortiguamiento de la estructura.

30 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

 La siguiente fase es el cálculo de la energía cinética de la estructura. En la siguiente


figura 13 se representa la gráfica de la energía cinética disipada en la estructura.

Figura 13. Energía cinética disipada en la estructura.

Obsérvese en la figura 13 que se alcanza a los 20s de duración una energía cinética de 7000
N.mm que es un de los valores más altos obtenidos, lo que significa que en esos instantes las
velocidades y aceleraciones de los nodos son las más altas en la estructura. La energía cinética
almacenada momentáneamente en los instantes iniciales del terremoto, se transforma en
energía de amortiguamiento y en energía de deformación plástica a medida que avanza el
tiempo.

 Se calcula el input de energía introducida en la estructura. En la siguiente figura 14 se


representa la gráfica del input de energía introducida por el terremoto de Kobe
utilizado.

31
Cálculos dinámicos y resultados

Figura 14. Input de energía introducida.

En la figura 14 se tiene la energía total introducida por el terremoto en la estructura. Hay que
comprobar que la energía introducida es igual a la energía almacenada/disipada en la
estructura. La energía introducida es de 58000 N.mm de forma aproximada. En la figura 14,
se puede apreciar un tramo inicial inferior a 20 s en el que la energía es nula porque en este
intervalo de tiempo la estructura se ha sometido únicamente a cargas gravitatorias.

 Finalmente, se suma la energía dispada en la placa y en los pilares. En la siguiente


figura 15 se representa la energía elástico plástica almacenada/disipada en la placa. Se
puede observar que la placa se ha mantenido elástica durante todo el terremoto, ya que
el final del mismo (una vez la estructura ha dejado de moverse) la energía Wes+Wp
vale cero.

32 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

Figura 15. Energía disipada por la placa.

En la figura 15 anterior, se puede observar que los valores más altos de energía almacenada
mediante deformaciones elásticas en la placa vale de 1,8 N.mm. Este es un valor muy
pequeño comparado con la cantidad total de energía introducida por el sismo.

En la siguiente figura 16 se representa la gráfica de la energía elástico plástica


almacenada/disipada por los pilares.

33
Cálculos dinámicos y resultados

Figura 16. Energía disipada en los pilares.

En la figura 17, se puede observar que los pilares almacenan/disipan valores de energía del
orden de 9000 N.mm, que son mucho mayores que los de la placa. Además, al final del
terremoto se puede observar que la energía no vale cero, lo que significa que los pilares han
plastificado y disipado energía mediante deformaciones plásticas.

Estas energías deben cumplir la ecuación de balance energético:

E= Wes+Wp+Wh+Wk

En esta ecuación, Wes+Wp es la suma de la contribución de la placa y de los pilares.

34 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

4.3 Resultados gráficos

4.3.1 Gráficas de la distribución de la energía

En este apartado, se realiza una representación gráfica de las energías obtenidas. Además, se
realizan unas gráficas con la distribución de esfuerzos y energías en la placa. Estas figuras
permiten analizar el balance energético objeto del presente trabajo y estudiar como se
distribuyen los esfuerzos y la energía en la placa.

En la figura 17 se muestran las diferentes formas de energía descritan en apartados anteriores


Estas gráficas tienen el tiempo de duración del terremoto que son 20s de forma aproximada y
la energía (N.mm) en el eje de ordenadas.

Figura 17. Energía disipada e input de energía.

Obsérvese, que al finalizar el análisis dinámico esto es, cuando las aceleraciones introducidas
en la estructura son nulas se tiene un input de energía de 58000Nmm aproximadamente, una
energía de amortiguamiento Wh de 57000Nmm, una energía cinética Wk baja, una energía
disipada por los pilares de 1900Nmm y una energía disipada por la placa prácticamente nula
en esta estructura.

La siguiente tabla resumen como se ha distribtuido la energía introducida entre


amortiguamiento, energía cinética y energía de deformación elástica y plástica en placas y
pilares.

35
Cálculos dinámicos y resultados

Tipo de energía Energía disipada %energía disipada


(N.mm)
Wplaca baja baja
Wpilares 1900 3,2%

Wh 57000 98,2%
Wk baja baja
E 58000
Tabla 3. Distribución de energía disipada/almacenada en la estructura

Según esta Tabla, los pilares han disipado mediante deforamciones plásticas un 3,2% de la
energía introducida por el terremoto y la placa ha disipado mediante deformaciones plásticas
una cantidad insignificante (prácticamente nula). Casi toda la energía introducida por el sismo
se ha disipado mediante el mecanismo de amortiguamiento. Este comportamiento se debe a
que la resistencia lateral de la estructura era elevada en relación a la acción sísmica aplicada,
por lo cual se ha mantenido básicamente elástica.

Adicionalmente, en la figura 18 se tiene la contribución de la energía disipada por la placa y


los pilares sumada a la de amortiguamiento. También, está representado el input de energía
menos la energía cinética. Obsérvese que E-Wk obtiene cantidades de energía similares a
Wh+Wpilares+Wplaca lo que confirma que el análisis realizado satisface con un alto grado de
precisión la ecuación de balance energético.

Figura 18. Contribución de la energía de la placa y de los pilares con la de amortiguamiento

En la figura 19 se compara la energía introducida por el terremoto y la suma de las energía


almacenadas/disipadas en la estructura. Se observa que se satisface con bastante precisión la
ecuación de balance energético E=Wes+Wp+Wh+Wk.

36 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

Figura 19. Energía disipada y energía introducida

4.3.2 Gráficas de desplazamientos y velocidades

La figura 21 muestra la aceleración producida por el terremoto de Kobe llamado “aceleración


de la mesa” que es el que se utiliza para este trabajo y el desplazamiento del nodo del centro
de la placa como nodo de control también.

37
Cálculos dinámicos y resultados

Figura 20. Aceleración producida por el terremoto de Kobe y desplazamiento del nodo central de la placa.

En esta figura 20 se observa que la cresta de aceleraciones se produce en un intervalo de 20s y


que los desplazamientos del nodo central en la dirección del primer grado de libertad es decir,
la dirección X, de la placa son proporcionales a estas aceleraciones anteriores. En esta figura
está representada la velocidad del nodo central de la placa correspondiente.

En la figura 21 se obtiene una representación gráfica de la aceleración del terremoto y de la


velocidad del nodo central de la placa. Obsérvese, que las aceleraciones no son las utilizadas
sino que se han escalado. Esto significa, que el vector de acelereaciones “Ug” en Matlab se ha
dividido entre 50 ya que los valores de Ug son muy grandes comparado con la velocidad del
nodo central de la placa. Esto permite representar ambas magnitudes para poder ver de
manera más sencilla la forma que adoptan estas. en Matlab para poder comparar ambas
variables respectivamente.

38 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

Figura 21. La distribución de la aceleración del suelo y la velocidad del nodo central de la placa.

4.3.3 Gráficas de la distribución de esfuerzos y energías en la placa

En este apartado, se obtiene la representación gráfica de los esfuerzos obtenidos con


OpenSees y las energías obtenidas en la segunda parte del trabajo. Para esto, se utiliza la
función “CurvasNivelPasoNEW.m” que se ha definido anteriormente.

4.3.3.1 Esfuerzos

La figura 23 muestra la distribución de los esfuerzos en la placa en un instante determinado.


Esta figura se crea a partir del programa CurvasNivelpasoNEW.m.

En concreto, se han representado los siguientes esfuerzos a los 20s del inicio terremoto
correspondiente. Se ha escogido el paso 2005 que está en un intervalo de aceleraciones igual a
0,22g con g=9810 N/mm2 como se muestra en la figura 22. Obsérvese que las aceleraciones
se miden en unidades de g y la aceleración máxima del suelo (PGA) es 0,22g como se
comentó anteriormente. Por tanto, se muestran los esfuerzos y las energías de mayor valor en
la placa.

39
Cálculos dinámicos y resultados

Figura 22. Acelerograma del terremoto de Kobe del archivo Kobe.txt y el valor del PGA considerado.

 Mxx: Es el esfuerzo perpendicular al eje x.

Figura 23. La distribución de momentoxx de la placa.

Se puede observar que el valor máximo de los esfuerzos es alrededor de la zona de los pilares.
Esto significa que se tienen los esfuerzos más grandes en las zonas de conexión placa con
pilar. Esta información es similar al análisis realizado con las gráficas de la distribución de la
energía donde se veía que los pilares disipan una cantidad de energía mayor que las placas.

 Myy: Es el esfuerzo que se aplica en la cara perpendicular al eje y.

40 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

Figura 24. La distribución del momentoyy en la placa.

Obsérvese que en la figura 24 se ha representado el momento Myy utilizando la función


“contourf “ incluida en la función CurvasdeNivelpasoNEW.m que muestra curvas de nivel
para que se representen los resultados.

 Mxy: Es el momento que se aplica paralelo a las caras de la placa.

Figura 25. La distribución del momentoxy de la placa.

Análogamente, como en el caso anterior se representan los esfueros Mxy mediante


curvas de nivel en este caso.

41
Cálculos dinámicos y resultados

 Nxx: Es el esfuerzo normal que se aplica en la dirección del eje x.

 Nyy: Es el esfuerzo normal que se aplica en la dirección del eje y.

Análogamente, los esfuerzos Nxx, Nyy, Vxz y Vyz muestran magnitudes prácticamente nulas
en la placa. Analizando estos resultados, se obtiene que la mayor parte de los esfuerzos están
producidos por el Mxx y el torsor Mxy.

El Mxx es el momento que se aplica en la cara perpendicular al eje x local que es la dirección
en la que se aplica el terremoto considerado.

4.3.3.2 Energías

En este apartado se muestra una representación gráfica de la distribución de la energía elástico


plástica en la placa debido a los esfuerzos correspondientes.

Como en el caso anterior, se han escogido las energías que se producen en el instante de
tiempo 20s esto es, el paso 2005 porque las aceleraciones son igualesa 0.22g. Así, se pueden
obtener los valores máximos de las energías disipadas en la placa.

Las figuras siguientes representan la energía elástico plástica disipada debido a cada esfuerzo
correspondiente.

 Energía debido a Mxx

Figura 26. Energía disipada debido a Mxx.

Análogamente, las energías debido a los esfuerzos Mxx, Myy, Nxx, Nyy, Vxz y Vyz son
prácticamente nulas. Esto es así, porque si los esfuerzos son pequeños como vimos en el
42 Escuela Técnica Superior de Ingenieros Industriales (UPM)
Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

apartado anterior al multiplicar por las deformaciones que son más pequeñas y realizar el
cálculo de la energía elástico plástica la energía obtenida es muy pequeña.

43
Conclusiones

5. CONCLUSIONES

En este trabajo se ha realizado un análisis energético del comportamiento de una estructura de


hormigón armado formado por losas sobre pilares aislados sometida a un terremoto.
Concretamente, la estructura ha consistido en una losa apoyada sobre cuatro pilares situados
en las esquinas y empotrados en su base.

La primera parte del trabajo ha consistido en desarrollar un modelo numérico y realizar


análisis dinámicos directos no lineales, para lo cual se ha utilizado el programa libre
OpenSees. Con este software se puede realizar un análisis bajo cargas gravitatorias y
dinámicas de la estructura.

En la segunda parte de este trabajo, los resultados de los análisis con Opensees se han
postprocesado mediante Matlab para obtener energías. Los resultados obtenidos a nivel global
muestran que se se satisface con suficiente precisión la ecuación de balance de energías en
cada instante del tiempo, lo que indica que el cálculo dinámico no lineal realizado es correcto.

Las pequeñas diferencias entre energía total introducida por el sismo y suma de energías
cinética, de amortiguamiento y de deformación elástica y plástica en la estructura se debe
probablemente a los pequeños errores que introducen las simplificaciones realizadas para
obtener cada una de las energías anteriores. Concretamente, a los errores en el cálculo de la
energía disipada por los pilares debido a que se han empleado sólo 5 puntos de Gauss.

Además, se ha considerado que alrededor de cada punto de Gauss los valores de los esfuerzos
y las deformaciones son constantes pero en la realidad no lo son sino que cambian de forma
continua a lo largo del pilar. Para mejorar el ajuste entre energía total introducida por el sismo
y la suma de energía almacenadas/disipadas en cada instante, se podrían añadir más puntos de
Gauss o emplear interpolaciones más precisas de los resultados obtenidos entre los puntos.

Los resultados de los cálculos muestran que la placa se ha mantenido básicamente elástica y
únicamente han deformado plásticamente los pilares. La energía disipada por los pilares es
pequeña (3.2) en relación al total de energía introducida, lo que indica que la estructura
globalmente se ha mantenido básicamente elástica. Ello se debe a que su resistencia lateral era
elevada en relación al nivel de intensidad del sismo aplicado.

Además, se concluye que el esfuerzo flector Mxx es el que más contribuye en la


disipación/almacenamiento de energía en las placas. Además, las zonas más solicitadas son
las conexiones placa-pilar.

Como futuras líneas de trabajo, sería interesante someter el mismo modelo numérico a
mayores niveles de intensidad sísmica y estudiar cómo se reparte, para cada nivel, el
porcentaje de energía disipada mediante deformaciones plásticas y mediante
amortiguamiento.

44 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

6. BIBLIOGRAFÍA

[1] Shaking table tests of a reinforced concrete waffle–flat plate structure designed following
modern codes: seismic performance and damage evaluation. Amadeo Benavent-Climent,
Jesús Donaire-Avila and Elena Oliver-Saiz

[2] Shake-table tests of a reinforced concrete frame designed following modern codes:
seismic performance and damage evaluation. Amadeo Benavent-Climent1, David Escolano-
Margarit and Leandro Morillas

[3] Command manual OpenSees

[4] A shear wall element for nonlinear seismic analysis of super-tall buildings using
OpenSees. Xinzheng Lu a,n, LinlinXie, HongGuan, YuliHuang, XiaoLu

45
Planificación y presupuesto

7. PLANIFICACIÓN Y PRESUPUESTO

Para la planificación el presente trabajo se ha trabajado a lo largo del curso académico en dos
partes. La primera es el análisis del modelo en OpenSees para obtener los resultados y la
última parte es el análisis de funciones en Matlab para obtener la energía en la estructura.
Finalmente, se realiza un estudio de los diferentes resultados posibles para incluir en el
trabajo correspondiente.

Para el presupuesto se podría medir en horas de trabajo que son 300 horas para este trabajo de
forma aproximada durante el transcurso del año académico.

46 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

Anexos
1. Programas en OpenSees
2. Funciones en Matlab

47
Anexos

Anexo 1
1.1 AD.tcl
###################################################

Programa principal

###################################################

source Analysis.tcl
set Inf Inf

#------------------------------------

#Placa no elastica apoyada en pilares carga en vertices vertical uniforme


#Definir modelo

wipe
model basic -ndm 3 -ndf 6

source Nodes.tcl

set ::NodeEnd 13

# Masas
set m 0.5;
mass 1 $m 0 0 0 0 0
mass 3 $m 0 0 0 0 0
mass 5 $m 0 0 0 0 0
mass 7 $m 0 0 0 0 0

#Condiciones de contorno

fix 10 1 1 1 1 1 1
fix 11 1 1 1 1 1 1
fix 12 1 1 1 1 1 1
fix 13 1 1 1 1 1 1

source Materiales.tcl

source Secciones.tcl

set Trz 1

geomTransf Linear $Trz 1 0 0


set np 5
# set locations "0.05 0.15 0.25 0.35 0.45 0.55 0.65 0.75 0.85 0.95"
set locations "0.1 0.3 0.5 0.7 0.9"

48 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

# set secTags "$Sv1 $Sv1 $Sv1 $Sv1 $Sv1 $Sv1 $Sv1 $Sv1 $Sv1 $Sv1"
set secTags "$Sv1 $Sv1 $Sv1 $Sv1 $Sv1"
set integration "FixedLocation $np $secTags $locations"
source FrameElem.tcl

source PlateElem.tcl

#------------------------------------

# OUTPUTS
set Outputs "Terremoto"

# ANALYSIS
# numberer RCM
numberer Plain
set ConvInf 0; # Información de la convergencia
# 0 print nothing
# 1 print information on norms each time test() is invoked
# 2 print information on norms and number of iterations at end of successful test
# 4 at each step it will print the norms and also the ΔU and R(U) vectors.
# 5 if it fails to converge at end of $numIter it will print an error message BUT RETURN A
SUCCESSFUL test

# MODEL MATRICES
# doMassMatrix $ConvInf $Outputs $Inf
# doStiffnessMatrix $ConvInf $Outputs $Inf

# MODAL ANALYSIS
set numModes 2;
doModes $numModes NoOutputs Inf

# GRAVITY ANALYSIS (Load control)


set dF 0.1
set tol 1e-4
set iter 300

timeSeries Linear 1
pattern Plain 1 1 {
load 1 0 0 [expr -$m*$g] 0 0 0
load 3 0 0 [expr -$m*$g] 0 0 0
load 5 0 0 [expr -$m*$g] 0 0 0
load 7 0 0 [expr -$m*$g] 0 0 0
# definir las cargas
}
set ::dt $dF

49
Anexos

# doGravity $dF $ConvInf $tol $iter NoOutputs $Inf

# DYNAMIC ANALYSIS
set iGMfile "Kobe" ; # ground-motion filenames, should be different files
# ReadVector "Earthquakes/BS2DirX100Hz.txt" THData StepN; # Lee numero de steps
set StepN 14000

set DampingRatio 0.024;


set nEigenI 1
set nEigenJ 1
set Model Mass
DampingModel $DampingRatio $nEigenI $nEigenJ $Model Inf

# Unidirectional Uniform Earthquake ground motion (uniform acceleration input at all


support nodes)
set Earthquakes Earthquakes
set iGMdirection "1"; # ground-motion direction
set iGMfact "1.0"; # ground-motion scaling factor
set ::dt 0.01
set tol 1e-3
set iter 400
set FactorHHT 0.9

set IDloadTag 400; # for uniformSupport excitation


foreach GMdirection $iGMdirection GMfile $iGMfile GMfact $iGMfact {
incr IDloadTag;
# set inFile $Earthquakes/$GMfile.at2;# set inFile $GMdir/$GMfile.at2
set outFile $Earthquakes/$GMfile.txt;# set outFile $GMdir/$GMfile.g3; # set
variable holding new filename (PEER files have .at2/dt2 extension)
# ReadSMDFile $inFile $outFile dt; # call procedure to convert the ground-
motion file
set GMfatt [expr $g*$GMfact]; # data in input file is in g Unifts --
ACCELERATION TH
set AccelSeries "Series -dt $::dt -filePath $outFile -factor $GMfatt"; # time series
information
pattern UniformExcitation $IDloadTag $GMdirection -accel $AccelSeries ; # create
Unifform excitation
}

set TmaxAnalysis [expr $StepN*$::dt];


set dtcal [expr $::dt*1.0]

doDynamic $dtcal $TmaxAnalysis $FactorHHT $ConvInf $tol $iter $Outputs Inf

exit
1.2 Nodes.tcl

node 1 0 0 0
node 2 1000 0 0

50 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

node 3 2000 0 0
node 4 2000 1000 0
node 5 2000 2000 0
node 6 1000 2000 0
node 7 0 2000 0
node 8 1000 1000 0
node 9 0 1000 0
node 10 0 0 -1500
node 11 0 2000 -1500
node 12 2000 2000 -1500
node 13 2000 0 -1500
1.3 Materiales.tcl
#Definicion materiales no elasticos para viga
#Areas de barra armadura
set pi [expr acos(-1.0)];
set g 9810;

#uniaxialMaterial Concrete04 $matTag $fc $ec $ecu $Ec $fct $et $beta
#Hormigón no confinado
#Tension MPa
set ::Hormigon 1
set Ec 30000;
set fc -44.0;
set epsc [expr 2.0*$fc/$Ec];
set fcu -0.0
set epscu -0.01545
set Ets [expr 0.1*$Ec]
set ft 2.8;
set epst [expr $ft/$Ec];
set beta 0.1
set dc 2.38e-9; # [T/mm3=2.344T/m3=Ns2/mm4] Densidad del concreto
set nuc 0.2; # Poisson Hormigon
set Gc [expr $Ec/(2*($nuc+1.0))]; # Shear modulus hormigón [N/mm^2]

uniaxialMaterial Concrete02 $Hormigon $fc $epsc $fcu $epscu $beta $ft $epst

set fMf 1.0; #Factor de mayoracion de fuerza confinado


set fMd 1.0; #Factor de mayoracion de desplazamiento confinado

set ::HormigonC 2;
uniaxialMaterial Concrete02 $HormigonC [expr $fc*$fMf] [expr $epsc*$fMd] [expr
$fcu*$fMf] [expr $epscu*$fMd] $beta $ft $Ets

#uniaxialMaterial Steel02 $matTag $Fy $E $b $R0 $cR1 $cR2


#Tension MPa
set ::Acero 3;
set fy 525.0;
set ds 7.85e-9; # [7850 kg/m3] Densidad del acero

51
Anexos

set nus 0.3; # Poisson Acero


set Es 2.0e5; # Modulo de Young steel[N/mm^2]
set Gs [expr $Es/(2*($nus+1.0))]; # Shear modulus acero [N/mm^2]

# $matTag $Fy $E $b $R0 $cR1 $cR2 <$a1 $a2 $a3 $a4 $sigInit>
uniaxialMaterial Steel02 $::Acero $fy $Es 0.005 18.5 0.925 0.15 ;

#Materiales elasticos
#Materiales placa elastica
#Definicion materiales placa elastica
set h 10; # h:mm
set E 2.1e5; #E:MPa
set nu 0.3
set rho 0.0
uniaxialMaterial Elastic 4 $E

# Materiales para las placas no lineales (31-40)


#Hormigon

set HormigonPlaca 32
# Hormigón $matTag 40 7 $fc $ft $fcu $epsc0 $epscu
$epstu $stc
nDMaterial PlaneStressUserMaterial 31 40 7 $fc $ft $fcu $epsc $epscu
[expr $ft/$Ec] 0.08; # Comprobar estos números
# nDMaterial PlateFromPlaneStress $matTag $PlaneStressMatTag
$OutOfPlaneShearModulus
nDMaterial PlateFromPlaneStress $HormigonPlaca 31 $Gc;
#

# Armadura
# Armadura en dirección Y
set AceroDirY 33
nDMaterial PlateRebar $AceroDirY $::Acero 90
# Armadura en dirección X
set AceroDirX 34
nDMaterial PlateRebar $AceroDirX $::Acero 0

1.4 Secciones.tcl

#Secciones

# Definir parametros Viga 1


# Viga 1:
set Sv1 3001;
set bSv1 100.0; # Base de la sección de la columna
set hSv1 100.0; # Altura de la sección de la columna
set ASv1 [expr $bSv1*$hSv1]
set ItSv1 0.80295*($bSv1**4/6)
set d 6.0; # Diametro de la barra
set As [expr $pi*($d**2.0)/4.0]

52 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

#Materiales para agregar los esfuerzos a la seccion de fibra definida de la viga


# uniaxialMaterial Elastic $matTag $E <$eta> <$Eneg>
uniaxialMaterial Elastic [expr $Sv1-2900] [expr $Gc*$ASv1*2.0/3.0]; #Rigideces de
cortantes z e y
# puts "Material elastico añadido a la seccion viga para rigidez cortante: [expr $Sv1-2900]"

#Definicion material elastico con rigidez a torsion


uniaxialMaterial Elastic [expr $Sv1-2800] [expr $Gc*$ItSv1]
# puts "Material elastico añadido a la seccion viga para rigidez torsor: [expr $Sv1-2800]"

# Definir parametros fibras viga


set fibra 2.0
set YcgSv1 [expr $hSv1/2];
set ZcgSv1 [expr $bSv1/2];
set rmecSv1 10.0;
set desSv1 0.0;

#Sección
section Fiber [expr $Sv1-2700] {
patch rect $HormigonC [expr int(($bSv1-2*$rmecSv1)/$fibra)] [expr int(($hSv1-
2*$rmecSv1)/$fibra)] [expr -$YcgSv1+$rmecSv1] [expr -$ZcgSv1+$rmecSv1] [expr
$YcgSv1-$rmecSv1] [expr $ZcgSv1-$rmecSv1];
patch rect $Hormigon [expr int(($bSv1-2*$desSv1)/$fibra)] [expr int(($rmecSv1-
$desSv1)/$fibra)] [expr -$YcgSv1+$desSv1] [expr $ZcgSv1-$rmecSv1] [expr $YcgSv1-
$desSv1] [expr $ZcgSv1-$desSv1];
patch rect $Hormigon [expr int(($bSv1-2*$desSv1)/$fibra)] [expr int(($rmecSv1-
$desSv1)/$fibra)] [expr -$YcgSv1+$desSv1] [expr -$ZcgSv1+$desSv1] [expr $YcgSv1-
$desSv1] [expr -$ZcgSv1+$rmecSv1];
patch rect $Hormigon [expr int(($rmecSv1-$desSv1)/$fibra)] [expr int(($hSv1-
2*$rmecSv1)/$fibra)] [expr -$YcgSv1+$desSv1] [expr -$ZcgSv1+$rmecSv1] [expr -
$YcgSv1+$rmecSv1] [expr $ZcgSv1-$rmecSv1];
patch rect $Hormigon [expr int(($rmecSv1-$desSv1)/$fibra)] [expr int(($hSv1-
2*$rmecSv1)/$fibra)] [expr $YcgSv1-$rmecSv1] [expr -$ZcgSv1+$rmecSv1] [expr
$YcgSv1-$desSv1] [expr $ZcgSv1-$rmecSv1];

layer straight $Acero 3 $As [expr -$YcgSv1+$rmecSv1] [expr -$ZcgSv1+$rmecSv1]


[expr -$YcgSv1+$rmecSv1] [expr $ZcgSv1-$rmecSv1]; #Situa tres fibras en la zona
inferior de forma horizontal
layer straight $Acero 3 $As [expr $YcgSv1-$rmecSv1] [expr -$ZcgSv1+$rmecSv1]
[expr $YcgSv1-$rmecSv1] [expr $ZcgSv1-$rmecSv1]; #Situa tres fibras en la zona
superior de forma horizontal

fiber 0.0 [expr -$ZcgSv1+$rmecSv1] $As $Acero


fiber 0.0 [expr $ZcgSv1-$rmecSv1] $As $Acero
}

section Aggregator $Sv1 [expr $Sv1-2900] Vz [expr $Sv1-2900] Vy [expr $Sv1-2800] T -


section [expr $Sv1-2700]

53
Anexos

puts "Columna 1"


puts "HormigonC1 confinado patch 1: fy:[expr int(($bSv1-2*$rmecSv1)/$fibra)] fz:[expr
int(($hSv1-2*$rmecSv1)/$fibra)]"
puts "Hormigon dere patch 2: fy:[expr int(($bSv1-2*$desSv1)/$fibra)] fz:[expr
int(($rmecSv1-$desSv1)/$fibra)]"
puts "Hormigon izq patch 3: fy:[expr int(($bSv1-2*$desSv1)/$fibra)] fz:[expr int(($rmecSv1-
$desSv1)/$fibra)]"
puts "Hormigon abajo patch 4: fy:[expr int(($rmecSv1-$desSv1)/$fibra)] fz:[expr int(($hSv1-
2*$rmecSv1)/$fibra)]"
puts "Hormigon arriba patch 5: fy:[expr int(($rmecSv1-$desSv1)/$fibra)] fz:[expr int(($hSv1-
2*$rmecSv1)/$fibra)]"

#Seccion placa elastica


# Definicion seccion placa
set h 140.0
section ElasticMembranePlateSection 10001 $Ec $nuc $h 0.0
#Seccion placa no elastica
section LayeredShell 10002 7 $HormigonPlaca 10.0 $AceroDirY 0.5
$AceroDirX 0.5 $HormigonPlaca 116.0 $AceroDirY 0.5 $AceroDirX 0.5
$HormigonPlaca 10.0

1.5 FrameElem.tcl

element forceBeamColumn 1 1 10 $Trz $integration


element forceBeamColumn 2 7 11 $Trz $integration
element forceBeamColumn 3 5 12 $Trz $integration
element forceBeamColumn 4 3 13 $Trz $integration

1.6 PlateElem.tcl

element ShellMITC4 5 1 2 8 9 10002


element ShellMITC4 6 2 3 4 8 10002
element ShellMITC4 7 8 4 5 6 10002
element ShellMITC4 8 9 8 6 7 10002

1.7 Analysis.tcl

###########################################################################
#
# PROCEDURES FOR OPENSEES ANALYSIS
#
#
#
#
###########################################################################

proc doMassMatrix {ConvInf Outputs Inf} {

54 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

if {$Inf != "NoInf"} {
puts "--------------------------"
puts "MASS MATRIX"
}

system FullGeneral
constraints Transformation

test NormDispIncr 1.0e-10 10 $ConvInf;


integrator NewmarkExplicit 0.5;
test NormDispIncr 1.0e-10 10 $ConvInf;
algorithm KrylovNewton;
analysis Transient;
analyze 1 1

if {$Inf != "NoInf"} {
puts "Writing M..."
}

file mkdir $Outputs/Matrices


printA -file $Outputs/Matrices/M.out;

reset
}

proc doStiffnessMatrix {ConvInf Outputs Inf} {

if {$Inf != "NoInf"} {
puts "--------------------------"
puts "STIFFNESS MATRIX"
}

system FullGeneral
constraints Transformation

test NormDispIncr 1.0e-10 10 $ConvInf;


integrator LoadControl 1
algorithm KrylovNewton
analysis Static
analyze 1
if {$Inf != "NoInf"} {
puts "Writing K..."
}
file mkdir $Outputs/Matrices
printA -file $Outputs/Matrices/K.out;

reset

55
Anexos

proc doModes {numModes Outputs Inf} {


# Outputs: nombre de la carpeta Outputs o "NoOutputs" si no se quieren resultados

if {$Inf != "NoInf"} {
puts "------------------------------------------------------"
puts "MODAL ANALYSIS"
}

system UmfPack
constraints Transformation

if {$numModes > 1} {
set lambda [eigen -genBandArpack $numModes];
} else {
set lambda [eigen -fullGenLapack $numModes];
}

set omega {}
set f {}
set T {}
set pi [expr acos(-1.0)];

foreach lam $lambda {


lappend omega [expr sqrt($lam)]
lappend f [expr sqrt($lam)/(2*$pi)]
lappend T [expr (2*$pi)/sqrt($lam)]
}

if {$Inf != "NoInf"} {
puts "Periods are: $T -s-"
puts "Frequencies are: $f -Hz-"
}

if {$Outputs != "NoOutputs"} {
file mkdir $Outputs/Modes
for { set k 1 } { $k <= $numModes } { incr k } {
recorder Node -file [format "$Outputs/Modes/mode%i.out" $k] -time -nodeRange 1
"$::NodeEnd" -dof 1 2 3 4 5 6 "eigen $k"

}
set period "$Outputs/Modes/Periods.txt"
set Periods [open $period "w"]
foreach t $T {
puts $Periods " $t"
}
close $Periods
record
remove recorders
}

56 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

proc doGravity {dF ConvInf tol iter Outputs Inf} {


# Outputs: nombre de la carpeta Outputs o "NoOutputs" si no se quieren resultados

if {$Inf != "NoInf"} {
puts "------------------------------------------------------"
puts "GRAVITY ANALYSIS"
}

if {$Outputs != "NoOutputs"} {
source "Outputs.tcl";
}

system UmfPack
constraints Transformation

test NormDispIncr $tol $iter $ConvInf


algorithm KrylovNewton
set numSteps [expr int(1.0/$dF)]
integrator LoadControl $dF
analysis Static

set itern 0
set ok 0
set currentDisp 0
while {$ok == 0 && $itern < $numSteps} {
set ok [analyze 1];

set ok [StaticAlgoritm $ok $Inf $itern $tol $iter $ConvInf]

set itern [expr $itern+1]


# puts Step:$itern
}
if {$Inf != "NoInf"} {
if {$ok == 0} {
puts "Gravity is OK"
} else {
puts "Gravity analysis FAILED End Step:$itern";
}
}
loadConst -time 0; # hace que las fuerzs de gravedad se mantengan constantes
return $ok
}

proc doPushover { dU maxU ControlNode dof ConvInf tol iter Outputs Inf} {
# Outputs: nombre de la carpeta Outputs o "NoOutputs" si no se quieren resultados

57
Anexos

if {$Inf != "NoInf"} {
puts "------------------------------------------------------"
puts "PUSHOVER ANALYSIS"
}

if {$Outputs != "NoOutputs"} {
source "Outputs.tcl";
}

system UmfPack
constraints Penalty 1.0e16 1.0e16;

integrator DisplacementControl $ControlNode $dof $dU 1 $dU $dU; # Control por


desplazamientos en Story 1
test NormDispIncr $tol $iter $ConvInf
algorithm KrylovNewton
analysis Static

set itern 0
set ok 0
set currentDisp 0
while {$ok == 0 && abs($currentDisp) < abs($maxU)} {
set ok [analyze 1];

set ok [StaticAlgoritm $ok $Inf $itern $tol $iter $ConvInf]

set itern [expr $itern+1]


set currentDisp [nodeDisp $ControlNode $dof]

if {$Inf != "NoInf"} {
puts Step:$itern
puts desp:$currentDisp
}

if {$Inf != "NoInf"} {
if {$ok == 0} {
puts "Pushover analysis completed SUCCESSFULLY";
} else {
puts "Pushover analysis FAILED";
}
}

return $ok

58 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

proc doDynamic {dtcal TmaxAnalysis FactorHHT ConvInf tol iter Outputs Inf} {
# Outputs: nombre de la carpeta Outputs o "NoOutputs" si no se quieren resultados
if {$Inf != "NoInf"} {
puts "------------------------------------------------------"
puts "DYNAMIC ANALYSIS"
puts "TmaxAnalysis:$TmaxAnalysis"
}

if {$Outputs != "NoOutputs"} {
source "Outputs.tcl";
}

system UmfPack
constraints Transformation

integrator HHT $FactorHHT;


# integrator TRBDF2
test NormDispIncr $tol $iter $ConvInf;
# test EnergyIncr $tol $iter $ConvInf
algorithm KrylovNewton;
analysis Transient; # define type of analysis: time-dependent

set itern 0
set ok 0

set controlTime 0;
while {$controlTime < $TmaxAnalysis && $ok == 0} {
set controlTime [getTime];
set ok [analyze 1 $dtcal];

set ok [DynamicAlgoritm $ok $Inf $itern $dtcal $tol $iter $controlTime $ConvInf]

set itern [expr $itern+1]

# ----------------------------------------------------------------------------------------------
# if {$Inf != "NoInf"} {
# source InfDuringEartquake.tcl
#}
# ----------------------------------------------------------------------------------------------

# puts Step:$itern
# puts CurrentTime:$controlTime
}

if {$Inf != "NoInf"} {
if {$ok == 0} {
puts "Transient analysis completed SUCCESSFULLY End Time: [getTime]";
} else {
puts "Transient analysis FAILED End Time: [getTime]";

59
Anexos

}
}

return $ok
}

proc doReversedCyclicPushover {iDstep dU ControlNode dof ConvInf tol iter Outputs Inf} {
# Outputs: nombre de la carpeta Outputs o "NoOutputs" si no se quieren resultados
if {$Inf != "NoInf"} {
puts "------------------------------------------------------"
puts "REVERSED CYCLIC PUSHOVER"
}
puts $Outputs
if {$Outputs != "NoOutputs"} {
source "Outputs.tcl";
}

system UmfPack
constraints Penalty 1.0e16 1.0e16;

set D0 0.0
foreach Dstep $iDstep {
set D1 $Dstep
set Dincr [expr $D1 - $D0]
set itern 0

integrator DisplacementControl $ControlNode $dof $Dincr; # Control por desplazamientos en


Story 1
test NormDispIncr $tol $iter $ConvInf
algorithm KrylovNewton
analysis Static

set ok [analyze 1]

set ok [StaticAlgoritm $ok $Inf $itern $tol $iter $ConvInf]

set itern [expr $itern+1]

set D0 $D1; # move to next step


}

return $ok

proc StaticAlgoritm {ok Inf itern tol iter ConvInf} {


if {$ok != 0} {

60 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

if {$Inf != "NoInf"} {
puts "Trying NewtonWithLineSearch .."
puts Step:$itern
}
algorithm NewtonLineSearch 0.8
set ok [analyze 1];
if {$ok == 0} {puts "that worked .. back to KrylovNewton"}
algorithm KrylovNewton;
}

if {$ok != 0} {
if {$Inf != "NoInf"} {
puts "Trying Broyden .."
}
test NormDispIncr $tol $iter $ConvInf;
algorithm Broyden 20
set ok [analyze 1];
if {$ok == 0} {puts "that worked .. back to KrylovNewton"}
algorithm KrylovNewton;
}

if {$ok != 0} {
if {$Inf != "NoInf"} {
puts "Trying ModifiedNewton with Initial Tangent .."
}
test NormDispIncr $tol $iter $ConvInf; # if the analysis fails try initial tangent iteration
algorithm ModifiedNewton –initial;
set ok [analyze 1];
if {$ok == 0} {puts "that worked .. back to KrylovNewton"}
test NormDispIncr $tol $iter $ConvInf;
algorithm KrylovNewton;
}

if {$ok != 0} {
if {$Inf != "NoInf"} {
puts "Trying Newton with Initial Tangent .."
}
test NormDispIncr $tol $iter $ConvInf; # if the analysis fails try initial tangent iteration
algorithm Newton –initial;
set ok [analyze 1];
if {$ok == 0} {puts "that worked .. back to KrylovNewton"}
test NormDispIncr $tol $iter $ConvInf;
algorithm KrylovNewton;

}
return $ok
}

proc DynamicAlgoritm {ok Inf itern dtcal tol iter controlTime ConvInf} {

61
Anexos

if {$ok != 0} {
if {$Inf != "NoInf"} {
puts "Trying NewtonWithLineSearch .."
puts Step:$itern
puts CurrentTime:$controlTime
}
test NormDispIncr $tol $iter $ConvInf;
# test EnergyIncr $tol $iter $ConvInf
algorithm NewtonLineSearch .8
set ok [analyze 1 $dtcal];
if {$ok == 0} {puts "that worked .. back to KrylovNewton"}
test NormDispIncr $tol $iter $ConvInf;
# test EnergyIncr $tol $iter $ConvInf
algorithm KrylovNewton;
}

if {$ok != 0} {
if {$Inf != "NoInf"} {
puts "Trying Broyden .."
}
test NormDispIncr $tol $iter $ConvInf;
# test EnergyIncr $tol $iter $ConvInf
algorithm Broyden 20
set ok [analyze 1 $dtcal];
if {$ok == 0} {puts "that worked .. back to KrylovNewton"}
test NormDispIncr $tol $iter $ConvInf;
# test EnergyIncr $tol $iter $ConvInf
algorithm KrylovNewton;
}

if {$ok != 0} {
if {$Inf != "NoInf"} {
puts "Trying ModifiedNewton with Initial Tangent .."
}
test NormDispIncr $tol $iter $ConvInf; # if the analysis fails try initial tangent iteration
# test EnergyIncr $tol $iter $ConvInf
algorithm ModifiedNewton –initial;
set ok [analyze 1 $dtcal];
if {$ok == 0} {puts "that worked .. back to KrylovNewton"}
test NormDispIncr $tol $iter $ConvInf;
# test EnergyIncr $tol $iter $ConvInf
algorithm KrylovNewton;
}

if {$ok != 0} {
if {$Inf != "NoInf"} {
puts "Trying Newton with Initial Tangent .."
}
test NormDispIncr $tol $iter $ConvInf; # if the analysis fails try initial tangent iteration

62 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

# test EnergyIncr $tol $iter $ConvInf


algorithm Newton –initial;
set ok [analyze 1 $dtcal];
if {$ok == 0} {puts "that worked .. back to KrylovNewton"}
test NormDispIncr $tol $iter $ConvInf;
# test EnergyIncr $tol $iter $ConvInf
algorithm KrylovNewton;
}

return $ok
}

proc DampingModel {DampingRatio nEigenI nEigenJ Model Inf} {

if {$Inf != "NoInf"} {
puts "------------------------------------------------------"
puts "DAMPING MODEL"
puts "Damping Ratio: $DampingRatio"; # damping ratio
}

if {$nEigenJ > 1} {
set lambdaN [eigen -genBandArpack $nEigenJ]; # eigenvalue analysis for
nEigenJ modes
} else {
set lambdaN [eigen -fullGenLapack $nEigenJ]; # eigenvalue analysis for
nEigenJ modes
}

set lambdaI [lindex $lambdaN [expr $nEigenI-1]]; # eigenvalue mode i


set lambdaJ [lindex $lambdaN [expr $nEigenJ-1]]; # eigenvalue mode j

set omegaI [expr pow($lambdaI,0.5)];


set omegaJ [expr pow($lambdaJ,0.5)];

if {$Model == "Mass"} {
if {$Inf != "NoInf"} {
puts "Damping Model: Mass"
}
set alphaM [expr 2*$DampingRatio*$omegaI]; # M-prop. damping; D = alphaM*M
puts alphaM:$alphaM
set betaKcurr 0.0
set betaKinit 0.0
set betaKcomm 0.0
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm;

63
Anexos

if {$nEigenJ > 1} {

if {$Model == "RayleighKini"} {

if {$Inf != "NoInf"} {
puts "Damping Model: Rayleigh Kini "
}

set MpropSwitch 1.0;


set KcurrSwitch 0.0;
set KcommSwitch 0.0;
set KinitSwitch 1.0;

set alphaM [expr


$MpropSwitch*$DampingRatio*(2*$omegaI*$omegaJ)/($omegaI+$omegaJ)]; # M-prop.
damping; D = alphaM*M
set betaKcurr [expr $KcurrSwitch*2.*$DampingRatio/($omegaI+$omegaJ)];
# current-K; +beatKcurr*KCurrent
set betaKcomm [expr $KcommSwitch*2.*$DampingRatio/($omegaI+$omegaJ)];
# last-committed K; +betaKcomm*KlastCommitt
set betaKinit [expr $KinitSwitch*2.*$DampingRatio/($omegaI+$omegaJ)];
# initial-K; +beatKinit*Kini
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; #
RAYLEIGH damping D=$alphaM*M + $betaKcurr*Kcurrent + $betaKcomm*KlastCommit
+ $beatKinit*$Kinitial

} elseif {$Model == "RayleighKcomm"} {

if {$Inf != "NoInf"} {
puts "Damping Model: Rayleigh Kcomm"
}

set MpropSwitch 1.0;


set KcurrSwitch 0.0;
set KcommSwitch 1.0;
set KinitSwitch 0.0;

set alphaM [expr


$MpropSwitch*$DampingRatio*(2*$omegaI*$omegaJ)/($omegaI+$omegaJ)]; # M-prop.
damping; D = alphaM*M
set betaKcurr [expr $KcurrSwitch*2.*$DampingRatio/($omegaI+$omegaJ)];
# current-K; +beatKcurr*KCurrent
set betaKcomm [expr $KcommSwitch*2.*$DampingRatio/($omegaI+$omegaJ)];
# last-committed K; +betaKcomm*KlastCommitt
set betaKinit [expr $KinitSwitch*2.*$DampingRatio/($omegaI+$omegaJ)];
# initial-K; +beatKinit*Kini
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; #
RAYLEIGH damping D=$alphaM*M + $betaKcurr*Kcurrent + $betaKcomm*KlastCommit
+ $beatKinit*$Kinitial

64 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

} elseif {$Model == "RayleighKcurr"} {

if {$Inf != "NoInf"} {
puts "Damping Model: Rayleigh Kcurr"
}

set MpropSwitch 1.0;


set KcurrSwitch 1.0;
set KcommSwitch 0.0;
set KinitSwitch 0.0;

set alphaM [expr


$MpropSwitch*$DampingRatio*(2*$omegaI*$omegaJ)/($omegaI+$omegaJ)]; # M-prop.
damping; D = alphaM*M
set betaKcurr [expr $KcurrSwitch*2.*$DampingRatio/($omegaI+$omegaJ)];
# current-K; +beatKcurr*KCurrent
set betaKcomm [expr $KcommSwitch*2.*$DampingRatio/($omegaI+$omegaJ)];
# last-committed K; +betaKcomm*KlastCommitt
set betaKinit [expr $KinitSwitch*2.*$DampingRatio/($omegaI+$omegaJ)];
# initial-K; +beatKinit*Kini
rayleigh $alphaM $betaKcurr $betaKinit $betaKcomm; #
RAYLEIGH damping D=$alphaM*M + $betaKcurr*Kcurrent + $betaKcomm*KlastCommit
+ $beatKinit*$Kinitial

65
Anexos

Anexo 2

2.1 Principal.m
clc; clear; close all; tic; disp('OPENSEES')

%% Ejecución de OpenSees
disp('Calculando...')

!OpenSees250r6477.exe "AD".tcl

% !OpenSees2.5.exe "AD".tcl
disp('...fin del cálculo')

2.2 BalanceEnergetico
clc;clear;close all;
%% Balance energético
currf=pwd;
g=9810;

%% Cargar datos del modelo numérico


cd('../Modelo/Terremoto/Displacement')
disp=load('nodesdispsr.out');
disp8=load('node8.out');
utop=disp8(1:end-1,2:end);
U=disp(1:end-1,2:end);

t=disp(1:end-1,1);
n=length(t);
gdl=size(U,2);
V=zeros(n,gdl);
for i=1:gdl
V(:,i)=dxdt(U(:,i),t);
end
cd('../Matrices')
M=load('M.out');
K=load('K.out');

cd('../../Earthquakes')
Ug=load('Kobe.txt')*g;
cd(currf)

load('EnergiaElasticaPlasticaPlaca/Wplaca.mat')
load('EnergiaElasticaPlasticaLineal/Wviga.mat')

%% Energía de Amortiguamiento
DampingRatio=0.024;
Method=1;
[Wh,Whgdl] = DampingEnergy (t,K,M,V,DampingRatio,Method);

%% Energía cinética
Wk=(1/2)*(diag(M)'*(V.*V)')';

%% Input de Energía
[E,Egdl] = InputEnergy(V,t,M,Ug*1.0,1);

66 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

%% Energía de deformación (elastica+plastica)


Wviga=Wviga(1:end-1)';
Wplaca=Wplaca(1:end-1)';

Wp=Wviga+Wplaca;

%% Gráficas
figure(1)
plot(t,E,t,Wh,t,Wk,t,Wplaca,t,Wviga)
legend('E','Wh','Wk','Wplaca','Wviga','location','Northwest')
xlabel('Tiempo [s]')
ylabel('Energía [Nmm]')

figure(2)
plot(t,E-Wk,t,Wh,t,Wh+Wviga,t,Wh+Wviga+Wplaca)
legend('E-Wk','Wh','Wh+Wviga','Wh+Wviga+Wplaca','location','Northwest')
xlabel('Tiempo [s]')
ylabel('Energía [Nmm]')

figure(3)
plot(t,utop(:,1),t,Ug/100)
legend('disp','AcelMesa')
xlabel('Tiempo [s]')
ylabel('Desplazamiento [mm]')

figure(4);
plot(t,E,t,Wplaca+Wviga+Wh+Wk);
legend('Input','Wes+Wp+Wh+Wk');
xlabel('t (s)');
ylabel('Energia (Nmm)');

2.3 Buscarnuevo
function [data_u]=Buscarnuevo(nom_archivo,buscar)
%Funcion para leer un dato de un archivo
% Data reading and manipulation
fid = fopen(nom_archivo,'rt+'); % abre fichero de datos
i=1;

while ( ~feof(fid) ) % lee hasta final archivo abierto si no se interrumpe


antes
tline = fgetl(fid); % returns the next line of the specified file

if strfind(tline, buscar) > 0 % Find one string within another


tline=strrep(tline,'="',' ');
ui=strfind(tline,buscar);
data = sscanf(tline(ui(1)+length(buscar):end),'%f',1);
data_u(1,i) =data;
i=i+1;
end

end
fclose(fid);
end

2.4 Coordglnuevo
function [x1,y1,z1]=Coordglnuevo(nom_archivo,node)

67
Anexos

%Funcion que lee las coordenadas de los nodos del elemento

n=num2str(node);
buscar=strcat(['node',' ',n]); %nodo a buscar
c=0;

% Data reading and manipulation


fid = fopen(nom_archivo,'rt+'); % abre fichero de datos
while ( ~feof(fid) && c<1 ) % lee hasta final archivo abierto si no se
interrumpe antes
tline = fgetl(fid); % returns the next line of the specified file
if strfind(tline, buscar) > 0 % Find one string within another

ui = ftell(fid); % Position in open file


% tline = fgetl(fid) % lee contenido hasta el final
linea
s=strcat(['node ',n,' %f']);
data_u = sscanf(tline,s,[1,inf]); % escanea los datos de la linea
x1=data_u;
x=num2str(x1);
s=strcat(['node ',n,' ',x,' %f']);
data_u = sscanf(tline,s,[1,inf]); % escanea los datos de la linea
y1=data_u;
y=num2str(y1);
s=strcat(['node ',n,' ',x,' ',y,' %f']);
data_u = sscanf(tline,s,[1,inf]); % escanea los datos de la linea
z1=data_u;
z=num2str(z1);
c=c+1;
end
end
fclose(fid);
end

2.5 Infgpnuevo
function gpgl=Infgpnuevo(xglobal,yglobal,gpeta,gpneta)
%Funcion que transforma las coordenadas locales del elemento normalizado de
%los puntos de Gauss en las coordenadas globales
% for i=1:size(gpeta,2)
N1e=0.25*(gpeta-1)*(gpneta-1);
N2e=-0.25*(gpeta+1)*(gpneta-1);
N3e=0.25*(gpeta+1)*(gpneta+1);
N4e=-0.25*(gpeta-1)*(gpneta+1);
Ne=[N1e N2e N3e N4e];
gpgl=[Ne*xglobal' Ne*yglobal'];
% Falta la coordenada z hay que obtenerla con un plano definido por 3
puntos
% y la coordenada z será la intersección entre el plano y la recta vertical
% que pase por la corrdenada x,y
end

2.6 LeeDato
function [data_u]=LeeDato(nom_archivo,buscar,n)
% Data reading and manipulation
fid = fopen(nom_archivo,'rt+'); % abre fichero de datos

68 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

while ( ~feof(fid) ) % lee hasta final archivo abierto si no se interrumpe


antes
tline = fgetl(fid); % returns the next line of the specified file

if strfind(tline, buscar) > 0 % Find one string within another


data_u = textscan(fid,n); % Lee los esfuerzos
data_u=cell2mat(data_u);
break
end

end
fclose(fid);
end

2.7 PrincipalPlaca
%Funcion que calcula los esfuerzos en los puntos de Gauss de varios
elementos placa
%Definicion puntos de Gauss,pasos y numero de elementos del modelo
clc;clear
currf=pwd;
puntosgauss=4;
elemP0=4;
elemPf=8;
elemPt=elemPf-elemP0;
% p=10;
c2=0;

l=0;
% xdamp=0.024;
% addpath('Datos modelo')
addpath('..\..\Funciones')
addpath('..\..\Modelo\Terremoto\SectionForce')
addpath('..\..\Modelo\Terremoto\Displacement')

cd ..
cd ..
cd('Modelo')
cd('Terremoto')
cd('SectionForce')

% nom_archivo4='nodesdispplaca.out'

%----------------------------------------------------------
nodes=zeros(elemPt,4);
gpeta=zeros(elemPt,4);
gpneta=zeros(elemPt,4);
xglobal=zeros(elemPt,4);
yglobal=zeros(elemPt,4);
zglobal=zeros(elemPt,4);
gpgl=zeros(4*elemPt,2);

Nxx=[];
Nyy=[];
Nxy=[];
Mxx=[];
Myy=[];
Mxy=[];

69
Anexos

Vxz=[];
Vyz=[];

exx=[];
eyy=[];
gammaxy=[];
curxx=[];
curyy=[];
curxy=[];
gammaxz=[];
gammayz=[];

b=0;
for j=1:elemPt

for i=1:puntosgauss
b=b+1;

a=num2str(i);
e=num2str(j+elemP0);
nom_force=strcat('PlacaEle',e,'pg',a,'force.out');
nom_def=strcat('PlacaEle',e,'pg',a,'def.out');
nom_nodos='Nodes.tcl';

%% Busca los nodos del elemento


[node1]=Buscarnuevo(nom_force,'node1');
[node2]=Buscarnuevo(nom_force,'node2');
[node3]=Buscarnuevo(nom_force,'node3');
[node4]=Buscarnuevo(nom_force,'node4');
nodes(j,:)=[node1 node2 node3 node4]; %Matriz que tiene los nodos de
cada elemento situado en cada fila

%% Busca ETA y NETA del punto de gauss


[eta]=Buscarnuevo(nom_force,'eta'); %Coordenadas locales eta del punto
de gauss considerado
[neta]=Buscarnuevo(nom_force,'neta');%coordenadas locales neta del
punto de gauss considerado
gpeta(j,i)=eta;
gpneta(j,i)=neta;

%% Coordenadas globales de los nudos del elemento


for q=1:4 %nodos del elemento
[x1,y1,z1]=Coordglnuevo(nom_nodos,nodes(j,q));%Funcion que devuleve las
coordenadas globales de los nodos
xglobal(j,q)=x1;
yglobal(j,q)=y1;
zglobal(j,q)=z1;
end

%% Coordenadas globales de los puntos de gauss


gpgl(b,:)=Infgpnuevo(xglobal(j,:),yglobal(j,:),gpeta(j,i),gpneta(j,i));
%Funcion que devuelve las coordenadas globales de los puntos de gauss
considerados

%% Calculo de los esfuerzos


s='';
r='';
for k=1:9

70 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

s=strcat(s,' %f');
end

[data_esf]=LeeDato(nom_force,'Data',s);
c=0;

Nxx(:,b)=data_esf(:,2);
Nyy(:,b)=data_esf(:,3);
Nxy(:,b)=data_esf(:,4);
Mxx(:,b)=-data_esf(:,5);
Myy(:,b)=-data_esf(:,6);
Mxy(:,b)=-data_esf(:,7);
Vxz(:,b)=data_esf(:,8);
Vyz(:,b)=data_esf(:,9);

[data_def]=LeeDato(nom_def,'Data',s);
c=0;
exx(:,b)=data_def(:,2);
eyy(:,b)=data_def(:,3);
gammaxy(:,b)=data_def(:,4);
curxx(:,b)=data_def(:,5);
curyy(:,b)=data_def(:,6);
curxy(:,b)=data_def(:,7);
gammaxz(:,b)=data_def(:,8);
gammayz(:,b)=data_def(:,9);

Lpx(j,1)=abs(xglobal(j,1)-xglobal(j,3))/2;
Lpy(j,1)=abs(yglobal(j,1)-yglobal(j,3))/2;

WppgNxx(:,b)=cumtrapz(exx(:,b)*Lpx(j,1),Nxx(:,b)); %Energia elastica y


plastica de un punto de Gauss de una placa
WppgNyy(:,b)=cumtrapz(eyy(:,b)*Lpy(j,1),Nyy(:,b)); %Energia elastica y
plastica de un punto de Gauss de una placa
WppgNxy(:,b)=cumtrapz(gammaxy(:,b)*Lpx(j,1),Nxy(:,b)); %Energia
elastica y plastica de un punto de Gauss de una placa
WppgMxx(:,b)=cumtrapz(curxx(:,b)*Lpx(j,1),Mxx(:,b)); %Energia elastica
y plastica de un punto de Gauss de una placa
WppgMyy(:,b)=cumtrapz(curyy(:,b)*Lpy(j,1),Myy(:,b)); %Energia elastica
y plastica de un punto de Gauss de una placa
WppgMxy(:,b)=cumtrapz(curxy(:,b)*Lpx(j,1),Mxy(:,b)); %Energia elastica
y plastica de un punto de Gauss de una placa
WppgVxz(:,b)=cumtrapz(gammaxz(:,b)*Lpx(j,1),Vxz(:,b)); %Energia
elastica y plastica de un punto de Gauss de una placa
WppgVyz(:,b)=cumtrapz(gammayz(:,b)*Lpy(j,1),Vyz(:,b)); %Energia
elastica y plastica de un punto de Gauss de una placa

end

end

Wppg=WppgNxx+WppgNyy+WppgNxy+WppgMxx+WppgMyy+WppgMxy+WppgVxz+WppgVyz;
Wp(1,:)=sum(Wppg,2);%Energia total de los puntos de Gauss de toda la placa
Wplaca=Wp;
cd(currf)
save('Wplaca','Wplaca');

2.8 Principalpilar

71
Anexos

%Funcion que calcula los esfuerzos en los puntos de Gauss de varios


elementos placa
%Definicion puntos de Gauss,pasos y numero de elementos del modelo
clc;clear
currf=pwd;

puntosgauss=5;
L=1500;
Lp=L/puntosgauss;
elemP0=0;
elemPf=4;
elemPt=elemPf-elemP0;
% p=10;
c2=0;

l=0;
% xdamp=0.024;
% addpath('Datos modelo')
addpath('..\..\Funciones')
addpath('..\..\Modelo\Terremoto\SectionForce')
addpath('..\..\Modelo\Terremoto\Displacement')

cd ..
cd ..
cd('Modelo')
cd('Terremoto')
cd('SectionForce')

% nom_archivo4='nodesdispplaca.out'

%----------------------------------------------------------
nodes=zeros(elemPt,2);
gpeta=zeros(elemPt,puntosgauss);
xglobal=zeros(elemPt,2);
yglobal=zeros(elemPt,2);
zglobal=zeros(elemPt,2);
% gpgl=zeros(4*elemPt,3);

N=[];
Mz=[];
My=[];
T1=[];
Vz=[];
Vy=[];
T2=[];

ex=[];
curz=[];
curv=[];
gamma1=[];
gammaz=[];
curxy=[];
gammay=[];
gamma2=[];

b=0;
for j=1:elemPt

for i=1:puntosgauss
b=b+1;

72 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

a=num2str(i);
e=num2str(j+elemP0);
nom_force=strcat('VigaEle',e,'pg',a,'force.out');
nom_def=strcat('VigaEle',e,'pg',a,'def.out');
nom_nodos='Nodes.tcl';

%% Busca los nodos del elemento


[node1]=Buscarnuevo(nom_force,'node1');
[node2]=Buscarnuevo(nom_force,'node2');
nodes(j,:)=[node1 node2]; %Matriz que tiene los nodos de cada elemento
situado en cada fila

%% Busca ETA y NETA del punto de gauss


[eta]=Buscarnuevo(nom_force,'eta'); %Coordenadas locales eta del punto
de gauss considerado
gpeta(j,i)=eta;

%% Coordenadas globales de los nudos del elemento


% for q=1:2 %nodos del elemento
% [x1,y1,z1]=Coordglnuevo(nom_nodos,nodes(j,q));%Funcion que devuleve
las coordenadas globales de los nodos
% xglobal(j,q)=x1;
% yglobal(j,q)=y1;
% zglobal(j,q)=z1;
% end

%% Coordenadas globales de los puntos de gauss


%
gpgl(b,:)=Infgp(xglobal(j,:),yglobal(j,:),zglobal(j,:),gpeta(j,i),gpneta(j,
i)); %Funcion que devuelve las coordenadas globales de los puntos de gauss
considerados

%% Calculo de los esfuerzos


s='';
r='';
for k=1:8
s=strcat(s,' %f');
end

[data_esf]=LeeDato(nom_force,'Data',s);
c=0;

N(:,b)=data_esf(:,2);
Mz(:,b)=data_esf(:,3);
My(:,b)=data_esf(:,4);
T1(:,b)=data_esf(:,5);
Vz(:,b)=data_esf(:,6);
Vy(:,b)=data_esf(:,7);
T2(:,b)=data_esf(:,8);

[data_def]=LeeDato(nom_def,'Data',s);
c=0;
ex(:,b)=data_def(:,2);
curz(:,b)=data_def(:,3);
cury(:,b)=data_def(:,4);
gamma1(:,b)=data_def(:,5);
gammaz(:,b)=data_def(:,6);

73
Anexos

gammay(:,b)=data_def(:,7);
gamma2(:,b)=data_def(:,8);

% Lpx(j,1)=abs(xglobal(j,1)-xglobal(j,3))/2;
% Lpy(j,1)=abs(yglobal(j,1)-yglobal(j,3))/2;

WppgN(:,b)=cumtrapz(ex(:,b)*Lp,N(:,b)); %Energia elastica y plastica de


un punto de Gauss de una placa
WppgMz(:,b)=cumtrapz(curz(:,b)*Lp,Mz(:,b)); %Energia elastica y
plastica de un punto de Gauss de una placa
WppgMy(:,b)=cumtrapz(cury(:,b)*Lp,My(:,b)); %Energia elastica y
plastica de un punto de Gauss de una placa
WppgT1(:,b)=cumtrapz(gamma1(:,b)*Lp,T1(:,b)); %Energia elastica y
plastica de un punto de Gauss de una placa
WppgVz(:,b)=cumtrapz(gammaz(:,b)*Lp,Vz(:,b)); %Energia elastica y
plastica de un punto de Gauss de una placa
WppgVy(:,b)=cumtrapz(gammay(:,b)*Lp,Vy(:,b)); %Energia elastica y
plastica de un punto de Gauss de una placa
WppgT2(:,b)=cumtrapz(gamma2(:,b)*Lp,T2(:,b)); %Energia elastica y
plastica de un punto de Gauss de una placa

end

end

% Wppg=WppgN+WppgMz+WppgMy+WppgT1+WppgVz+WppgVy+WppgT2;
% Wppg=WppgMz+WppgMy+WppgT1+WppgVz+WppgVy+WppgT2;
Wppg=WppgMy+WppgT1+WppgVz+WppgVy+WppgT2;
Wp(1,:)=sum(Wppg,2);%Energia total de los puntos de Gauss de toda la placa
Wviga=Wp;

cd(currf)
save('Wviga','Wviga');

2.9 DampingEnergy
function [Wh,Whgdl] = DampingEnergy (t,K,M,V,DampingRatio,Method)
gdl=length(M);
n=length(t);
Whgdl=zeros(n,gdl);

Lamb=eig(K,M);
inf=isinf(Lamb);
Lamb(inf)=[];
w=sort(sqrt(Lamb));
% f=w./(2*pi);
% T=1./f;
if Method==1 %Mass Method
a0=2*DampingRatio*w(1);
C=a0*M;%Se coge el primer modo de vibracion
elseif Method==2 %Rayleigh Method Kini
% Se incluiria este metodo correspondiente
end

F=(V.*V)*C;
for i=1:gdl
Whgdl(:,i)=cumtrapz(t,F(:,i));
end

74 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Comportamiento sísmico de conexiones de hormigón armado con forjados
________________________________________________________________________________

Wh=sum(Whgdl,2);

end

2.10 InputEnergy
function [E,Egdl] = InputEnergy(V,t,M,Ug,gdlDir)
gdl=length(M);
n=length(t);
J=zeros(gdl,1);
Egdl=zeros(n,gdl);

for i=gdlDir:6:gdl
J(i,1)=1;
end

F=(V'.*(-M*J*Ug'))';
for i=1:gdl
Egdl(:,i)=cumtrapz(t,F(:,i));
end
E=sum(Egdl,2);
end

2.11 CurvasNivelpasoNEW
%% Curvas de nivel

%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

xplot=gpgl(:,1);
yplot=gpgl(:,2);
fig1=figure(1);
set(fig1,'position',[1 31 1280 696])
for i=2080%i=22000:50:25111;%1:size(esf,2)
esfi=Mxx(i,:);
[xi,yi] = meshgrid(-100:10:2100,-100:10:2100);
zi = griddata(xplot,yplot,esfi,xi,yi,'cubic');
surf(xi,yi,zi)
% meshc(xi,yi,zi)
% contourf(xi,yi,zi,25)
colorbar
caxis([-2e4 2e4])
axis([-100 2100 -100 2100 -1500 1500 ])
% axis([-500 80 -500 500])
%Muestra la localizacion los puntos de gauss
% hold
% plot(xplot,yplot,['o' 'w'])

% pause(1)

end

75

También podría gustarte