Está en la página 1de 10

Pandeo Seccin Rectangular

% UNIVERSIDAD DE LAS FUERZAS ARMADAS - ESPE


% ELEMENTOS FINITOS APLICADOS
% PANDEO DE UNA BARRA DE SECCION RECTANGULAR
% 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.005;%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];

% Mallado
numElem = 50;
coorNodos=linspace(0,L,numElem+1);
xx=coorNodos';x=xx';

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;

PcrSS=pi^2*E*I/L^2*(1/(1+pi^2*E*I/(L^2*kapa*G*A)));

fprintf('Carga Critica (N)= %4.2f\n ',PcrSS);
numModos=4;
V1=zeros(GDof,1);
V1(dofActivos,1:numModos)=V(:,1:numModos);

% 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];

% Mallado
numElem = 50;
coorNodos=linspace(0,L,numElem+1);
xx=coorNodos';x=xx';

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;

PcrSS=pi^2*E*I/L^2*(1/(1+pi^2*E*I/(L^2*kapa*G*A)));

fprintf('Carga Critica (N)= %4.2f\n ',PcrSS);
numModos=4;
V1=zeros(GDof,1);
V1(dofActivos,1:numModos)=V(:,1:numModos);

% 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];

% Mallado
numElem = 50;
coorNodos=linspace(0,L,numElem+1);
xx=coorNodos';x=xx';

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;

PcrSS=pi^2*E*I/L^2*(1/(1+pi^2*E*I/(L^2*kapa*G*A)));

fprintf('Carga Critica (N)= %4.2f\n ',PcrSS);
numModos=4;
V1=zeros(GDof,1);
V1(dofActivos,1:numModos)=V(:,1:numModos);

% 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

También podría gustarte