SlideShare una empresa de Scribd logo
1 de 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);
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 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 ARMADURA
disp('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]');
%longitud
nn=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 directores
cx=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
cx;
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 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

%EA
EA=zeros(n-1,1);
for i=1:m
    k=memb(i,4);
    EA(i)=prop(k,2)*prop(k,3);
end

EA;

%matriz miembro
SMD=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 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)
CODIFICACIÓN DEL PROGRAMA EN MATLAB PARA LA SOLUCIÓN DE PÓRTICOS EN DOS
DIMENSIONES POR EL MÉTODO DE LA RIGIDEZ:

function PORTICO2D
disp('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]=');
%longitud
nn=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;
     end
L;

%cosenos directores
cx=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 miembro
R=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);
end
t=0;
rc=zeros(1,1);
for i=1:3*n;
     rc(i,1)=r(i,1)+t;
     t=rc(i,1); %rc:es rest cumu
end
rc;
%EA
EA=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

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')
CODIFICACIÓN DEL PROGRAMA EN MATLAB PARA LA SOLUCIÓN DE PARRILAS POR EL
MÉTODO DE LA RIGIDEZ:
function parrilla
disp('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]=');
%longitud
nn=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;
     end
L;
%cosenos directores
cx=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 miembro
R=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);
end
t=0;
rc=zeros(1,1);
for i=1:3*n;
     rc(i,1)=r(i,1)+t;
     t=rc(i,1); %rc:es rest cumu
end
rc;
%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 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

Más contenido relacionado

La actualidad más candente

電路學 - [第五章] 一階RC/RL電路
電路學 - [第五章] 一階RC/RL電路電路學 - [第五章] 一階RC/RL電路
電路學 - [第五章] 一階RC/RL電路Simen Li
 
Development of Matlab Programme to study nonlinear vibration of a cantilever ...
Development of Matlab Programme to study nonlinear vibration of a cantilever ...Development of Matlab Programme to study nonlinear vibration of a cantilever ...
Development of Matlab Programme to study nonlinear vibration of a cantilever ...ijiert bestjournal
 
Simpli fied Solutions of the CLP and CCP Limiting Cases of the Problem of Apo...
Simplified Solutions of the CLP and CCP Limiting Cases of the Problem of Apo...Simplified Solutions of the CLP and CCP Limiting Cases of the Problem of Apo...
Simpli fied Solutions of the CLP and CCP Limiting Cases of the Problem of Apo...James Smith
 
Surge Swab pressure code
Surge Swab pressure codeSurge Swab pressure code
Surge Swab pressure codeANKIT KUKREJA
 
Filter design and simulation
Filter design and simulationFilter design and simulation
Filter design and simulationSandesh Agrawal
 
Code chuyển từ lịch dương sang lịch âm
Code chuyển từ lịch dương sang lịch âmCode chuyển từ lịch dương sang lịch âm
Code chuyển từ lịch dương sang lịch âmFreelancer
 
Antwoorden fourier and laplace transforms, manual solutions
Antwoorden   fourier and laplace transforms, manual solutionsAntwoorden   fourier and laplace transforms, manual solutions
Antwoorden fourier and laplace transforms, manual solutionsHildemar Alvarez
 
control engineering revision
control engineering revisioncontrol engineering revision
control engineering revisionragu nath
 
Temp kgrindlerverthree
Temp kgrindlerverthreeTemp kgrindlerverthree
Temp kgrindlerverthreefoxtrot jp R
 

La actualidad más candente (15)

電路學 - [第五章] 一階RC/RL電路
電路學 - [第五章] 一階RC/RL電路電路學 - [第五章] 一階RC/RL電路
電路學 - [第五章] 一階RC/RL電路
 
3 formulario para_vigas_y_porticos
3 formulario para_vigas_y_porticos3 formulario para_vigas_y_porticos
3 formulario para_vigas_y_porticos
 
Development of Matlab Programme to study nonlinear vibration of a cantilever ...
Development of Matlab Programme to study nonlinear vibration of a cantilever ...Development of Matlab Programme to study nonlinear vibration of a cantilever ...
Development of Matlab Programme to study nonlinear vibration of a cantilever ...
 
Simpli fied Solutions of the CLP and CCP Limiting Cases of the Problem of Apo...
Simplified Solutions of the CLP and CCP Limiting Cases of the Problem of Apo...Simplified Solutions of the CLP and CCP Limiting Cases of the Problem of Apo...
Simpli fied Solutions of the CLP and CCP Limiting Cases of the Problem of Apo...
 
Filter design1
Filter design1Filter design1
Filter design1
 
Surge Swab pressure code
Surge Swab pressure codeSurge Swab pressure code
Surge Swab pressure code
 
Filter design and simulation
Filter design and simulationFilter design and simulation
Filter design and simulation
 
