Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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);
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);
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:
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;
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.
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];
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;
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.