Sei sulla pagina 1di 3

clear all %limpia todas las variables que se usen previamente en Matlab

clc
display ('++++++ METODO DEL ELEMENTO FINITO ++++++ ');
display (' Analisis de Armaduras 2D ');
display (' ');
el=input (' Cuantos elementos conforma la Armadura? : ' );
no = input ('Cuantos nodos tiene la Armadura?: ');
%DATOS PRELIMINARES DEL EJERCICIO DE ARMADURAS 01
cn=1000*[0,0;3.6,0;7.2,0;10.8,0;1.8,3.118;5.4,3.118;9,3.118];
%COORDENADAS NODALES
nc=[1,2;2,3;3,4;1,5;5,2;2,6;6,3;3,7;7,4;5,6;6,7]; % NODOS DE CONECTIVIDAD
display ('Las coordenadas nodales de la armadura son: ');
display(cn);
display ('Los nodos de conectividad de cada elemento es: ');
display(nc);
Ar1=(2*1/4)+((2-1/4)*(1/4)); %Area del L 2" x 2" x 1/4"
Ar2=(2*1/8)+((2-1/8)*(1/8)); %Area del L 2" x 2" x 1/8"
A1=(25.4^2)*Ar1;
A2=(25.4^2)*Ar2;
E=194E3;
A=zeros(el,1);
K=zeros (no*2,no*2);
for i=1:el
are=['El rea del elemento ' num2str(i) ' es: '];
Ar=input(are);
A(i)=A(i)+Ar;
end
for j=1:el
ni=nc(j,1);
nj=nc(j,2);
NA=cn(ni,:);
NB=cn(nj,:);
op=NB-NA;
x1=NA(1,1);
y1=NA(1,2);
x2=NB(1,1);
y2=NB(1,2);
q1x=ni*2-1;
q1y=ni*2;
q2x=nj*2-1;
q2y=nj*2;
de=[q1x,q1y,q2x,q2y];
le=sqrt(sum(op.^2));
l=(x2-x1)/le;
m=(y2-y1)/le;
rig=E*A(j)/le;
ke=rig*[l^2, l*m, -l^2, -l*m;
l*m, m^2, -l*m, -m^2;
-l^2, -l*m, l^2, l*m;
-l*m, -m^2, l*m, m^2];
mr=[ ' La matriz de rigidez del elemento ' num2str(j) 'es: '];
display (mr);
display (ke);
K(de,de)=K(de,de)+ke;
end
display( ' La matriz rigidez global k es : ');
display(K);
F=zeros(no*2,1);
tf=input('cuantas fuerzas actuan en la armadura?:');
fp=input('indica entre [ ] los dezplazamientos donde actua una
fuerza :');
for j=1:tf
fz=[' la fuerza que se aplica en el desplazamiento '
num2str(fp(j)) ' es:'];
fe=input(fz);
F(fp(j))=F(fp(j))+fe;
end
display(' el valor fuerza es:');
display(F);
display('#### CONDICIONES FRONTERA DE DESPLAZAMIENTO ###');
display(' Enfoque de Eliminacion ');
rn=input('indica entre [ ] los desplazamientos que tienen
restrecciones;');
KM=K;
FM=F;
KM(:,rn')=[];
KM(rn,:)=[];
FM(rn)=[];
q=inv(KM)*FM;
display(' los desplazamientos nodales son :');
display(q);

% % for
% % me= [' El modulo de Elasticidad del elemento' num2str(i) 'es:'];
% % E=input (me);
% % ME(i)=ME (i)+ E;
% % Ar= [ ' El Area transversal del elemento ' num2str(i) 'es:'];
% % A= input (Ar);
% % lon= [' La longitud del elemento ' num2str(i) ' es: '];
% % le=input (lon);
% % LO(i)= LO(i)+ le;
% % rig= E*A / le;
% % ke=rig*[1,-1;-1,1];
% % mr= [ ' La Matriz de rigidez del elemento ' num2str(i) ' es: '];
% % display(mr);
% % display(ke);
% % K(i:i+1,i:i+1)= K (i:i+1,i:i+1)+ke;
% % end
% %
% % display ( ' La Matriz rigidez global K es: ');
% % display (K);
% % F=zeros(nod,1);
% % for j=1:nod
% % fz= ['La Fuerza que se aplica en el nodo' num2str(j) 'es:' ];
% % fe=input(fz);
% % F(j)=F(j)+fe;
% % end
% % display(' ++++ CONDICIONES FRONTERA DEL DESPLAZAMIENTO ++++ ');
% % display('Enfoque de eliminacion ');
% % %Para estos tipos de estructuras existe solo restricciones de
% % %desplazamiento en los extremos de tal manera que si se tiene una
% % %restriccion se considerara "1" si es libre "0"
% % rn=input (' Indica entre [i,d] el tipo de restriccion de la
estructura');
% % KM=K;
% % FM=F;
% % if rn(1)==1
% % KM(:,1)=[ ];
% % KM(1,:)=[ ];
% % FM(1)=[ ];
% % end
% % if rn(2)==1
% % KM(:,nod)=[ ];
% % KM(nod,:)=[ ];
% % FM(nod)=[ ];
% % end
% % q=inv(KM)*FM
% %
% %
% %