107069260 trabajo-final-de-estructuras-ii

18
CODIFICACIÓN DEL PROGRAMA EN MATLAB PARA LA SOLUCIÓN DE VIGAS DE “N” TRAMOS POR EL MÉTODO DE LA RIGIDEZ: function VIGARIGIDEZ %%%%% ingreso de datos clc node=input ('INGRESE LAS COORDENADAS DE CADA NUDO [#n cx cy] =') memb=input ('INGRESE MIEMBROS [#m ni nj prop(i)] =') rest=input ('INGRESE RESTRICCIONES DE CADA NUDO [#n ry rz] =') prop=input ('INGRESE PROPIEDADES DE CADA MIEMBRO [#m E I] =') nlc=input ('INGRESE CARGAS CONCENTRADAS EN NUDOS [#n Fy Mz] =') mlc=input ('INGRESE CARGAS CONCENTRADAS EN MIEMBROS [#m Fy Mz d1 d2] =') mld=input ('INGRESE CARGAS DISTRIBUIDAS EN MIEMBROS [#m w1 w2 d1 d2] =') %longitud nn=size(node); n=nn(1,1); L=zeros(1,1,1); for i=1:n-1 L(:,:,i)=((node(memb(i,2),2)-node(memb(i,3),2))^2+... (node(memb(i,2),3)-node(memb(i,3),3))^2)^.5; end L=L(:); %restricciones r=zeros(2*n,1); tp=size(rest); pt=tp(1,1); for i=1:pt tp=rest(i,1); r(2*tp-1,1)=rest(i,2); r(2*tp,1)=rest(i,3);%r:es la lista de restricciones end r; t=0; rc=zeros(1,1); for i=1:2*n; rc(i,1)=r(i,1)+t; t=rc(i,1); %rc:es rest cumu end %EI EI=zeros(n-1,1); for i=1:n-1 k=memb(i,4); EI(i)=prop(k,2)*prop(k,3); end EI; %matriz miembro SM=zeros(4,4,1); for i=1:n-1; SM(:,:,i)=(EI(i)/L(i)^3)*[12 6*L(i) -12 6*L(i);... 6*L(i) 4*L(i)^2 -6*L(i) 2*L(i)^2;... -12 -6*L(i) 12 -6*L(i);... 6*L(i) 2*L(i)^2 -6*L(i) 4*L(i)^2]; end SM; %matriz total de nudo N=2*n-sum(r); SJ=zeros(2*n,1); for i=1:n-1; j1=2*i-1;j2=2*i;k1=2*i+1;k2=2*i+2; if r(j1,1)==0 j1=j1-rc(j1,1); else j1=N+rc(j1,1);

Transcript of 107069260 trabajo-final-de-estructuras-ii

Page 1: 107069260 trabajo-final-de-estructuras-ii

CODIFICACIÓN DEL PROGRAMA EN MATLAB PARA LA SOLUCIÓN DE VIGAS DE “N” TRAMOS POR EL MÉTODO DE LA RIGIDEZ:

