Professional Documents
Culture Documents
-12
6*L(i);...
-6*L(i)
2*L(i)^2;...
12
-6*L(i);...
-6*L(i) 4*L(i)^2];
end
if r(j2,1)==0
j2=j2-rc(j2,1);
else
j2=N+rc(j2,1);
end
if r(k1,1)==0
k1=k1-rc(k1,1);
else
k1=N+rc(k1,1);
end
if r(k2,1)==0
k2=k2-rc(k2,1);
else
k2=N+rc(k2,1);
end
if r(2*i-1,1)==0;
SJ(j1,j1)=SJ(j1,j1)+SM(1,1,i);
SJ(j2,j1)=SJ(j2,j1)+SM(2,1,i);
SJ(k1,j1)=SM(3,1,i);
SJ(k2,j1)=SM(4,1,i);
end
if r(2*i,1)==0;
SJ(j1,j2)=SJ(j1,j2)+SM(1,2,i);
SJ(j2,j2)=SJ(j2,j2)+SM(2,2,i);
SJ(k1,j2)=SM(3,2,i);
SJ(k2,j2)=SM(4,2,i);
end
if r(2*i+1,1)==0;
SJ(j1,k1)=SM(1,3,i);
SJ(j2,k1)=SM(2,3,i);
SJ(k1,k1)=SJ(k1,k1)+SM(3,3,i);
SJ(k2,k1)=SJ(k2,k1)+SM(4,3,i);
end
if r(2*i+2,1)==0;
SJ(j1,k2)=SM(1,4,i);
SJ(j2,k2)=SM(2,4,i);
SJ(k1,k2)=SJ(k1,k2)+SM(3,4,i);
SJ(k2,k2)=SJ(k2,k2)+SM(4,4,i);
end
end
SJ;%matrizdenudototal
%cargas en los miembros
%(member load concenter)==%mlc
%AML1(cargaputual+momento);aplicable a cualquier # de carga por miembro
%[#m FY Fz d1 d2] ojoj
lc=size(mlc);
cl=lc(1,1);
AML1=zeros(n-1,4);
for i=1:cl;
temp=mlc(i,1);
p=mlc(i,2);ap=mlc(i,4);bp=L(temp)-ap;
map=p*ap*bp^2/L(temp)^2;mbp=-p*ap^2*bp/L(temp)^2;
rap=p*bp^2*(3*ap+bp)/L(temp)^3;rbp=p*ap^2*(ap+3*bp)/L(temp)^3;
M=mlc(i,3);am=mlc(i,4);bm=L(temp,1)-am;
mam=M*bm*(2*am-bm)/L(temp)^2;mbm=M*am*(2*bm-am)/L(temp)^2;
ram=6*M*am*bm/L(temp)^3;rbm=-ram;
AML1(temp,1)=AML1(temp,1)+rap+ram;
AML1(temp,2)=AML1(temp,2)+map+mam;
AML1(temp,3)=AML1(temp,3)+rbp+rbm;
AML1(temp,4)=AML1(temp,4)+mbp+mbm;
end
clear('lc','cl','temp','map','mbp','mam','mbm','rap','rbp','rap','ram');AML1;
%(member loadZ)==%mld
%AML2(carga distribuida);aplicable a cualquier # de carga dist por miembro
lc=size(mld);
cl=lc(1,1);
AML2=zeros(n-1,4);
for i=1:cl;
temp=mld(i,1);
w=mld(i,2);p=mld(i,5)-mld(i,4);
ma=w*p^2/12;mb=-ma;
ra=w*p/2;rb=w*p/2;
AML2(temp,1)=AML2(temp,1)+ra;
AML2(temp,2)=AML2(temp,2)+ma;
AML2(temp,3)=AML2(temp,3)+rb;
AML2(temp,4)=AML2(temp,4)+mb;
end
clear('lc','cl','temp','ma','mb');AML2;
%%%%%%%%%%%%%%%
AML=AML1+AML2;
%%%%%%%%%%%%%%%
%cargas en los nudos (nlc:nodal load concenter)
%[#n Fy Mz]
lc=size(nlc);
cl=lc(1,1);
A=zeros(2*n,1);
for i=1:cl;
temp=nlc(i,1);
A(2*temp-1,1)=nlc(i,2);
A(2*temp,1)=nlc(i,3);
end
clear('temp','lc','cl');A;
%matriz carga de nudo equivalente
AE=zeros(2*n,1);
for i=1:n-1;
AE(2*i-1,1)=AE(2*i-1,1)-AML(i,1);
AE(2*i,1)=AE(2*i,1)-AML(i,2);
AE(2*i+1,1)=AE(2*i+1,1)-AML(i,3);
AE(2*i+2,1)=AE(2*i+2,1)-AML(i,4);
end
AE;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%carga de nudo combinada
AC=AE*0;
for i=1:2*n;
if r(i,1)==0;
q=i-rc(i,1);
else
q=N+rc(i,1);
end
AC(q,1)=A(i,1)+AE(i,1);
end
AC;%ok carga de nudo combinada y ordenada
%%%%%%%RESULTADOS%%%%%%%%%
AD=AC(1:N,1);ARL=-1*AC(N+1:2*n,1);
S=SJ(1:N,1:N);SRD=SJ(N+1:2*n,1:N);
D=inv(S)*AD;%desplazamientos de nudos
AR=ARL+SRD*D;%reacciones en nudos
%%%%%%%%%Ordenando desplazamientos%%%%%%%%%
DJ=zeros(2*n,1);
j=0;kk=0;
for i=1:2*n;
j=j+1;
if r(i)==0;
kk=kk+1;
DJ(j)=D(kk);
end
end
DJ;
AM=zeros(1,4);
for i=1:n-1;
j1=2*i-1;j2=2*i;k1=2*i+1;k2=2*i+2;
kk1=4*EI(i)/L(i);kk2=1.5*kk1/L(i);kk3=2*kk2/L(i);
AM(i,1)=AML(i,1)+kk3*(DJ(j1)-DJ(k1))+kk2*(DJ(j2)+DJ(k2));
AM(i,2)=AML(i,2)+kk2*(DJ(j1)-DJ(k1))+kk1*(DJ(j2)+DJ(k2)/2);
AM(i,3)=AML(i,3)-kk3*(DJ(j1)-DJ(k1))-kk2*(DJ(j2)+DJ(k2));
AM(i,4)=AML(i,4)+kk2*(DJ(j1)-DJ(k1))+kk1*(DJ(j2)/2+DJ(k2));
end
clc
disp('---------------------------------------------------------------')
disp('--------PROGRAMA PARA LA SOLUCIN DE VIGAS DE N TRAMOS---------')
disp('---------------------------------------------------------------')
disp('-------UNIVERSIDAD NACIONAL DE SAN CRISTBAL DE HUAMANGA-------')
disp('------- FACULTAD DE INGENIERA DE MINAS GEOLOGA Y CIVIL-------')
disp('------ESCUELA DE FORMACIN PROFESIONAL DE INGENIERA CIVIL-----')
disp('---------------CURSO: ANLISIS ESTRUCTURAL II ----------------')
disp('----------------------SIGLA: IC - 444 ------------------------')
disp('----------------ALUMNO: BOLVAR OR LUIS PAVEL-----------------')
disp('---------DOCENTE DEL CURSO: ING. RUBN YACHAPA CONDEA---------')
disp('')
disp('-------------------------RESULTADOS----------------------------')
disp('MATRIZ DE DESPLAZAMIENTOS:')
disp(DJ)
disp('MATRIZ DE REACCIONES:')
disp(AR)
disp('MATRIZ DE ACCIONES DE MIEMBRO:')
disp(AM)
%rptas en coordenadas globales
for i=1:m;
SMD(:,:,i)=(EA(i)/L(i))*[cx(i,1)^2
cx(i,1)*cy(i,1) -cx(i,1)^2
cx(i,1)*cy(i,1);...
cx(i,1)*cy(i,1) cy(i,1)^2
-cx(i,1)*cy(i,1) cy(i,1)^2;...
-cx(i,1)^2
-cx(i,1)*cy(i,1) cx(i,1)^2
cx(i,1)*cy(i,1);...
-cx(i,1)*cy(i,1) -cy(i,1)^2
cx(i,1)*cy(i,1)
cy(i,1)^2];
end
SMD
%matriz total de nudo
N=2*n-sum(r);
SJ=zeros(2*n,2*n);
for i=1:m;
j1=2*memb(i,2)-1;j2=2*memb(i,2);k1=2*memb(i,3)-1;k2=2*memb(i,3);
if r(j1,1)==0
j1=j1-rc(j1,1);
else
j1=N+rc(j1,1);
end
if r(j2,1)==0
j2=j2-rc(j2,1);
else
j2=N+rc(j2,1);
end
if r(k1,1)==0
k1=k1-rc(k1,1);
else
k1=N+rc(k1,1);
end
if r(k2,1)==0
k2=k2-rc(k2,1);
else
k2=N+rc(k2,1);
end
if r(2*memb(i,2)-1,1)==0;
SJ(j1,j1)=SJ(j1,j1)+SMD(1,1,i);
SJ(j2,j1)=SJ(j2,j1)+SMD(2,1,i);
SJ(k1,j1)=SMD(3,1,i);
SJ(k2,j1)=SMD(4,1,i);
end
if r(2*memb(i,2),1)==0;
SJ(j1,j2)=SJ(j1,j2)+SMD(1,2,i);
SJ(j2,j2)=SJ(j2,j2)+SMD(2,2,i);
SJ(k1,j2)=SMD(3,2,i);
SJ(k2,j2)=SMD(4,2,i);
end
if r(2*memb(i,3)-1,1)==0;
SJ(j1,k1)=SMD(1,3,i);
SJ(j2,k1)=SMD(2,3,i);
SJ(k1,k1)=SJ(k1,k1)+SMD(3,3,i);
SJ(k2,k1)=SJ(k2,k1)+SMD(4,3,i);
end
if r(2*memb(i,3),1)==0;
SJ(j1,k2)=SMD(1,4,i);
SJ(j2,k2)=SMD(2,4,i);
SJ(k1,k2)=SJ(k1,k2)+SMD(3,4,i);
SJ(k2,k2)=SJ(k2,k2)+SMD(4,4,i);
end
end
SJ;%matrizdenudototal
lc=size(mlc);
cl=lc(1,1);
AML1=zeros(m,4);
if mlc==0*mlc
AML1=AML1;
else
for i=1:cl;
temp=mlc(i,1);
Ai=mlc(i,2:4)';
a=mlc(i,5);b=L(temp)-a;
TML=[b/L(temp) 0 0;0 b/L(temp) 1/L(temp);a/L(temp) 0 0;0 a/L(temp) -1/L(temp)];
AMi=TML*Ai;
AML1(temp,:)=AML1(temp,:)+AMi';
end
end
clear('lc','temp','map','mbp','mam','mbm','rap','rbp','rap','ram');AML1;
lc=size(mld);
cl=lc(1,1);
AML2=zeros(m,4);
if mld==0*mld
AML2=AML2
else
for i=1:cl;
temp=mld(i,1);
w1=mld(i,2);w2=mld(i,3);d1=mld(i,4);d2=mld(i,5);
c=d2-d1;xc=(d2-d1)*(2*w1+w2)/(3*(w1+w2));b=L(temp)-d1-c;
ra=(w1+w2)*c/2*(xc+b)/L(temp);rb=(w1+w2)*c/2-ra;
%AML2(temp,1)=AML2(temp,1)+ra;
AML2(temp,2)=AML2(temp,2)+ra;
%AML2(temp,3)=AML2(temp,3)+rb;
AML2(temp,4)=AML2(temp,4)+rb;
end
end
clear('lc','cl','temp','ma','mb');AML2;
%%%%%%%%%%%%%%%
AML=AML1+AML2;
%%%%%%%%%%%%%%%
%[#n Fx Fy]
lc=size(nlc);
cl=lc(1,1);
A=zeros(2*n,1);
for i=1:cl;
temp=nlc(i,1);
A(2*temp-1,1)=nlc(i,2);
A(2*temp,1)=nlc(i,3);
end
clear('temp','lc','cl');A;
%matriz carga de nudo equivalente;
AE=zeros(2*n,1);
for i=1:m;
j1=2*memb(i,2)-1;j2=2*memb(i,2);k1=2*memb(i,3)-1;k2=2*memb(i,3);
AE(j1,1)=AE(j1,1)-AML(i,1)*cx(i)+AML(i,2)*cy(i);
AE(j2,1)=AE(j2,1)-AML(i,1)*cy(i)-AML(i,2)*cx(i);
AE(k1,1)=AE(k1,1)-AML(i,3)*cx(i)+AML(i,4)*cy(i);
AE(k2,1)=AE(k2,1)-AML(i,3)*cy(i)-AML(i,4)*cx(i);
end
AE;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%carga de nudo combinada
AC=AE*0;
for i=1:2*n;
if r(i,1)==0;
q=i-rc(i,1);
else
q=N+rc(i,1);
end
AC(q,1)=A(i,1)+AE(i,1);
end
AC;%ok carga de nudo combinada y ordenada
%%%%%%%%%%%%%%%%%%RESULTADOS%%%%%%%%%%%%%%%%
AD=AC(1:N,1);ARL=-1*AC(N+1:2*n,1);
S=SJ(1:N,1:N);SRD=SJ(N+1:2*n,1:N);
D=inv(S)*AD;%desplazamientos de nudos
AR=ARL+SRD*D;%reacciones en nudos
%%%%%%%%%Ordenando desplazamientos%%%%%%%%%%%%%%%%%55
DJ=zeros(2*n,1);
j=0;kk=0;
for i=1:2*n;
j=j+1;
if r(i)==0;
kk=kk+1;
DJ(j)=D(kk);
end
end
DJ ;
%%%%%%ACCIONES DE MIEMBRO%%%%%%%%%%%%%%%%%%
AM=zeros(1,4);
for i=1:m
j1=2*memb(i,2)-1;j2=2*memb(i,2);k1=2*memb(i,3)-1;k2=2*memb(i,3);
kk=EA(i)/L(i);
AM(i,1)=AML(i,1)+kk*((DJ(j1)-DJ(k1))*cx(i)+(DJ(j2)-DJ(k2))*cy(i));
AM(i,2)=AML(i,2);
AM(i,3)=AML(i,3)-kk*((DJ(j1)-DJ(k1))*cx(i)+(DJ(j2)-DJ(k2))*cy(i));
AM(i,4)=AML(i,4);
end
AM;%rptas en coordenadas globales
clc
disp('------------------------------------------------------')
disp('----------------------RESULTADOS----------------------')
disp('------------------------------------------------------')
disp('Matriz desplazamientos')
disp(DJ)
disp('Matriz de Reacciones')
disp(AR)
disp('Matriz de Acciones de Miembro')
disp(AM)
k=memb(i,4);
EA(i)=prop(k,3)*prop(k,2);
EI(i)=prop(k,3)*prop(k,4);
end
EA
EI
%matriz miembro
SM=zeros(6,6,1);
for i=1:m;
SM(:,:,i)=[EA(i)/L(i) 0 0 -EA(i)/L(i) 0 0;...
0 12*EI(i)/L(i)^3 6*EI(i)/L(i)^2 0 -12*EI(i)/L(i)^3 6*EI(i)/L(i)^2;...
0 6*EI(i)/L(i)^2 4*EI(i)/L(i) 0 -6*EI(i)/L(i)^2 2*EI(i)/L(i);...
-EA(i)/L(i) 0 0 EA(i)/L(i) 0 0;...
0 -12*EI(i)/L(i)^3 -6*EI(i)/L(i)^2 0 12*EI(i)/L(i)^3 6*EI(i)/L(i)^2;...
0 6*EI(i)/L(i)^2 2*EI(i)/L(i) 0 -6*EI(i)/L(i)^2 4*EI(i)/L(i)];
end
SM;
%matriz miembro en coordendas globales
ze=zeros(3,3);
SMD=zeros(6,6,1);
for i=1:m
RT=R(:,:,i);
RT=[RT ze;ze RT];
SMD(:,:,i)=RT'*SM(:,:,i)*RT;
end
SMD;
%matriz total de nudo
N=3*n-sum(r);
SJ=zeros(3*n,3*n);
for i=1:m;
j1=3*memb(i,2)-2;j2=3*memb(i,2)-1;j3=3*memb(i,2);
k1=3*memb(i,3)-2;k2=3*memb(i,3)-1;k3=3*memb(i,3);
if r(j1,1)==0
j1=j1-rc(j1,1);
else
j1=N+rc(j1,1);
end
if r(j2,1)==0
j2=j2-rc(j2,1);
else
j2=N+rc(j2,1);
end
if r(j3,1)==0
j3=j3-rc(j3,1);
else
j3=N+rc(j3,1);
end
if r(k1,1)==0
k1=k1-rc(k1,1);
else
k1=N+rc(k1,1);
end
if r(k2,1)==0
k2=k2-rc(k2,1);
else
k2=N+rc(k2,1);
end
if r(k3,1)==0
k3=k3-rc(k3,1);
else
k3=N+rc(k3,1);
end
if r(j1,1)==0;
SJ(j1,j1)=SJ(j1,j1)+SMD(1,1,i);
SJ(j2,j1)=SJ(j2,j1)+SMD(2,1,i);
SJ(j3,j1)=SJ(j3,j1)+SMD(3,1,i);
SJ(k1,j1)=SMD(4,1,i);
SJ(k2,j1)=SMD(5,1,i);
SJ(k3,j1)=SMD(6,1,i);
end
if r(j2,1)==0;
SJ(j1,j2)=SJ(j1,j2)+SMD(1,2,i);
SJ(j2,j2)=SJ(j2,j2)+SMD(2,2,i);
SJ(j3,j2)=SJ(j3,j2)+SMD(3,2,i);
SJ(k1,j2)=SMD(4,2,i);
SJ(k2,j2)=SMD(5,2,i);
SJ(k3,j2)=SMD(6,2,i);
end
if r(j3,1)==0;
SJ(j1,j3)=SJ(j1,j3)+SMD(1,3,i);
SJ(j2,j3)=SJ(j2,j3)+SMD(2,3,i);
SJ(j3,j3)=SJ(j3,j3)+SMD(3,3,i);
SJ(k1,j3)=SMD(4,3,i);
SJ(k2,j3)=SMD(5,3,i);
SJ(k3,j3)=SMD(6,3,i);
end
if r(k1,1)==0;
SJ(j1,k1)=SMD(1,4,i);
SJ(j2,k1)=SMD(2,4,i);
SJ(j3,k1)=SMD(3,4,i);
SJ(k1,k1)=SJ(k1,k1)+SMD(4,4,i);
SJ(k2,k1)=SJ(k2,k1)+SMD(5,4,i);
SJ(k3,k1)=SJ(k3,k1)+SMD(6,4,i);
end
if r(k2,1)==0;
SJ(j1,k2)=SMD(1,5,i);
SJ(j2,k2)=SMD(2,5,i);
SJ(j3,k2)=SMD(3,5,i);
SJ(k1,k2)=SJ(k1,k2)+SMD(4,5,i);
SJ(k2,k2)=SJ(k2,k2)+SMD(5,5,i);
SJ(k3,k2)=SJ(k3,k2)+SMD(6,5,i);
end
if r(k3,1)==0;
SJ(j1,k3)=SMD(1,6,i);
SJ(j2,k3)=SMD(2,6,i);
SJ(j3,k3)=SMD(3,6,i);
SJ(k1,k3)=SJ(k1,k3)+SMD(4,6,i);
SJ(k2,k3)=SJ(k2,k3)+SMD(5,6,i);
SJ(k3,k3)=SJ(k3,k3)+SMD(6,6,i);
end
end
SJ;%matrizdenudototal
lc=size(mlc);
cl=lc(1,1);
AML1=zeros(m,6);
if mlc==0*mlc
AML1=AML1;
else
for i=1:cl;
temp=mlc(i,1);
Ai=mlc(i,2:4)';
a=mlc(i,5);b=L(temp)-a;
TML=[
b/L(temp) 0 0;...
0 b^2*(3*a+b)/L(temp)^3 6*a*b/L(temp)^3;...
0 a*b^2/L(temp)^2 b*(2*a-b)/L(temp)^2;...
a/L(temp) 0 0;...
0 a^2*(a+3*b)/L(temp)^3 -6*a*b/L(temp)^3;...
0 -a^2*b/L(temp)^2 a*(2*b-a)/L(temp)^2];
AMi=TML*Ai;
AML1(temp,:)=AML1(temp,:)+AMi';
end
end
clear('lc','temp','map','mbp','mam','mbm','rap','rbp','rap','ram','a');AML1;
lc=size(mld);
cl=lc(1,1);
AML2=zeros(m,6);
if mld==0*mld;
AML2=AML2;
else
for i=1:cl;
temp=mld(i,1);
w1=mld(i,2);w2=mld(i,3);d1=mld(i,4);d2=mld(i,5);
q=min(w1,w2);c=L(temp)-d2;b=d2-d1;a=d1;e=c+b/2;d=a+b/2;
ma=-q*b*(b^2*(L(temp)+3*(c-a))-24*e^2*d)/(24*L(temp)^2);
ra=q*b*(4*e^2*(L(temp)+2*d)-b^2*(c-a))/(4*L(temp)^3);
mb=(ra*L(temp)-q*b*e-ma);rb=q*b-ra;
%AML2(temp,1)=AML2(temp,1)+ra;
AML2(temp,2)=AML2(temp,2)+ra %+ri;%solopara4.18-8y4.18-9
AML2(temp,3)=AML2(temp,3)+ma %+mi;%solopara4.18-8y4.18-9
AML2(temp,5)=AML2(temp,5)+rb %+rd;%solopara4.18-8y4.18-9
AML2(temp,6)=AML2(temp,6)+mb %+md;%solopara4.18-8y4.18-9
end
end
clear('lc','cl','temp','ma','mb');AML2;
%%%%%%%%%%%%%%%
AML=AML1+AML2;
%%%%%%%%%%%%%%%
%cargas en los nudos (nlc:nodal load concenter)
%[#n Fx Fy]
lc=size(nlc);
cl=lc(1,1);
A=zeros(3*n,1);
for i=1:cl;
temp=nlc(i,1);
A(3*temp-2,1)=nlc(i,2);
A(3*temp-1,1)=nlc(i,3);
A(3*temp,1)=nlc(i,4);
end
clear('temp','lc','cl');A;
%matriz carga de nudo equivalente;
AE=zeros(3*n,1);
for i=1:m;
j1=3*memb(i,2)-2;j2=3*memb(i,2)-1;j3=3*memb(i,2);
k1=3*memb(i,3)-2;k2=3*memb(i,3)-1;k3=3*memb(i,3);
AE(j1,1)=AE(j1,1)-AML(i,1)*cx(i)+AML(i,2)*cy(i);
AE(j2,1)=AE(j2,1)-AML(i,1)*cy(i)-AML(i,2)*cx(i);
AE(j3,1)=AE(j3,1)-AML(i,3);
AE(k1,1)=AE(k1,1)-AML(i,4)*cx(i)+AML(i,5)*cy(i);
AE(k2,1)=AE(k2,1)-AML(i,4)*cy(i)-AML(i,5)*cx(i);
AE(k3,1)=AE(k3,1)-AML(i,6);
end
AE;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%carga de nudo combinada
AC=AE*0;
for i=1:3*n;
if r(i,1)==0;
q=i-rc(i,1);
else
q=N+rc(i,1);
end
AC(q,1)=A(i,1)+AE(i,1);
end
AC;%ok carga de nudo combinada y ordenada
%%%%%%%%%%%%%%%%%%RESULTADOS%%%%%%%%%%%%%%%%
AD=AC(1:N,1);ARL=-1*AC(N+1:3*n,1)
S=SJ(1:N,1:N);SRD=SJ(N+1:3*n,1:N);
D=inv(S)*AD%desplazamientos de nudos
AR=ARL+SRD*D%reacciones en nudos
%%%%%%ACCIONES DE MIEMBRO%%%%%%%%%%%%%%%%%%
comp=zeros(3*n-N,1);
D=[D;comp];
AM=zeros(1,6);
for i=1:m
j1=3*memb(i,2)-2;j2=3*memb(i,2)-1;j3=3*memb(i,2);
k1=3*memb(i,3)-2;k2=3*memb(i,3)-1;k3=3*memb(i,3);
kk1=EA(i)/L(i);kk2=4*EI(i)/L(i);kk3=1.5*kk2/L(i);kk4=2*kk3/L(i);
AM(i,1)=AML(i,1)+kk1*((D(j1)-D(k1))*cx(i)+(D(j2)-D(k2))*cy(i));
AM(i,2)=AML(i,2)+kk4*(-(D(j1)-D(k1))*cy(i)+(D(j2)D(k2))*cx(i))+kk3*(D(j3)+D(k3));
AM(i,3)=AML(i,3)+kk3*(-(D(j1)-D(k1))*cy(i)+(D(j2)D(k2))*cx(i))+kk2*(D(j3)+D(k3)/2);
AM(i,4)=AML(i,4)+kk1*(-(D(j1)-D(k1))*cx(i)-(D(j2)-D(k2))*cy(i));
AM(i,5)=AML(i,5)+kk4*((D(j1)-D(k1))*cy(i)-(D(j2)-D(k2))*cx(i))kk3*(D(j3)+D(k3));
AM(i,6)=AML(i,6)+kk3*(-(D(j1)-D(k1))*cy(i)+(D(j2)D(k2))*cx(i))+kk2*(D(j3)/2+D(k3));
end
clc%limpia comand window
disp('----------------------RESULTADOS----------------------')
disp('Matriz desplazamientos')
disp(D)
disp('Matriz de Reacciones')
disp(AR);
disp('Matriz de Acciones de Miembro')
disp(AM);
disp ('RESPUESTAS EN COORDENADAS GLOBALES')
GI(:,:,i)=prop(k,5)*prop(k,3);
end
EI=EI(:);
GI=GI(:);
%matriz miembro
SM=zeros(6,6,1);
for i=1:m;
SM(:,:,i)=[GI(i)/L(i) 0 0 -GI(i)/L(i) 0 0;...
0 4*EI(i)/L(i) -6*EI(i)/L(i)^2 0 2*EI(i)/L(i) 6*EI(i)/L(i)^2;...
0 -6*EI(i)/L(i)^2 12*EI(i)/L(i)^3 0 -6*EI(i)/L(i)^2 12*EI(i)/L(i)^3;...
-GI(i)/L(i) 0 0 GI(i)/L(i) 0 0;...
0 2*EI(i)/L(i) -6*EI(i)/L(i)^2 0 4*EI(i)/L(i) 6*EI(i)/L(i)^2;...
0 6*EI(i)/L(i)^2 -12*EI(i)/L(i)^3 0 6*EI(i)/L(i)^2 12*EI(i)/L(i)^3];
end
SM;
%matriz miembro en coordendas globales
ze=zeros(3,3);
SMD=zeros(6,6,1);
for i=1:m
RT=R(:,:,i);
RT=[RT ze;ze RT];
SMD(:,:,i)=RT'*SM(:,:,i)*RT;
end
SMD;
%matriz total de nudo
N=3*n-sum(r);
SJ=zeros(3*n,3*n);
for i=1:m;
j1=3*memb(i,2)-2;j2=3*memb(i,2)-1;j3=3*memb(i,2);
k1=3*memb(i,3)-2;k2=3*memb(i,3)-1;k3=3*memb(i,3);
if r(j1,1)==0
j1=j1-rc(j1,1);
else
j1=N+rc(j1,1);
end
if r(j2,1)==0
j2=j2-rc(j2,1);
else
j2=N+rc(j2,1);
end
if r(j3,1)==0
j3=j3-rc(j3,1);
else
j3=N+rc(j3,1);
end
if r(k1,1)==0
k1=k1-rc(k1,1);
else
k1=N+rc(k1,1);
end
if r(k2,1)==0
k2=k2-rc(k2,1);
else
k2=N+rc(k2,1);
end
if r(k3,1)==0
k3=k3-rc(k3,1);
else
k3=N+rc(k3,1);
end
if r(j1,1)==0;
SJ(j1,j1)=SJ(j1,j1)+SMD(1,1,i);
SJ(j2,j1)=SJ(j2,j1)+SMD(2,1,i);
SJ(j3,j1)=SJ(j3,j1)+SMD(3,1,i);
SJ(k1,j1)=SMD(4,1,i);
SJ(k2,j1)=SMD(5,1,i);
SJ(k3,j1)=SMD(6,1,i);
end
if r(j2,1)==0;
SJ(j1,j2)=SJ(j1,j2)+SMD(1,2,i);
SJ(j2,j2)=SJ(j2,j2)+SMD(2,2,i);
SJ(j3,j2)=SJ(j3,j2)+SMD(3,2,i);
SJ(k1,j2)=SMD(4,2,i);
SJ(k2,j2)=SMD(5,2,i);
SJ(k3,j2)=SMD(6,2,i);
end
if r(j3,1)==0;
SJ(j1,j3)=SJ(j1,j3)+SMD(1,3,i);
SJ(j2,j3)=SJ(j2,j3)+SMD(2,3,i);
SJ(j3,j3)=SJ(j3,j3)+SMD(3,3,i);
SJ(k1,j3)=SMD(4,3,i);
SJ(k2,j3)=SMD(5,3,i);
SJ(k3,j3)=SMD(6,3,i);
end
if r(k1,1)==0;
SJ(j1,k1)=SMD(1,4,i);
SJ(j2,k1)=SMD(2,4,i);
SJ(j3,k1)=SMD(3,4,i);
SJ(k1,k1)=SJ(k1,k1)+SMD(4,4,i);
SJ(k2,k1)=SJ(k2,k1)+SMD(5,4,i);
SJ(k3,k1)=SJ(k3,k1)+SMD(6,4,i);
end
if r(k2,1)==0;
SJ(j1,k2)=SMD(1,5,i);
SJ(j2,k2)=SMD(2,5,i);
SJ(j3,k2)=SMD(3,5,i);
SJ(k1,k2)=SJ(k1,k2)+SMD(4,5,i);
SJ(k2,k2)=SJ(k2,k2)+SMD(5,5,i);
SJ(k3,k2)=SJ(k3,k2)+SMD(6,5,i);
end
if r(k3,1)==0;
SJ(j1,k3)=SMD(1,6,i);
SJ(j2,k3)=SMD(2,6,i);
SJ(j3,k3)=SMD(3,6,i);
SJ(k1,k3)=SJ(k1,k3)+SMD(4,6,i);
SJ(k2,k3)=SJ(k2,k3)+SMD(5,6,i);
SJ(k3,k3)=SJ(k3,k3)+SMD(6,6,i);
end
end
SJ;%matrizdenudototal
lc=size(mlc);
cl=lc(1,1);
AML1=zeros(m,6);
for i=1:cl;
temp=mlc(i,1);
Ai=mlc(i,2:4)';
a=mlc(i,5);b=L(temp)-a;
TML=[
-b/L(temp) 0 0;...
0 -b*(2*a-b)/L(temp)^2 -a*b^2/L(temp)^2 ;...
0 6*a*b/L(temp)^3 b^2*(3*a+b)/L(temp)^3;...
-a/L(temp) 0 0;...
0 -a*(2*b-a)/L(temp)^2 a^2*b/L(temp)^2;...
0 -6*a*b/L(temp)^3 a^2*(a+3*b)/L(temp)^3];
AMi=TML*Ai;
AML1(temp,:)=AML1(temp,:)+AMi';
end
clear('lc','temp','map','mbp','mam','mbm','rap','rbp','rap','ram','a');AML1
lc=size(mld);
cl=lc(1,1);
AML2=zeros(m,6);
for i=1:cl;
temp=mld(i,1);
w1=mld(i,2);w2=mld(i,3);d1=mld(i,4);d2=mld(i,5);
q=min(w1,w2);c=L(temp)-d2;b=d2-d1;a=d1;e=c+b/2;d=a+b/2;
ma=q*b*(b^2*(L(temp)+3*(c-a))-24*e^2*d)/(24*L(temp)^2);
ra=q*b*(4*e^2*(L(temp)+2*d)-b^2*(c-a))/(4*L(temp)^3);
mb=-(ra*L(temp)-q*b*e+ma);rb=q*b-ra;
%AML2(temp,1)=AML2(temp,1)+ra;
AML2(temp,2)=AML2(temp,2)+ma;
AML2(temp,3)=AML2(temp,3)+ra;
AML2(temp,5)=AML2(temp,5)+mb;
AML2(temp,6)=AML2(temp,6)+rb;
end
clear('lc','cl','temp','ma','mb');AML2
%%%%%%%%%%%%%%%
AML=AML1+AML2;
%%%%%%%%%%%%%%%
%[#n Mx My Fz]
lc=size(nlc);
cl=lc(1,1);
A=zeros(3*n,1);
for i=1:cl;
temp=nlc(i,1);
A(3*temp-2,1)=nlc(i,2);
A(3*temp-1,1)=nlc(i,3);
A(3*temp,1)=nlc(i,4);
end
clear('temp','lc','cl');A
%matriz carga de nudo equivalente;
AE=zeros(3*n,1);
for i=1:m;
j1=3*memb(i,2)-2;j2=3*memb(i,2)-1;j3=3*memb(i,2);
k1=3*memb(i,3)-2;k2=3*memb(i,3)-1;k3=3*memb(i,3);
AE(j1,1)=AE(j1,1)-AML(i,1)*cx(i)+AML(i,2)*cy(i);
AE(j2,1)=AE(j2,1)-AML(i,1)*cy(i)-AML(i,2)*cx(i);
AE(j3,1)=AE(j3,1)-AML(i,3);
AE(k1,1)=AE(k1,1)-AML(i,4)*cx(i)+AML(i,5)*cy(i);
AE(k2,1)=AE(k2,1)-AML(i,4)*cy(i)-AML(i,5)*cx(i);
AE(k3,1)=AE(k3,1)-AML(i,6);
end
AE;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%carga de nudo combinada
AC=AE*0;
for i=1:3*n;
if r(i,1)==0;
q=i-rc(i,1);
else
q=N+rc(i,1);
end
AC(q,1)=A(i,1)+AE(i,1);
end
AC;%ok carga de nudo combinada y ordenada
%%%%%%%%%%%%%%%%%%RESULTADOS%%%%%%%%%%%%%%%%
AD=AC(1:N,1);ARL=-1*AC(N+1:3*n,1);
S=SJ(1:N,1:N);SRD=SJ(N+1:3*n,1:N);
D=inv(S)*AD%desplazamientos de nudos
AR=ARL+SRD*D%reacciones en nudos
%%%%%%ACCIONES DE MIEMBRO%%%%%%%%%%%%%%%%%%
comp=zeros(3*n-N,1);
D=[D;comp];
AM=zeros(m,6);
for i=1:m
j1=3*memb(i,2)-2;j2=3*memb(i,2)-1;j3=3*memb(i,2);
k1=3*memb(i,3)-2;k2=3*memb(i,3)-1;k3=3*memb(i,3);
kk1=GI(i)/L(i);kk2=4*EI(i)/L(i);kk3=1.5*kk2/L(i);kk4=2*kk3/L(i);
AM(i,1)=AML(i,1)+kk1*((D(j1)-D(k1))*cx(i)+(D(j2)-D(k2))*cy(i));
AM(i,2)=AML(i,2)+kk2*(-(D(j1)+D(k1)/2)*cy(i)+(D(j2)+D(k2)/2)*cx(i))kk3*(D(j3)-D(k3));
AM(i,3)=AML(i,3)+kk3*((D(j1)+D(k1))*cy(i)-(D(j2)+D(k2))*cx(i))+kk4*(D(j3)D(k3));
AM(i,4)=AML(i,4)+kk1*(-(D(j1)-D(k1))*cx(i)-(D(j2)-D(k2))*cy(i));
AM(i,5)=AML(i,5)+kk2*(-(D(j1)/2+D(k1))*cy(i)+(D(j2)/2+D(k2))*cx(i))kk3*(D(j3)-D(k3));
AM(i,6)=AML(i,6)+kk3*(-(D(j1)+D(k1))*cy(i)+(D(j2)+D(k2))*cx(i))-kk4*(D(j3)D(k3));
end