Está en la página 1de 16

U.M.R.P.S.F.X.CH.

MAESTRIA EN INGENIERIA ESTRUCTURAL V. 7


MODULO: MÉTODO DE LOS ELEMENTOS FINITOS EJERCICIOS 1
NOMBRE: ING. LUIS ARIEL MARCA MATIAS AÑO 2021

DESARROLLO
Para el siguiente desarrollo del programa se procedió a realizar una codificación de cada proceso en MATLAB
usando 2 funciones y un archivo denominado MATFEM, en el cual se encuentra toda la documentación respectiva a
continuación de muestra la codificación del script:
U.M.R.P.S.F.X.CH.
MAESTRIA EN INGENIERIA ESTRUCTURAL V. 7
MODULO: MÉTODO DE LOS ELEMENTOS FINITOS EJERCICIOS 1
NOMBRE: ING. LUIS ARIEL MARCA MATIAS AÑO 2021

PROGRAMA MATFEM
En el siguiente código se muestra cada uno de los procesos para el cálculo:

%%PROGRAMA FINAL
%HECHO POR: ING LUIS MARCA MATIAS
%FECHA:04/06/2021

%INTRODUCCION DE DATOS En esta parte se añaden las propiedades del


%MODULO DE ELASTICIDAD material, como el módulo de elasticidad,
format short módulo de pisson, espesor
E=20*10^9;
%MODULO DE POISSON
v=0.25;
%ESPESOR
h=0.05;
%NUMERO DE MALLAS En esta parte se crea la malla en función del
n=8;
número de partes que se quiere dividir el
nn=(n*4)-2;
elemento en este caso 8
disp('NUMERO DE MALLAS:');
disp(n);
x=zeros(4,2,n);
%INTRODUCCION DE LAS COORDENADAS DE CADA PUNTO
P1=[0,0];
P2=[0.50,0]; En esta parte se añaden las coordenadas de
P3=[1.00,0]; los nodos
P4=[1.50,0];
P5=[2.00,0];

P6=[0,0.15];
P7=[0.50,0.15];
P8=[1.00,0.15];
P9=[1.50,0.15];
P10=[2.00,0.15];

P11=[0,0.30];
P12=[0.50,0.30];
P13=[1.00,0.30];
P14=[1.50,0.30];
P15=[2.00,0.30];

%FORMACION DE LA MALLA
x(:,:,1) =[P1;P2;P7;P6];
x(:,:,2) =[P2;P3;P8;P7]; En esta sección se describen los puntos que
x(:,:,3) =[P3;P4;P9;P8]; forman cada malla
x(:,:,4) =[P4;P5;P10;P9];

x(:,:,5) =[P6;P7;P12;P11];
x(:,:,6) =[P7;P8;P13;P12];
x(:,:,7) =[P8;P9;P14;P13];
x(:,:,8) =[P9;P10;P15;P14]; En esta sección se muestra el algoritmo para
%FORMACION DE LA MATRIZ DE CADA ELEMENTO formar la matriz “Ke” de cada malla, con
Ke=zeros(8,8,n); ayuda de la función “Matriz.Elemento”
FFF=zeros(8,8,n);
for i=1:n
Ke(:,:,i)=MatrizElemento(x(:,:,i),E,v,h);
U.M.R.P.S.F.X.CH.
MAESTRIA EN INGENIERIA ESTRUCTURAL V. 7
MODULO: MÉTODO DE LOS ELEMENTOS FINITOS EJERCICIOS 1
NOMBRE: ING. LUIS ARIEL MARCA MATIAS AÑO 2021

FFF(:,:,i)=N_FUERZA(x(:,:,i),E,v,h);
end
disp('LA MATRIZ DE CADA ELEMENTO ES:');
disp(Ke);

%PARA MATRIZ GLOBAL En esta parte se formó la matriz constitutiva


Ke1=Ke(:,:,1); para formar la matriz global de rigidez
Ke2=Ke(:,:,2);
Ke3=Ke(:,:,3);
Ke4=Ke(:,:,4);
Ke5=Ke(:,:,5);
Ke6=Ke(:,:,6);
Ke7=Ke(:,:,7);
Ke8=Ke(:,:,8);
%CONFORMACION DE LA MATRIZ CONSTITUTIVA DE CADA MALLA
k= zeros(nn);

