Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ttulo
Autor/a
Tutor/a
Departamento
Intensificacin
Mtodos Numricos
Fecha
Junio de 2015
Desarrollo en Matlab de software de clculo de placas por MEF
RESUMEN
El mtodo de los elementos finitos o MEF es una herramienta muy potente para
el clculo aproximado de todo tipo de problemas de los cuales no se conoce la solucin
analtica o sta tiene una complejidad demasiado grande como para ser tratada
directamente. Especficamente, en el campo del clculo de estructuras tiene una gran
variedad de aplicaciones y es un mtodo ampliamente utilizado en la actualidad.
As, siguiendo la filosofa del cdigo libre o Open Source que ha proliferado en
todo el mundo en los ltimos aos, especialmente en el mbito de la ciencia y la
ingeniera, en este trabajo se crea un programa con interfaz grfica de clculo de flexin
de placas mediante el mtodo MEF, y usando el elemento finito DKT para el clculo. El
programa se desarrolla usando el paradigma de programacin orientada a objetos, que
presenta mejoras en relacin a la programacin procedimental clsica con lenguajes
populares como Fortran, mejorando la modularidad, el orden, la legibilidad y la calidad
en general del cdigo.
ABSTRACT
Therefore, following the Open Source philosophy that is becoming more popular
every day, and that fits perfectly in the engineering and science fields in general, the
major objective of this thesis is to create a user-friendly graphical software in Matlab
for plate solving using FEM methodology, and introducing the DKT finite element. The
program is developed using object oriented programming. OOP provides a better way of
organizing the code and making the program easily modifiable and more structured, in
comparison with classical procedural programming languages like Fortran.
The source code of the program is linked at the end of the document, and it is
provided next to this document too.
AGRADECIMIENTOS
En primer lugar, a mis tutores Miguel Cervera Ruiz y Joan Baiges Aznar, por
guiarme y ayudarme en todo el proceso de realizacin de la tesina, y porque gracias a
ellos me introduje en un trabajo tan interesante y enriquecedor.
Gracias a todos.
NDICE
Figuras
Figura 5.1 Definicin geomtrica de una placa y convenio de signos. Deformacin del plano
medio [5] ..................................................................................................................................... 18
Figura 6.1 Teora de placas de Reissner-Mindlin. Convenio de signos para los movimientos y
giro de la normal [5] .................................................................................................................... 21
Figura 7.1 Elemento triangular de 6 nodos y elemento DKT. ..................................................... 24
Figura 7.2 Coordenadas naturales del elemento DKT................................................................. 27
Figura 7.3 Sistema local de coordenadas del elemento DKT ...................................................... 30
Figura 7.4 Matriz [], segn [12] ................................................................................................. 31
Figura 7.5 Criterio de signos para los momentos........................................................................ 34
Figura 9.1 Estructura bsica del programa ................................................................................. 41
Figura 9.2 Aspecto general de la interfaz grfica de usuario ...................................................... 42
Figura 9.3 Barra de herramientas de la interfaz ......................................................................... 43
Figura 9.4 Ejemplo de dibujo de una placa rectangular con una carga vertical repartida y un
momento puntual ....................................................................................................................... 43
Figura 9.5 Panel lateral Vista ....................................................................................................... 44
Figura 9.6 Presentacin numrica de resultados ........................................................................ 44
Figura 9.7 Presentacin tridimensional de resultados................................................................ 45
Figura 9.8 Panel lateral Introducir Clculos ................................................................................ 46
Figura 9.9 Panel lateral Mostrar.................................................................................................. 46
Figura 9.10 Ejemplo de muestra de resultados: Momento X sin alisar ...................................... 47
Figura 9.11 Ejemplo de muestra de resultados: Momento X alisado ......................................... 47
Figura 9.12 Esquema de funcionamiento de la funcin MainCalculo ......................................... 48
Figura 9.13 Esquema de funcionamiento del mdulo de clculo ............................................... 50
Figura 10.1 Patch test 1 ............................................................................................................... 56
Figura 10.2 Patch test 1, resultados de desplazamiento del programa ...................................... 58
Figura 10.3 Patch test 1, resultados de Mx del programa .......................................................... 58
Figura 10.4 Patch test 1, resultados de My del programa .......................................................... 59
Figura 10.5 Patch test 1, resultados de Mxy del programa ........................................................ 59
Figura 10.6 Leyes de esfuerzos de una viga en voladizo con un momento en el extremo ......... 60
Figura 10.7 Patch test 2, Malla de la placa en el programa, plano XY ........................................ 61
Figura 10.8 Patch test 2, resultados de desplazamiento vertical del programa ......................... 61
Tablas
Tabla 9.1 Propiedades ms relevantes de la clase MainCalculo ................................................. 51
Tabla 9.2 Mtodos ms relevantes de la clase MainCalculo ...................................................... 51
Tabla 9.3 Propiedades ms relevantes de la clase Contorno...................................................... 52
Tabla 9.4 Mtodos ms relevantes de la clase Contorno ........................................................... 52
Tabla 9.5 Propiedades ms relevantes de la clase AreaCargada ................................................ 52
2. INTRODUCCIN Y OBJETIVOS
En esta tesina se pretende desarrollar un programa con interfaz grfica en
Matlab de clculo de flexin de placas usando el Mtodo de los Elementos Finitos
(MEF). El texto se estructura en tres partes fundamentales:
La primera es una introduccin terica a los conceptos que son de inters para el
desarrollo de este programa, es decir, a la teora del MEF aplicada a la flexin de placas.
Se estudia la metodologa general del MEF y las dos principales teoras en el clculo de
placas, la teora de Kirchhoff para placas delgadas y la teora de Reissner-Mindlin para
placas gruesas. A continuacin se introduce el peculiar elemento finito combinado que
se ha escogido para la realizacin del programa; el elemento DKT.
Por lo tanto, en segundo lugar, resulta una herramienta idnea para todo aqul
que quiera usarla para trastear o crear sus propios experimentos e investigaciones, como
se ha estado haciendo en la comunidad caminsMakers de la Universitat Politcnica de
Catalunya, con la cual he estado trabajando paralelamente durante la realizacin de esta
tesina. En general, cualquier usuario que requiera una herramienta de este tipo
fcilmente adaptable y reprogramable a sus necesidades, encontrar gran utilidad en este
programa.
K a f (4.2)
dA (4.3)
A
Este trmino viene definido por todos los elementos que forman la malla, de
forma que todos ellos deben cumplir las ecuaciones de equilibrio del problema. Por ello,
se debe plantear para cada elemento la discretizacin del campo de desplazamientos,
deformaciones y tensiones.
u( x, y) N ( x, y)ae (4.4)
N N1 Ni Nn
N ( x, y ) 0 (4.5)
Ni i
0 Ni ( x, y )
Ni ( x j , y j ) 1 si i j
Ni ( x j , y j ) 1 si i j (4.6)
N i ( x, y ) 1
4.6. APROXIMACIN DEL CAMPO DE DEFORMACIONES
La expresin discretizada del vector de deformaciones se obtiene como
aplicacin directa de la definicin de deformaciones en elasticidad bidimensional.
Diremos que:
Lu
LNa e (4.7)
Ba e
x 0
B LN 0 N1 0 Ni 0 Nn 0
y 0 N n
(4.8)
N1 0 Ni 0
y x
D DBa (4.9)
dA dA
e e
(4.10)
A e A e
k11 k1n
K
e
donde kij e BiT DB j tdA (4.11)
kn1 knn Ae
Este trmino engloba todas las acciones externas que actan sobre la estructura:
cargas de volumen, superficiales y puntuales.
ubdA f g e N T bdA
e
(4.13)
A A
utdS f p e N T tds
e
(4.14)
s s
Habitualmente, las cargas puntuales se aplican directamente sobre los nodos del
elemento, as que simplemente se aade el vector de fuerzas al nodo correspondiente.
1) Los puntos del plano medio cumplen u v 0 , es decir, los puntos del plano
medio se mueven solamente en vertical.
2) todos los puntos contenidos en una normal al plano medio tienen el mismo
desplazamiento vertical.
Figura 5.1 Definicin geomtrica de una placa y convenio de signos. Deformacin del
plano medio [5]
Por lo tanto, el vector de desplazamientos es (5.1) y, segn la hiptesis 4 y como
se muestra en la Figura 5.1, se tiene (5.2).
T
u w, x , y (5.1)
w w
x y y (5.2)
x y
u 2w v 2w
x z 2 ; y z 2 ; z 0
x x y y
(5.3)
u v 2w w u w v
xy 2 z ; xz 0; yz 0
y x xy x z y z
z 2w
x 2
x
y z w2
2
(5.4)
y
xy 2 z 2 w
xy
T
x , y , xy (5.5)
D (5.6)
1 0
E
D 1 0 (5.7)
1 2 1
0 0 2
b D bb (5.8)
1 0
Et 3
D b 1 0
(5.9)
12 1 2 1
0 0 2
2w
x 2
w2
2
(5.10)
y
2 2 w
xy
t3
Db D y zb (5.11)
12
4) Los puntos que antes de la deformacin estaban sobre la normal al plano medio
de la placa, permanecen al deformarse sobre una misma recta, sin que sta tenga
que ser necesariamente ortogonal a la deformada del plano medio (Figura 6.1).
u ( x, y, z ) z x ( x, y )
v( x, y, z ) z y ( x, y ) (6.1)
u ( x, y, z ) w( x, y )
T
u w, x , y (6.2)
w
x x
x
(6.3)
w
y y
y
u v y
x z x ; y z ; z 0
x x y y
(6.4)
u v y
xy z x ; xz x ; yz y
y x y x
Se puede definir ahora el vector de tensiones no nulas segn (6.5), como una
unin del vector de tensiones debidas a efectos de flexin (bending) y cortante
transversal. Anlogamente, se puede definir el vector de deformaciones asociado al de
tensiones de (6.4) segn (6.6).
x
y
b
xy
(6.5)
c
xz
yz
z xx
x y
z y
y
x y b
xy
z y x (6.6)
c
xz w
yz x
x
w
y y
Db 0 f
b
D (6.7)
c 0 D 'c c
Donde las matrices D son las matrices constitutivas de flexin y cortante, que en
el caso de elasticidad istropa se escriben como:
1 0
E
Db 1 0 (6.8)
1 2 1
0 0 2
E 1 0
D 'c
2(1 ) 0 1
(6.9)
E 1 0
c c Dc c
2(1 ) 0 1
(6.10)
Es normal tomar 5 6 .
D b 0 b
b D (6.11)
c
0 D c c
t3
D b Db y D c tDc
12 (6.12)
b zb y c c
6 6
x Ni xi , y Ni yi (7.1)
i 1 i 1
3) Se impone una variacin lineal del giro normal n a lo largo de los lados segn
(7.2), donde k=4,5,6 (punto intermedio de los lados) y ij=23,31,12
respectivamente.
1
nk (ni n j ) (7.2)
2
w x
x
( c )i 0 i 1, 2,3
w
(7.3)
y yi
w
sk 0 k 4,5, 6 (7.4)
s k
w 3 1 w 3 1 w
wi wi (7.5)
s k 2lij 4 s i 2lij 4 s j
- Las ecuaciones (7.3) y (7.4) proporcionan la relacin entre la flecha y los giros.
- La condicin de giro normal lineal (7.2) implica que los giros x , y varan
linealmente sobre los lados del elemento.
Utilizando (7.1) - (7.5) se pueden eliminar los giros en los nodos laterales y
obtener la interpolacin de los giros sobre el elemento, donde U es el vector de
desplazamientos en los nodos (7.8).
x H xT ( , ) U (7.6)
y H Ty ( , ) U (7.7)
T
U w1, x1 , y1 , w2 , x2 , y2 , w3 , x3 , y3 (7.8)
Las nuevas matrices de forma Hx y Hy vienen dadas por (7.9) y (7.10), y pueden
consultarse en [11].
1.5(a 6 N 6 a5 N5 )
b N b N
5 5 6 6
N1 c5 N5 c6 N 6
1.5(a 4 N 4 a6 N 6 )
H x ( , ) b6 N 6 b4 N 4 (7.9)
N 2 c6 N 6 c4 N 4
1.5(a N a N )
5 5 4 4
b4 N 4 b5 N5
N3 c4 N 4 c5 N5
1.5(d 6 N 6 d5 N5 )
N e N e N
1 5 5 6 6
b5 N5 b6 N 6
1.5(d 4 N 4 d6 N 6 )
H y ( , ) N 2 e6 N 6 e4 N 4 (7.10)
b6 N 6 b4 N 4
1.5(d N d N )
5 5 4 4
N3 e4 N 4 e5 N5
b4 N 4 b5 N5
ak xij / lij 2
bk 34 xij yij / lij 2
N1 2(1 )( 12 )
N 2 (2 1)
N3 (2 1)
(7.12)
N 4 4
N5 4 (1 )
N 6 4 (1 )
P6 (1 2 ) ( P5 P6 )
q6 (1 2 ) (q5 q6 )
4 6( ) r6 (1 2 ) ( r5 r6 )
P6 (1 2 ) ( P4 P6 )
H x, ( , ) q6 (1 2 ) (q6 q4 ) (7.14)
2 6 r6 (1 2 ) (r4 r6 )
( P5 P4 )
(q 4 q5 )
(r5 r4 )
P5 (1 2 ) ( P6 P5 )
q5(1 2 ) (q5 q6 )
4 6( ) r5 (1 2 ) (r5 r6 )
( P6 P4 )
H x, ( , ) (q 4 q6 ) (7.15)
(r6 r4 )
P5 (1 2 ) ( P4 P5 )
q5 (1 2 ) (q4 q5 )
2 6 r5 (1 2 ) (r4 r5 )
t6 (1 2 ) (t 5 t6 )
1 r (1 2 ) (r r )
6 5 6
q6 (1 2 ) (q5 q6 )
t6 (1 2 ) (t 4 t6 )
H y, ( , ) 1 r6 (1 2 ) (r4 r6 ) (7.16)
q6 (1 2 ) (q4 q6 )
(t 4 t5 )
(r4 r5 )
(q 4 q5 )
t5 (1 2 ) (t6 t5 )
1 r (1 2 ) ( r r )
5 5 6
q5 (1 2 ) (q5 q6 )
(t4 t6 )
H y, ( , ) (r4 r6 ) (7.17)
(q4 q6 )
t (1 2 ) (t t )
5 4 5
1 r5 (1 2 ) (r4 r5 )
q5 (1 2 ) (q4 q5 )
Una vez hallada la matriz B del elemento, puede calcularse la matriz de rigidez
del mismo como (7.19). El clculo de la matriz puede hacerse con gran precisin usando
una cuadratura de Gauss de 3 puntos [14]. Estos tres puntos coinciden con las
coordenadas medias de cada lado segn la parametrizacin ( , ) . Es decir, los puntos
son {0,1/2}, {1/2,1/2}, {1/2,0} y los pesos son, respectivamente {1/3, 1/3, 1/3}. Se
calcula la matriz de rigidez segn la expresin (7.20). En 1982 Batoz calcul, sin
embargo, una forma explcita de la matriz de rigidez [12]. De esta forma se obtiene un
resultado exacto adems de reducirse el nmero total de clculos (menor coste
computacional). Es, por lo tanto, un mtodo de clculo de gran inters que se desarrolla
a continuacin.
1 1
K 2 A BT Db Bd d (7.19)
0 0
3 3
K 9 x9 2 A w j wi B i , j 9 x3 Db 3x3 B i , j 3x9d d
T
(7.20)
i 1 j 1
Una vez obtenida la matriz de rigidez del elemento pueden calcularse los
momentos y tensiones en los nodos del elemento como se muestra en (7.21). Conviene
recordar que la transformacin de coordenadas naturales a normales viene dada por las
expresiones en (7.22).
M ( x, y) Db B( x, y)U (7.21)
x x1 x21 x31
(7.22)
y y1 y21 y31
K A BT Db B dxdy (7.23)
1
B L (7.24)
2A
L1 1
Coordenadas de rea L2 (7.26)
L
3
1
K local T DL (7.27)
2A
1 0 E1 E2 0
Et 3 Not
Db 1 0 E2 0
E3 (7.28)
12 1 2 1 0 0 E4
0 0
2
E1 R E2 R 0
DL E2 R E3 R 0
1
(7.29)
24
0 0 E4 R
2 1 1
R 1 2 1 (7.30)
1 1 2
11 12 13
21 22 23 (7.31)
31 32 33
Desarrollo en Matlab de software de clculo de placas por MEF
E T E T R
1 11 2 21 E
2 11
T E3 21 T R E4 31
T
R
1
24
Q E1 12 T E2 22 T R E
2 12 E3 22
T T
R E4 32
T
R
T T
E1 13 E2 23 R E
2 13
T
E3 23 R
T
E4 33
T
R
(7.32)
1
K local Q (7.33)
2A
1 0 0
T 0 cos sin (7.34)
0 sin cos
Kij
global T Kij local T
T
(7.35)
My
1
M M x Db L U local (7.37)
M 2 A
xy
M local Tm M global
(7.39)
My
Mx x
T
sobre el nodo y tiene la forma fi Fz Mx My .
Para las cargas puntuales, el vector se suma directamente al vector resultante del
nodo donde estn aplicadas. En el caso de las cargas repartidas sobre el elemento,
suponiendo que se trata de carga constante, se debe transformar la carga en 3 cargas
equivalentes aplicadas sobre los nodos del elemento. Para el caso del elemento
triangular DKT y suponiendo carga repartida uniforme, el vector de cargas equivalentes
puede aproximarse de forma sencilla como:
A
T
fi fz mx my para i=1,2,3 (8.1)
3
A
fi q 0 0T para i=1,2,3 (8.2)
3
Sea un sistema con n nodos y m grados de libertad para cada nodo. En el caso de
esta tesina, cada nodo del elemento DKT tiene 3 grados de libertad (m=3). La matriz de
rigidez global es una matriz simtrica 3n x 3n y el vector de cargas nodales global tiene
dimensiones 3n x 1, y se puede dividir en n x n submatrices 3 x 3, como se ve en (8.3).
Kij
global es la submatriz de nodos ij segn la numeracin global de los mismos.
K11 K1,n
K
3nx3n
global
(8.3)
K n,1 K n,n
del elemento. As, Kij representa los nodos locales (1,2,3), que tendrn su
elemento
numeracin correspondiente en el sistema global (b,a,c). Entonces, se puede escribir
dicha matriz de rigidez segn la numeracin global de nodos, como se indica en (8.5):
b a c
b K11 K12 K13
K 9elemento
x9
a K K 22 K 23
(8.4)
21
c K31 K32 K33
Para ensamblar la matriz de rigidez global, debemos aadir cada una de las
submatrices de todos los elementos en la posicin correspondiente de la matriz de
rigidez global segn la numeracin global de los nodos. As, siguiendo la notacin de
(8.5), se tiene, unvocamente para cada una de las submatrices de todos los elementos:
K11 K1,n
K 3global
nx3n
Kij 3elemento
x3
(8.6)
K n,1 K n,n
Se procede de forma anloga para el ensamblaje del vector de fuerzas nodales. Se tiene,
para cada nodo, un vector de fuerzas equivalente de la forma:
Fz
f 3elemento
x1
M x para i=1,...,n (8.7)
M y
Sea f 3global
nx1
el vector de fuerzas nodales, que tiene 3 componentes para cada
nodo, siendo as un vector de longitud total 3n. Si dividimos el vector global en n
subvectores de 3 componentes, obtenemos (8.8). Segn la numeracin global de nodos,
se aade cada vector de cargas equivalente de los nodos al vector de cargas global en su
posicin correspondiente, tal y como se muestra en (8.9).
f1
f
3nx1
global
(8.8)
f n
f1
f global f i,elemento
3nx1 3 x1
(8.9)
fn
1) Borde empotrado: w x y 0
a. Condicin fuerte w s 0
b. Condicin dbil w 0
3) Apoyo puntual: wi 0
K 3global
nx3n
U 3global
nx1
f global
3nx1
(8.10)
Siendo:
w1
x1
y1
U 3global
nx1
(8.11)
wn
x
n
y
n
w w w w
1 2 3
x ( x, y ) L1 ( x, y ) x1 L2 ( x, y ) x2 L3 ( x, y ) x3 (8.12)
y y1 y2 y3
M ( x, y) Db B( x, y) U elemento (8.13)
La tercera parte es la interfaz grfica de usuario. Esta parte sirve de puente entre
el usuario y el programa de clculo, y permite de forma sencilla visual crear y modificar
cualquier aspecto de la placa, as como controlar la ejecucin del programa y visualizar
los resultados. Para la creacin de la interfaz se ha partido de la magnfica interfaz
creada por Sergio Guerrero Miralles como parte de su Trabajo de Final de Carrera [19].
Se ha partido de la interfaz de ese programa y se ha reprogramado para cumplir los
requisitos del programa que se desarrolla en esta tesina. Para ms detalles sobre la
interfaz, se recomienda consultar la gua rpida de uso de la pgina 79. Sobre todo, se
recomienda tambin consultar el cdigo fuente, para hallar todas las explicaciones sobre
los detalles de la implementacin de todo el programa.
Usuario
Interfaz grfica
Mdulo de clculo
Mallador
La barra superior del programa est compuesta por dos botones: Archivo y
Ayuda, como es habitual en la mayora de programas. Ofrecen control sobre la
ejecucin del programa (Nuevo / Salir) y ayuda al usuario, as como informacin sobre
el propio programa.
1) Nodo: los puntos o nodos del dibujo. Se crean directamente haciendo clic sobre
el lienzo
2) Lnea de contorno: son las lneas que actan como lneas de contorno o agujeros
en la placa. Se crean haciendo clic primero sobre un nodo y luego sobre otro
4) Lnea de rea de carga repartida: son las lneas que actan como lneas que
encierran un rea donde se dispone una carga repartida.
5) Cargar rea: carga un rea delimitada por las lneas de rea de carga. Para cargar
un rea, hay que hacer clic sobre una de las lneas que conforman el contorno del
rea.
Los 3 ltimos botones permiten acercar o alejar la vista del dibujo o moverlo
segn sea conveniente.
Figura 9.4 Ejemplo de dibujo de una placa rectangular con una carga vertical
repartida y un momento puntual
El botn Reset, en la parte superior del panel, elimina todos los datos y reinicia
la placa, para empezar de nuevo.
Interacta con
Clase MainCalculo
MainGrafico.m
Interfaz
Muestra por pantalla
Llama
Funciones auxiliares
dlg y dibuix
acceso a todos los aspectos de inters del programa: elementos, nodos, propiedades
materiales, resultado del sistema de ecuaciones, matrices ensambladas, etc.
Interacta con
MainGrafico
(interfaz)
Clase MainCalculo
Mesh2D (mallador)
Llama a
Clase Contorno
Clase AreaCargada
Clase CargaPunt
Almacena objetos
Clase DKTElem
Clase Nodo
Funciones auxiliares
Llama (ensamblaje y sistema de
ecuaciones)
Propiedad Descripcin
vPoisson, EYoung,
Propiedades materiales y espesor de la placa
densidad, thickness
Nmero de grados de libertad (Degrees of Freedom) de
DOF
los nodos
numNodosElemento Nmero de nodos del elemento finito usado
Lista de los objetos de carga repartida de la clase
AreasCargadas
AreaCargada
Lista de los objetos de carga puntual de la clase
CargasPunt
CargaPunt
Lista de contornos y agujeros de la placa, objetos de la
Contorno
clase Contorno
nodos Lista de nodos de la clase Nodo
elementos Lista de elementos de la clase DKTElem
Kensamblada Matriz global de rigidez
Fensamblada Vector global de cargas
DespEnsamblada Vector global de desplazamientos
Matriz de rigidez global reducida (eliminando condiciones
Ksistema
de contorno)
Vector global de cargas reducido (eliminando condiciones
Fsistema
de contorno)
Mtodo Descripcin
MainCalculo() Crea el objeto y calcula las propiedades iniciales
reset() Elimina todos los datos y empieza de nuevo
setMaterial() Almacena las propiedades materiales
addContorno() Aade un contorno a la placa, clase Contorno
addCargaPunt() Aade una carga puntual, clase CargaPunt
addAreaCargada() Aade una carga repartida, clase AreaCargada
Aade el peso propio como una carga repartida sobre toda
addPesoPropio()
la placa
addCondCont() Aade condiciones de contorno sobre un nodo
Obtiene la malla llamando al programa Mesh2D, crea
calcularMalla() todos los objetos DKTElem y Nodo. Calcula la matriz de
rigidez global y el vector global de cargas del sistema
Calcula las matrices reducidas segn las condiciones de
calcularDesplazamientos() contorno y resuelve el sistema lineal de ecuaciones para
obtener los desplazamientos
Propiedad Descripcin
nodos Nodos que forman el contorno
meshNodes, meshNum y
Datos para el programa mallador
meshEdges
Mtodo Descripcin
Contorno() Crea el objeto y calcula las propiedades iniciales
La clase AreaCargada almacena los datos del contorno del rea donde se aplica
una carga repartida, as como el valor de la carga. Tambin transforma los datos
geomtricos en un formato adecuado para ser enviado al programa mallador Mesh2D.
Los mtodos y propiedades ms relevantes de la clase se muestran en la Tabla 9.5 y la
Tabla 9.6.
Propiedad Descripcin
nodos Nodos que forman el rea de carga
meshNodes, meshNum y Datos para el programa mallador
meshEdges
carga Valor de la carga repartida
elemPlaca Lista de elementos cargados
Mtodo Descripcin
AreaCargada() Crea el objeto y calcula las propiedades iniciales
Recorre los elementos de la placa y aade la carga a los
setElemCargaUnif()
que se encuentran en el rea de aplicacin
Propiedad Descripcin
nodo Punto de aplicacin de la carga
meshNodes, meshNum,
Datos para el programa mallador
meshEdges y pointNodes
carga Valor de la carga puntual
NodoPlaca Nodo donde se asigna la carga
Mtodo Descripcin
CargaPunt() Crea el objeto y calcula las propiedades iniciales
Recorre la lista de nodos y aade la carga al nodo
setNodoCargaPunt()
correspondiente
Propiedad Descripcin
v, E, th Propiedades materiales y espesor
D Matriz de elasticidad
ID Nmero de identificacin del elemento
cargaUnif Carga total repartida sobre el elemento
cargas Vector de cargas equivalentes sobre los nodos
x, y Vectores con las coordenadas de los nodos
nodos Lista de objetos tipo Nodo que forman parte del elemento
K Matriz de rigidez del elemento
Mtodo Descripcin
DKTElem() Crea el objeto y calcula las propiedades iniciales
calcVectorCargas() Calcula el vector de cargas equivalente sobre los nodos
addCargaUnif() Aade una carga repartida al total
Determina la aproximacin del desplazamiento de un
obtenerDesplazamiento()
punto cualquiera del elemento
Determina la aproximacin de los momentos de un punto
obtenerMomentos()
cualquiera del elemento
calcKStiffnessMatrix() Obtiene la matriz de rigidez
B() Evala la matriz B en un punto
HxDerXi(), HyDerXi(), Evala la derivada de las funciones de forma del elemento
HxDerN(), HyDerN() DKT en un punto
La clase Nodo almacena y calcula todo lo relativo a los nodos. Se almacenan los
datos geomtricos del nodo y su identificacin global. En ella se guardan las cargas
aplicadas sobre el nodo, ya sean puntuales o las resultantes equivalentes de una carga
repartida sobre el elemento. Se determinan tambin las condiciones de contorno del
nodo as como sus desplazamientos. Tambin se conecta cada nodo con todos aquellos
elementos de los que forma parte. Los mtodos y propiedades ms relevantes de la clase
se muestran en la Tabla 9.11 y la Tabla 9.12.
Propiedad Descripcin
x, y Coordenadas del nodo
ID Nmero de identificacin del nodo
elems Lista de los elementos a los que pertenece el nodo
cc Condiciones de contorno sobre los 3 grados de libertad
desp Desplazamientos del nodo
Vector de carga total aplicada sobre el nodo: puntuales y
vectCarga
repartidas equivalentes
Mtodo Descripcin
Nodo() Crea el objeto y calcula las propiedades iniciales
setDesp() Almacena el desplazamiento del nodo
addCC() Determina las condiciones de contorno
calcVectorCarga() Calcula el vector de carga total del nodo
Los tests escogidos son: el patch test presentado en [12] para la formulacin
explcita del elemento DKT, El patch test que asemeja la placa a una viga cargada en su
extremo con un momento y empotrada en el otro y finalmente un test del cual se conoce
la solucin analtica, una placa cuadrada apoyada en todos sus lados y cargada
puntualmente en el centro.
Como puede observarse, el patch test da correcto salvo por el momento X, que
tiene el mdulo correcto pero cambiado de signo. Esto se debe a la diferencia de criterio
de signos en los momentos entre esta tesina y el usado en la referencia original del patch
test. A continuacin se presentan los resultados tal y como se muestran en el programa
en su visualizacin tridimensional.
Figura 10.6 Leyes de esfuerzos de una viga en voladizo con un momento en el extremo
Se puede comprobar que los resultados son aproximados, pero el error relativo
es elevado. Las cargas puntuales tienen un comportamiento ms inestable que las
repartidas.
Et 3
D (10.1)
12(1 2 )
qa 4
wmax 0.001265 (10.2)
D
Nmero de
Valor calculado Valor terico Error relativo
elementos
4 -3.992e-4 m -1.218e-4 m 227,75 %
8 -9.981e-5 m -1.218e-4 m 18,06 %
32 -1.303e-4 m -1.218e-4 m 6,98 %
128 -1.248e-4 m -1.218e-4 m 2,46 %
512 -1.226e-4 m -1.218e-4 m 0,66 %
2048 -1.221e-4 m -1.218e-4 m 0,25 %
Tabla 10.5 Error relativo del Momento X en el centro segn el nmero de elementos
Nmero de
Valor calculado Valor terico Error relativo
elementos
4 -12.935 Nm -4.581 Nm 182,36 %
8 -6.468 Nm -4.581 Nm 41,19 %
32 -5.479 Nm -4.581 Nm 19,60 %
128 -4.835 Nm -4.581 Nm 5,54 %
512 -4.643 Nm -4.581 Nm 1,35 %
2048 -4,597 Nm -4.581 Nm 0,35 %
Tabla 10.6 Error relativo del Momento Y en el centro segn el nmero de elementos
Nmero de
Valor calculado Valor terico Error relativo
elementos
4 -12.935 Nm -4.581 Nm 182,36 %
8 -6.468 Nm -4.581 Nm 41,19 %
32 -5.479 Nm -4.581 Nm 19,60 %
128 -4.835 Nm -4.581 Nm 5,54 %
512 -4.643 Nm -4.581 Nm 1,35 %
2048 -4,597 Nm -4.581 Nm 0,35 %
35,00
30,00
Error relativo (%)
Desplazamiento
25,00
Momento X,Y
20,00
15,00
10,00
5,00
0,00
4 16 64 256 1024 4096
Nmero de elementos
qa 4
wmax 0.004062 (10.4)
D
Nmero de
Valor calculado Valor terico Error relativo
elementos
4 -1.119e-3 m -3.911e-4 m 71,39 %
8 -2.252e-4 m -3.911e-4 m 42,42 %
32 -3.682e-4 m -3.911e-4 m 5,86 %
128 -3.856e-4 m -3.911e-4 m 1,41 %
512 -3.900e-4 m -3.911e-4 m 0,28 %
2048 -3.908e-4 m -3.911e-4 m 0,08 %
Nmero de
Valor calculado Valor terico Error relativo
elementos
4 -21.032 Nm -9.578 Nm 119,59 %
8 -9.176 Nm -9.578 Nm 4,20 %
32 -9.980 Nm -9.578 Nm 4,20 %
128 -9.668 Nm -9.578 Nm 0,94 %
512 -9.599 Nm -9.578 Nm 0,22 %
Tabla 10.9 Error relativo del Momento Y en el centro segn el nmero de elementos
Nmero de
Valor calculado Valor terico Error relativo
elementos
4 -21.032 Nm -9.578 Nm 119,59 %
8 -9.176 Nm -9.578 Nm 4,20 %
32 -9.980 Nm -9.578 Nm 4,20 %
128 -9.668 Nm -9.578 Nm 0,94 %
512 -9.599 Nm -9.578 Nm 0,22 %
2048 -9.583 Nm -9.578 Nm 0,05 %
30,00 Desplazamiento
25,00 Momento X,Y
20,00
15,00
10,00
5,00
0,00
4 16 64 256 1024 4096
Nmero de elementos
Finalmente, para validar tanto el elemento finito usado DKT como la correcta
implementacin de todas las partes en el programa y su correcto funcionamiento, se ha
sometido al programa a una serie de tests que se han resuelto de forma satisfactoria.
Aunque en algunos casos el error en los resultados es considerable, se ha comprobado
tambin que la solucin converge cuando se crea una malla ms fina con un nmero
mayor de elementos, obteniendo errores por debajo del 1% con mallas suficientemente
finas.
11.2. CONCLUSIONES
Se ha creado un programa totalmente funcional con interfaz grfica de usuario
que calcula placas planas con cargas puntuales o repartidas y con posibilidad de tener
agujeros. El programa se ha ideado bajo una licencia de cdigo libre, lo que implica que
est disponible para todo aqul que lo necesite sin restricciones. El usuario puede leer,
modificar, adaptar o ampliar todo aquello que considere. Esto permite que el desarrollo
no termine donde termina esta tesina, sino que sienta las bases para iteraciones
posteriores que puedan mejorarlo en varios aspectos.
aqul que realice investigacin y necesite un programa menos rgido y hermtico que
las soluciones comerciales ms populares. El paradigma de programacin orientada a
objetos aplicado en el desarrollo permite la introduccin de cambios sin realizar apenas
cambios externos.
13. REFERENCIAS
[21][11][4][22][23][6][8][14][5][7][24][25][26][27][28][17][12][13][10][29]
[2] G. Strang and G. Fix, An Analysis on The Finite Element Method. Prentice Hall,
1973.
[5] R. lvarez Cabal, J. J. Benito Muoz, F. Urea Prieto, E. Salete Casino, and E.
Aranda Ortega, Teora general del MEF. .
[6] J. T. Celigeta, Mtodo de los Elementos Finitos para Anlisis Estructural. San
Sebastin, 2008, p. 280.
[7] M. Havbro Faber, The Finite Element Method for the Analysis of Linear
Systems, Swiss Federal Institute of Technology, Zurich, Switzerland.
[11] J.-L. Batoz, K.-J. Bathe, and L.-W. Ho, A Study of Three-node Triangluar Plate
Bending Elements, Int. J. Numer. Methods Eng., vol. 15, no. August 1979, pp.
17711812, 1980.
[20] S. Timoshenko, Theory of Plates and Shells, vol. 148. McGraw-Hill, 1941, pp.
606606.
[22] P. Bhothikhun and P. Dechaumphai, Adaptive DKT Finite Element for Plate
Bending Analysis of Built-up Structures, Int. J. Mech. Mechatronics Eng.
IJMME-IJENS, vol. 14, no. 01, pp. 1220, 2014.
[24] T. de Soza, Shell elements: modelizations DKT, DST, DKTG and Q4g, 2013.
[25] L. Sheng, Finite Element Analysis and Genetic Algorithm Optimization Design
for the Actuator Placement on a Large Adaptive Structure, Virginia Polytechnic
Institute and State University, 2004.
[27] P. Mohan, Development and Applications of a Flat Triangular Element for Thin
Laminated Shells, Virginia Polytechnic Insitute and State University, 1997.
[28] I. N. Serpik, Development of a new finite element for plate and shell analysis by
application of generalized approach to patch test, Finite Elem. Anal. Des., vol.
46, no. 11, pp. 10171030, 2010.
La barra superior del programa est compuesta por dos botones: Archivo y
Ayuda, como es habitual en la mayora de programas. Ofrecen control sobre la
ejecucin del programa (Nuevo / Salir) y ayuda al usuario, as como informacin sobre
el propio programa.
7) Nodo: los puntos o nodos del dibujo. Se crean directamente haciendo clic sobre
el lienzo
8) Lnea de contorno: son las lneas que actan como lneas de contorno o agujeros
en la placa. Se crean haciendo clic primero sobre un nodo y luego sobre otro
10) Lnea de rea de carga repartida: son las lneas que actan como lneas que
encierran un rea donde se dispone una carga repartida.
11) Cargar rea: carga un rea delimitada por las lneas de rea de carga. Para cargar
un rea, hay que hacer clic sobre una de las lneas que conforman el contorno del
rea.
Los 3 ltimos botones permiten acercar o alejar la vista del dibujo o moverlo
segn sea conveniente.
Figura 14.3 Ejemplo de dibujo de una placa rectangular con una carga vertical
repartida y un momento puntual
contorno de la placa y determinar las propiedades del material para crear la malla sobre
el elemento. Una vez creada la malla, el botn Condiciones de Contorno enva el estado
actual de las condiciones de contorno a MainCalculo. Finalmente, el botn Calcular
Desplazamientos calcula los desplazamientos del sistema y devuelve los resultados a la
interfaz.
El botn Reset, en la parte superior del panel, elimina todos los datos y reinicia
la placa, para empezar de nuevo.
El primer paso es crear nodos sobre el espacio blanco. Para crearlos, se debe
seleccionar el botn Crear de la barra de herramientas as como el botn Nodo, y luego
pulsar en un punto cualquiera del grfico.
Para crear una carga puntual, se debe seleccionar el botn Crear y el botn Carga
Puntual de la barra de herramientas. Luego se hace clic sobre un nodo creado
previamente para asignar una carga puntual en ese punto. Una vez creadas todas las
cargas puntuales requeridas, hay que hacer clic en el botn Cargas Puntuales, del panel
lateral Introducir Clculos. De esta manera, se trasladan los datos de las cargas
puntuales al programa de clculo.
Para determinar las propiedades del material de la placa, hay que pulsar el botn
Material del panel lateral Introducir Clculos. Una vez introducidos los datos, estos son
enviados al programa de clculo.
Para reiniciar la placa y empezar de nuevo, hay que hacer clic en el botn Reset
del botn lateral Introducir Clculos, o bien usar el men Archivo / Nuevo.
con el rectngulo de seleccin que aparecer. Una vez se haya hecho clic en un segundo
punto, se puede determinar el tipo de condicin de contorno que afectar a todos los
nodos del interior del rectngulo de seleccin.
Finalmente, hay que hacer clic en el botn Condiciones de Contorno del panel
lateral Introducir Clculos para introducir los datos de las condiciones de contorno en el
programa de clculo.
Una vez calculados, usando las diferentes opciones de visualizacin del panel
lateral inferior Mostrar se dibujarn los distintos desplazamientos sobre cada nodo en el
grfico. Tambin se puede activar la visualizacin 3D con el botn del panel Vista, 3D
Color.
Para obtener informacin sobre un punto cualquiera de la placa, hay que hacer
clic en el botn Desplazamientos Punto del panel lateral inferior Mostrar. Luego hay
que introducir las coordenadas correspondientes del punto y se mostrar el resultado
aproximado de los desplazamientos y momentos del punto.
https://github.com/jmorato/CalculoPlacasMEF