function VIGARIGIDEZ %%%%% ingreso de datosclcnode=input ('INGRESE LAS COORDENADAS DE CADA NUDO [#n cx cy] =') memb=input ('INGRESE MIEMBROS [#m ni nj prop(i)] =')rest=input ('INGRESE RESTRICCIONES DE CADA NUDO [#n ry rz] =')prop=input ('INGRESE PROPIEDADES DE CADA MIEMBRO [#m E I] =')nlc=input ('INGRESE CARGAS CONCENTRADAS EN NUDOS [#n Fy Mz] =')mlc=input ('INGRESE CARGAS CONCENTRADAS EN MIEMBROS [#m Fy Mz d1 d2] =') mld=input ('INGRESE CARGAS DISTRIBUIDAS EN MIEMBROS [#m w1 w2 d1 d2] =') %longitudnn=size(node);n=nn(1,1);L=zeros(1,1,1);for i=1:n-1 L(:,:,i)=((node(memb(i,2),2)-node(memb(i,3),2))^2+... (node(memb(i,2),3)-node(memb(i,3),3))^2)^.5; end L=L(:);%restriccionesr=zeros(2*n,1);tp=size(rest);pt=tp(1,1);for i=1:pt tp=rest(i,1); r(2*tp-1,1)=rest(i,2); r(2*tp,1)=rest(i,3);%r:es la lista de restriccionesendr;t=0;rc=zeros(1,1);for i=1:2*n; rc(i,1)=r(i,1)+t; t=rc(i,1); %rc:es rest cumuend %EIEI=zeros(n-1,1);for i=1:n-1 k=memb(i,4); EI(i)=prop(k,2)*prop(k,3);end EI; %matriz miembroSM=zeros(4,4,1);for i=1:n-1; SM(:,:,i)=(EI(i)/L(i)^3)*[12 6*L(i) -12 6*L(i);... 6*L(i) 4*L(i)^2 -6*L(i) 2*L(i)^2;... -12 -6*L(i) 12 -6*L(i);... 6*L(i) 2*L(i)^2 -6*L(i) 4*L(i)^2]; end SM;%matriz total de nudoN=2*n-sum(r);SJ=zeros(2*n,1); for i=1:n-1; j1=2*i-1;j2=2*i;k1=2*i+1;k2=2*i+2; if r(j1,1)==0 j1=j1-rc(j1,1); else j1=N+rc(j1,1);

Page 2: 107069260 trabajo-final-de-estructuras-ii

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); endendSJ;%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;

Page 3: 107069260 trabajo-final-de-estructuras-ii

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

Page 4: 107069260 trabajo-final-de-estructuras-ii

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 SOLUCIÓN DE VIGAS DE N TRAMOS---------') disp('---------------------------------------------------------------') disp('-------UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA-------') disp('------- FACULTAD DE INGENIERÍA DE MINAS GEOLOGÍA Y CIVIL-------') disp('------ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERÍA CIVIL-----') disp('---------------CURSO: ANÁLISIS ESTRUCTURAL II ----------------') disp('----------------------SIGLA: IC - 444 ------------------------') disp('----------------ALUMNO: BOLÍVAR ORÉ LUIS PAVEL-----------------') disp('---------DOCENTE DEL CURSO: ING. RUBÉN YACHAPA CONDEÑA---------') 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

Page 5: 107069260 trabajo-final-de-estructuras-ii

CODIFICACIÓN DEL PROGRAMA EN MATLAB PARA LA SOLUCIÓN DE ARMADURAS POR EL MÉTODO DE LA RIGIDEZ:

function ARMADURAdisp('ingrese');node=input('coordenadas:[#n cx cy]=');disp('ingrese');memb=input('miembros:[#n ni nj prop.]');disp('ingrese');rest=input('restricciones:[#n resX resY]');disp('ingrese');prop=input('propiedades:[#prop A E]');disp('ingrese');nlc=input('Cargas en Nudos:[#n Fx(+)> Fy(+)^]');disp('ingrese');mlc=input('Cargas Concentradas en miembro:[#m Fx< Fy! Mz d]');disp('ingrese');mld=input('cargas distribuidas en miembro:[#m w1 w2 d1 d2]');%longitudnn=size(node);n=nn(1,1);mm=size(memb);m=mm(1,1);L=zeros(1,1,1);for i=1:m L(:,:,i)=((node(memb(i,2),2)-node(memb(i,3),2))^2+... (node(memb(i,2),3)-node(memb(i,3),3))^2)^.5; end L=L(:);%cosenos directorescx=zeros(1,1);cy=zeros(1,1);for i=1:m; cx(i,1)=(node(memb(i,3),2)-node(memb(i,2),2))/L(i); cy(i,1)=(node(memb(i,3),3)-node(memb(i,2),3))/L(i);endcx;cy;%restriccionesºr=zeros(2*n,1);tp=size(rest);pt=tp(1,1);for i=1:pt tp=rest(i,1); r(2*tp-1,1)=rest(i,2); r(2*tp,1)=rest(i,3);%r:es la lista de restriccionesendr; t=0;rc=zeros(1,1);for i=1:2*n; rc(i,1)=r(i,1)+t; t=rc(i,1); %rc:es rest cumuend %EAEA=zeros(n-1,1);for i=1:m k=memb(i,4); EA(i)=prop(k,2)*prop(k,3);end EA; %matriz miembroSMD=zeros(4,4,1);

