Está en la página 1de 7

9/20/18 4:53 AM D:\M...\Cercha_2019.

m 1 of 7

% Datos iniciales de entrada


nnd=5;
nel=7;
nsec=3;
nmat=1;
nap=3; % numero de nudos restringidos
nFext=2;

% nAsen=0;
% nnd=input(['Número de nudos' '\n'])
% nel=input(['Número de elementos' '\n'])
% nsec=input(['Número de secciones' '\n'])
% nmat=input(['Número de materiales' '\n'])
% nrest=input(['Número de restricciones' '\n'])
% nFext=input(['Número de fuerzas externas' '\n'])
% nAsen=input(['Número de asentamientos' '\n'])

% Dimensionamiento de matrices

Coor=zeros(nnd,2);
Mprop=zeros(nsec,1);
Mat=zeros(nmat,1);
Fext=zeros(nnd,2);
Elem=zeros(nel,4);
GLnd=zeros(nnd,2); % Matriz de grados de libertad de los
nudos
GLel=zeros(nel,4); % Matriz de grados de libertad de los
elementos o de incidencia
Rest=zeros(nnd,2);

% Entrada de datos de los nudos


for i=1:1:nnd
9/20/18 4:53 AM D:\M...\Cercha_2019.m 2 of 7

Coor(i,1)=input(['Coordenada x del nudo ' num2str(i)


'\n'])
Coor(i,2)=input(['Coordenada y del nudo ' num2str(i)
'\n'])
end

% Secciones y materiales
for i=1:1:nmat
Mat(i,1)=input(['Módulo de elasticidad del material '
num2str(i) '\n'])
end

for i=1:1:nsec
Mprop(i,1)=input(['Area de la sección ' num2str(i)
'\n'])
end

% Entrada de datos de las restriccciones


nres=0;
for k=1:1:nap
i=input(['Nudo restringido' '\n'])
j=input(['Restringido en x[1],en y[2],en xy[3]'
'\n'])
if j<=2
Rest(i,j)=1;
nres=nres+1;
else
Rest(i,1)=1;
Rest(i,2)=1;
nres=nres+2;
end
end

GL=nnd*2;
9/20/18 4:53 AM D:\M...\Cercha_2019.m 3 of 7

GIC=GL-nres;

%Dimensionar desplazamientos y matriz de rigidez global


KT=zeros(GL,GL);
UT=zeros(GL,1);
UA=zeros(nres,1); % Desplazamientos de los apoyos
UN=zeros(GIC,1);
FA=zeros(nres,1); % Reacciones de los apoyos
FN=zeros(GIC,1);

% Matriz de grados de libertad


il=1;
ir=GIC+1;
for i=1:1:nnd
for j=1:1:2
if Rest(i,j)==0
GLnd(i,j)=il;
il=il+1;
else
GLnd(i,j)=ir;
ir=ir+1;
end
end
end

%Identificación de los elementos


for i=1:1:nel

Elem(i,1)=input(['Nudo inicial del elemento ' num2str


(i) '\n'])
Elem(i,2)=input(['Nudo final del elemento ' num2str
(i) '\n'])
Elem(i,3)=input(['Tipo de sección del elemento '
9/20/18 4:53 AM D:\M...\Cercha_2019.m 4 of 7

num2str(i) '\n'])
Elem(i,4)=input(['Tipo del material del elemento '
num2str(i) '\n'])

end

% Fuerzas externas
for k=1:1:nFext
i=input(['Nudo con carga''\n'])
j=input(['Dirección de la carga en y[1],y[2]''\n'])
F=input(['Magnitud de la carga en el nudo' num2str
(i) '\n'])
Fext(i,j)=F+Fext(i,j);
end

% Transformación de vector de fuerzas externas


for i=1:1:nnd
for j=1:1:2
if GLnd(i,j)<= GIC
FN(GLnd(i,j),1)=Fext(i,j);
else
FA(GLnd(i,j)-GIC,1)=Fext(i,j);
UA(GLnd(i,j)-GIC,1)=Asen(i,j);
end
end
end

% Determinación de la matriz de rigidez y de


transformacion de cada elemento

for i=1:1:nel
% Propiedades de cada elemento
xi= Coor(Elem(i,1),1);
9/20/18 4:53 AM D:\M...\Cercha_2019.m 5 of 7

yi= Coor(Elem(i,1),2);
xf= Coor(Elem(i,2),1);
yf= Coor(Elem(i,2),2);
Delx=xf-xi;
Dely=yf-yi;
Long=(Delx^2+Dely^2)^0.5;
Cs=Delx/Long;
Sn=Dely/Long;
T{i}=[Cs,-Sn,0,0;
Sn,Cs,0,0;
0,0,Cs,-Sn;
0,0,Sn,Cs];
r1=Mprop(Elem(i,3),1)*Mat(Elem(i,4),1)/Long;

% Matriz de rigidez local


kel=r1*[1,0,-1,0;
0,0,0,0;
-1,0,1,0;
0,0,0,0];

% Matriz de rigidez global


keg{i}=T{i}*kel*T{i}';

% Identificación de grados de libertad por elemento


for j=1:1:2
GLel(i,j)=GLnd(Elem(i,1),j);
GLel(i,j+2)=GLnd(Elem(i,2),j);
end

% Ensamblaje de la matriz de rigidez


for m=1:1:4
for n=1:1:4
KT(GLel(i,m),GLel(i,n))= KT(GLel(i,m),GLel(i,
n))+keg{i}(m,n);
9/20/18 4:53 AM D:\M...\Cercha_2019.m 6 of 7

end
end

end
% Extracción de la matriz de rigidez

KNN=KT(1:GIC,1:GIC);
KNA=KT(1:GIC,GIC+1:GL);
KAN=KT(GIC+1:GL,1:GIC);
KAA=KT(GIC+1:GL,GIC+1:GL);
% Solución de desplazamientos y reacciones
UN=KNN^-1*(FN-KNA*UA);
FA=-FA+KAN*UN+KAA*UA;

% Fuerzas en los extremos de los elementos


for i=1:1:nel

% Identificación de los deplazamientos del elemento


Uel=zeros(4,1);
for j=1:1:4
if GLel(i,j)<=GIC
Uel(j,1)=UN(GLel(i,j));
else
Uel(j,1)=UA(GLel(i,j)-GIC);
end
end
% Fuerzas en los extremos de los elementos
Fg{i}=keg{i}*Uel;

end
9/20/18 4:53 AM D:\M...\Cercha_2019.m 7 of 7

También podría gustarte