Anda di halaman 1dari 6

UNIVERSIDAD NACIONAL DE

INGENIERÍA

FACULTAD DE INGENIERÍA MECÁNICA

CÁLCULO POR ELEMENTOS FINITOS (MC516 C)

PRÁCTICA N°1

Profesor:

Ing. VERA ERMITAÑO JORGE

Alumno:

CORTEZ SARMIENTO MARTIN JUNIOR 20121182G

2017-II
1.- DEL CAP 2 TEXTO FERREIRA ANALIZAR EL PROBLEMA DE LA PAG 24 CAP 2 (A SPRING
PROBLEM) EL ALGORITMO DETALLADO Y HACER LA CORRIDA PARA EL DATO DE CARGA P = 10
+ XX DONDE XX SON 2 ULTIMOS DIGITOS DE SU CODIGO UNI

P= 10+82=92

ALGORITMO EN MATLAB

% MATLAB codes for Finite Element Analysis


% problem1.m
% antonio ferreira 2008
% limpiar la memoria
clear all
% elementNodes: elementos en conexiones
elementNodes=[1 2;2 3;2 4];
% numberElements: numero de elementos
numberElements=size(elementNodes,1);
% numberNodes: numero de nodos
numberNodes=4;
% para la estructura:
% displacements: vector desplazamiento
% force : vector fuerza
% stiffness: matriz de rigidez
displacements=zeros(numberNodes,1);
force=zeros(numberNodes,1);
stiffness=zeros(numberNodes);
% aplicando la carga en el nodo 2
force(2)=92.0;
% calculo de la matriz de rigidez del sistema
for e=1:numberElements;
% elementDof: grados de libertad de los elementos (Dof)
elementDof=elementNodes(e,:);
stiffness(elementDof,elementDof)=...
stiffness(elementDof,elementDof)+[1 -1;-1 1];
end
% condiciones limites y solucion
% prescribed dofs
prescribedDof=[1;3;4];
% free Dof : activeDof
activeDof=setdiff((1:numberNodes)',(prescribedDof));
% solucion
displacements=stiffness(activeDof,activeDof)\force(activeDof);
% posicionamiento de todos los desplazamientos
displacements1=zeros(numberNodes,1);
displacements1(activeDof)=displacements;
% desplazamientos y reacciones de salida
outputDisplacementsReactions(displacements1,stiffness,...
numberNodes,prescribedDof)
FUNCIÓN DE LLAMADA

function outputDisplacementsReactions...
(displacements,stiffness,GDof,prescribedDof)
% salida de los desplazamientos y reacciones en
% forma tabular
% GDof: numero total de grados de libertad
% del problema
% desplazamientos
disp('Displacements')
%displacements=displacements1;
jj=1:GDof; format
[jj' displacements]
% reacciones
F=stiffness*displacements;
reactions=F(prescribedDof);
disp('reactions')
[prescribedDof reactions]

SOLUCIÓN DEL PROBLEMA


2.-

ANALIZAR Y PRESENTAR EL ALGORITMO DEL PROBLEMA MOSTRADO (PAG 38 CAP 3) SI ES


POSIBLE TRADUCIDO Y LA CORRIDA CORRESPONDIENTE

ALGORITMO EN MATLAB

% problem2.m
% antonio ferreira 2008
% limpiar la memoria
clear all
% E: modulo de elasticidad
% A: area de seccion transversal
% L: longitud de la barra
E = 30e6;A=1;EA=E*A; L = 90;
% generacion de coordenadas y conectividades
% numberElements: numero de elementos
numberElements=3;
% generacion de coordenadas espaciadas
nodeCoordinates=linspace(0,L,numberElements+1);
xx=nodeCoordinates;
% numberNodes: numero de nodos
numberNodes=size(nodeCoordinates,2);
% elementNodes: elementos en conexiones
ii=1:numberElements;
elementNodes(:,1)=ii;
elementNodes(:,2)=ii+1;
% para la estructura:
% displacements: vector desplazamiento
% force : vector fuerza
% stiffness: matriz de rigidez
displacements=zeros(numberNodes,1);
force=zeros(numberNodes,1);
stiffness=zeros(numberNodes,numberNodes);
% aplicando la carga en el nodo 2
force(2)=3000.0;
% calculo de la matriz de rigidez del sistema
for e=1:numberElements;
% elementDof: grados de libertad de los elementos (Dof)
elementDof=elementNodes(e,:) ;
nn=length(elementDof);
length_element=nodeCoordinates(elementDof(2))...
-nodeCoordinates(elementDof(1));
detJacobian=length_element/2;invJacobian=1/detJacobian;
% punto central de Gauss (xi=0, weight 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*detJacobian*EA;
end
% condiciones limites y solucion
% prescribed dofs
fixedDof=find(xx==min(nodeCoordinates(:)) ...
| xx==max(nodeCoordinates(:)))';
prescribedDof=[fixedDof]
% free Dof : activeDof
activeDof=setdiff([1:numberNodes]',[prescribedDof]);
% solucion
GDof=numberNodes;
displacements=solution(GDof,prescribedDof,stiffness,force);
% desplazamientos y reacciones de salida
outputDisplacementsReactions(displacements,stiffness,...
numberNodes,prescribedDof)

FUNCIONES DE LLAMADA

FUNCIÓN 1

function [shape,naturalDerivatives]=shapeFunctionL2(xi)
% funcion de forma y derivadas para los elementos L2
% shape : funciones de forma
% naturalDerivatives: derivadas w.r.t. xi
% xi: coordenadas naturales (-1 ... +1)
shape=([1-xi,1+xi]/2)';
naturalDerivatives=[-1;1]/2;
end % fin de la funcion shapeFunctionL2

FUNCIÓN 2

function displacements=solution(GDof,prescribedDof,stiffness,force)
% funcion para encontrar la solucion en terminos de los
desplazamientos globales
activeDof=setdiff([1:GDof]', ...
[prescribedDof]);
U=stiffness(activeDof,activeDof)\force(activeDof);
displacements=zeros(GDof,1);
displacements(activeDof)=U;
SOLUCIÓN DEL PROBLEMA

Anda mungkin juga menyukai