Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Albert Llanos Sánchez
100
ANEJO 1: MUELLE DE LA ENERGÍA
1. INTRODUCCIÓN
En este apartado se estudia un caso real de refuerzo de vigas mediante el uso
de materiales compuestos. El problema en cuestión pretende reflejar globalmente las ideas
expuestas en la presente tesina y, además, aportar un ejemplo actual y real del uso de este
tipo de materiales en Ingeniería Civil.
Los datos necesarios para la realización del siguiente estudio han sido
facilitados por Acciona Infraestructuras, la empresa encargada de redactar el informe de
diseño del refuerzo para la reparación de la estructura objeto de estudio.
2. ANTECEDENTES
Este ejemplo está basado en el proyecto de urbanización del muelle de
L’Energia en Barcelona. Se trata de un puente recto de dos vanos de 15+15 metros de longitud
aproximada.
El paso tiene 9,10 metros de ancho y está resuelto mediante un tablero
formado por 17 vigas prefabricadas de 0,72 m de canto junto con una losa armada de 0,25 m
de espesor. El tablero descansa sobre estribos en sus extremos y sobre un soporte corrido
central.
Fig. 102 Puente de la energía
Vigas compuestas laminadas. Teoría de Timoshenko
101
Cada viga prefabricada se encuentra pretensada mediante 84 cables 2φ2,5, en la
siguiente figura se describe las características geométricas de la pieza:
Fig. 103 Características de la sección
Cada cordón tiene un área de 4,91 mm2 con lo que el área de pretensado es:
�� = 84 · 2 · 4,91 = 824,88 �� (73)
Los materiales empleados en el cálculo de la estructura han sido los siguientes:
� Hormigón in situ: HA-25 (fck = 25 N/mm2)
� Hormigón en vigas pretensadas: HA-35 (fck = 35 N/mm2)
� Acero pretensado: Y 1860 S (fyk = 1670 N/mm2)
En cuanto a los coeficientes adoptados son, según el informe de cálculo:
� γc = 1,76 (Hormigón)
� γs = 1,15 (Acero)
� γfc = 1,2 (Lámina)
Por otro lado, necesitaremos las tensiones admisibles a compresión y tracción del
hormigón:
σ�.��� = 0,6 · f��
σ�.��� = 0.30 · f�� /� (74)
Albert Llanos Sánchez
102
� .!"#(MPa) �$.!"#(MPa)
HA-25 15 2,56
HA-35 21 3,21
Tabla 15 Tensión a tracción y compresión admisible según el tipo de hormigón
Se consideran las siguientes hipótesis de carga teniendo en cuenta la sección tipo
mostrada a continuación:
Fig. 104 Sección tipo del puente de la energía
� Peso específico del hormigón armado o pretensado: 25KN/m3
� Peso específico de la mezcla bituminosa: 23KN/m3
� Pretil de hormigón: 10,35 KN/m
� Solado zona peatonal: 23KN/m3
� Sobrecarga repartida debida al tráfico: 4KN/m2
� Sobrecarga puntual debida al tráfico: 600KN
Se conoce que la viga más solicitada se encuentra bajo el pretil de borde, cuya ley de
momento flector es:
Fig. 105 Envolvente de momentos en la viga más solicitada
Vigas compuestas laminadas. Teoría de Timoshenko
103
� Momento solicitante máximo = 857,29 KN/m
Las vigas que componen el puente de la energía deben reforzarse debido a la
posibilidad de que se hayan cortado algunos de los cables de armado de la estructura, se
desconoce el número exacto de cables cortados por eso se harán distintas hipótesis.
3. REFUERZO CON MATERIALES COMPUESTOS
El refuerzo se plantea con objeto de compensar la eventual pérdida de armado y
obtener un momento flector resistente superior al de la sección original. El refuerzo de las
vigas se realizará mediante adhesión de materiales compuestos armados a base de fibra de
carbono. La geometría de las láminas que se utilizarán y los datos técnicos de ésta son:
Ancho (mm) Espesor(mm)
50 1.2
80 1.2
100 1.2
Tabla 16 Dimensiones de las láminas
Característica Unidades Valor
Densidad g/cm3 1,6
Volumen de
fibra
% 70
Módulo de
elasticidad medio
GPa 170
Resistencia a
tracción media:
MPa 3100
Elongación a
rotura media
% 1,9
Tabla 17 Propiedades de la lámina de fibra de carbono
Albert Llanos Sánchez
104
4. ANÁLISIS ESTRUCTURAL
Hipótesis en el análisis de la estructura
El análisis se va a centrar en la viga más solicitada teniendo en cuenta la proporción de
losa que afecta a ésta. El pretensado se va a modelar como una capa de acero rectangular de
las mismas características y con el mismo centroide y la misma área que la totalidad del
pretensado original.
Fig. 106 Sección estructura muelle de la energía
Para calcular la viga con la teoría de Timoshenko para vigas compuestas tenemos que
separar la sección de la pieza en distintas capas. Se observa en la figura anterior cómo se han
eliminado los retranqueos en la viga tomando un valor medio del espesor, de manera que
tanto las alas como el alma tengan sección rectangular. A continuación se describen las
propiedades de cada capa:
Vigas compuestas laminadas. Teoría de Timoshenko
105
CAPA YOUNG(N/mm2) POISSON DENSIDAD
(N/m3)
ESPESOR
(mm)
ANCHO
(mm)
1 29778,88 0,2 0 33,71 320
2 200000 0,3 0 2,58 320
3 29778,88 0,2 0 68,61 320
4 29778,88 0,2 0 505 120
5 29778,88 0,2 0 110 440
6 27264,04 0,2 0 250 540
Tabla 18 Características de la sección dividida en capas
En la tabla anterior se observa como se ha tomado densidad nula ya que el peso propio
de la estructura ya está incluido en la carga exterior.
Finalmente tenemos la sección de la estructura divida en capas de manera que
estamos en disposición de analizarla como viga compuesta de Timoshenko.
Fig. 107 Viga en TCB
Albert Llanos Sánchez
106
Fig. 108 Zoom de la viga donde se distinguen las capas
Fuerza de pretensado
Cómo se desconoce la fuerza a la que se tesaron los cables, vamos a seguir el siguiente
proceso con tal de obtener dicha fuerza. Vamos a cargar la viga con una carga uniformemente
repartida que produzca un momento máximo de 857,29 KNm en la sección central de la
estructura, ya que es éste el esfuerzo debido a las cargas externas a la que se ve sometida la
viga. A continuación, se estudiarán las tensiones en las fibras extremas de la estructura y se
observará si superan los valores admisibles. Si los superan, se calculará la fuerza de pretensado
necesaria para conseguir que esta tensión sea adecuada.
La carga uniformemente repartida que produce un momento de 857,29KNm en el
centro de la viga es:
M = ql 8 (75)
) = 8Ml = 8 · 857,29
15 = *+, ,- ./# (76)
Cargamos la viga compuesta por las distintas capas, incluido el acero que simula el
pretensado, pero con los cables sin tesar.
Vigas compuestas laminadas. Teoría de Timoshenko
107
Se ha discretizado la viga mediante una malla de 1876 nodos, los cuales se consideran
suficientes para obtener resultados óptimos.
Fig. 109 Condiciones de contorno
Fig. 110 Tensiones en la viga
Albert Llanos Sánchez
108
En la imagen anterior las tensiones a tracción son positivas y las de compresión
negativas. Se observa que las tensiones máximas tanto a compresión cómo a tracción en la
sección más solicitada superan los valores admisibles. Hay que tener en cuenta que la tensión
a compresión se produce en el hormigón HA-25 y la de tracción en el HA-35.
σ�0�1 = 20,56 MPa > 15 567
σ89��� = 12,02 MPa > 3,21 567
Hemos llegado a la conclusión que ya preveíamos, se necesita pretensar la sección
para disminuir las tensiones en las fibras extremas. Dimensionaremos la fuerza de pretensado
para la condición más restrictiva, es decir, que la tensión en la fibra inferior de la sección sea
3,21 MPa.
σ = MI · (z − z=) (77)
dónde σ es la tensión normal, M el momento producido, I la inercia de la sección, z es la
coordenada vertical de la fibra y z= es la coordenada vertical del centro de gravedad.
Teniendo en cuenta que el momento que solicita la sección es el momento debido a
las cargas más el momento debido al pretensado la ecuación quedaría de la siguiente manera:
3210 = 857,29 − Mp0,02398 · 0,610 (78)
dónde las unidades que se han utilizado son KN y m. No hay que olvidar que la inercia de la
sección se ha calculado despreciando el acero, realmente tendríamos que tenerlo en cuenta
haciendo uso del coeficiente de equivalencia n = @A@B . Sin embargo, realizando esta
simplificación no nos desviamos en exceso de la solución exacta y nos facilita la comparación
con el modelo numérico.
Realizando el cálculo anterior el momento de pretensado necesario es:
Mp = 731,10 KNm (79)
Vigas compuestas laminadas. Teoría de Timoshenko
109
Por tanto, la fuerza de pretensado se puede obtener dividiendo este momento
entre la excentricidad e:
P = Mpe = 731,10
0,610 − 0,07 = 1353,89 KN (80)
Vamos a verificar que esta fuerza no es superior al límite elástico del acero de
pretensar Y1860S.
fG1 = 1670 MPa
σH = PAH = 1353,89 · 10�
824,88 = 1641,32 MPa < 1670 567 √√ (81)
Para conocer la fuerza que aporta cada cable (FHM) se divide la fuerza de pretensado P
entre el número de cables total:
FHM = 1353,89168 = 8,06 KN (82)
Ahora volvemos a calcular la viga teniendo en cuenta el momento de pretensado en la
viga, en la siguiente imagen se observa como las tensiones extremas se han reducido de forma
que ahora sí son menores a las admisibles:
Albert Llanos Sánchez
110
Fig. 111 Tensiones en las fibras extremas de la pieza teniendo en cuenta el pretensado
Por tanto, la viga original con todos los cables funcionando adecuadamente estaría
sometida a unas tensiones a compresión y a tracción menor a las admisibles. Además, es
posible que el proyecto de la estructura se diseñara teniendo en cuenta un pretensado parcial,
con lo que la tensión de tracción podría llegar a ser mayor sin causar problemas en la
estructura. Supondremos un grado de pretensado parcial k=3, de manera que las tensiones de
tracción podrían llegar al valor de 9,61 MPa sin necesidad de crear problemas en el hormigón.
Análisis de la sección original
Vistas las tensiones producidas debido a las cargas exteriores y al pretensado,
es necesario observar cual es la resistencia última de la sección original de la viga, es decir con
todos los cables trabajando correctamente y a tensión última.
Vigas compuestas laminadas. Teoría de Timoshenko
111
Fig. 112 Esquema de fuerzas para obtener la resistencia última de la sección
dónde:
� f�� es la resistencia a compresión del hormigón HA-25: 25N/mm2
� γ� es el coeficiente de seguridad del hormigón: 1,76
� f�� = f��/γ�
� b es el ancho de la losa: 540mm
� y es la profundidad de la fibra neutra
� d es la distancia entre el centroide del acero pretensado y
la fuerza de compresión.
� e es la excentricidad: 520mm
� P es la fuerza última del acero:
P = fG1γO A1 (83)
con fG1 la tensión última del acero, 1670 N/mm2, γO el coeficiente de seguridad del acero, 1,15
y A1 el área de acero, 824,88mm2.
Haciendo equilibrio de fuerzas horizontales encontramos la posición de la fibra neutra:
Albert Llanos Sánchez
112
P FQ = 0
A1fG1 = bf��y
y = A1fG1/γObf�� (84)
y = 824,88 · 1670/1.15540 · 25/1.76 = 156,17mm
Haciendo equilibrio de momentos encontramos el momento resistente de la sección,
lo haremos respecto el centro del bloque de compresiones:
M9TOUO8TV8T = P · W970 − 70 − y2X (85)
donde 970 representa el canto total de la sección en mm y 70 la distancia entre la fibra inferior
de la sección y el centroide del área de acero, también en mm. Con lo que:
M9TOUO8TV8T = 16701,15 824,88 · Y970 − 70 − 156,17
2 Z · 10[\ = 984,55 KNm
Como criterio de diseño sobre las vigas se ha planteado que todas ellas superen
aproximadamente el mismo esfuerzo resistente. El esfuerzo resistente mínimo a resistir ha
sido fijado en 900KNm. Teniendo en cuenta que el momento último solicitante en la viga es
857,29 KNm, aplicando este criterio de diseño contamos con un coeficiente de seguridad
adicional. Por tanto, se observa claramente como la sección original cumplía ampliamente con
este requisito.
Análisis del refuerzo de la estructura
El problema se ha producido al detectar que alguno de los cables está defectuoso.
Como se desconoce el número exacto de éstos, la empresa encargada de reforzar la estructura
realizó los siguientes casos, reforzando tal y como se describe a continuación:
Vigas compuestas laminadas. Teoría de Timoshenko
113
Número de alambres afectado Refuerzo necesario
6 No se considera refuerzo
12 1 lámina 50x1.2mm
16 1 lámina 80x1.2mm
25 2 láminas 100x1.2mm
36 3 láminas 100x1.2mm
Tabla 19 Refuerzo según el número de alambres afectado
El procedimiento que seguiremos para estudiar los distintos casos será el siguiente.
Primero realizaremos un análisis de las tensiones en el hormigón haciendo uso del programa
de MAT-fem para vigas compuestas de Timoshenko y, posteriormente, estudiaremos la
repercusión que tiene, en el momento resistente último de la sección, el hecho de colocar o no
el refuerzo.
Hay que tener en cuenta que las características de la sección varían al disminuir el
número de cables pretensados. Evidentemente se reducirá tanto el área de pretensado como
el momento producido por éste. Sin embargo, se considera constante la distancia desde la
fibra inferior de la sección al centroide del pretensado, 70mm, al igual que la excentricidad de
éste, e=520mm.
La nueva área de pretensado se obtiene reduciendo el número de cables que trabajan
correctamente, es decir:
A1 = (168 − n) · 4,91mm (86)
dónde 168 son el número de cables del pretensado original con una superficie de 4,91mm2
cada uno, y n es el número de cables afectados. Como conocemos la aportación a la fuerza
total de pretensado de cada cable, según la expresión (82) es de 8,06KN, se obtiene la fuerza
de pretensado (P) y el momento que produce (M1) de la siguiente manera:
P = (168 − n) · 8,06 (87)
M1 = P · e (88)
Albert Llanos Sánchez
114
En la siguiente tabla se presentan los nuevos valores:
Alambres afectados Área de Pretensado (mm2) Momento de pretensado
(KNm)
6 795,42 705,09
12 765,96 678,97
16 746,32 661,56
25 702,13 622,39
36 648,12 574,52
Tabla 20 Características del problema en función del número de cables afectado
Ahora ya podemos introducir los nuevos datos en GiD y realizar los cálculos necesarios
para obtener las nuevas tensiones en el hormigón. Es importante apuntar que el área de
pretensado se ha tenido en cuenta como una capa rectangular, como ya hicimos
anteriormente. Al variar el área de acero también varía el espesor de ésta capa ya que se
mantiene constante el ancho de 320mm. Los nuevos espesores según los cables afectados se
presentan a continuación:
Alambres afectados Espesor de la capa de acero (mm)
6 2,49
12 2,39
16 2,33
25 2,19
36 2.03
Tabla 21 Espesor de la capa de acero según el número de cables afectado
Vamos a analizar las tensiones en la sección más solicitada y en la fibra de hormigón
más traccionada y comprimida. Se hace notar que el número de capas que se asignarán en el
preproceso de GiD aumentará ya que se tiene que añadir las láminas del refuerzo. En el caso
de que sea necesario refuerzo, mostraremos las tensiones antes y después de colocar el
material compuesto, de manera que veamos cual es la aportación de éste. Los valores
obtenidos se presentan a continuación:
Vigas compuestas laminadas. Teoría de Timoshenko
115
Alambres afectados Refuerzo Tensión a tracción
(MPa)
Tensión a compresión
(MPa)
6 Sin lámina 3,66 2,136
12 Sin lámina 4,3 2,51
1 lám. 50x1.2mm 4,27 2,49
16 Sin lámina 4,73 2,69
1 lám. 80x1.2mm 4,68 2,74
25 Sin lámina 5,70 3,31
2 lám. 100x1.2mm 5,55 3,27
36 Sin lámina 6,89 3,99
3 lám 100x1.2mm 6,63 3,92
Tabla 22 Tensiones en función del número de cables afectado y del refuerzo que se utiliza
Se observa en la tabla anterior que el refuerzo no aporta una disminución importante
en las tensiones. Sin embargo, el aumento de tensión que se produce debido a la reducción de
acero de pretensar no es suficientemente grande como para producir problemas en el
hormigón. Como vimos anteriormente, la tensión a tracción puede llegar hasta los 9,6 MPa,
teniendo en cuenta pretensado parcial, y las tensiones a compresión podrían llegar hasta los
15MPa.
Sin embargo, la adhesión del refuerzo en la parte inferior de la viga nos aportará
resistencia estructural y es éste el objetivo principal de esta actuación en el puente de la
energía.
Siguiendo las expresiones (83, 84, 85) se calcula el momento resistente de la sección
dependiendo del número de alambres afectados. En la siguiente tabla se muestran los
resultados:
Albert Llanos Sánchez
116
Alambres afectados Posición fibra neutra
y (mm)
Momento resistente
(KNm)
6 150,59 952,61
12 145,01 920,43
16 141,29 898,84
25 132,93 849,88
36 122,70 789,32
Tabla 23 Posición de la fibra neutra y momento resistente de la sección
Se observa en la tabla anterior como el momento resistente disminuye a medida que
aumenta el número de cables afectados. Tal y como veíamos con anterioridad, el momento
resistente mínimo se ha fijado en 900 KNm. Se justifica, por tanto, la necesidad de realizar
refuerzos sobre la viga. No será necesario reforzar cuando sean 6 los cables que no trabajen
pero a medida que aumenta este número la cantidad de material compuesto debe aumentar,
tal y como se preveía por la empresa encargada del diseño (tabla 19).
Para obtener el momento resistente último de la sección con el refuerzo, se realizará
el mismo procedimiento que seguíamos en la sección original pero teniendo en cuenta la fibra
de material compuesto adherida en la parte inferior de la viga. Por tanto, el esquema será el
siguiente:
Fig. 113 Esquema momento resistente con la lámina adherida
Vigas compuestas laminadas. Teoría de Timoshenko
117
donde e’ es el espesor de la lámina o láminas del refuerzo y Fl es la fuerza última del material
compuesto de fibra de carbono, que se obtiene según la expresión siguiente:
F] = f^�,8γ^� A] (89)
con f^�,8 la resistencia a tracción de la lámina, 3100 MPa, γ^� coeficiente de seguridad del
compuesto, 1,2, y A] es el área del refuerzo utilizado. Realizando equilibrio de fuerzas y de
momentos se obtiene la posición de la fibra neutra y el momento resistente de la sección.
y = YA1fG1γO Z + (A]f^�,8γ^� )bf�� = F�bf�� (90)
donde FT representa la fuerza total a tracción, sumando la contribución del acero y de la
lámina.
M9TOUO8TV8T = F� `900 − y2 − ea
2 b (91)
A continuación se muestran los valores obtenidos:
Alambres
afectados cd(mm2) ce (mm2) e’(mm) y (mm)
Momento
resistente
(KNm)
12 765,96 60 1,2 165,22 1035,12
16 746,32 96 1,2 173,63 1082,19
25 702,13 240 2,4 213,76 1298,45
36 648,12 360 3,6 243,95 1452,46
Tabla 24 Momento resistente de la sección reforzada en función del número de alambres afectado
Con el objetivo de comparar y observar los resultados obtenidos después de reforzar la
estructura, se adjunta una gráfica que muestra el momento resistente de la pieza dependiendo
del número de alambres afectados. Esta relación se calcula con la viga sin reforzar y reforzada,
de manera que se visualiza claramente la eficiencia del material compuesto:
Albert Llanos Sánchez
118
Fig. 114 Momento resistente según los cables afectados y el refuerzo
Se pueden obtener varias conclusiones de la gráfica anterior. Por un lado, se justifica
claramente la necesidad de reforzar la viga a partir de 12 cables afectados, ya que cuando hay
6 cables defectuosos el momento resistido es superior al mínimo, fijado en 900 KNm. Cuando
son 12 los cables el momento es sensiblemente superior al mínimo con lo que reforzarlo nos
proporciona un mayor coeficiente de seguridad. Por otro lado, a medida que aumenta el
número de cables, se debe proporcionar un mayor refuerzo ya que la incerteza en cuanto a los
cables defectuosos causa peores consecuencias en un rango alto de alambres afectados que
cuando nos movemos en número pequeños.
Con este ejemplo se ha observado claramente la eficiencia de los materiales
compuestos, ya que una lámina de dimensiones relativamente pequeñas respecto a las
dimensiones de la viga proporciona una resistencia adicional a la estructura realmente
apreciable. La facilidad de montaje en obra de estos refuerzos hace que estas actuaciones sean
muy competitivas respecto a otros modos de reforzar. Además, se ha podido comprobar la
utilidad del programa de MAT-fem para vigas compuestas de Timoshenko en un caso real.
A continuación se presentan varias fotografías donde se visualiza el refuerzo de las
vigas del puente de la energía.
0
200
400
600
800
1000
1200
1400
1600
0 10 20 30 40
Mo
me
nto
re
sist
en
te (
KN
m)
nº cables afectados
Sin refuerzo
Con refuerzo
Mmin=900KNm
Vigas compuestas laminadas. Teoría de Timoshenko
119
En las fotografías anteriores se observa las diferentes láminas adheridas en la parte
inferior de la viga con una pintura blanca, dependiendo de la necesidad de cada viga el
refuerzo se realiza mediante láminas de 50, 80 o 100mm.
Foto 1 Lámina de 50x1,2mm Foto 2 Láminas de 80x1,2mm
Foto 3 Láminas de 100x1,2mm
Albert Llanos Sánchez
120
ANEJO 2: EJEMPLOS COMPARANDO TCB Y 3D
En el presente anejo se muestran dos ejemplos más, distintos a los que se han visto en
el capítulo 5 de este estudio, a modo de cerciorar la eficiencia del programa calculado en MAT-
fem para vías compuestas.
I. VIGA BIEMPOTRADA CON CARGA PUNTUAL EN EL CENTRO
La manera de proceder en la presentación de resultados será la misma que seguimos
en el capítulo 5. Es decir, se calculará la estructura mediante la teoría de Timoshenko, y
posteriormente se compararán resultados con el cálculo tridimensional. El ejemplo objeto de
estudio es una viga biempotrada de longitud L con una carga puntual (P) en el centro de ésta.
Los datos necesarios para el cálculo son los siguientes:
� L = 120mm ; h=10mm ; b=2mm dónde h y b son el canto y ancho de la viga
� P = 1N
� Características de la sección:
CAPA YOUNG(N/mm2) POISSON DENSIDAD
(N/m3)
ESPESOR
(mm)
ANCHO
(mm)
1 2.19·105 0.25 0 2 2
2 7.3·105 0.25 0 2 2
3 2.19·105 0.25 0 2 2
4 7.3·105 0.25 0 2 2
5 2.19·105 0.25 0 2 2
Tabla 25 Datos de los materiales y dimensiones de la sección de la viga
SOLUCIÓN MEDIANTE TIMOSHENKO COMPOSITE BEAMS
La viga se divide en elementos unidimensionales de dos nodos cada uno, sin embargo
la solución se muestra en 2D mediante elementos cuadriláteros de cuatro nodos cada uno.
Fig. 115 Condiciones de contorno de la viga
Vigas compuestas laminadas. Teoría de Timoshenko
121
Fig. 116 Deformada de la viga
Convergencia de resultados
En la siguiente gráfica se observa cómo el desplazamiento vertical en el centro de la
viga va variando en función del número de nodos. Se observa cómo a medida que la malla es
más densa, el valor converge hacia la solución óptima. La gráfica de convergencia se presenta
en escala logarítmica y viene acompañada de la tabla con los valores numéricos.
nodos log(nodos) desplazamiento vertical
(mm)
25 1,40 -0,00017997
81 1,91 -0,00018102
121 2,08 -0,00018107
601 2,78 -0,00018112
1201 3,08 -0,00018112
Tabla 26 Valores de convergencia
Albert Llanos Sánchez
122
Fig. 117 Gráfica de convergencia
Presentación de la solución obtenida
A continuación se muestran los resultados obtenidos mediante la malla de 1201
nodos. Se muestra una tabla con los resultados obtenidos en la fibra inferior de la primera
capa, en el centro de la viga. Además, se adjuntan las soluciones más representativas
mediante gráficos:
Desp_x
(mm)
Desp_y
(mm) Giro Qy (N) Mz (Nmm)
Sigma_x
(N/mm2)
Tau_xz
(N/mm2)
0 -0.0001811 0 0.051724 3.9521 0.30246 0
Tabla 27 Valores obtenidos según TCB
Fig. 118 Desplazamiento horizontal (mm)
-0,000181
-0,000181
-0,000181
-0,000181
-0,00018
-0,00018
-0,00018
-0,00018
1 1,5 2 2,5 3 3,5
De
spla
za
mie
nto
ve
rtic
al
(mm
)
log(nº nodos)
Viga TCB
Vigas compuestas laminadas. Teoría de Timoshenko
123
Fig. 119 Esfuerzo cortante (N)
Fig. 120 Momento flector (KNm)
Fig. 121 Tensión normal (N/mm2)
Fig. 122 Tensión tangencial xz (N/mm2)
Albert Llanos Sánchez
124
SOLUCIÓN MEDIANTE SÓLIDO 3D
La viga se divide en elementos tetraédricos de cuatro nodos cada uno. Tanto la
geometría inicial cómo los resultados se muestran en tres dimensiones.
Fig.125 Deformada (mm)
Convergencia de resultados
Se presenta a continuación la tabla con los valores de convergencia y la gráfica que
representa la tendencia hacia la solución óptima.
Fig. 124 Condiciones de contorno
Fig. 123 Materiales de la viga
Vigas compuestas laminadas. Teoría de Timoshenko
125
nodos log(nodos) desplazamiento vertical
(mm)
531 2,73 -0,00014381
989 2,99 -0,00015688
2850 3,45 -0,00017566
5160 3,71 -0,00017939
7202 3,86 -0,00017956
8935 3,95 -0,00018003
10284 4,01 -0,0001807
Tabla 28 Valores de convergencia
Fig 126 Convergencia de resultados
Solución obtenida
A continuación se muestra los resultados obtenidos mediante la malla de 10284 nodos.
De igual manera que hacíamos en el caso anterior, se muestran los resultados de la fibra
inferior de la primera capa del centro de la viga.
-0,0002
-0,00018
-0,00016
-0,00014
-0,00012
-0,0001
-0,00008
-0,00006
-0,00004
-0,00002
0
2,5 2,7 2,9 3,1 3,3 3,5 3,7 3,9 4,1
De
spla
za
mie
nto
ve
rtic
al
(mm
)
log(nº nodos)
Viga 3D
Albert Llanos Sánchez
126
Desp_x
(m)
Desp_y
(m)
Sigma_x
(N/m2)
Tau_xz
(N/m2)
0 -0.0001807 0.2789 -0.0010096
Tabla 29 Solución obtenida con la malla de 10284 nodos
Fig. 127 Desplazamientos horizontales (mm)
Fig. 128 Tensión normal (N/mm2)
Fig. 129 Tensión tangencial xz (N/mm2)
Vigas compuestas laminadas. Teoría de Timoshenko
127
A continuación se comparan los resultados obtenidos de la misma viga calculada
mediante teoría de sólido 3D y mediante teoría de viga laminada compuesta de Timoshenko.
Para poder confirmar que la teoría de Timoshenko es válida en el ejercicio propuesto, se ha
calculado la diferencia en los valores obtenidos tomando como referencia la solución en tres
dimensiones.
Desp_x (mm) Desp_y (mm) Sigma_x
(N/mm2)
Tau_xz
(N/mm2)
Sólido 3D 0 -0.0001807 0.2789 0
TCB 0 -0.0001811 0.30246 0
Diferencia (%) 0 0.22 8.45 0
Tabla 30 Comparación de resultados
Tiempo invertido en el cálculo
A continuación se presenta las gráficas donde se distingue el tiempo necesario para
calcular el problema en cuestión. Al igual que pasaba en los ejemplos anteriores, el programa
de MAT-fem es más eficiente computacionalmente ya que presenta los mismos resultados en
un tiempo mucho menor.
Fig. 130 Gráfica tiempo invertido en el cálculo de TCB
0
1
2
3
4
5
6
0 200 400 600 800 1000 1200 1400
Tie
mp
o (
seg
un
do
s)
Número de nodos
Tiempo cálculo TCB
Albert Llanos Sánchez
128
Fig. 131 Gráfica tiempo invertido en el cálculo de viga en 3D
II. VIGA BIEMPOTRADA CON CARGA REPARTIDA
El siguiente ejercicio trata de estudiar el cálculo de una viga biempotrada de longitud L
con carga repartida P, de canto h y ancho b. Este ejercicio aparece en el libro “Analysis with the
Finite Element Method. Linear Statics” de Eugenio Oñate, con lo que el objetivo de este caso es
obtener los resultados según la teoría de Timoshenko con el programa de MAT-fem y poder
comparar los resultados.
� L = 100mm ; h=5mm ; b=1mm
� P = 1KN/m
� Características de los materiales compuestos:
0
500
1000
1500
2000
2500
3000
3500
0 2000 4000 6000 8000 10000 12000
Tie
mp
o (
seg
un
do
s)
Número de nodos
Tiempo cálculo 3D
Vigas compuestas laminadas. Teoría de Timoshenko
129
CAPA YOUNG(N/mm2) POISSON DENSIDAD
(N/m3)
ESPESOR
(mm)
ANCHO
(mm)
1 5.3·105 0.25 0 0.5 1
2 2.19·105 0.25 0 0.6 1
3 0.82·105 0.25 0 0.5 1
4 0.0073·105 0.259 0 0.4 1
5 5.3·105 0.25 0 0.7 1
6 0.0073·105 0.259 0 0.1 1
7 7.30·105 0.25 0 0.4 1
8 0.82·105 0.25 0 0.5 1
9 2.19·105 0.25 0 0.3 1
10 7.30·105 0.25 0 1 1
Tabla 31 Características y dimensiones de la sección de la viga
Resultados obtenidos
La viga se divide en elementos unidimensionales de dos nodos cada uno, sin embargo
la solución se muestra en 2D mediante elementos cuadriláteros de cuatro nodos cada uno.
Fig. 132 Preproceso
Albert Llanos Sánchez
130
Fig. 133 Deformada en el postproceso
A continuación se muestran las gráficas de resultados que se pueden comparar con los
resultados obtenidos en el libro. Los resultados son los obtenidos a partir de una malla de 300
nodos.
Fig. 134 Desplazamiento vertical a lo largo del eje de la viga (mm)
Vigas compuestas laminadas. Teoría de Timoshenko
131
Fig. 135 Desplazamiento horizontal en la sección x=L/4
Fig. 136 Tensión normal en la sección x=L/4
0
1
2
3
4
5
6
-0,004 -0,003 -0,002 -0,001 0 0,001 0,002 0,003 0,004 0,005
h(m
m)
u(mm)
Desplazamiento horizontal en x=L/4
0
1
2
3
4
5
6
-0,80 -0,60 -0,40 -0,20 0,00 0,20 0,40 0,60 0,80
h(m
m)
Tensión Normal (MPa)
Tensión axial en x=L/4
Albert Llanos Sánchez
132
Fig. 137 Tensión tangencial en la sección x=L/4
La siguiente tabla muestra los resultados en la fibra inferior de la primera capa, en el
centro de la viga, en una malla de 300 nodos:
Desp_x
(mm)
Desp_y
(mm) Giro Qy (N) Mz (Nmm)
Sigma_x
(N/mm2)
Tau_xz
(N/mm2)
0 0.11913 0 0 -111.69 -128.25 0
Tabla 32 Valores obtenidos mediante la malla de 300 nodos
A continuación se muestran algunas imágenes del programa GiD donde se observa el
comportamiento estructural en cuanto a desplazamientos y tensiones se refiere:
Fig. 138 Desplazamiento horizontal (mm)
0
1
2
3
4
5
6
0 1 2 3 4 5 6 7 8
h(m
m)
Tensión tangencial(MPa)
Tensión tangencial en x=L/4
Vigas compuestas laminadas. Teoría de Timoshenko
133
Fig. 139 Esfuerzo cortante (N)
Fig. 140 Momento (Nmm)
Fig. 141 Tensión normal (N/mm2)
Albert Llanos Sánchez
134
Fig. 142 Tensión tangencial xz (N/mm2)
Los resultados obtenidos coinciden en los que aparecen en el libro de Eugenio Oñate,
sin embargo, no está de más calcular la viga mediante teoría tridimensional y cerciorar que los
resultados obtenidos son correctos.
Solución tridimensional
A continuación se muestra la gráfica que demuestra que la solución converge
correctamente.
Fig. 143 Convergencia de resultados
En la siguiente tabla se muestran los resultados obtenidos mediante una malla de
11959 nodos. Los valores indicados en la tabla corresponden a los valores en el centro de la
viga, en la primera capa y en la fibra inferior.
0,114
0,116
0,118
0,12
0,122
0,124
0,126
0,128
0 2000 4000 6000 8000 10000 12000 14000De
spla
za
mie
nto
ve
rtic
al
(mm
)
Número de nodos
Convergencia de resultados 3D
Vigas compuestas laminadas. Teoría de Timoshenko
135
Desp_x
(m)
Desp_y
(m)
Sigma_x
(N/m2)
Tau_xz
(N/m2)
0 0.12744 -114.47 0.0266
Tabla 33 Resultados obtenidos mediante la malla de 11959 nodos
En lo que sigue, se muestran las imágenes que describen el comportamiento
estructural de la viga en cuestión:
Fig. 144 Viga con las 10 capas bien diferenciadas
Albert Llanos Sánchez
136
Fig. 145 Desplazamiento vertical (mm)
Fig. 146 Desplazamiento horizontal (mm)
Vigas compuestas laminadas. Teoría de Timoshenko
137
Fig. 147 Tensión normal (MPa)
Fig. 148 Tensión tangencial (MPa)
Albert Llanos Sánchez
138
Se observa como el comportamiento de la viga calculada en forma de sólido 3D es el
mismo que el que obtuvimos mediante el método de Timoshenko para estructuras
compuestas. Además, se observa en la siguiente tabla como los valores obtenidos son muy
parecidos.
Desp_x (mm) Desp_y (mm) Sigma_x
(N/mm2)
Tau_xz
(N/mm2)
Sólido 3D 0 0.12744 -114.47 -0.25424
TCB 0 0.11913 -128.25 0.04
Diferencia (%) 0 6.52 12.04 84
Tabla 34 Comparación de resultados
En el caso de las tensiones tangenciales, los valores obtenidos están lo suficiente cerca
del cero como para suponer que la tensión en ese punto se anula. Si comparamos los valores
con las órdenes de magnitud que aparecen en las tensiones se observa claramente que no es
una aproximación descabellada.
Se puede concluir, por tanto, que el programa en MAT-fem representa fielmente el
comportamiento estructural de la viga.
Vigas compuestas laminadas. Teoría de Timoshenko
139
ANEJO 3: RUTINAS DE PROGRAMACIÓN
En el presente anejo se adjunta las rutinas de programación tanto en MATLAB como en
GiD necesarias para calcular vigas compuestas según la teoría de Timoshenko.
I. PROGRAMACIÓN EN MATLAB
Composite_Beam_Timoshenko_Reduced.m
%% 2 Nodes Composite Beam using Timoshenko Theory % Reduce the influence of the transverse shear stif fness (thick and slender % beams) % Clear memory and variables. clear % The variables are read as a MAT-fem subroutine % layers = Number of layers % young = Young Modulus % matrix size: layers x 1 % poiss = Poission Ratio % matrix size: layers x 1 % denss = Material density % matrix size: layers x 1 % thickness = thickness of every layer % matrix size: layers x 1 % width = width of every layer % matrix size: layers x 1 % coordinates = [x] matrix size: nnode x ndime (1) % elements = [ inode, jnode ] element conect ivity matrix % matrix size: nelem x nnode; nno de = 2 % fixnodes = [node number, dof, fixed value] matrix with % Dirichlet restrictions, were do f=1 for horizontal % displacement, dof=2 for vertica l displacement % and dof=3 for vertical derivati ve. % pointload = [node number, dof, load value] matrix with % nodal loads, were dof=1 for hor izontal load, % dof=2 for vertical load and dof =3 for moment. % uniload = [ uniform load ] sparse matrix size: nelem x 2 file_name = input( 'Enter the file name :' , 's' ); tic; % Start clock ttim = 0; % Initialize time counter eval (file_name); % Read input file % Finds basics dimensions npnod = size(coordinates,1); % Number of nodes nelem = size(elements,1); % Number of elements nnode = size(elements,2); % Number of nodes por element
Albert Llanos Sánchez
140
dofpn = 3; % Number of DOF per node dofpe = nnode*dofpn; % Number of DOF per element nndof = npnod*dofpn; % Number of total DOF ttim = timing( 'Time needed to read the input file' ,ttim); %Reporting time % Dimension the global matrices. StifMat = sparse ( nndof , nndof ); % Create the global stiffness matrix force = sparse ( nndof , 1 ); % Create the global force vector reaction = sparse ( nndof , 1 ); % Create the global reaction vector u = sparse (nndof, 1); % Nodal variables % Material properties (Constant over the domain) shear = young./(2*(1+poiss)); area = thickness'*width ; % Create coordinate z vector of points between ea ch layer coord_z = [zeros(1);thickness] ; for j=2:layers+1 coord_z(j,1) = coord_z(j,1)+coord_z(j-1,1); % Coordinate z respect end % the bottom of the % section for i=1:layers zg_layers(i)=(coord_z(i)+coord_z(i+1))*0.5; % Center of gravity of end % each layer for i=1:layers area_layers(i)=thickness(i)*width(i); % Area of each layer end coord_zg = (area_layers*zg_layers')/area; % Center of gravity of the % section coord_ZG = coord_z-(coord_zg*ones(layers+1,1)); % Coordinate z respect the % center of gravity of the % section % Components of the generalized constitutive matr ix % Axial stiffness D_mata = 0; for i=1:layers D_mata = D_mata + width(i) * thickness (i) * young(i); end
Vigas compuestas laminadas. Teoría de Timoshenko
141
% Bending stiffness D_matb = 0 ; for i=1:layers D_matb = D_matb + (1/3)*((coord_ZG(i+1))^3-(coord_ZG(i))^3)*width(i)*young(i); end % Coupling axial-bending stiffness D_matab = 0; for i = 1:layers D_matab = D_matab+(-1/2)*(coord_ZG(i+1)+coord_ZG(i))*width(i)*thickness (i)*young(i); end % Shear stiffness D_mats=0; for i=1:layers D_mats = D_mats + thickness(i)*width(i)*(young(i)/(2*(1+poiss(i)))); end % Compute the shear correction parameter for bend ing around the y axis % (kz) S1 = 0; S3 = 0; for i = 1 : layers if i > 1 S1 = S1 + young(i-1)* (coord_ZG(i)^2 - coor d_ZG(i-1)^2); end S2 = 1/20*young(i)^2*(coord_ZG(i+1)^5-coord_ZG( i)^5)+ ... 1/6*(S1-young(i)*coord_ZG(i)^2) * young(i) * (coord_ZG(i+1)^3-coord_ZG(i)^3)+ ... 1/4*(S1-young(i)*coord_ZG(i)^2)^2 * (coord _ZG(i+1)-coord_ZG(i)); S3 = S3 + width(i)/shear(i)*S2 ; end kz = D_matb^2/D_mats/S3; % New shear stiffness D_mats = kz*D_mats; % Vertical distance between the global axis x and the neutral axis. d = - D_matab / D_mata ; % Create coordinate z vector of points between ea ch layer respect % neutral axis coord_zp = coord_ZG-(d*ones(layers+1,1)); % New coupling axial-bending stiffness D_matab=0; for i = 1:layers D_matab =D_matab + (-1/2)*(coord_zp(i+1)+coord_zp(i))*width(i)*thickness (i)*young(i);
Albert Llanos Sánchez
142
end ttim = timing( 'Time needed to set initial values' ,ttim); %Reporting time % Element cycle for ielem = 1 : nelem lnods(1:nnode) = elements(ielem,1:nnode); coor_x(1:nnode) = coordinates(lnods(1:nnode),1) ; % Elem. X coordinate len = coor_x(2) - coor_x(1); % x_j > x_i const = D_matb/len; K_bend = [ 0 , 0 , 0 , 0 ; 0 , 1 , 0 , -1 ; 0 , 0 , 0 , 0 ; 0 , -1 , 0 , 1 ]; K_bend = K_bend * const; const = D_mats/len; K_shear = [ 1 , len/2 , -1 , len/2 ; len/2 , len^2/4 , -len/2 , len^2/4 ; -1 , -len/2 , 1 , -len/2 ; len/2 , len^2/4 , -len/2 , len^2/4 ]; K_shear = K_shear * const; K_flex = K_bend + K_shear; const = D_mata/len; K_axial = [ 1 , -1 ; -1 , 1 ]; K_axial = K_axial * const ; K_elem = [K_axial , zeros(2,4); zeros(4,2) , K_flex ]; K_elem(:,[2 3]) = K_elem(:,[3 2]); K_elem(:,[3 4]) = K_elem(:, [4 3]); K_elem([2,3],:)=K_elem([3 2],:); K_elem([3,4],:)=K_elem([4 3],:); pp = thickness.*width.*denss; fa = uniload(ielem,1) * len/2 ; fz = (-sum(pp) + uniload(ielem,2))* len/2;
Vigas compuestas laminadas. Teoría de Timoshenko
143
ElemFor = [ fa, fz , 0, fa, fz, 0]; %elemental force vector. % Finds the equation number list for the i-th eleme nt for i=1:nnode ii = (i-1)*dofpn; for j =1:dofpn eqnum(ii+j) = (lnods(i)-1)*dofpn+j; % Build the equation number list end end % Assemble the force vector and the stiffness matri x for i = 1 : dofpe ipos = eqnum(i); force (ipos) = force(ipos) + ElemFor(i); for j = 1 : dofpe jpos = eqnum(j); StifMat (ipos,jpos) = StifMat (ipos,jpos) + K_elem(i,j); end end end % End element cycle ttim = timing( 'Time to assemble the global system' ,ttim); %Reporting time % Add point loads conditions to the force vector for i = 1 : size(pointload,1) ieqn = (pointload(i,1)-1)*dofpn+pointload(i,2); % Finds eq. number force(ieqn) = force(ieqn) + pointload(i,3); % add the force end ttim = timing( 'Time for apply side and point load' ,ttim); %Reporting time % Applies the Dirichlet conditions and adjust the r ight hand side. for i = 1 : size(fixnodes,1) ieqn = (fixnodes(i,1)-1)*dofpn+fixnodes(i,2) ; % Finds eq. number u (ieqn) = fixnodes(i,3); % and store the solution in u fix(i) = ieqn ; % and mark the eq as a fix value end force = force - StifMat * u ; % adjust the rhs with the known values % Compute the solution by solving StifMat * u = fo rce for the % remaining unknown values of u. FreeNodes = setdiff ( 1:nndof, fix ); % Finds the free node list and
Albert Llanos Sánchez
144
u(FreeNodes) = StifMat(FreeNodes,FreeNodes) \ for ce(FreeNodes); ttim = timing( 'Time to solve the stiffness matrix' ,ttim); %Reporting time % Compute the layer's results [Dsp_lyr Str_lyr ResStr_lyr] = Composite_Layers_Beam_Timoshenko(layers,young,shear ,poiss,kz,width,thickness,coord_ZG,coord_zp,u); ttim = timing( 'Time to solve the layer results' ,ttim); %Reporting time % Graphic representation. ToGiD_Composite_Beam_Timoshenko(file_name,layers,co ord_ZG,u,Dsp_lyr,Str_lyr,ResStr_lyr); ttim = timing( 'Time used to write the solution' ,ttim); %Reporting time itim = toc; %Close last tic fprintf(1, '\n Total running time %12.6f \n' ,ttim); %Reporting final time
Composite_Layer_Beam_Timoshenko.m
function [Dsp_lyr Str_lyr ResStr_lyr] = Composite_Layers_Beam_Timoshenko(layers,young,shear ,poiss,kz,width,thickness,coord_ZG,coord_zp,u) %Evaluates the layer's values in order to see the r esults in a 2D graphic. %Evaluates the displacements (Dsp_lyr) at the nodes and at the points between layers. %Evaluates the stresses (Str_lyr), for each layer, at the gauss point and smooth the values %to the nodes %Evaluates the resultant stresses (ResStr_lyr) on G auss points for each layer. global coordinates; global elements; npnod = size(coordinates,1); % Number of nodes nelem = size(elements,1); % Number of elements nnode = size(elements,2); % Number of nodes por element dofpn = 3; % Number of DOF per node dofpe = nnode*dofpn; % Number of DOF per element
Vigas compuestas laminadas. Teoría de Timoshenko
145
nndof = npnod*dofpn; % Number of total DO eqnum = zeros(dofpe); % Equation number list Dsp_lyr = zeros(npnod,3,layers+1); % Create array for displacements Str_lyr = zeros(npnod,3,2*layers); % Create array for stresses ResStr_lyr = zeros(nelem,3,layers); % Create array for resultant stresses %% Layer Displacements % Finds the equation number list for the i-th node dof_1=zeros(npnod,1); %dof_1 belong to the axial displacement dof_2=zeros(npnod,1); %dof_2 belong to the vertical displacement dof_3=zeros(npnod,1); %dof_3 belong to the rotation for node = 1:npnod dof_1(node)=(node-1)*dofpn + 1; dof_2(node)=(node-1)*dofpn + 2; dof_3(node)=(node-1)*dofpn + 3; end % Displacement field for lyr = 1:layers+1 Dsp_lyr(:,1,lyr) = u(dof_1) - coord_zp(lyr)*u(d of_3); Dsp_lyr(:,2,lyr) = u(dof_2); Dsp_lyr(:,3,lyr) = u(dof_3); end %% Layer Stresses and Resultant Stresses Da = zeros(2*layers,1); Db = zeros(2*layers,1); Ds = zeros(2*layers,1); for i=1:layers Da(2*(i-1)+1) = young(i); Da(2*(i-1)+2) = young(i); Db(2*(i-1)+1) = -young(i)*coord_zp(i); Db(2*(i-1)+2) = -young(i)*coord_zp(i+1); Ds(2*(i-1)+1) = kz*shear(i); Ds(2*(i-1)+2) = kz*shear(i); end Da_lyr = zeros(layers,1); Db_lyr = zeros(layers,1); Dab_lyr = zeros(layers,1); Ds_lyr = zeros(layers,1); for i=1:layers Da_lyr(i) = width(i) * thickness (i) * young(i ); Db_lyr(i) = (1/3)*((coord_ZG(i+1))^3-(coord_ZG(i))^3)*width(i)*young(i); Ds_lyr(i)= thickness(i)*width(i)*(young(i)/(2* (1+poiss(i)))); end Ds_lyr=kz*Ds_lyr;
Albert Llanos Sánchez
146
% Element cycle. for ielem = 1 : nelem lnods(1:nnode) = elements(ielem,1:nnode); %vector nodos del elemento coor_x(1:nnode) = coordinates(lnods(1:nnode),1) ; % Elem. X coordinate % Finds the equation number list for the i-th eleme nt for i=1:nnode ii = (i-1)*dofpn; for j =1:dofpn eqnum(ii+j) = (lnods(i)-1)*dofpn+j; % Build the equation number list end end % Recover the nodal displacements for the i-th elem ent u_elem(1:dofpe)=u(eqnum(1:dofpe)); len = coor_x(2) - coor_x(1); % x_j > x_i % One gauss point for stress evaluation gaus0 = 0.0; % One Gauss point for stresses evaluation bmat_a=[ -1/len, 0, 0, 1/len, 0, 0 ]; bmat_b=[0, 0, -1/len, 0, 0, 1/len]; bmat_s=[0, -1/len, -1/2, 0, 1/len, -1/2]; Str1_g0 = (Da*bmat_a + Db*bmat_b)*transpose(u_e lem); Str2_g0 = (Ds*bmat_s)*transpose(u_elem); Str_lyr(lnods(1),1,:) = Str_lyr(lnods(1),1,:)+p ermute(Str1_g0,[2 3 1]); Str_lyr(lnods(2),1,:) = Str_lyr(lnods(2),1,:)+p ermute(Str1_g0,[2 3 1]); Str_lyr(lnods(1),2,:) = Str_lyr(lnods(1),2,:)+p ermute(Str2_g0,[2 3 1]); Str_lyr(lnods(2),2,:) = Str_lyr(lnods(2),2,:)+p ermute(Str2_g0,[2 3 1]); Str_lyr(lnods(1),3,:) = Str_lyr(lnods(1),3,:)+1 ; Str_lyr(lnods(2),3,:) = Str_lyr(lnods(2),3,:)+1 ; ResStr1_g0 = (Da_lyr*bmat_a) *transpose(u_elem) ; ResStr2_g0 = (Db_lyr*bmat_b)*transpose(u_elem); ResStr3_g0 = (Ds_lyr*bmat_s)*transpose(u_elem);
Vigas compuestas laminadas. Teoría de Timoshenko
147
ResStr_lyr(ielem,1,:)=permute(ResStr1_g0,[2 3 1 ]); ResStr_lyr(ielem,2,:)=permute(ResStr2_g0,[2 3 1 ]); ResStr_lyr(ielem,3,:)=permute(ResStr3_g0,[2 3 1 ]); end % End element cycle for i = 1 : npnod Str_lyr(i,1,:) = Str_lyr(i,1,:)./Str_lyr(i,3,:) ; Str_lyr(i,2,:) = Str_lyr(i,2,:)./Str_lyr(i,3,:) ; end
ToGiD_Composite_Beam_Timoshenko.m
function ToGiD_Composite_Beam_Timoshenko(file_name,layers,co ord_ZG,u,Dsp_lyr,Str_lyr,ResStr_lyr) % % Parameters: % % Input, file_name : GiD File name % u : Nodal variables % reaction : Nodal reactions % Str : Gauss Point Stresses % % Output, none % global coordinates; global elements; nelem = size(elements,1); % Number of elements npnod = size(coordinates,1); % Number of nodes qeletyp = 'Quadrilateral' ; msh_file = strcat(file_name, '.flavia.msh' ); res_file = strcat(file_name, '.flavia.res' ); %% Mesh with quadrilateral elements (2D beam) qnelem = nelem*layers; % Number of quadrilateral elements qnnode = 4; % Number of nodes per quadrilateral elements. qnpnod = npnod*layers*2; % Number of nodes % Coordinates matrix of quadrilateral elements (2D) qcoordinates = zeros(qnpnod,2); for i=1:layers for j=1:npnod
Albert Llanos Sánchez
148
qcoordinates((2*i-2)*npnod+j,:)=[coordinate s(j) coord_ZG(i)]; qcoordinates((2*i-1)*npnod+j,:)=[coordinate s(j) coord_ZG(i+1)]; end end % Elements matrix of quadrilateral elements (2D) qelements=zeros(qnelem,qnnode+1); for i = 1:layers for j = 1 : nelem qelements((i-1)*nelem+j,:) = [((2*i-2)*npnod+ elements(j,:)) ... ((2*i-1)*npnod + elements(j,end:-1:1)) i ]; end end % Conectivity matrix by layer (2D) Nod_lyr = zeros(npnod,layers,2); Elem_lyr = zeros(nelem,layers); for i = 1 : layers for j = 1 : npnod Nod_lyr(j,i,1) = (2*i-2)*npnod + j; Nod_lyr(j,i,2) = (2*i-1)*npnod + j; end for n = 1 : nelem Elem_lyr(n,i) = (i-1)*nelem + n; end end %%Generates the mesh file fid = fopen(msh_file, 'w' ); fprintf(fid, '### \n' ); fprintf(fid, '# MAT_FEM Compiste Laminated TBT \n' ); fprintf(fid, '# \n' ); % Generates the mesh in 2D fprintf(fid, 'Group "Thickness_Analysis_2D" \n' ); fprintf(fid, 'MESH "2D_beam" dimension %3.0f Elemtype %s Nno de %2.0f \n \n' ,2,qeletyp,qnnode); fprintf(fid, 'coordinates \n' ); for i = 1 : qnpnod fprintf(fid, '%6.0f %12.5d %12.5d \n' ,i,qcoordinates(i,1),qcoordinates(i,2)); end fprintf(fid, 'end coordinates \n \n' ); fprintf(fid, 'elements \n' ); for i = 1 : qnelem fprintf(fid, '%6.0f %6.0f %6.0f %6.0f %6.0f %3.0f \n' ,i,qelements(i,:)); end fprintf(fid, 'end elements \n \n' ); fprintf(fid, 'end group \n \n' ); status = fclose(fid);
Vigas compuestas laminadas. Teoría de Timoshenko
149
%% Generates the result file fid = fopen(res_file, 'w' ); fprintf(fid, 'Gid Post Results File 1.0 \n' ); fprintf(fid, '### \n' ); fprintf(fid, '# MAT_FEM Composite Laminated TBT \n' ); fprintf(fid, '# \n' ); fprintf(fid, 'GaussPoints "GP_quad" Elemtype %s "2D_beam" \n' ,qeletyp); fprintf(fid, 'Number of Gauss Points: 1 \n' ); fprintf(fid, 'Natural Coordinates: Internal \n' ); fprintf(fid, 'end gausspionts \n' ); fprintf(fid, '# \n' ); %% Thickness results along each layer fprintf(fid, 'OnGroup "Thickness_Analysis_2D" \n' ); fprintf(fid, 'Result "Displacements" "Load Analysis" 1 Vector OnNodes \n' ); fprintf(fid, 'ComponentNames "X-Displ", "Y-Displ", "Z-Displ" \n' ); fprintf(fid, 'Values \n' ); for i=1:layers for j = 1 : npnod fprintf(fid, '%6.0i %13.5d %13.5d 0.0 \n' ,Nod_lyr(j,i,1),full(Dsp_lyr(j,1,i)),full(Dsp_lyr(j ,2,i))); fprintf(fid, '%6.0i %13.5d %13.5d 0.0 \n' ,Nod_lyr(j,i,2),full(Dsp_lyr(j,1,i+1)),full(Dsp_lyr (j,2,i+1))); end end fprintf(fid, 'End Values \n' ); fprintf(fid, '# \n' ); fprintf(fid, 'Result "Rotation" "Load Analysis" 1 Vector OnNodes \n' ); fprintf(fid, 'ComponentNames "X-Rot", "Y-Rot", "Z-Rot" \n' ); fprintf(fid, 'Values \n' ); for i=1:layers for j = 1 : npnod fprintf(fid, '%6.0i 0.0 0.0 %13.5d \n' ,Nod_lyr(j,i,1),full(Dsp_lyr(j,3,i))); fprintf(fid, '%6.0i 0.0 0.0 %13.5d \n' ,Nod_lyr(j,i,2),full(Dsp_lyr(j,3,i+1))); end end fprintf(fid, 'End Values \n' ); fprintf(fid, '# \n' ); fprintf(fid, 'Result "Stresses" "Load Analysis" 1 Vector OnNodes \n' ); fprintf(fid, 'ComponentNames "Sigma_x", "Tau_xz", "zero" \n' ); fprintf(fid, 'Values \n' ); for i=1:layers for j = 1 : npnod fprintf(fid, '%6.0i %12.5d %12.5d 0.0 \n' ,Nod_lyr(j,i,1),Str_lyr(j,1,(i-1)*2+1),Str_lyr(j,2, (i-1)*2+1)); fprintf(fid, '%6.0i %12.5d %12.5d 0.0 \n' ,Nod_lyr(j,i,2),Str_lyr(j,1,(i-1)*2+2),Str_lyr(j,2, (i-1)*2+2)); end
Albert Llanos Sánchez
150
end fprintf(fid, 'End Values \n' ); fprintf(fid, '# \n' ); fprintf(fid, 'Result "Resultant_Stresses" "Load Analysis" 1 Vect or OnGaussPoints "GP_quad" \n' ); fprintf(fid, 'ComponentNames "Nx", "Qy", "Mz" \n' ); fprintf(fid, 'Values \n' ); for i=1:layers for j = 1 : nelem fprintf(fid, '%6.0i %12.5d %12.5d %12.5d \n' ,Elem_lyr(j,i),ResStr_lyr(j,1,i),ResStr_lyr(j,3,i), ResStr_lyr(j,2,i)); end end fprintf(fid, 'End Values \n' ); fprintf(fid, 'End ongroup \n' ); fprintf(fid, '# \n' ); status = fclose(fid);
timing.m
function t = timing (text,time) %% timing Evaluates and acumulate the used time. % % Parameters: % % Input, text : String to show. % time : Accumulate time at t-1 % % Output, t : Accumulate time at t itim = toc; % Close previous tic fprintf(1,[text, ' %12.6f \n' ],itim); % Output time and text t = itim + time; % Accumulate time in t tic % Open an new tic
Vigas compuestas laminadas. Teoría de Timoshenko
151
II. PROGRAMACIÓN EN GID
MAT-fem_Composite_Beams.cnd
BOOK: Displacement_Constraints NUMBER: 1 CONDITION: Point_Constraints CONDTYPE: over points CONDMESHTYPE: over nodes QUESTION:Horizontal_Constraint:#CB#(1,0) VALUE:1 DEPENDENCIES: (0,SET,Displacement-X,0.0m)(#DEFAULT#,RESTORE,Displacement-X,0.0m) QUESTION:Displacement-X#UNITS# VALUE:0.000m QUESTION:Vertical_Constraint:#CB#(1,0) VALUE: 1 DEPENDENCIES: (0,SET,Displacement-Y,0.0m)(#DEFAULT#,RESTORE,Displacement-Y,0.0m) QUESTION:Displacement-Y#UNITS# VALUE:0.000m QUESTION:Rotation_Constraint:#CB#(1,0) VALUE: 1 DEPENDENCIES: (0,SET,Displacement-R,0.0rad)(#DEFAULT#,RESTORE,Displacement-R,0.0rad) QUESTION:Displacement-R#UNITS# VALUE:0.000rad END CONDITION BOOK: Point_Loads NUMBER: 2 CONDITION: Point_Load CONDTYPE: over points CONDMESHTYPE: over nodes QUESTION: Horizontal-Force:#UNITS# VALUE: 0.0N QUESTION:Vertical-Force:#UNITS# VALUE: 0.0N QUESTION: Moment:#UNITS# VALUE: 0.0N*m END CONDITION BOOK: Uniform_Loads NUMBER: 3 CONDITION: Uniform_Load CONDTYPE: over lines CONDMESHTYPE: over elems QUESTION:Horizontal-Load:#UNITS# VALUE: 0.0N/m QUESTION:Vertical-Load:#UNITS# VALUE: 0.0N/m END CONDITION
Albert Llanos Sánchez
152
MAT-fem_Composite_Beams.prb
PROBLEM DATA TITLE:General_Data QUESTION:Problem_Title VALUE:Untitled HELP: The title of the problem QUESTION:Consider_Self_weight#CB#(Yes,No) VALUE:No END PROBLEM DATA
MAT-fem_Composite_Beams.mat
NUMBER: 1 MATERIAL: Composite_Section QUESTION: LAYER VALUE: 3 QUESTION: YOUNG(LAYER,___YOUNG__N/m^2___) VALUE: #N# 6 1 2.1e11 2 3.0e10 3 3.0e10 QUESTION: POISSON(LAYER,___POISSON___) VALUE: #N# 6 1 0.2 2 0.2 3 0.2 QUESTION: SELF-WEIGHT(LAYER,___SELF-WEIGHT__N/m^3___) VALUE: #N# 6 1 78000 2 25000 3 78000 QUESTION: THICKNESS(LAYER,___THICKNESS__m___) VALUE: #N# 6 1 2 2 16 3 2 QUESTION: WIDTH(LAYER,___WIDTH__m___) VALUE: #N# 6 1 10 2 10 3 10 END MATERIAL
MAT-fem_Composite_Beams.uni
BEGIN TABLE LOAD : N {reference}, 1e-1 kgf, 1e-4 ton, 1e-3 kN, 1e-6 MN, 0.2248090247 lbf MOMENT : N*m {reference}, 1e-1 kgf*m, 1e-4 ton*m, 1e-3 kN*m, 1e-6 MN*m, 8.850749004 lbf*in UNIFORM_LOAD : N/m {reference}, 1e-1 kgf/m, 1e-4 ton/m, 1e-3 kN/m, 1e-6 MN/m, 0.571015e-2 lbf/in AREA : m^2 {reference}, 1e+4 cm^2, 1e+6 mm^2, 1550 in^2 INERTIA : m^4 {reference}, 1e+8 cm^4, 1e+12 mm^4, 2402509.610 in^4 SELF_WEIGHT : N/m^3 {reference}, 1e-1 kgf/m^3, 1e-4 ton/m^3, 1e-3 kN/m^3, 1e-6 MN/m^3, 0.3683959876e-5 lbf/in^3 END
Vigas compuestas laminadas. Teoría de Timoshenko
153
BEGIN SYSTEM(INTERNATIONAL) LENGTH : m ANGLE : rad UNIFORM_LOAD : N/m PRESSURE : N/m^2 LOAD : N MOMENT : N*m SELF_WEIGHT : N/m^3 AREA : m^2 INERTIA : m^4 END USER DEFINED: DISABLED
MAT-fem_Composite_Beams.sim
cond Point_Constraints 4 global cond(int,1) && cond(int,3) && cond(int,5) 1 0 0 pc_emp.geo global cond(int,1) && cond(int,3) 1 0 0 ep_apoioL.geo global cond(int,1) || cond(int,3) cond(int,3) cond(int,1)*(-1) 0 ep_apoio-rodillo.geo global cond(int,5) 1 0 0 pc_sim.geo cond Point_Load 4 global cond(real,1) && cond(real,2) && cond(real,3) cond(real,2)
Albert Llanos Sánchez
154
cond(real,1)*(-1) 0 pl_fl_m.geo global cond(real,1) && cond(real,3) || cond(real,2) && cond(real,3) cond(real,2) cond(real,1)*(-1) 0 pl_fl_m.geo global 1 cond(real,1) cond(real,2) 0 ep_fletxa.geo global cond(real,3) cond(real,3) 0 0 pl_mom.geo cond Uniform_Load 1 global cond(real,1) && cond(real,2) || cond(real,1) || cond(real,2) cond(real,2) cond(real,1)*(-1) 0 ep_flechas.geo
MAT-fem_Composite_Beams.bas
*loop elems *if(elemsmat==0) *messagebox - An element without any material was found, some posibilities are that you forget to asign a material to the problem or there is a repited entity over another - Process finished with error *endif *end *loop nodes *if(NodesCoord(3)==0) *else *messagebox - This is a beams problem so z coordinate must be =0 for all nodes - Process finished with error *endif *if(NodesCoord(2)==0)
Vigas compuestas laminadas. Teoría de Timoshenko
155
*else *messagebox - This is a beams problem so y coordinate must be =0 for all nodes - Process finished with error *endif *end *set var MATERIAL=0 *loop materials *set var MATERIAL=Operation(MATERIAL(int)+1) *end *if(MATERIAL>1) *messagebox - This program only allows one material *endif %=====================================================================
== % MAT-fem_Beams 1.0 - MAT-fem is a learning tool for undestanding % the Finite Element Method with MATLAB and GiD %=====================================================================
== % PROBLEM TITLE = *GenData(1) % % Material Properties % *loop materials *format " layers = %10.2e; " *MatProp(1); *set var L=MatProp(1,int) *set var N=MatProp(2,int) young = [ *for(i=1;i<=N-2;i=i+2) *format " %17.9e " *MatProp(2,*operation(i+1)); *end for *format " %17.9e " *MatProp(2,*operation(N))]; poiss = [ *for(i=1;i<=N-2;i=i+2) *format " %17.9e " *MatProp(3,*operation(i+1)); *end for *format " %17.9e " *MatProp(3,*operation(N))]; *if(strcmp(GenData(2),"No")==0) *format "%1i" denss = zeros(*operation(L),1) ; *else denss = [ *for(i=1;i<=N-2;i=i+2) *format " %17.9e " *MatProp(4,*operation(i+1)); *end for *format " %17.9e " *MatProp(4,*operation(N))];
Albert Llanos Sánchez
156
*endif thickness = [ *for(i=1;i<=N-2;i=i+2) *format " %17.9e " *MatProp(5,*operation(i+1)); *end for *format " %17.9e " *MatProp(5,*operation(N))]; width = [ *for(i=1;i<=N-2;i=i+2) *format " %17.9e " *MatProp(6,*operation(i+1)); *end for *format " %17.9e " *MatProp(6,*operation(N))]; *end materials % % Coordinates % global coordinates coordinates = [ *loop nodes *format " %17.9e " *if(NodesNum == npoin) *NodesCoord(1) ] ; *else *NodesCoord(1) ; *endif *end nodes % % Elements % global elements elements = [ *loop elems *format " %6i %6i %6i %6i " *if(nnode == 2) *if(ElemsNum == nelem) *ElemsConec(1) , *ElemsConec(2) ] ; *else *ElemsConec(1) , *ElemsConec(2) ; *endif *else *if(ElemsNum == nelem) *ElemsConec(1) , *ElemsConec(2) , *ElemsConec(3) ] ; *else *ElemsConec(1) , *ElemsConec(2) , *ElemsConec(3) ; *endif *endif *end elems % % Fixed Nodes
Vigas compuestas laminadas. Teoría de Timoshenko
157
% fixnodes = [ *Set Cond Point_Constraints *nodes *or(1,int) *or(3,int) *or(5,int) *Set var nod = 0 *loop nodes *OnlyInCond *if(Cond(1,Int) == 1) *Set var nod = nod + 1 *endif *if(Cond(3,Int) == 1) *Set var nod = nod + 1 *endif *if(Cond(5,Int) == 1) *Set var nod = nod + 1 *endif *end nodes *Set var nod2 = 1 *loop nodes *OnlyInCond *if(Cond(1,Int) == 1) *format " %6i %17.9e " *if(nod==nod2) *NodesNum() , 1 , *Cond(2) ] ; *else *NodesNum() , 1 , *Cond(2) ; *endif *Set var nod2 = nod2 + 1 *endif *if(Cond(3,Int) == 1) *format " %6i %17.9e " *if(nod==nod2) *NodesNum() , 2 , *Cond(4) ] ; *else *NodesNum() , 2 , *Cond(4) ; *endif *Set var nod2 = nod2 + 1 *endif *if(Cond(5,Int) == 1) *format " %6i %17.9e " *if(nod==nod2) *NodesNum() , 3 , *Cond(6) ] ; *else *NodesNum() , 3 , *Cond(6) ; *endif *Set var nod2 = nod2 + 1 *endif *end nodes % % Point loads % *Set Cond Point_Load *nodes *if((CondNumEntities(int)>0)) *Set var nod = 0 pointload = [
Albert Llanos Sánchez
158
*loop nodes *OnlyInCond *Set var nod = nod + 1 *format " %6i %17.9e " *NodesNum , 1 , *cond(1,real) ; *format " %6i %17.9e " *NodesNum , 2 , *cond(2,real) ; *format " %6i %17.9e " *if(CondNumEntities(int)==nod) *NodesNum , 3 , *cond(3,real) ] ; *else *NodesNum , 3 , *cond(3,real) ; *endif *end nodes *else pointload = [ ] ; *endif % % Side loads % *Set Cond Uniform_Load *elems uniload = sparse ( *nelem , 2); *if(CondNumEntities(int)>0) *loop elems *OnlyInCond *and(1,int) *format " %6i %17.9e " uniload (*ElemsNum,1 ) = *cond(1) ; *end elems *loop elems *OnlyInCond *and(2,int) *format " %6i %17.9e " uniload (*ElemsNum,2 ) = *cond(2) ; *end elems *endif