You are on page 1of 9

MODELLO LASTRA

STATO PIANO DI TENSIONE

2Ly

x
a
2Lx

EQUAZIONE DELL' ELLISSE:


;
EQUAZIONE PARAMETRICHA:

y
2

Q
b

Ly

90

x
a
Lx
> restart: with(linalg): with(plots): Digits:=20:
> ee:=1000: nu:=0.15: kk:=1000000:
a:=4;
b:=2;
Lx:=10: Ly:=5:
p:=8: ppx:=1:

> u:=array(1..p*p):
v:=array(1..p*p):
ii:=0:
ua:=0:
va:=0:
for i from 1 to p do:
for j from 1 to p do:
ii:=ii+1:
ua:=ua+u[ii]*x^(i)*y^(j-1):
va:=va+v[ii]*x^(i-1)*y^(j):
od
od:
ua;
va:
> subs(x=0,ua); subs(y=0,va);

> eps:=array(1..3,[diff(ua,x), diff(va,y), diff(ua,y)+diff(va,x)]):


> DD:=array(1..3,1..3,[
[ee/(1-nu^2) , nu*ee/(1-nu^2),
0],
[nu*ee/(1-nu^2), ee/(1-nu^2),
0],
[ 0
,
0
, ee/(2*(1+nu))]]);
> sig:=evalm(DD&*eps):
> en:=evalm(transpose(eps)&*sig)/2:
> ener:=int(int(en,x=0..Lx),y=0..Ly):
> rx:=sqrt((1-y^2/b^2)*a^2):
en_for1:=int(en,x=0..rx):
en_foro:=int(en_for1,y=0..b):
> en_load:=-int(ppx*subs(x=Lx,ua),y=0..Ly):
> en_vinc:=kk/2*int(subs(y=0,va)^2,x=a..Lx)+
kk/2*int(subs(x=0,ua)^2,y=b..Ly):
en_vinc:=0:
> ept:=ener-en_foro+en_vinc+en_load:

> equ:=array(1..p*p): eqv:=array(1..p*p):


for i from 1 to p*p do:
equ[i]:=diff(ept,u[i]):
eqv[i]:=diff(ept,v[i]):
od:
> unk:={seq(u[i],i=1..p*p),seq(v[i],i=1..p*p)};
> eqn:={seq(equ[i],i=1..p*p),seq(eqv[i],i=1..p*p)}:
> sol:=solve(eqn,unk);

> uas:=subs(sol,ua):
> vas:=subs(sol,va):
> sx:=subs(sol,sig[1]);

> plot(subs(x=0,sx),y=b..Ly);

> sy:=subs(sol,sig[2]):
> plot(subs(y=0,sy),x=a..Lx);

> sxb := subs({x = 0, y = b}, sx);


:= 2.6632335566418074681
> sxa := subs({x = a, y = 0}, sy);
:=-2.461442985101932585

> np:=10:
xy1:=array(1..np,1..2):
xy2:=array(1..np,1..2):
xy3:=array(1..np,1..2):
xy4:=array(1..np,1..2):
xy5:=array(1..np,1..2):
xi:=a: xf:=Lx:
dx:=(xf-xi)/(np-1):
for i from 1 to np do:
xy1[i,1]:=xi+(i-1)*dx:
xy1[i,2]:=0:
od:
yi:=0: yf:=Ly:
dy:=(yf-yi)/(np-1):
for i from 1 to np do:
xy2[i,1]:=Lx:
xy2[i,2]:=yi+(i-1)*dy:
od:
xi:=Lx: xf:=0:
dx:=(xf-xi)/(np-1):
for i from 1 to np do:
xy3[i,1]:=xi+(i-1)*dx:
xy3[i,2]:=Ly:
od:
yi:=Ly: yf:=b:
dy:=(yf-yi)/(np-1):
for i from 1 to np do:
xy4[i,1]:=0:
xy4[i,2]:=yi+(i-1)*dy:
od:
thi:=Pi/2: thf:=0:
dt:=(thf-thi)/(np-1):
for i from 1 to np do:
theta:=thi+(i-1)*dt:
xy5[i,1]:=a*cos(theta):
xy5[i,2]:=b*sin(theta):
od:
> sc:=100:
uv1:=array(1..np,1..2):
uv2:=array(1..np,1..2):
uv3:=array(1..np,1..2):
uv4:=array(1..np,1..2):
uv5:=array(1..np,1..2):
for i from 1 to np do:
uv1[i,1]:=xy1[i,1]+subs({x=xy1[i,1],y=xy1[i,2]},uas)*sc:
uv1[i,2]:=xy1[i,2]+subs({x=xy1[i,1],y=xy1[i,2]},vas)*sc:
od:
for i from 1 to np do:

uv2[i,1]:=xy2[i,1]+subs({x=xy2[i,1],y=xy2[i,2]},uas)*sc:
uv2[i,2]:=xy2[i,2]+subs({x=xy2[i,1],y=xy2[i,2]},vas)*sc:
od:
for i from 1 to np do:
uv3[i,1]:=xy3[i,1]+subs({x=xy3[i,1],y=xy3[i,2]},uas)*sc:
uv3[i,2]:=xy3[i,2]+subs({x=xy3[i,1],y=xy3[i,2]},vas)*sc:
od:
for i from 1 to np do:
uv4[i,1]:=xy4[i,1]+subs({x=xy4[i,1],y=xy4[i,2]},uas)*sc:
uv4[i,2]:=xy4[i,2]+subs({x=xy4[i,1],y=xy4[i,2]},vas)*sc:
od:
for i from 1 to np do:
uv5[i,1]:=xy5[i,1]+subs({x=xy5[i,1],y=xy5[i,2]},uas)*sc:
uv5[i,2]:=xy5[i,2]+subs({x=xy5[i,1],y=xy5[i,2]},vas)*sc:
od:
> p1:=listplot(xy1,color=red ,thickness=4,scaling=constrained):
p2:=listplot(xy2,color=red ,thickness=4):
p3:=listplot(xy3,color=red ,thickness=4):
p4:=listplot(xy4,color=red ,thickness=4):
p5:=listplot(xy5,color=red ,thickness=4):
d1:=listplot(uv1,color=blue,thickness=2):
d2:=listplot(uv2,color=blue,thickness=2):
d3:=listplot(uv3,color=blue,thickness=2):
d4:=listplot(uv4,color=blue,thickness=2):
d5:=listplot(uv5,color=blue,thickness=2):
display({p1,p2,p3,p4,p5,d1,d2,d3,d4,d5});

90

x
a

> plot(subs(x=0,sx),y=b..Ly);

> plot(subs(y=0,sy),x=a..Lx);

sxb := subs({x = 0, y = b}, sx)


:= := 7.400551650986888582
sya := subs({x = a, y = 0}, sy)
:= -1.5130282558749909250

> plot(subs(x=0,sx),y=b..Ly);

> sy:=subs(sol,sig[2]);
> plot(subs(y=0,sy),x=a..Lx);

sxb := subs({x = 0, y = b}, sx)


:= 4.6142470659220207478
sya := subs({x = a, y = 0}, sy)
:= -1.751367030005282608

You might also like