Vous êtes sur la page 1sur 14

LABORATORIO N°4 – ARMADURAS

TRIDIMENSIONALES
CÁLCULO POR ELEMENTOS FINITOS

MC516-SECCIÓN A

PROFESOR:
Ing. Abregú Leandro, Edwin Asención
ESTUDIANTE:
 Cadillo Gutierrez, Victor Hugo
20134173A

06 de noviembre del 2017, Rímac.


INDICE

1. ENUNCIADO DEL PROBLEMA

2. CÁLCULOS PREVIOS

3. ANÁLISIS

4. MODELADO DEL CUERPO REAL

5. MÉTODO DE CÁLCULO

6. USO DEL MATLAB

7. EJECUCIÓN DEL PROGRAMA

8. CONCLUSIONES

9. BIBLIOGRAFÍA
1. ENUNCIADO DEL PROBLEMA

Para la armadura tridimensional, mostrada, aplicando el método de formulación


directa, se pide determinar:
1°) El vector de desplazamientos nodales
2°) Los esfuerzos en los elementos de la armadura.
Si las barras macizas que constituyen dicha armadura es acero AISI 1020 y tienen
∅60 mm de diámetro.
Considere las bases como apoyos (apoyos A, B, C y D).
2. CÁLCULOS PREVIOS

Considerando que la armadura tiene forma de tronco de pirámide isósceles, una de


sus caras, tiene las siguientes medidas (las medidas de las caras son iguales entre
sí).

3. ANÁLISIS
La armadura tiene 16 elementos finitos y 8 nodos.
EJES DEL SISTEMA (en mm)

Se asigna el sistema de coordenadas en el centro de la base inferior.


4. MODELADO DEL CUERPO REAL

Diagrama de conectividad

e NODOS GDL A e (mm 2 E e (N/mm 2


) )
1 1 2 1 2 3 4 5 6 900 *  2 x 10 5
2 1 4 1 2 3 7 8 9 900 *  2 x 10 5
3 1 5 1 2 3 13 14 15 900 *  2 x 10 5
4 1 8 1 2 3 22 23 24 900 *  2 x 10 5
5 2 3 4 5 6 7 8 9 900 *  2 x 10 5
6 2 7 4 5 6 19 20 21 900 *  2 x 10 5
7 2 8 4 5 6 22 23 24 900 *  2 x 10 5
8 3 4 7 8 9 10 11 12 900 *  2 x 10 5
9 3 6 4 5 6 16 17 18 900 *  2 x 10 5
10 3 7 4 5 6 19 20 21 900 *  2x 10 5
11 4 5 10 11 12 13 14 15 900 *  2 x 10 5
12 4 6 10 11 12 16 17 18 900 *  2 x 10 5
13 5 8 13 14 15 22 23 24 900 *  2 x 10 5
14 5 6 13 14 15 16 17 18 900 *  2 x 10 5
15 6 7 16 17 18 19 20 21 900 *  2 x 10 5
16 7 8 19 20 21 22 23 24 900 *  2 x 10 5

Posición de los nodos

NODOS X(mm) Y(mm) Z(mm)

1 400 -400 0
2 -400 -400 0

3 -400 400 0

4 400 400 0

5 205 205 980

6 -205 205 980

7 -205 -205 980

8 205 -205 980

5. MÉTODO DE CÁLCULO

Se sabe que para un elemento rígido se sabe lo siguiente:


L es la matriz de transformación, donde l, m, n son los cosenos directores:
𝑙 𝑚 𝑛 0 0 0
𝐿=[ ]
0 0 0 𝑙 𝑚 𝑛
Cálculo de los cosenos directores:
𝑥1 − 𝑥𝑜 𝑦1 − 𝑦𝑜 𝑧1 − 𝑧𝑜
𝑙= 𝑚= 𝑙=
𝑙𝑒 𝑙𝑒 𝑙𝑒
Cálculo de la longitud de la barra:

𝑙𝑒 = √(𝑥1 − 𝑥0 )2 + (𝑦1 − 𝑦0 )2 + (𝑧1 − 𝑧0 )2


Desplazamientos nodales:
𝑞 ′ = 𝐿𝑞
Cálculo de la matriz de rigidez local:
𝐾𝑒 = 𝐿𝑇 𝑘′𝑒 𝐿
1 −1 𝐴𝑒𝐸𝑒
Donde: 𝑘′𝑒 = [ ]
−1 1 𝑙𝑒
Para el cálculo de la fuerza, se eliminan los grados de libertad, por el método de
eliminación:
𝐹 =𝐾∗𝑄
El cálculo de reacciones se realiza con las matrices globales:
𝑅 =𝐾∗𝑄
El cálculo de los esfuerzos en los nodos se realiza con:
𝐸𝑒
𝜎= [−1 1]𝐿𝑞
𝑙𝑒

6. USO DEL MATLAB

PROGRAMA PRINCIPAL

clear all

clc

E=200000;

A=pi*900*ones(1,16)'; % Area de las secciones

% Ingresa coordenada de los nodos

nodeCoordinates=[400 -400 0;

-400 -400 0 ;

-400 400 0 ;

400 400 0 ;

205 205 980;

-205 205 980;

-205 -205 980;

205 -205 980;];

% Ingresa la conectividad de los nodos

elementNodes=[1 2;1 4;1 5;1 8;2 3; 2 7; 2 8; 3 4; 3 6; 3 7; 4 5; 4 6; 5 8;


5 6; 6 7; 7 8];

numberElements=size(elementNodes,1);

numberNodes=size(nodeCoordinates,1);

xx=nodeCoordinates(:,1);

