Sei sulla pagina 1di 2

0001 // Tema desarrollado en clase del Ing.

Volta 19/09/14
0002 // calculo desplazamientos, viga curva de directriz
0003 // parabólica
0004 clc;
0005 clear();
0006 // datos geometricos y elasticos
0007 f=4.0; // flecha en el centro
0008 L=40.0; // luz del vano de la viga curva
0009 Ea=1e+8; // modulo de elasticidad del acero [kPa]
0010 As=1.5E-2; // area seccion m^2
0011 Iz=150000E-8; // mom de inercia m^4
0012 nb=1; // una barra
0013 nh=1; // una hipótesis de carga
0014 nc=2; // axial y flector
0015 nx=2; // 2 incógnitas desplazamiento
0016 // propiedades de masa
0017 ni=120; // cant subdiv
0018 s=0:1/ni:1;
0019 y=4*f*s.*(1-s);
0020 yp=4*f*(1-2*s)/L; // pendiente
0021 t=atan(yp); // ángulo de la pendiente
0022 dx=L/ni;
0023 dy=yp*dx;
0024 ds=sqrt(dx.^2+dy.^2);
0025 L1=intsplin(s,L./cos(t)); //sum(ds);
0026 p1=1.2;
0027 p2=0.4;
0028 p=p2*s+p1*(1-s); // kN/m, carga distribuida
0029 px=-p.*sin(t); // kN/m
0030 py=p.*cos(t); // kN/m
0031 Fx=intsplin(s,px*L./cos(t)); // kN
0032 Fy=intsplin(s,py*L./cos(t)); // kNMz
0033 V2=-1/L*(intsplin(s,(py.*s*L-px.*y)*L./cos(t)));
0034 V1=-Fy-V2; // reaccion vert en 1
0035 H1=-Fx; // reacción horizontal en 1
0036 // momento flector estado deformación
0037 Mz1=zeros(ni+1,nh);Mz2=zeros(ni+1,nh);
0038 Mz1(1,1)=0; Mz2(1,1)=0;
0039 // Mz=[];Mz(1)=0;
0040 for i=2:ni+1 do
0041 Mz1(i,1)=V1*s(i)*L-H1*y(i);
0042 Mz2(i,1)=intsplin(s(1:i),(py(1:i).*(s(i)-s(1:i))*L-px(1:i).*(y(i)-y(1:i)))*L./cos(t(1:i)));
0043 end;
0044 Mz=Mz1+Mz2;
0045 // axial del estado de deformación
0046 N=zeros(ni+1,nh); N(1)=-H1*cos(t(1))-V1*sin(t(1));
0047 for i=2:ni+1 do
0048 N(i,1)=-H1*cos(t(i))-V1*sin(t(i))+..
0049 intsplin(s(1:i),(-px(1:i).*cos(t(i))-py(1:i).*sin(t(i)))*L./cos(t(1:i)));
0050 end;
0051 // graficar Mz y N
0052 clf();
0053 plot2d(s,Mz,2);
0054 plot2d(s,N,5);
0055 xgrid(1);
0056 xtitle('Solicitaciones del estado de deformacion');
0057 legend('Flector Mz','Axial N',3);
0058 // vector del estado de deformacion
0059 Q=list();
0060 for barra=1:nb do
0061 Q(barra)=list();
0062 for hip=1:nh do
0063 Q(barra)(hip)=zeros(nc,ni+1);
0064 end;
0065 end;
0066 Q(1)(1)(1,:)=N(:,1)';
0067 Q(1)(1)(2,:)=Mz(:,1)';
0068 // solicitaciones del estados virtuales
0069 B=list();
0070 for barra=1:nb do
0071 B(barra)=list()
0072 for x=1:nx do
0073 B(barra)(x)=zeros(nc,ni+1);
0074 end;
0075 end;
0076 // desplazamiento del apoyo derecho H2=1 (hacia la derecha)
0077 H1=1.0;
0078 B(1)(1)(1,:)=H1*cos(t(1:i)); // axial
0079 B(1)(1)(2,:)=H1*y(1:i); // flector
0080 // desplazamiento vertical de la clave Pv=1 en la clave
0081 Pv=1;
0082 V1=0.5;
0083 for i=1:ni+1 do
0084 if i<=ni/2+1 then
0085 B(1)(2)(1,i)=-V1*sin(t(i));
0086 B(1)(2)(2,i)=V1*s(i)*L;
0087 else
0088 B(1)(2)(1,i)=(-V1+Pv)*sin(t(i));
0089 B(1)(2)(2,i)=V1*s(i)*L-Pv*(s(i)-s(ni/2+1))*L;
0090 end;
0091 end;
0092 // matriz de elasticidad unitaria
0093 D=list();
0094 for barra=1:nb do
0095 D(barra)=zeros(nc,ni+1);
0096 end;
0097 D(1)(1,:)=1/Ea/As;
0098 D(1)(2,:)=1/Ea/Iz;
0099 // desplazamiento del apoyo derecho y de la clave
0100 r=zeros(nx,nh);
0101 for x=1:nx do
0102 for hip=1:nh do
0103 for barra=1:nb do
0104 for cmp=1:nc do
0105 I=intsplin(s,B(barra)(x)(cmp,:).*D(barra)(cmp,:).*Q(barra)(hip)(cmp,:)*L1);
0106 r(x,hip)=r(x,hip)+I;
0107 end;
0108 end;
0109 end;
0110 end;
0111 disp(r);
0112 //

Potrebbero piacerti anche