107069260 trabajo-final-de-estructuras-ii

Post on 13-Jul-2015

59 views 2 download

Transcript of 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);

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;

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

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

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

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

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)

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

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

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

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

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

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

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

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;...

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

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