Está en la página 1de 3

function [] = Armadura(AREA,NELEMENTO,E,GDLT,GDLF,Lbar,alfa,cbar1,cbar2,cbar3,cbar4,Fuerza)

%{ Declaracion de variables para la ensamblada global y la ensamblada de grados libres

%}

kppg = zeros(GDLT);

kppl= zeros(GDLF);

KB=[];

% crea las matrices de rigidez por barra y su ensamblada

for NEL=1:NELEMENTO

% kr matriz rigidez

kr=E*AREA*[1 0 -1 0; 0 0 0 0; -1 0 1 0; 0 0 0 0]/Long(NEL);

eta=cosd(Ang(NEL)) ;

mu=sind(Ang(NEL));

% ensamblando la matriz beta

beta= [ eta mu 0 0; -mu eta 0 0;0 0 eta mu; 0 0 -mu eta];

co=[cbar1(NEL) cbar2(NEL) cbar3(NEL) cbar4(NEL)];

% ensamblando la matriz de rigidez

Kbeta = co;

KB=[KB' Kbeta']';

Kbeta= kr*beta;

KB=[KB' Kbeta']';

k = beta'* kr*beta;

% ensamblando la matriz global

for i=1:4

for j=1:4

kppg(co(i),co(j))=kppg(co(i),co(j))+ k(i,j);

end

end

end
% ensamblando la matriz de grados de libertad kpp

for i=1:GDLF

for j=1:GDLF

kppl(i,j)=kppg(i,j);

end

end

% kppinv es la inversa del kpp

kppinv=inv(kppl);

AA=size (kppl)

AAA=size(Fuerza)

% Multiplicacion de la inversa por el vector fuerza

up=kppinv*Fuerza;

% Impresion en pantalla del vector desplazamiento, esta parte imprime los desplazamientos

D = sprintf('Desplazamientos');

disp(D)

disp(up)

n=5*NELEMENTO-4;

p=0;

% Multiplicacion de KB * up para las fuerzas en barras

for i=1:5:n

p=p+1;

aux=[];

aux1=[];

aux2=[];

for r=1:4

aux(r)=KB(i,r);
if aux(r)>GDLF

Kbeta= 0;

aux2=[aux2' Kbeta']';

else

Kbeta= up(aux(r));

aux2=[aux2' Kbeta']';

end

end

for r=1:4

for t=1:4

aux1(r,t)=KB(i+r,t);

end

end

% esta parte imprime las barras con sus fuerzas internas

X = sprintf('Barra %d',p);

bar=aux1*aux2;

disp(X)

disp(bar)

end

end

También podría gustarte