%ORDEN PARA FORMAR LA MATRIZ DE RIGIDEZ


flagKe1 = [1 2 3 4 13 14 11 12]; En esta parte se orden las filas y la secuencia
flagKe2 = [3 4 5 6 15 16 13 14]; de cada malla
flagKe3 = [5 6 7 8 17 18 15 16];
flagKe4 = [7 8 9 10 19 20 17 18];

flagKe5 = [11 12 13 14 23 24 21 22];


flagKe6 = [13 14 15 16 25 26 23 24];
flagKe7 = [15 16 17 18 27 28 25 26];
flagKe8 = [17 18 19 20 29 30 27 28];
En esta parte se usa el algoritmo para ordenar la
%BUCLES PARA ORDENAR
matriz de cada malla en la matriz global, se hace
for i=1:size(k,1)
para 8 veces debido a los 8 elementos
for j=1:size(k,2)
indiceI = find(flagKe1==i);
indiceJ = find(flagKe1==j);
if isempty(indiceI) == 0 && isempty(indiceJ) == 0 && indiceI>0 &&
indiceJ>0
k(i,j) = k(i,j)+Ke1(indiceI,indiceJ);
end
end
end
for i=1:size(k,1)
for j=1:size(k,2)
indiceI = find(flagKe2==i);
indiceJ = find(flagKe2==j);
if isempty(indiceI) == 0 && isempty(indiceJ) == 0 && indiceI>0 &&
indiceJ>0
k(i,j) = k(i,j)+Ke2(indiceI,indiceJ);
end
end
end
for i=1:size(k,1)
for j=1:size(k,2)
indiceI = find(flagKe3==i);
indiceJ = find(flagKe3==j);
if isempty(indiceI) == 0 && isempty(indiceJ) == 0 && indiceI>0 &&
indiceJ>0
U.M.R.P.S.F.X.CH.
MAESTRIA EN INGENIERIA ESTRUCTURAL V. 7
MODULO: MÉTODO DE LOS ELEMENTOS FINITOS EJERCICIOS 1
NOMBRE: ING. LUIS ARIEL MARCA MATIAS AÑO 2021

k(i,j) = k(i,j)+Ke3(indiceI,indiceJ);
end
end
end
for i=1:size(k,1)
for j=1:size(k,2)
indiceI = find(flagKe4==i);
indiceJ = find(flagKe4==j);
if isempty(indiceI) == 0 && isempty(indiceJ) == 0 && indiceI>0 &&
indiceJ>0
k(i,j) = k(i,j)+Ke4(indiceI,indiceJ);
end
end
end
for i=1:size(k,1)
for j=1:size(k,2)
indiceI = find(flagKe5==i);
indiceJ = find(flagKe5==j);
if isempty(indiceI) == 0 && isempty(indiceJ) == 0 && indiceI>0 &&
indiceJ>0
k(i,j) = k(i,j)+Ke5(indiceI,indiceJ);
end
end
end
for i=1:size(k,1)
for j=1:size(k,2)
indiceI = find(flagKe6==i);
indiceJ = find(flagKe6==j);
if isempty(indiceI) == 0 && isempty(indiceJ) == 0 && indiceI>0 &&
indiceJ>0
k(i,j) = k(i,j)+Ke6(indiceI,indiceJ);
end
end
end
for i=1:size(k,1)
for j=1:size(k,2)
indiceI = find(flagKe7==i);
indiceJ = find(flagKe7==j);
if isempty(indiceI) == 0 && isempty(indiceJ) == 0 && indiceI>0 &&
indiceJ>0
k(i,j) = k(i,j)+Ke7(indiceI,indiceJ);
end
end
end
for i=1:size(k,1)
for j=1:size(k,2)
indiceI = find(flagKe8==i);
indiceJ = find(flagKe8==j);
if isempty(indiceI) == 0 && isempty(indiceJ) == 0 && indiceI>0 &&
indiceJ>0
k(i,j) = k(i,j)+Ke8(indiceI,indiceJ);
end
end
end
En esta parte se muestra la MATRIZ
%SENTECIA PARA VISUALIZAR LA MATRIZ DE RIGIDEZ
EMSABLADA
disp('MATRIZ GLOBAL DE RIGIDEZ:');
U.M.R.P.S.F.X.CH.
MAESTRIA EN INGENIERIA ESTRUCTURAL V. 7
MODULO: MÉTODO DE LOS ELEMENTOS FINITOS EJERCICIOS 1
NOMBRE: ING. LUIS ARIEL MARCA MATIAS AÑO 2021