log_algorithm
log_algorithmlog_algorithm
log_algorithm
 
Code chuyển từ lịch dương sang lịch âm
Code chuyển từ lịch dương sang lịch âmCode chuyển từ lịch dương sang lịch âm
Code chuyển từ lịch dương sang lịch âm
 
134 am042018
134 am042018134 am042018
134 am042018
 
M.Sc. Phy SII UV Quantum Mechanics
M.Sc. Phy SII UV Quantum MechanicsM.Sc. Phy SII UV Quantum Mechanics
M.Sc. Phy SII UV Quantum Mechanics
 
M.Sc. Phy SII UIII Quantum Mechanics
M.Sc. Phy SII UIII Quantum MechanicsM.Sc. Phy SII UIII Quantum Mechanics
M.Sc. Phy SII UIII Quantum Mechanics
 
Antwoorden fourier and laplace transforms, manual solutions
Antwoorden   fourier and laplace transforms, manual solutionsAntwoorden   fourier and laplace transforms, manual solutions
Antwoorden fourier and laplace transforms, manual solutions
 
control engineering revision
control engineering revisioncontrol engineering revision
control engineering revision
 
Temp kgrindlerverthree
Temp kgrindlerverthreeTemp kgrindlerverthree
Temp kgrindlerverthree
 

Similar a MATLAB Program for Beam Analysis

Skema Add Maths Trial Kelantan 2017
Skema Add Maths Trial Kelantan 2017Skema Add Maths Trial Kelantan 2017
Skema Add Maths Trial Kelantan 2017Tuisyen Geliga
 
Re:ゲーム理論入門 第11回 - ふりかえり -
Re:ゲーム理論入門 第11回 - ふりかえり -Re:ゲーム理論入門 第11回 - ふりかえり -
Re:ゲーム理論入門 第11回 - ふりかえり -ssusere0a682
 
Numerical Algorithm for a few Special Functions
Numerical Algorithm for a few Special FunctionsNumerical Algorithm for a few Special Functions
Numerical Algorithm for a few Special FunctionsAmos Tsai
 
Generate Slater Type Orbitals
Generate Slater Type Orbitals Generate Slater Type Orbitals
Generate Slater Type Orbitals covalentappu
 
Research Project Primus
Research Project PrimusResearch Project Primus
Research Project PrimusPredrag Terzic
 
Csm chapters12
Csm chapters12Csm chapters12
Csm chapters12Pamela Paz
 
Математическая модель системы оценки эффективности реализации программ развит...
Математическая модель системы оценки эффективности реализации программ развит...Математическая модель системы оценки эффективности реализации программ развит...
Математическая модель системы оценки эффективности реализации программ развит...Anatoly Simkin
 
MATLAB programs Power System Simulation lab (Electrical Engineer)
MATLAB programs Power System Simulation  lab (Electrical Engineer)MATLAB programs Power System Simulation  lab (Electrical Engineer)
MATLAB programs Power System Simulation lab (Electrical Engineer)Mathankumar S
 
Statistics formulaee
Statistics formulaeeStatistics formulaee
Statistics formulaeeSumit Satam
 
Simulation example with matlab
Simulation example with matlabSimulation example with matlab
Simulation example with matlabRoma Larumbia
 
Signals and systems: part i solutions
Signals and systems: part i solutionsSignals and systems: part i solutions
Signals and systems: part i solutionsPatrickMumba7
 
[Paul lorrain] solutions_manual_for_electromagneti(bookos.org)
[Paul lorrain] solutions_manual_for_electromagneti(bookos.org)[Paul lorrain] solutions_manual_for_electromagneti(bookos.org)
[Paul lorrain] solutions_manual_for_electromagneti(bookos.org)Harrisson David Assis Santos
 
Solving the energy problem of helium final report
Solving the energy problem of helium final reportSolving the energy problem of helium final report
Solving the energy problem of helium final reportJamesMa54
 
DSP LAB COMPLETE CODES.docx
DSP LAB COMPLETE CODES.docxDSP LAB COMPLETE CODES.docx
DSP LAB COMPLETE CODES.docxMUMAR57
 
Sistemas de comunicacion 4ta edicion - bruce a. carlson solutions manual
Sistemas de comunicacion   4ta edicion - bruce a. carlson solutions manualSistemas de comunicacion   4ta edicion - bruce a. carlson solutions manual
Sistemas de comunicacion 4ta edicion - bruce a. carlson solutions manualluis hernando rodriguez montenegro
 

Similar a MATLAB Program for Beam Analysis (20)

Sk7 ph
Sk7 phSk7 ph
Sk7 ph
 
Sk7 ph
Sk7 phSk7 ph
Sk7 ph
 
Abstract
AbstractAbstract
Abstract
 
