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

//