You are on page 1of 9

UNIVERSIDAD NACIONAL DE INGENIERÍA

FACULTAD DE INGENIERÍA MECÁNICA

PRIMER LABORATORIO CÁLCULO DE ELEMENTOS FINITOS

CURSO: Cálculo por elementos finitos – MC516

TEMA: Primer laboratorio.

ESTUDIANTE: Valverde Espinoza, Níckolas Bryan 20154050B

DOCENTE: Ing. Jorge Vera Ermitaño.

Lima, 22 de abril del 2018


PROBLEMA 1:
A .- DESCRIBIR EL PROCEDIMIENTO SEGÚN LA TEORIA

B.- ELABORAR EL CODIGO MATLAB

C.- CADA UNO UTILIZARA CARGAS DIFERENTES SEGÚN P = 10 + N , DONDE N ES EL ULTIMO DIGITO DE
SU CODIGO UNI.

Resolución:
Mi código es 20154050B por lo consiguiente, mi último dígito será 0, y la carga seguirá siendo
P=10.
Podemos escribir, para cada elemento, las ecuaciones de equilibrio:

Para el resorte 1:
UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de ingeniería mecánica
Laboratorio de Electrónica Industrial

Para el resorte 2:

Para el resorte 3:

Luego consideramos las condiciones de compatibilidad para relacionar los desplazamientos


locales (elementos) y globales (estructura), como:

Al expresar el equilibrio de fuerzas en los nodos 1,2,3 y 4 podemos escribir:

1
UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de ingeniería mecánica
Laboratorio de Electrónica Industrial

Y luego obtenemos las ecuaciones de equilibrio global estático en la forma:

Teniendo en cuenta las condiciones de contorno u1 = u3 = u4 = 0, podemos escribir:

En esta etapa, podemos calcular las reacciones F1, F3, F4, solo después del cálculo de los
desplazamientos globales. Podemos eliminar líneas y columnas del sistema, que corresponden a
u1 = u3 = u4 = 0, y reducir el sistema global a una ecuación.

Las reacciones pueden ser obtenidas por:

Tenga en cuenta que la matriz de rigidez se obtuvo al "sumar" las contribuciones de cada elemento
en las líneas y columnas correctas correspondientes a cada elemento grados de libertad. Por
ejemplo, los grados de libertad del elemento 1 son 1 y 2, y la matriz de rigidez 2x2 de este elemento
se coloca en las líneas y columnas correspondientes de la matriz de rigidez global.

2
UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de ingeniería mecánica
Laboratorio de Electrónica Industrial

Para el elemento 3, los grados de libertad (globales) son 2 y 4 y la matriz de rigidez 2x2 de este
elemento se coloca en las líneas y columnas correspondientes de la matriz de rigidez global.

Haciendo los cálculos en un programa en Matlab:


% problem1.m
% Níckolas Valverde Espinoza – UNI FIM

% Limpiar memoria
clear all

% Nodos del elementos: Conexiones y elementos


elementNodes=[1 2;2 3;2 4];

% Número de elementos
numberElements=size(elementNodes,1);

% Número de nodos
numberNodes=4;

% Para la estructura:
% desplazamientos: vector de desplazamiento
% fuerza: vector de fuerzas
% rigidez: matriz de rigidez
displacements=zeros(numberNodes,1);
force=zeros(numberNodes,1);
stiffness=zeros(numberNodes);

% Carga aplicada al nodo 2


force(2)=10.0;

3
UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de ingeniería mecánica
Laboratorio de Electrónica Industrial

% Cálculo del Sistema de la matriz de rigidez


for e=1: numberElements;
% elementDof: grados de libertad del elemento (Dof)
elementDof=elementNodes(e,:) ;
stiffness(elementDof,elementDof)=...
stiffness(elementDof,elementDof)+[1 -1;-1 1];
end

% condiciones de borde y solucion


% prescribed dofs
prescribedDof=[1;3;4];
% free Dof : activeDof
activeDof=setdiff([1:numberNodes]’,[prescribedDof]);

% solution
displacements=stiffness(activeDof,activeDof)\force(activeDof);

% positioning all displacements


displacements1=zeros(numberNodes,1);
displacements1(activeDof)=displacements;

% Salida de desplazamientos y reacciones


outputDisplacementsReactions(displacements1,stiffness,...
numberNodes,prescribedDof)

Con la ayuda de funciones obtenemos lo que piden el problema.

function displacements=solution(GDof,prescribedDof,stiffness,force)
% Función para encontrar solución en términos de desplazamientos globales
activeDof=setdiff([1:GDof],[prescribedDof]);
U=stiffness(activeDof,activeDof)\force(activeDof);
displacements=zeros(GDof,1);
displacements(activeDof)=U;

