INGENIERÍA
PRÁCTICA N°1
Profesor:
Alumno:
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
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]
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