yy=nodeCoordinates(:,2);

zz=nodeCoordinates(:,3);

% Para la estructura:

% displacements: vector de desplazamiente


% force : vector de fuerza

% stiffness: matriz de rigidez

% GDof: número global de grados de libertad

GDof=3*numberNodes;

U=zeros(GDof,1);

force=zeros(GDof,1);

% Aplicando la carga en los nodos 7 y 8.

force(21)=-4000;

force(24)=-2000;

% Matriz de rigidez

[stiffness]=formStiffness3Dtruss(GDof,numberElements,elementNodes,numberN
odes,nodeCoordinates,E,A);

% Condiciones de contorno

prescribedDof=[3 4 6 7 8 9 11 12]';

% Solución

displacements=solution(GDof,prescribedDof,stiffness,force);

% Salida de desplazamientos y reacciones

outputDisplacementsReactions(displacements,stiffness,...

GDof,prescribedDof)

% Esfuerzo de los elementos

stresses3Dtruss(numberElements,elementNodes,nodeCoordinates,...

displacements,E)

FUNCIONES AUXILIARES

Función que calcula la rigidez


function
[stiffness]=formStiffness3Dtruss(GDof,numberElements,elementNodes,numberN
odes,nodeCoordinates,E,A);

stiffness=zeros(GDof);

% Calcula la matriz de rigidez del sistema

for e=1:numberElements;

% elementDof: Grado de libertad del elemento

indice=elementNodes(e,:) ;

elementDof=[3*indice(1)-2 3*indice(1)-1 3*indice(1)...


3*indice(2)-2 3*indice(2)-1 3*indice(2)] ;

x1=nodeCoordinates(indice(1),1);

y1=nodeCoordinates(indice(1),2);

z1=nodeCoordinates(indice(1),3);

x2=nodeCoordinates(indice(2),1);

y2=nodeCoordinates(indice(2),2);

z2=nodeCoordinates(indice(2),3);

L = sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) +...

(z2-z1)*(z2-z1));

disp('L');

disp(L);

CXx = (x2-x1)/L;CYx = (y2-y1)/L;CZx = (z2-z1)/L;

disp(e)

disp(':')

disp(CXx)

disp(CYx)

disp(CZx)

T = [CXx*CXx CXx*CYx CXx*CZx ; CYx*CXx CYx*CYx CYx*CZx ; ...

CZx*CXx CZx*CYx CZx*CZx];

disp('T')

disp(T)

E*A(e)/L*[T -T ; -T T]

stiffness(elementDof,elementDof)=...

stiffness(elementDof,elementDof)+E*A(e)/L*[T -T ; -T T];

end

Función que calcula desplazamientos


function displacements=solution(GDof,prescribedDof,stiffness,force)

activeDof=setdiff([1:GDof]',[prescribedDof]);

stiffness(activeDof,activeDof)

force(activeDof)

U=stiffness(activeDof,activeDof)\force(activeDof);

displacements=zeros(GDof,1);
displacements(activeDof)=U;

end

Función que calcula las reacciones


function
outputDisplacementsReactions(displacements,stiffness,GDof,prescribedDof)

%MUESTRA LOS DESPLAZAMIENTOS Y REACCIONES EN FORMA TABULAR

%GDof=total numero de grados de libertad del problema

%dezplazamientos

disp('Displacements')

%displacements=displacements1;

jj=1:GDof; %format

A=[jj' displacements];

disp(A)

%REACCIONES

F=stiffness*displacements;

reactions=F(prescribedDof);

disp('reactions')

B=[prescribedDof reactions];

disp(B)

end

Función que calcula el esfuerzo


function
stresses3Dtruss(numberElements,elementNodes,nodeCoordinates,displacements
,E)

% Esfuerzo en un elemento 3D

fprintf('Esfuerzos en los elementos barra\n')

ff=zeros(numberElements,6);

for e=1:numberElements;

% elementDof: Grados de libertad de un elemento

indice=elementNodes(e,:) ;
elementDof=[3*indice(1)-2 3*indice(1)-1 3*indice(1) 3*indice(2)-2
3*indice(2)-1 3*indice(2)] ;

x1=nodeCoordinates(indice(1),1);

y1=nodeCoordinates(indice(1),2);

z1=nodeCoordinates(indice(1),3);

x2=nodeCoordinates(indice(2),1);

y2=nodeCoordinates(indice(2),2);

z2=nodeCoordinates(indice(2),3);

L = sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) +...

(z2-z1)*(z2-z1));

CXx = (x2-x1)/L;CYx = (y2-y1)/L;CZx = (z2-z1)/L;

u=displacements(elementDof);

member_stress(e)=E/L*[-CXx -CYx -CZx CXx CYx CZx]*u;

fprintf('%3d %12.8f\n',e, member_stress(e));

end

7. EJECUCIÓN DEL PROGRAMA


Salida del programa
Matriz de rigidez global en N/mm
Desplazamientos nodales en mm

Reacciones en N
Esfuerzos de los elementos finitos en Pa

8. CONCLUSIONES

- En todos los nodos hay desplazamiento a excepción de los cuales lo impide


su tipo de apoyo.
- Las reacciones en los apoyos se encuentra en el rango de 97N a 2kN.
- Los elementos finitos 9, 12, 14 y 15 no sufren esfuerzos.

9. BIBLIOGRAFÍA

1. Introduction to finite elements in engineering. Tirupathi R. Chandrupatla.


Prentice Hall. 3ra edición.
2. MATLAB Guide to Finite Elements. Peter I. Kattan. Springer. 2da Edición.
2008. India.

Vous aimerez peut-être aussi