function
outputDisplacementsReactions(displacements,stiffness,GDof,prescribedDof)
% Salida de las reacciones
% GDof: Número de grados de libertad del problema
% Se muestran los desplazamientos
disp('Displacements')
jj=1:GDof; format
[jj' displacements]
% Se muestran las reacciones
F=stiffness*displacements;
reactions=F(prescribedDof);
disp('reactions')
[prescribedDof' reactions]

4
UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de ingeniería mecánica
Laboratorio de Electrónica Industrial

Los resultados son los siguientes:


Desplazamientos:
1.0000 0
2.0000 3.3333
3.0000 0
4.0000 0
Reacciones:
1.0000 -3.3333
3.0000 -3.3333
4.0000 -3.3333

PROBLEMA 2:
En la figura siguiente se presenta una barra, realizar el mismo análisis del problema 1 y usar su código
para la carga (F = 3000 + XX, ULTIMOS 2 DIGITOS DEL CODIGO) EN NEWTONS

EL MULO DE ELASTICIDAD E = 30 MEGAPASCAL

EL AREA = 2 (OJO UNIDADES) EN CM2

Resolución:
Como mi código UNI es 20154050B entonces F = 3000 + 50 = 3050 N
Siguiendo un procedimiento similar al anterior:
% problema2.m
clear all
% E: módulo de elasticidad
% A: área de la sección transversal
% L: longitud de la barra
E = 30e6; A=2; EA=E*A; L = 90;
% generación de coordenadas y las conectividades
% numberElements: Número de elementos
numberElements=3;
% generación de coordenadas espaciadas
nodeCoordinates=linspace(0,L,numberElements+1);
xx=nodeCoordinates;

% numberNodes: Número de nodos


numberNodes=size(nodeCoordinates,2);
% elementNodes: Conexiones en los elementos
ii=1:numberElements;
elementNodes(:,1)=ii;

5
UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de ingeniería mecánica
Laboratorio de Electrónica Industrial

elementNodes(:,2)=ii+1;
% Para la estructura:
% displacements: Vector de desplazamiento
% force: Vector fuerza
% stiffness: Matriz de rigidez
displacements=zeros(numberNodes,1);
force=zeros(numberNodes,1);
stiffness=zeros(numberNodes,numberNodes);
% Carga aplicada en el nodo 2
force(2)= 3050;
% Cálculo de la matriz de rigidez del sistema
for e=1:numberElements;
% elementDof: Grados de libertad
elementDof=elementNodes(e,:);
nn=length(elementDof);
length_element=nodeCoordinates(elementDof(2))-nodeCoordinates(elementDof(1));
detJacobian=length_element/2;
invJacobian=1/detJacobian;
% Punto central (xi=0; W=2)
[shape,naturalDerivatives]=shapeFunctionL2(0.0);
Xderivatives=naturalDerivatives*invJacobian;
% Matriz B
B=zeros(1,nn); B(1:nn) = Xderivatives(:);
stiffness(elementDof,elementDof)=stiffness(elementDof,elementDof)+B'*B*2*detJ
acobian*EA;
end
% Condiciones límite
fixedDof=find(xx==min(nodeCoordinates(:))| xx==max(nodeCoordinates(:)));
prescribedDof=[fixedDof];
activeDof=setdiff([1:numberNodes],[prescribedDof]);
% Solución
GDof=numberNodes;
displacements=solution(GDof,prescribedDof,stiffness,force);
% Reacciones y desplazamientos
outputDisplacementsReactions(displacements,stiffness,numberNodes,prescribedDo
f)

Con la ayuda de 3 funciones para que determinar los desplazamientos y reacciones.


function [shape,naturalDerivatives]=shapeFunctionL2(xi)
% shape: Función de forma y derivados para elementos L2
% naturalDerivatives: Derivados w.r.t. xi
% xi: Coordenadas naturales
shape=([1-xi,1+xi]/2);
naturalDerivatives=[-1;1]/2;
end

function displacements=solution(GDof,prescribedDof,stiffness,force)
% Función para encontrar solución en términos de desplazamientos globales
activeDof=setdiff([1:GDof],[prescribedDof]);
U=stiffness(activeDof,activeDof)\force(activeDof);
displacements=zeros(GDof,1);
displacements(activeDof)=U;

6
UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de ingeniería mecánica
Laboratorio de Electrónica Industrial

function
outputDisplacementsReactions(displacements,stiffness,GDof,prescribedDof)
% Salida de las reacciones
% GDof: Número de grados de libertad del problema
% Se muestran los desplazamientos
disp('Displacements')
jj=1:GDof; format
[jj' displacements]
% Se muestran las reacciones
F=stiffness*displacements;
reactions=F(prescribedDof);
disp('reactions')
[prescribedDof' reactions]

Los resultados son los siguientes:


Desplazamientos
1.0000 0
2.0000 0.0407
3.0000 0.0203
4.0000 0
Reacciones:
1.0000 -3.3333
3.0000 -3.3333
4.0000 -3.3333

You might also like