Page 6: 107069260 trabajo-final-de-estructuras-ii

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 nudoN=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); endendSJ;%matrizdenudototal

Page 7: 107069260 trabajo-final-de-estructuras-ii

lc=size(mlc); cl=lc(1,1); AML1=zeros(m,4); if mlc==0*mlc AML1=AML1;elsefor 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';endendclear('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; endend 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

Page 8: 107069260 trabajo-final-de-estructuras-ii

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)

Page 9: 107069260 trabajo-final-de-estructuras-ii

CODIFICACIÓN DEL PROGRAMA EN MATLAB PARA LA SOLUCIÓN DE PÓRTICOS EN DOS DIMENSIONES POR EL MÉTODO DE LA RIGIDEZ:

function PORTICO2Ddisp('ingrese');node=input('coordenadas:[#n cx cy]=');disp('ingrese');memb=input('miembros:[#n ni nj prop.]=');disp('libre=0 retringido=1');disp('ingrese');rest=input('restricciones:[#n resX resY resZ]=');disp('ingrese');prop=input('propiedades:[#prop A E I]=');disp('ingrese');nlc=input('Cargas en Nudos:[#n Fx(+)> Fy(+)^ Fz]=');disp('ingrese');mlc=input('Cargas Concentradas en miembro:[#m Fx< Fy! Mz d]=');disp('ingrese');mld=input('cargas distribuidas en miembro:[#m w1 w2 d1 d2]=');%longitudnn=size(node);n=nn(1,1);mm=size(memb);m=mm(1,1);L=zeros(1,1);for i=1:m L(i,1)=((node(memb(i,2),2)-node(memb(i,3),2))^2+... (node(memb(i,2),3)-node(memb(i,3),3))^2)^.5; endL; %cosenos directorescx=zeros(1,1);cy=zeros(1,1);for i=1:m; cx(i,1)=(node(memb(i,3),2)-node(memb(i,2),2))/L(i); cy(i,1)=(node(memb(i,3),3)-node(memb(i,2),3))/L(i);end %matrices de rotacion de miembroR=zeros(3,3,1);for i=1:m R(1,1,i)=cx(i);R(1,2,i)=cy(i); R(2,1,i)=-cy(i);R(2,2,i)=cx(i);R(3,3,i)=1;end %restriccionesr=zeros(3*n,1);tp=size(rest);pt=tp(1,1);for i=1:pt tp=rest(i,1); r(3*tp-2,1)=rest(i,2); r(3*tp-1,1)=rest(i,3);%r:es la lista de restricciones r(3*tp,1)=rest(i,4);endt=0;rc=zeros(1,1);for i=1:3*n; rc(i,1)=r(i,1)+t; t=rc(i,1); %rc:es rest cumuendrc;%EAEA=zeros(m,1);EI=zeros(m,1);

Page 10: 107069260 trabajo-final-de-estructuras-ii

for i=1:m k=memb(i,4); EA(i)=prop(k,3)*prop(k,2); EI(i)=prop(k,3)*prop(k,4);end EAEI %matriz miembroSM=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 globalesze=zeros(3,3);SMD=zeros(6,6,1);for i=1:mRT=R(:,:,i);RT=[RT ze;ze RT];SMD(:,:,i)=RT'*SM(:,:,i)*RT;endSMD; %matriz total de nudoN=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

