Documentos de Académico
Documentos de Profesional
Documentos de Cultura
45 - Articulo13 MATLAB
45 - Articulo13 MATLAB
The finite element method (FEM) is nowadays the most widely used
numerical method in science and engineering applications. However, the
development of effective ways to teach it remains a challenge for teachers
worldwide. In the present work, the use of the mathematical software
MATLAB is proposed for the development of teaching-oriented codes. The
Abstract examples presented reveal the suitability of the suggested approach to
close the gap between the mathematical theory of the method and the
ease of use of the powerful commercial programs.
elemento y en cada columna se especifican los nodos que forman parte del
mismo (línea 23, Apéndice 1).
𝐸𝐸𝐸𝐸 (𝑒𝑒) 1 −1
𝐾𝐾 (𝑒𝑒) = �𝐿𝐿𝐿𝐿𝐿𝐿� � � (1)
−1 1
Las matrices de rigidez de cada elemento, que han sido calculadas según
(1) y que tienen un tamaño 2x2, se distribuyen para formar la matriz de rigidez
global de acuerdo con el vector GDL_elemento. El proceso de ensamblaje se
lleva a cabo mediante la siguiente línea de código: (líneas 80-81, Apéndice 1)
Rigidez(GDL_elemento,GDL_elemento)=...
Una realización satisfactoria del ejemplo por parte del alumno le ayudará a
comprender la estructura básica del método y esto le permitirá desarrollar el
código para dar respuesta a problemas más complicados. En el segundo
enfoque de este problema se introduce otro tipo de elemento finito a la par que
se abordan dos aspectos claves del método que no se han considerado en el
primer caso: la formulación isoparamétrica y la integración numérica de Gauss-
Legendre.
aislado, cualquier fuerza T que actúe sobre un contorno Γ se puede expresar tal
que:
0.5 ∙ 𝜉𝜉 ∙ (𝜉𝜉 − 1)
𝑇𝑇 𝑒𝑒 𝑇𝑇 +1
𝐹𝐹 = ∫𝛤𝛤𝑒𝑒 𝑁𝑁 ∙ 𝑇𝑇 ∙ 𝑑𝑑𝛤𝛤 = ∫𝐿𝐿 𝑁𝑁 ∙ 𝑠𝑠 ∙ 𝑑𝑑𝑑𝑑 = ∫−1 � 1 − 𝜉𝜉 2 � ∙ 𝑠𝑠 ∙ |𝐽𝐽|𝑑𝑑𝑑𝑑 (3)
0.5 ∙ 𝜉𝜉 ∙ (𝜉𝜉 + 1)
1
𝐾𝐾 (𝑒𝑒) = ∫𝛺𝛺𝑒𝑒 𝐵𝐵 𝑇𝑇 ∙ 𝐷𝐷 ∙ 𝐵𝐵 ∙ 𝑑𝑑𝛺𝛺 𝑒𝑒 = 𝐸𝐸𝐸𝐸 ∫𝐿𝐿 𝐵𝐵 𝑇𝑇 ∙ 𝐵𝐵 ∙ 𝑑𝑑𝑑𝑑 = 𝐸𝐸𝐸𝐸 ∫−1 𝐵𝐵 𝑇𝑇 ∙ 𝐵𝐵 ∙ |𝐽𝐽|𝑑𝑑𝑑𝑑 (6)
𝑑𝑑𝑁𝑁 𝑑𝑑𝑁𝑁2 𝑑𝑑𝑁𝑁3 𝑑𝑑𝑁𝑁 𝑑𝑑𝑁𝑁2 𝑑𝑑𝑁𝑁3 𝑑𝑑𝑑𝑑 𝑑𝑑𝑁𝑁 𝑑𝑑𝑁𝑁2 𝑑𝑑𝑁𝑁3 1
𝐵𝐵 = � 𝑑𝑑𝑑𝑑1 , , � = � 𝑑𝑑𝑑𝑑1 , , � ∙ 𝑑𝑑𝑑𝑑 = � 𝑑𝑑𝑑𝑑1 , , � ∙ |𝐽𝐽| (8)
𝑑𝑑𝑑𝑑 𝑑𝑑𝑑𝑑 𝑑𝑑𝑑𝑑 𝑑𝑑𝑑𝑑 𝑑𝑑𝑑𝑑 𝑑𝑑𝑑𝑑
𝜉𝜉 − 0.5
(𝑒𝑒) 1 𝐿𝐿 1
𝐾𝐾 = 𝐸𝐸𝐸𝐸 ∫−1 𝐵𝐵 𝑇𝑇 ∙ 𝐵𝐵 ∙ |𝐽𝐽|𝑑𝑑𝑑𝑑 = 𝐸𝐸𝐸𝐸 ∙ 2
∫−1
� −2𝜉𝜉 � ∙ [𝜉𝜉 − 0.5 −2𝜉𝜉 𝜉𝜉 + 0.5]𝑑𝑑𝑑𝑑 (9)
𝜉𝜉 + 0.5
𝒏𝒏 ±𝝃𝝃𝒊𝒊 𝑾𝑾𝒊𝒊
1 0 2
2
1� 1
√3
5�
9
�3�5
3
8�
0 9
u=Desplazamientos(1)*Fforma(1)+Desplazamientos(2)*Fforma(2)+...
Desplazamientos(3)*Fforma(3);
4. Conclusiones
1 %.....................................................................
2
3 % MATLAB: Una herramienta para la didáctica del método de los
4 % elementos finitos.
5 % Ejemplo1
6
7 % Se resetea la memoria del programa y se limpia el espacio de trabajo
8
9 clear all
10
11 % Se definen las propiedades del material:
12 % E: módulo elástico.
13 % A: área de la sección transversal.
14
15 E=5000000;
16 A=0.5;
17
18 % Pre-procesador: Se discretiza el problema y se imponen las
19 % condiciones de contorno.
20
21 % Se asignan los nodos correspondientes a cada elemento:
22
23 Nodos_elemento=[1 2;2 3;3 4;4 5];
24
25 % Se define el número de elementos:
26
27 Numero_elementos=size(Nodos_elemento,1);
28
29 % Se posicionan los nodos en el espacio:
30
31 Coord_nodos=[0 1 2 3 4];
32
33 % Se define el número de nodos:
34
35 Numero_nodos=size(Coord_nodos,2);
36
37 % Se definen e inicializan el vector de desplazamientos, el vector de
38 % fuerzas y la matriz de rigidez:
39
40 Desplazamientos=zeros(Numero_nodos,1);
41 Fuerza=zeros(Numero_nodos,1);
42 Rigidez=zeros(Numero_nodos);
43
44 % Se introducen las condiciones de contorno.
45
46 % De acuerdo a las condiciones del problema, se restringen los grados
1 %.....................................................................
2
3 % MATLAB: Una herramienta para la didáctica del método de los
4 % elementos finitos.
5 % Ejemplo2
6
7 % Se resetea la memoria del programa y se limpia el espacio de trabajo
8
9 clear all
10
11 % Se definen las propiedades del material:
12 % E: módulo elástico.
13 % A: área de la sección transversal.
14
15 E=5000000;
16 A=0.5;
17
18 % Pre-procesador: Se discretiza el problema y se imponen las
19 % condiciones de contorno.
20
21 % Se asignan los nodos correspondientes a cada elemento:
22
23 Nodos_elemento=[1 2 3];
24
25 % Se define el número de elementos:
26
27 Numero_elementos=size(Nodos_elemento,1);
28
29 % Se posicionan los nodos en el espacio:
30
31 Coord_nodos=[0 2 4];
32
33 % Se define el número de nodos:
34
35 Numero_nodos=size(Coord_nodos,2);
36
37 % Se definen e inicializan el vector de desplazamientos, el vector de
38 % fuerzas y la matriz de rigidez:
39
40 Desplazamientos=zeros(Numero_nodos,1);
41 Fuerza=zeros(Numero_nodos,1);
42 Rigidez=zeros(Numero_nodos);
43
44 % Se introducen las condiciones de contorno.
45
46 % De acuerdo a las condiciones del problema, se restringen los grados
47 % de libertad (GDL) necesarios, en este caso están restringidos los
48 % desplazamientos en el primer nodo.
49
50 GDL_prescritos=[1];
51
52 % Se designan los GDL libres (GDL_libres).
53
54 GDL_libres=setdiff([1:Numero_nodos]',[GDL_prescritos]);
55
56 % Se introduce la carga aplicada, formulando matricialmente el
57 % problema y haciendo uso de la transformación isoparamétrica.
58
59 % L es la longitud de la barra y s=1000 N/m es la carga distribuida
60 % del presente ejemplo.
61
62 s=1000;L=Coord_nodos(3)-Coord_nodos(1);
63
64 % Se realiza la transformación isoparamétrica por medio de la función
65 % TransIso
66
67 [Fforma,detJacobiano,invJacobiano,xi]=TransIso(Coord_nodos);
68
69 for j=1:Numero_nodos
70
71 Fuerza(j)=s*detJacobiano*int(Fforma(j),xi,-1,1);
72
73 end
74
75 % Procesador: Se calcula la matriz de rigidez, los desplazamientos en
76 % los nodos y las tensiones en cada elemento.
77
78 % Se calcula la matriz de rigidez (Rigidez), siendo GDL_elemento los
79 % grados de libertad de cada elemento.
80
81 for e=1:Numero_elementos
82
83 GDL_elemento=Nodos_elemento(e,:);
84
85 B(xi)=[diff(Fforma(1)),diff(Fforma(2)),diff(Fforma(3))]*invJacobiano;
86 R(xi)=B'*B;
87 [H]=IntGauss(R,xi);
88 EA(e)=E*A;
89 Rigidez(GDL_elemento,GDL_elemento)=...
90 Rigidez(GDL_elemento,GDL_elemento)+EA(e)*H*detJacobiano;
91
92 end
93
94 % Se calculan los desplazamientos:
95
96 Desp=Rigidez(GDL_libres,GDL_libres)\Fuerza(GDL_libres);
97 Desplazamientos=zeros(Numero_nodos,1);
98 Desplazamientos(GDL_libres)=Desp
99
100 % Se obtiene el campo de desplazamientos en el interior del elemento:
101
102 u=Desplazamientos(1)*Fforma(1)+Desplazamientos(2)*Fforma(2)+...
103 Desplazamientos(3)*Fforma(3);
104
105 % Se obtiene el campo tensional en el interior del elemento:
106
107 n=E*A*B*Desplazamientos;
108
109 % Postprocesador: se muestran los resultados obtenidos.
110 % En el presente trabajo se conoce la solución analítica, por lo que
111 % los resultados obtenidos mediante el MEF se comparan con la misma:
112
113 % Desplazamientos
114
115 % Se obtiene el campo de desplazamientos haciendo el cambio de
116 % variable al sistema cartesiano
117
118 syms x;
119 u=subs(u,xi,(2*(x-L/2)/L));
120
121 % Solución mediante el MEF
122
123 hold on
124 a=ezplot(u,[0,L]);
125 set(a,'LineWidth',1.5,'LineStyle','--','Color', [1 0 0]);
126 plot(Coord_nodos,Desplazamientos,'o','Color', [1 0 0]);
127 title('Ejemplo 2. Desplazamientos');
128
129 % Solución analítica
130
131 y=linspace(0,L,10);
132 u=(-s*y.^2/2+s*L*y)/(E*A);
133 plot(y,u,'LineWidth',1,'DisplayName','Analítica');
134 h=legend('MEF','MEF','Analítica',2);
135
136 % Tensiones
137
138 % Se obtiene el campo de tensiones haciendo el cambio de variable al
139 % sistema cartesiano
140
141 n=subs(n,xi,(2*(x-L/2)/L));
142
143 % Solución mediante el MEF
144
145 figure;
146 hold on;
147 b=ezplot(n,[0,L]);
148 set(b,'LineWidth',1.5,'LineStyle','--','Color', [1 0 0]);
149
150 % Solución analítica
151
152 x=linspace(0,L,100);
153 y=s*(L-x);
154 f2=plot(x,y,'LineWidth',1,'DisplayName','Analítica');
155 h=legend([b(end),f2],'MEF','Analítica');
156 title('Ejemplo 2. Tensiones');
157
158 % Fin Ejemplo
1 function [Fforma,detJacobiano,invJacobiano,xi]=TransIso(Coord_nodos)
2
3 % En esta función se lleva a cabo la transformación isoparamétrica
4
5 % Se define el vector de funciones de forma (Fforma), siendo z la
6 % coordenada natural correspondiente a la coordenada cartesiana x.
7
8 syms xi
9
10 Fforma=[0.5*xi*(xi-1);(1-xi)*(1+xi);0.5*xi*(1+xi)];
11
12 % Se calculan el determinante y el inverso del Jacobiano (detJacobiano):
13
14 detJacobiano = diff(Fforma(1))*Coord_nodos(1) + ...
15 diff(Fforma(2))*Coord_nodos(2) + diff(Fforma(3))*Coord_nodos(3);
16
17 invJacobiano=1/detJacobiano
18
www.fisem.org/web/union
Bibliografía
Alberty, J., Cartensen, C., Funken, S.A., & Klose, R. (2002). MATLAB
implementation of the finite element method in elasticity. Computing, 69, 239-263.
Backer, J.R., Capece, V.R., & Lee J.R. (2001). Integration of finite element
software in undergraduate engineering courses. ASEE Annual Conference
Proceedings, Session 1520.
Connell, H., Blyth, B., May, R., & Zorzan, C. (1999). Teaching the finite element
method using software. Proceedings of the Delta’99 Symposium on Undergraduate
Mathematics, 65-68.
Ferreira, A.J.M. (2009). MATLAB Codes for Finite Element Analysis. Solid
Mechanics and its Applications, Springer.
Howard, W.E., Musto, J.C., & Prantil, V. (2001). Finite element analysis in a
mechanics course sequence. ASEE Annual Conference Proceedings, Session 2793.
Jiang, Y., & Wang, C. (2008). On teaching finite element method in plasticity with
Mathematica. Computer Applications in Engineering Education, 16, 233-242.
Jolley, W.O., Rencis J.J., & Grandin H.T. (2003). A module for teaching
fundamentals of finite-element theory and practice using elementary mechanics of
materials. ASEE Annual Conference Proceedings, Session 3268.
Kwon, Y. W., & Bang H. (1996). Finite element method using MATLAB. CRC
Press, Boca Raton, FL.
Lissenden, C.J., Wagle, G.S., & Salamon, N.J. (2002). Applications of finite
element analysis for undergraduates. ASEE Annual Conference Proceedings,
Session 3568.
Número 45 - Marzo 2016 – Página 267
Título del artículo, negrita, Arial narrow 10
Inicial del nombre. Apellidos (Arial Narrow 9, negrita)
Logue, L.J., & Hall, K.A. (2001). Introducing finite element analysis in an MET
strength of materials course. ASEE Annual Conference Proceedings, Session 3248.
Martínez-Pañeda, E., & Betegón, C., (2015). Modeling damage and fracture
within strain- gradient plasticity. International Journal of Solids and Structures, 59,
208-215.
Martínez-Pañeda, E., & Niordson, C., (2015). On fracture in finite strain gradient
plasticity. International Journal of Plasticity, (in press)
Rahman, T., & Valdman, J. (2013). Fast MATLAB assembly of FEM matrices in
2D and 3D: Nodal elements. Applied Mathematics and Computation, 219 (13), 7151-
7158.
Teh, K., & Morgan, L. (2005). The application of Excel in teaching finite element
analysis to final year engineering students. Proceedings of the 2005 ASEE 4th Global
Colloquium on Engineering Education, paper 50.