for i=1:size(coorNodos,2)-1 nodosElem(i,1)=i; nodosElem(i,2)=i+1; end % Coordenadas y conectividad entre elementos numNodos=size(xx,1); % GDof: Grados de libertad GDof=2*numNodos; % Clculo de la matriz de rigidez [mRigidez,Kg]=... mRigidezVigaTimoshenko(GDof,numElem,nodosElem,numNodos,xx,C,P,I,espesor); %Condiciones de borde restriccion1 =find(xx==min(coorNodos(:))| xx==max(coorNodos(:))); restriccion2=[]; dofPrescritos=[restriccion1; restriccion2+numNodos];
% Problema de pandeo dofActivos=setdiff([1:GDof]',[dofPrescritos]); [V,D]=eig(mRigidez(dofActivos,dofActivos),Kg(dofActivos,dofActivos)); D=diag(D);[D,ii] = sort(D); V = V(:,ii); kapa=5/6;
% Representacin de los modos for k=1:numModos set(gcf,'Name','Modos de pandeo') %figure(k) subplot(numModos,1,k) plot(x,V1(1:numNodos,k)) xlabel('longitud (m)') ylabel('y (m)') axis([0 L -L/3 L/3]) end
Resultados
Pandeo Seccin Circular % UNIVERSIDAD DE LAS FUERZAS ARMADAS - ESPE % ELEMENTOS FINITOS APLICADOS % PANDEO DE UNA BARRA DE SECCION CIRCULAR % NOMBRES: Daniel Morales % Andrea Aguilar % FECHA: 26/07/2014
clear all clc % E; Mdulo elstico % G; Mdulo cortante % I: Momento de inercia % L: longitud del la columna % E=20e10;%Acero poisson = 0.26; L = 1;%m diam=0.025;%m I=pi*((diam/2)^4)/4; EI=E*I; kapa=5/6; A=pi*(diam/2)^2; % P = 100; % Carga % Matriz constitutiva G=E/2/(1+poisson); C=[ EI 0; 0 kapa*diam*G];
for i=1:size(coorNodos,2)-1 nodosElem(i,1)=i; nodosElem(i,2)=i+1; end % Coordenadas y conectividad entre elementos numNodos=size(xx,1); % GDof: Grados de libertad GDof=2*numNodos; % Clculo de la matriz de rigidez [mRigidez,Kg]=... mRigidezVigaTimoshenko(GDof,numElem,nodosElem,numNodos,xx,C,P,I,diam);
%Condiciones de borde restriccion1 =find(xx==min(coorNodos(:))| xx==max(coorNodos(:))); restriccion2=[]; dofPrescritos=[restriccion1; restriccion2+numNodos];
% Problema de pandeo dofActivos=setdiff([1:GDof]',[dofPrescritos]); [V,D]=eig(mRigidez(dofActivos,dofActivos),Kg(dofActivos,dofActivos)); D=diag(D);[D,ii] = sort(D); V = V(:,ii); kapa=5/6;
% Representacin de los modos for k=1:numModos set(gcf,'Name','Modos de pandeo') %figure(k) subplot(numModos,1,k) plot(x,V1(1:numNodos,k)) xlabel('longitud (m)') ylabel('y (m)') axis([0 L -L/3 L/3]) end
Resultados
Pandeo Seccin Cuadrada % UNIVERSIDAD DE LAS FUERZAS ARMADAS - ESPE % ELEMENTOS FINITOS APLICADOS % PANDEO DE UNA BARRA DE SECCION CUADRADA % NOMBRES: Daniel Morales % Andrea Aguilar % FECHA: 26/07/2014
clear all clc % E; Mdulo elstico % G; Mdulo cortante % I: Momento de inercia % L: longitud del la columna % E=20e10;%Acero poisson = 0.26; L = 1;%m ancho=0.025;%m espesor=0.025;%m I=ancho*espesor^3/12; EI=E*I; kapa=5/6; A=ancho*espesor; % P = 100; % Carga % Matriz constitutiva G=E/2/(1+poisson); C=[ EI 0; 0 kapa*espesor*G];
for i=1:size(coorNodos,2)-1 nodosElem(i,1)=i; nodosElem(i,2)=i+1; end % Coordenadas y conectividad entre elementos numNodos=size(xx,1); % GDof: Grados de libertad GDof=2*numNodos; % Clculo de la matriz de rigidez [mRigidez,Kg]=... mRigidezVigaTimoshenko(GDof,numElem,nodosElem,numNodos,xx,C,P,I,espesor); %Condiciones de borde restriccion1 =find(xx==min(coorNodos(:))| xx==max(coorNodos(:))); restriccion2=[]; dofPrescritos=[restriccion1; restriccion2+numNodos];
% Problema de pandeo dofActivos=setdiff([1:GDof]',[dofPrescritos]); [V,D]=eig(mRigidez(dofActivos,dofActivos),Kg(dofActivos,dofActivos)); D=diag(D);[D,ii] = sort(D); V = V(:,ii); kapa=5/6;
% Representacin de los modos for k=1:numModos set(gcf,'Name','Modos de pandeo') %figure(k) subplot(numModos,1,k) plot(x,V1(1:numNodos,k)) xlabel('longitud (m)') ylabel('y (m)') axis([0 L -L/3 L/3]) end
Resultados
Matriz De Rigidez De Timoshenko function [mRigidez,Kg]=mRigidezVigaTimoshenko(GDof,numElem,... nodosElem,numNodos,xx,C,P,I,espesor) %Calculo de la matriz de rigidez y matriz de rigidez geometrica %para una viga tipo Timoshenko mRigidez=zeros(GDof); Kg=zeros(GDof); % Matriz de rigidez K puntosGauss=[0.]; pesosGauss=[1.]; % Contribucin de la flexion para K for e=1:numElem indice=nodosElem(e,:); dofElementos=[ indice indice+numNodos]; ndof=length(indice); longElemento=xx(indice(2))-xx(indice(1)); detJacobiano=longElemento/2;invJacobian=1/detJacobiano; for q=1:size(pesosGauss,1) ; pt=puntosGauss(q,:); [deformada,derivadas]=funcionDeformada(pt(1)); derivadasX=derivadas*invJacobian; % matriz B B=zeros(2,2*ndof); B(1,ndof+1:2*ndof) = derivadasX(:)'; % K mRigidez(dofElementos,dofElementos)=... mRigidez(dofElementos,dofElementos)+... B'*B*pesosGauss(q)*detJacobiano*C(1,1); Kg(indice,indice)=Kg(indice,indice)+... derivadasX*derivadasX'*pesosGauss(q)*detJacobiano*P; end end % Contribucion del corte a la matriz K puntosGauss=[0.]; pesosGauss=[2.]; for e=1:numElem indice=nodosElem(e,:); dofElementos=[ indice indice+numNodos]; ndof=length(indice); longElemento=xx(indice(2))-xx(indice(1)); detJ0=longElemento/2;invJ0=1/detJ0; for q=1:size(pesosGauss,1) ; pt=puntosGauss(q,:); [deformada,derivadas]=funcionDeformada(pt(1)); derivadasX=derivadas*invJacobian; % B B=zeros(2,2*ndof); B(2,1:ndof) = derivadasX(:)'; B(2,ndof+1:2*ndof) = deformada; % K mRigidez(dofElementos,dofElementos)=... mRigidez(dofElementos,dofElementos)+... B'*B*pesosGauss(q)*detJacobiano*C(2,2); end end Funcin Deformada % ............................................................. function [deformada,derivadas]=funcionDeformada(xi) deformada=([1-xi,1+xi]/2)'; derivadas=[-1;1]/2; end