Page 11: 107069260 trabajo-final-de-estructuras-ii

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); endendSJ;%matrizdenudototal lc=size(mlc); cl=lc(1,1); AML1=zeros(m,6); if mlc==0*mlc AML1=AML1;else

Page 12: 107069260 trabajo-final-de-estructuras-ii

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';endendclear('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 endend 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);

Page 13: 107069260 trabajo-final-de-estructuras-ii

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')

Page 14: 107069260 trabajo-final-de-estructuras-ii

CODIFICACIÓN DEL PROGRAMA EN MATLAB PARA LA SOLUCIÓN DE PARRILAS POR EL MÉTODO DE LA RIGIDEZ:

function parrilladisp('ingrese');node=input('coordenadas:[#n cx cy]=');disp('ingrese');memb=input('miembros:[#n ni nj prop.]=');disp('libre=0 retringido=1');disp('ingrese');rest=input('restricciones:[#n resX resY resZ]=');disp('ingrese');prop=input('propiedades:[#prop A E I]=');disp('ingrese');nlc=input('Cargas en Nudos:[#n Fx(+)> Fy(+)^ Fz]=');disp('ingrese');mlc=input('Cargas Concentradas en miembro:[#m Fx< Fy! Mz d]=');disp('ingrese');mld=input('cargas distribuidas en miembro:[#m w1 w2 d1 d2]=');%longitudnn=size(node);n=nn(1,1);mm=size(memb);m=mm(1,1);L=zeros(1,1);for i=1:m L(i,1)=((node(memb(i,2),2)-node(memb(i,3),2))^2+... (node(memb(i,2),3)-node(memb(i,3),3))^2)^.5; endL;%cosenos directorescx=zeros(1,1);cy=zeros(1,1);for i=1:m; cx(i,1)=(node(memb(i,3),2)-node(memb(i,2),2))/L(i); cy(i,1)=(node(memb(i,3),3)-node(memb(i,2),3))/L(i);end%matrices de rotacion de miembroR=zeros(3,3,1);for i=1:m R(1,1,i)=cx(i);R(1,2,i)=cy(i); R(2,1,i)=-cy(i);R(2,2,i)=cx(i);R(3,3,i)=1;end %restriccionesºr=zeros(3*n,1);tp=size(rest);pt=tp(1,1);for i=1:pt tp=rest(i,1); r(3*tp-2,1)=rest(i,2); r(3*tp-1,1)=rest(i,3);%r:es la lista de restricciones r(3*tp,1)=rest(i,4);endt=0;rc=zeros(1,1);for i=1:3*n; rc(i,1)=r(i,1)+t; t=rc(i,1); %rc:es rest cumuendrc;%EA %[#m E Ix Iy G]EI=zeros(1,1,1);GI=zeros(1,1,1);for i=1:m k=memb(i,4); EI(:,:,i)=prop(k,2)*prop(k,4);

Page 15: 107069260 trabajo-final-de-estructuras-ii

GI(:,:,i)=prop(k,5)*prop(k,3);end EI=EI(:);GI=GI(:); %matriz miembroSM=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 globalesze=zeros(3,3);SMD=zeros(6,6,1);for i=1:mRT=R(:,:,i);RT=[RT ze;ze RT];SMD(:,:,i)=RT'*SM(:,:,i)*RT;endSMD; %matriz total de nudoN=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

Page 16: 107069260 trabajo-final-de-estructuras-ii

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); endendSJ;%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;...

Page 17: 107069260 trabajo-final-de-estructuras-ii

0 -6*a*b/L(temp)^3 a^2*(a+3*b)/L(temp)^3]; AMi=TML*Ai; AML1(temp,:)=AML1(temp,:)+AMi';endclear('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

Page 18: 107069260 trabajo-final-de-estructuras-ii

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