Skema Add Maths Trial Kelantan 2017
Skema Add Maths Trial Kelantan 2017Skema Add Maths Trial Kelantan 2017
Skema Add Maths Trial Kelantan 2017
 
mathematics part-2.docx
mathematics part-2.docxmathematics part-2.docx
mathematics part-2.docx
 
Re:ゲーム理論入門 第11回 - ふりかえり -
Re:ゲーム理論入門 第11回 - ふりかえり -Re:ゲーム理論入門 第11回 - ふりかえり -
Re:ゲーム理論入門 第11回 - ふりかえり -
 
Numerical Algorithm for a few Special Functions
Numerical Algorithm for a few Special FunctionsNumerical Algorithm for a few Special Functions
Numerical Algorithm for a few Special Functions
 
Generate Slater Type Orbitals
Generate Slater Type Orbitals Generate Slater Type Orbitals
Generate Slater Type Orbitals
 
Research Project Primus
Research Project PrimusResearch Project Primus
Research Project Primus
 
Csm chapters12
Csm chapters12Csm chapters12
Csm chapters12
 
Математическая модель системы оценки эффективности реализации программ развит...
Математическая модель системы оценки эффективности реализации программ развит...Математическая модель системы оценки эффективности реализации программ развит...
Математическая модель системы оценки эффективности реализации программ развит...
 
MATLAB programs Power System Simulation lab (Electrical Engineer)
MATLAB programs Power System Simulation  lab (Electrical Engineer)MATLAB programs Power System Simulation  lab (Electrical Engineer)
MATLAB programs Power System Simulation lab (Electrical Engineer)
 
Ph ddefence
Ph ddefencePh ddefence
Ph ddefence
 
Statistics formulaee
Statistics formulaeeStatistics formulaee
Statistics formulaee
 
Simulation example with matlab
Simulation example with matlabSimulation example with matlab
Simulation example with matlab
 
Signals and systems: part i solutions
Signals and systems: part i solutionsSignals and systems: part i solutions
Signals and systems: part i solutions
 
[Paul lorrain] solutions_manual_for_electromagneti(bookos.org)
[Paul lorrain] solutions_manual_for_electromagneti(bookos.org)[Paul lorrain] solutions_manual_for_electromagneti(bookos.org)
[Paul lorrain] solutions_manual_for_electromagneti(bookos.org)
 
Solving the energy problem of helium final report
Solving the energy problem of helium final reportSolving the energy problem of helium final report
Solving the energy problem of helium final report
 
DSP LAB COMPLETE CODES.docx
DSP LAB COMPLETE CODES.docxDSP LAB COMPLETE CODES.docx
DSP LAB COMPLETE CODES.docx
 
Sistemas de comunicacion 4ta edicion - bruce a. carlson solutions manual
Sistemas de comunicacion   4ta edicion - bruce a. carlson solutions manualSistemas de comunicacion   4ta edicion - bruce a. carlson solutions manual
Sistemas de comunicacion 4ta edicion - bruce a. carlson solutions manual
 

MATLAB Program for Beam Analysis

  • 1. 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);
  • 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;
  • 3. 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
  • 4. 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
  • 5. CODIFICACIÓN DEL PROGRAMA EN MATLAB PARA LA SOLUCIÓN DE ARMADURAS POR EL MÉTODO DE LA RIGIDEZ: function ARMADURA disp('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]'); %longitud nn=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 directores cx=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 cx; 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 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 %EA EA=zeros(n-1,1); for i=1:m k=memb(i,4); EA(i)=prop(k,2)*prop(k,3); end EA; %matriz miembro SMD=zeros(4,4,1);
  • 6. 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
  • 7. 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
  • 8. 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)
  • 9. CODIFICACIÓN DEL PROGRAMA EN MATLAB PARA LA SOLUCIÓN DE PÓRTICOS EN DOS DIMENSIONES POR EL MÉTODO DE LA RIGIDEZ: function PORTICO2D disp('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]='); %longitud nn=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; end L; %cosenos directores cx=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 miembro R=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); end t=0; rc=zeros(1,1); for i=1:3*n; rc(i,1)=r(i,1)+t; t=rc(i,1); %rc:es rest cumu end rc; %EA EA=zeros(m,1); EI=zeros(m,1);
  • 10. 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 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
  • 11. 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
  • 12. 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);
  • 13. 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')
  • 14. CODIFICACIÓN DEL PROGRAMA EN MATLAB PARA LA SOLUCIÓN DE PARRILAS POR EL MÉTODO DE LA RIGIDEZ: function parrilla disp('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]='); %longitud nn=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; end L; %cosenos directores cx=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 miembro R=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); end t=0; rc=zeros(1,1); for i=1:3*n; rc(i,1)=r(i,1)+t; t=rc(i,1); %rc:es rest cumu end rc; %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);
  • 15. 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
  • 16. 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;...
  • 17. 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
  • 18. 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