disp(k);
%PARA EL CALCULO DE DESPLAZAMIENTOS NODALES SE USARA K*u=F SE USARA EL
%METODO DE LAGRANGE

%SABIENDO QUE Fx9=10kN y Fx29=-10kN En esta parte se forma el vector con las fuerzas en
F=[0;0;0;0;0;0;0;0;10000;0; cada elemento
0;0;0;0;0;0;0;0;0;0;
0;0;0;0;0;0;0;0;-10000;0];
%MATRIZ A
%SABIENDO QUE EL NUDO 21,22,11,12,1,2=0 DEBIDO A ESOS NODOS SON EMPOTRADOS
A=[1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0;];
%MATRIZ O
O=zeros(6); Se usa el método de LAGRANGE
%CONDICIONES DE BORDE
La=zeros(6,1);
%ENSAMBLANDO LA MATRIZ SEGUN EL TEOREMA DE LAGRANGE
KK=[k,A';A,O]; Para el cálculo de los desplazamientos
FF=[F;La]; en los nodos
%EL CALCULO DE LOS DESPLAZAMIENTOS NODALES
disp('LOS DESPLAZAMIENTOS NODALES SON:'); Se usa el método
uu=inv(KK)*FF;
format shortEng
disp(uu);

%PARA EL CALCULO DE REACCIONES


Para calculo de reacciones
format short
FT=uu([3,4,5,6,7,8,9,10,13,14,15,16,17,18,19,20,23,24,25,26,27,28,29,30],1);
KUR=k([1,2,11,12,21,22],[3,4,5,6,7,8,9,10,13,14,15,16,17,18,19,20,23,24,25,26,
27,28,29,30]);
disp('LAS FUERZAS DE REACCIONES SON:');
REAC=KUR*FT Para el cálculo de las fuerzas o por
nodos se procedió a usar la función
N_fuerzas
%PARA EL CALCULO DE FUERZAS
disp('LAS FUERZAS NODALES EQUIVALENTES SON:');

Uof1=uu([1,2,3,4,13,14,11,12],1);
Uof2=uu([3,4,5,6,15,16,13,14],1);
Uof3=uu([5,6,7,8,17,18,15,16],1);
Uof4=uu([7,8,9,10,19,20,17,18],1);
Uof5=uu([11,12,13,14,23,24,21,22],1);
Uof6=uu([13,14,15,16,25,26,23,24],1);
Uof7=uu([15,16,17,18,27,28,25,26],1);
Uof8=uu([17,18,19,20,29,30,27,28],1);

SX1=FFF(:,:,1);
SX2=FFF(:,:,2);
SX3=FFF(:,:,3);
SX4=FFF(:,:,4);
SX5=FFF(:,:,5);
U.M.R.P.S.F.X.CH.
MAESTRIA EN INGENIERIA ESTRUCTURAL V. 7
MODULO: MÉTODO DE LOS ELEMENTOS FINITOS EJERCICIOS 1
NOMBRE: ING. LUIS ARIEL MARCA MATIAS AÑO 2021

SX6=FFF(:,:,6);
SX7=FFF(:,:,7);
SX8=FFF(:,:,8);
%FUERZAS EN LOS NODOS
FXY1=SX1*Uof1
FXY2=SX2*Uof2
FXY3=SX3*Uof3
FXY4=SX4*Uof4
FXY5=SX5*Uof5
FXY6=SX6*Uof6
FXY7=SX7*Uof7
FXY8=SX8*Uof8

CONCLUSIONES Y RECOMENDACIONES

Durante el desarrollo de codificación de los algoritmos se pudo entender el manejo del programa
MATLAB tanto para la resolución simbólica así también como las matrices, por tanto, el presente
programa tiene la limitación solo de 8 mallas con 30 nodos, en el cual puede variar las secciones
y dimensiones, solo con los parámetros mencionados. Los resultados obtenidos están de acorde a
los métodos de cálculo y uso de los FEM.

No obstante, dichos códigos pueden servir para realizar un mejorar y/o programas, debido a que
se tuvo la facilidad de poder conocer nuevas herramientas informáticas.
U.M.R.P.S.F.X.CH.
MAESTRIA EN INGENIERIA ESTRUCTURAL V. 7
MODULO: MÉTODO DE LOS ELEMENTOS FINITOS EJERCICIOS 1
NOMBRE: ING. LUIS ARIEL MARCA MATIAS AÑO 2021

FUNCIONES
MatrizElemento.m
Se optó por utilizar el script desarrollado por la Dra. Por tanto, la función desarrollada sirve de base para
funcionamiento del programa, es decir que el programa no funcionaría sin el archivo, dicha función sirve para
calcular las matrices Ke de cada elemento en función a las coordenadas:

%% FUNCION DE CADA ELEMENTO QUE COMPONE


function K_elemento = MatrizElemento (x,E,v,h)
syms s r
%FUNCIONES DE FORMA
N1=(1-r)*(1-s)/4;
N2=(1+r)*(1-s)/4;
N3=(1+r)*(1+s)/4;
N4=(1-r)*(1+s)/4;
%DERIVADAS DE LA FUNCION DE FORMA
d_N_s=[diff(N1,r) diff(N1,s)
diff(N2,r) diff(N2,s)
diff(N3,r) diff(N3,s)
diff(N4,r) diff(N4,s)];
%PESOS
wi=[1 1 1 1];
wf=[1 1 1 1];

pi=[(-1/sqrt(3)) (1/sqrt(3)) (-1/sqrt(3)) (1/sqrt(3))];


pf=[(-1/sqrt(3)) (-1/sqrt(3)) (1/sqrt(3)) (1/sqrt(3))];

D=[(E/(1-v^2)) ((E*v)/(1-v^2)) 0
((E*v)/(1-v^2)) (E/(1-v^2)) 0
0 0 (E/(2*(1+v)))];

K_elemento =zeros(8);

for i=1:4

N_1=subs(N1,r,pi(1,i));
N_1=subs(N_1,s,pf(1,i));

N_2=subs(N2,r,pi(1,i));
N_2=subs(N_2,s,pf(1,i));

N_3=subs(N3,r,pi(1,i));
N_3=subs(N_3,s,pf(1,i));

N_4=subs(N4,r,pi(1,i));
N_4=subs(N_4,s,pf(1,i));

dN_s=subs(d_N_s,r,pi(1,i));
dN_s=subs(dN_s,s,pf(1,i));

J=x'*dN_s;

Det_Jac=det(J);
Inv_Jac=inv(J);
U.M.R.P.S.F.X.CH.
MAESTRIA EN INGENIERIA ESTRUCTURAL V. 7
MODULO: MÉTODO DE LOS ELEMENTOS FINITOS EJERCICIOS 1
NOMBRE: ING. LUIS ARIEL MARCA MATIAS AÑO 2021

dN_x=dN_s*Inv_Jac;

B=[dN_x(1,1) 0 dN_x(2,1) 0 dN_x(3,1) 0


dN_x(4,1) 0
0 dN_x(1,2) 0 dN_x(2,2) 0 dN_x(3,2)
0 dN_x(4,2)
dN_x(1,2) dN_x(1,1) dN_x(2,2) dN_x(2,1) dN_x(3,2) dN_x(3,1)
dN_x(4,2) dN_x(4,1)];

K_elemento=K_elemento+(B'*D*B*h*Det_Jac*wi(1,i)*wf(1,i));
end
K_elemento;
U.M.R.P.S.F.X.CH.
MAESTRIA EN INGENIERIA ESTRUCTURAL V. 7
MODULO: MÉTODO DE LOS ELEMENTOS FINITOS EJERCICIOS 1
NOMBRE: ING. LUIS ARIEL MARCA MATIAS AÑO 2021

FUNCIONES
N_FUERZA.m
El siguiente script es una variante de la función MatrizElemento.m, dicho archivo fue cambiado solamente de los
últimos parámetros, por tanto, dicha función nos sirve para calcular la fuerzas nodales.

%% FUNCION PARA CALCULAR LA FUERZA


function N_FUERZA=N_FUERZA(x,E,v,h)

syms s r
%FUNCIONES DE FORMA
N1=(1-r)*(1-s)/4;
N2=(1+r)*(1-s)/4;
N3=(1+r)*(1+s)/4;
N4=(1-r)*(1+s)/4;
%DERIVADAS DE LA FUNCION DE FORMA
d_N_s=[diff(N1,r) diff(N1,s)
diff(N2,r) diff(N2,s)
diff(N3,r) diff(N3,s)
diff(N4,r) diff(N4,s)];
%PESOS
wi=[1 1 1 1];
wf=[1 1 1 1];

pi=[(-1/sqrt(3)) (1/sqrt(3)) (-1/sqrt(3)) (1/sqrt(3))];


pf=[(-1/sqrt(3)) (-1/sqrt(3)) (1/sqrt(3)) (1/sqrt(3))];

D=[(E/(1-v^2)) ((E*v)/(1-v^2)) 0
((E*v)/(1-v^2)) (E/(1-v^2)) 0
0 0 (E/(2*(1+v)))];

N_FUERZA=zeros(8,8);

for i=1:4

N_1=subs(N1,r,pi(1,i));
N_1=subs(N_1,s,pf(1,i));

N_2=subs(N2,r,pi(1,i));
N_2=subs(N_2,s,pf(1,i));

N_3=subs(N3,r,pi(1,i));
N_3=subs(N_3,s,pf(1,i));

N_4=subs(N4,r,pi(1,i));
N_4=subs(N_4,s,pf(1,i));

dN_s=subs(d_N_s,r,pi(1,i));
dN_s=subs(dN_s,s,pf(1,i));

J=x'*dN_s;

Det_Jac=det(J);
Inv_Jac=inv(J);
U.M.R.P.S.F.X.CH.
MAESTRIA EN INGENIERIA ESTRUCTURAL V. 7
MODULO: MÉTODO DE LOS ELEMENTOS FINITOS EJERCICIOS 1
NOMBRE: ING. LUIS ARIEL MARCA MATIAS AÑO 2021

dN_x=dN_s*Inv_Jac;

B=[dN_x(1,1) 0 dN_x(2,1) 0 dN_x(3,1) 0


dN_x(4,1) 0
0 dN_x(1,2) 0 dN_x(2,2) 0 dN_x(3,2)
0 dN_x(4,2)
dN_x(1,2) dN_x(1,1) dN_x(2,2) dN_x(2,1) dN_x(3,2) dN_x(3,1)
dN_x(4,2) dN_x(4,1)];

N_FUERZA=N_FUERZA+(B'*D*B*Det_Jac*wi(1,i)*wf(1,i));

end
N_FUERZA;
U.M.R.P.S.F.X.CH.
MAESTRIA EN INGENIERIA ESTRUCTURAL V. 7
MODULO: MÉTODO DE LOS ELEMENTOS FINITOS EJERCICIOS 1
NOMBRE: ING. LUIS ARIEL MARCA MATIAS AÑO 2021

RESULTADOS

Una vez en funcionamiento del programa y puesto en funcionamiento se procedió a obtener los siguientes resultados
1. Como primer paso nos muestra a matriz Ke de cada malla, en este caso nos muestra 8 mallas debido al tema
de la discretizacion que se realizó, cabe mencionara de cada nodo tiene 2 reacciones “x” e “y” por tanto
cada matriz es de 8x8
U.M.R.P.S.F.X.CH.
MAESTRIA EN INGENIERIA ESTRUCTURAL V. 7
MODULO: MÉTODO DE LOS ELEMENTOS FINITOS EJERCICIOS 1
NOMBRE: ING. LUIS ARIEL MARCA MATIAS AÑO 2021

2. Como segundo resultado nos muestra la matriz K de RIGIDEZ GLOBAL, a; ser un elemento que contiene 15
nodos la matriz global es de 30x30 la razón que por cada nodo tiene reacciones en “x” e “y”, dicho orden
se obtuvo gracias a un algoritmo.
U.M.R.P.S.F.X.CH.
MAESTRIA EN INGENIERIA ESTRUCTURAL V. 7
MODULO: MÉTODO DE LOS ELEMENTOS FINITOS EJERCICIOS 1
NOMBRE: ING. LUIS ARIEL MARCA MATIAS AÑO 2021

3. Como siguiente resultado nos muestra los desplazamientos de los nodos, para dicho cálculo de
deformaciones se procedió a usar Lagrange, cabe mencionar que en dicho programa los últimos 6 valores
son los coeficientes de LAMBDA,

Se anexa un cuadro en describiendo todos los valores por nodos, en el cual se pudo apreciar que el nodo del
eje del medio es 0, precisamente por el eje neutro de la viga, en el sentido x, cabe mencionar que se tuvieron
que hacer artificios matemáticos para formar la matriz global
U.M.R.P.S.F.X.CH.
MAESTRIA EN INGENIERIA ESTRUCTURAL V. 7
MODULO: MÉTODO DE LOS ELEMENTOS FINITOS EJERCICIOS 1
NOMBRE: ING. LUIS ARIEL MARCA MATIAS AÑO 2021

No DESPLAZAMIENTO DESCRIPCION
1 0.000 RESTRICCION
2 - 0.000 RESTRICCION
3 0.005
4 0.008
5 0.009
6 0.031
7 0.014
8 0.070
9 0.019
10 0.125
11 0.000 RESTRICCION
12 0.000 RESTRICCION
13 0.000 NODO CENTRAL
14 0.008
15 - 0.000 NODO CENTRAL
16 0.031
17 - 0.000 NODO CENTRAL
18 0.070
19 - 0.000 NODO CENTRAL
20 0.125
21 0.000 RESTRICCION
22 0.000 RESTRICCION
23 - 0.005
24 0.008
25 - 0.009
26 0.031
27 - 0.014
28 0.070
29 - 0.019
30 0.125
L1 1,000,000.000
L2 181,790.000
L3 - 0.000
L4 - 363,580.000
L5 - 1,000,000.000
L6 181,790.000

4. Como siguiente paso el programa nos proporciona las fuerzas de las reacciones en los nodos
[1,2,11,12,21,22], haciendo un análisis estático las fuerzas esta en total equilibrio, como se muestra en la
figura

Graficando los resultados nos demuestran que el sistema esta el perfecto equilibrio
U.M.R.P.S.F.X.CH.
MAESTRIA EN INGENIERIA ESTRUCTURAL V. 7
MODULO: MÉTODO DE LOS ELEMENTOS FINITOS EJERCICIOS 1
NOMBRE: ING. LUIS ARIEL MARCA MATIAS AÑO 2021

5. Como siguiente paso se muestra las fuerzas equivalentes por nodo, para dicho cálculo se utilizó la función
N_FUERZA, a continuación, se muestra en los resultados obtenidos:
U.M.R.P.S.F.X.CH.
MAESTRIA EN INGENIERIA ESTRUCTURAL V. 7
MODULO: MÉTODO DE LOS ELEMENTOS FINITOS EJERCICIOS 1
NOMBRE: ING. LUIS ARIEL MARCA MATIAS AÑO 2021

Cabe mencionar que existen 8 mallas y por cada malla existen 4 puntos y por cada punto 2 reacciones en
sentido “x” e “y” por tanto hay por cada malla 8 fuerzas equivalentes.

También podría gustarte