113 lines
3.0 KiB
Mathematica
113 lines
3.0 KiB
Mathematica
|
|
clear;clc;;close all
|
|||
|
|
format short
|
|||
|
|
E=210e9;%<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λPa
|
|||
|
|
u=0.4;%<EFBFBD><EFBFBD><EFBFBD>ɱȣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
q=100;%<EFBFBD><EFBFBD><EFBFBD>غɣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λN/<EFBFBD>O
|
|||
|
|
t=0.1;%<EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD><EFBFBD><EFBFBD>λm
|
|||
|
|
D=[E/(1-u^2),u*E/(1-u^2),0;u*E/(1-u^2),E/(1-u^2),0;0,0,E/(2*(1+u))];%Ӧ<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bt=(3+0.5407762)*10^11;%<EFBFBD>˴<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
long=5;%<EFBFBD><EFBFBD>5m
|
|||
|
|
height=1;%<EFBFBD><EFBFBD>1m
|
|||
|
|
ele_size=[0.2,0.2];%<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>DZ߳ߴ磻5m<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ,1m<EFBFBD>ߣ<EFBFBD>4<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ
|
|||
|
|
ele_H=long/ele_size(1);%ˮƽ<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>
|
|||
|
|
ele_V=height/ele_size(2);%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>
|
|||
|
|
ele_num=ele_H*ele_V*2;%<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>
|
|||
|
|
node_num=(ele_H+1)*(ele_V+1);%<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
DOF=2;%ÿ<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɶ<EFBFBD>
|
|||
|
|
|
|||
|
|
%<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>Ľڵ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
num=0;
|
|||
|
|
for i=1:ele_H
|
|||
|
|
for j=1:ele_V
|
|||
|
|
num=num+1;
|
|||
|
|
element(num,1)=1+(j-1)+(i-1)*(ele_V+1);
|
|||
|
|
element(num,2)=1+(j-1)+i*(ele_V+1);
|
|||
|
|
element(num,3)=2+(j-1)+(i-1)*(ele_V+1);
|
|||
|
|
num=num+1;
|
|||
|
|
element(num,1)=1+j+(i-1)*(ele_V+1);
|
|||
|
|
element(num,2)=1+(j-1)+i*(ele_V+1);
|
|||
|
|
element(num,3)=2+(j-1)+i*(ele_V+1);;
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
num=0;
|
|||
|
|
for i=1:ele_H+1
|
|||
|
|
for j=1:ele_V+1
|
|||
|
|
num=num+1;
|
|||
|
|
node(num,1)=(i-1)*ele_size(1);%x
|
|||
|
|
node(num,2)=(j-1)*ele_size(2);%y
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
A=1/2*ele_size(1)*ele_size(2);%<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>5/10*1/4<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
%ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD>ɶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>
|
|||
|
|
ele_DOF=zeros(ele_num,DOF*3);
|
|||
|
|
for i=1:ele_num
|
|||
|
|
for j=1:length(element(i,:))%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>ѭ<EFBFBD><EFBFBD>
|
|||
|
|
ele_DOF(i,1+2*(j-1):2+2*(j-1))=2*(element(i,j)-1)+1:2*(element(i,j)-1)+2;
|
|||
|
|
end
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
KZ=zeros(node_num*2,node_num*2);
|
|||
|
|
for i=1:ele_num
|
|||
|
|
ke=ele_stiff_matrix(element,node,i,A,D,t);%<EFBFBD><EFBFBD>Ԫ<EFBFBD>նȾ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
KZ(ele_DOF(i,:),ele_DOF(i,:)) = KZ(ele_DOF(i,:),ele_DOF(i,:))+ke;
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
P=[]; P(2*(ele_V+1))=-1/2*q*t*long/ele_H;
|
|||
|
|
for i=1:ele_H
|
|||
|
|
P(10+2*(ele_V+1)*(i-1))=-q*t*long/ele_H;%5/10<EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>ij<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
end
|
|||
|
|
P(node_num*2)=-1/2*q*t*5/10;
|
|||
|
|
PZ=P';%<EFBFBD>ܽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
%<EFBFBD>˴<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʩ<EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD>
|
|||
|
|
cons_DOF=[1:(ele_V+1)*2];%Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɶȱ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
Disp=zeros(length(cons_DOF),1);%λ<EFBFBD><EFBFBD>Ϊ0
|
|||
|
|
for i=1:length(cons_DOF)
|
|||
|
|
KZ(cons_DOF(i),cons_DOF(i))=bt*KZ(cons_DOF(i),cons_DOF(i));
|
|||
|
|
PZ(cons_DOF(i))=Disp(i)*KZ(cons_DOF(i),cons_DOF(i));
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
a=inv(KZ)*PZ;%<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
for i=1:ele_num%80<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ
|
|||
|
|
sgm(:,i)=stress_calculate(element,node,i,A,D,t,a);%<EFBFBD><EFBFBD>ԪӦ<EFBFBD><EFBFBD>
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ƾ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
SF=1/5*1/max(abs(a));%λ<EFBFBD>ƷŴ<EFBFBD>ϵ<EFBFBD><EFBFBD>
|
|||
|
|
new_node=node+SF*reshape(a,2,length(a)/2)';%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
figure
|
|||
|
|
patch('Faces',element,'Vertices',node,'FaceColor','none','EdgeColor','r')
|
|||
|
|
hold on;
|
|||
|
|
patch('Faces',element,'Vertices',new_node,'FaceColor','none')
|
|||
|
|
xlabel('x-coordinate')
|
|||
|
|
ylabel('y-coordinate')
|
|||
|
|
title('deformation')
|
|||
|
|
axis equal
|
|||
|
|
%Ӧ<EFBFBD><EFBFBD>
|
|||
|
|
figure
|
|||
|
|
patch('Faces',element,'Vertices',node,'FaceVertexCData',sgm(1,:)','FaceColor','flat')
|
|||
|
|
axis equal
|
|||
|
|
xlabel('x-coordinate')
|
|||
|
|
ylabel('\sigma (Pa)')
|
|||
|
|
title('\sigma_{11}')
|
|||
|
|
colorbar
|
|||
|
|
colormap(jet)
|
|||
|
|
|
|||
|
|
% figure
|
|||
|
|
% patch('Faces',element,'Vertices',node,'FaceVertexCData',sgm(2,:)','FaceColor','flat')
|
|||
|
|
% axis equal
|
|||
|
|
% colorbar
|
|||
|
|
% colormap(jet)
|
|||
|
|
% title('sigma22')
|
|||
|
|
|
|||
|
|
% figure
|
|||
|
|
% patch('Faces',element,'Vertices',node,'FaceVertexCData',sgm(3,:)','FaceColor','flat')
|
|||
|
|
% xlabel('x-coordinate')
|
|||
|
|
% ylabel('\sigma (Pa)')
|
|||
|
|
% axis equal
|
|||
|
|
% colorbar
|
|||
|
|
% colormap(jet)
|
|||
|
|
% title('sigma12')
|