有限元作业三角形单元求解Word文档格式.docx
《有限元作业三角形单元求解Word文档格式.docx》由会员分享,可在线阅读,更多相关《有限元作业三角形单元求解Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
![有限元作业三角形单元求解Word文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/26/6ea25516-a838-46d8-ba57-4a330c03ff56/6ea25516-a838-46d8-ba57-4a330c03ff561.gif)
-2.14292.14292.142900-2.1429
0.8571-5.142905.1429-0.85710
-5.14290.85710-0.85715.14290
2.1429-2.1429-2.1429002.1429
k2=
5.14290-5.14290.85710-0.8571
02.14292.1429-2.1429-2.14290
-5.14292.14297.2857-3.0000-2.14290.8571
0.8571-2.1429-3.00007.28572.1429-5.1429
0-2.1429-2.14292.14292.14290
-0.857100.8571-5.142905.1429
k3=
2.14290-2.1429-2.142902.1429
05.1429-0.8571-5.14290.85710
-2.1429-0.85717.28573.0000-5.1429-2.1429
-2.1429-5.14293.00007.2857-0.8571-2.1429
00.8571-5.1429-0.85715.14290
k4=
调用Triangle2D3Node_Assembly函数,求出总体刚度矩阵
求出的节点位移
U=
0
-0.0004
0.0008
0.0005
0.0010
0.0007
0.0023
-0.0007
0.0026
调用Triangle2D3Node_Stress函数,求出应力,S1、S2、S3、中求出的分别为Sx,Sy,Sxy
S1=
1.0e+03*
-4.4086
-0.7348
3.5914
S2=
4.4086
-0.6405
0.4086
S3=
1.8907
-1.0601
2.1093
S4=
-1.8907
1.8907
二、
(1)如图划分四边形单元,工分成四个分别为?
调用Quad2D4Node_Stiffness函数,求出单元刚度矩阵
调用Quad2D4Node_Assembly函数,求出求出总体刚度矩阵
求出节点位移
0.0012
0.0017
-0.0012
0.0016
0.0049
-0.0017
0.0052
调用Quad2D4Node_Stress函数,求出单元应力中的的S1、S2、S3分别为Sx,Sy,Sxy应力分量
0.0000
-0.2478
2.0000
1.0e+07*
0.6856
4.1135
-1.7137
程序附录
一、
1、三角形单元总程序:
E=1e7;
NU=1/6;
t=1;
ID=1;
%调用Triangle2D3Node_Stiffness函数,求出单元刚度矩阵
k1=Triangle2D3Node_Stiffness(E,NU,t,0,1,0,0,1,1,ID)
k2=Triangle2D3Node_Stiffness(E,NU,t,0,0,1,0,1,1,ID)
k3=Triangle2D3Node_Stiffness(E,NU,t,1,1,1,0,2,0,ID)
k4=Triangle2D3Node_Stiffness(E,NU,t,2,0,2,1,1,1,ID)
%调用Triangle2D3Node_Assembly函数,求出总体刚度矩阵
KK=zeros(12,12);
KK=Triangle2D3Node_Assembly(KK,k1,1,2,3);
KK=Triangle2D3Node_Assembly(KK,k2,2,4,3);
KK=Triangle2D3Node_Assembly(KK,k3,3,4,5);
KK=Triangle2D3Node_Assembly(KK,k4,5,6,3)
%边界条件的处理及刚度方程求解
k=KK(5:
12,5:
12)
p=[0;
0;
2000]
u=k\p
%支反力的计算
U=[0;
u]%为节点位移
P=KK*U
%调用Triangle2D3Node_Strain函数,求出应变SN1、SN2、SN3中求出的分别为SNx,SNy,SNxy
u1=[U
(1);
U
(2);
U(3);
U(4);
U(5);
U(6)];
u2=[U(3);
U(7);
U(8);
u3=[U(5);
U(6);
U(9);
U(10)];
u4=[U(9);
U(10);
U(11);
U(12);
SN1=Triangle2D3Node_Strain(0,1,0,0,1,1,u1)
SN2=Triangle2D3Node_Strain(0,0,1,0,1,1,u2)
SN3=Triangle2D3Node_Strain(1,1,1,0,2,0,u3)
SN4=Triangle2D3Node_Strain(2,0,2,1,1,1,u4)
%调用Triangle2D3Node_Stress函数,求出应力,S1、S2、S3、中求出的分别为Sx,Sy,Sxy
u1=[U
(1);
S1=Triangle2D3Node_Stress(E,NU,0,1,0,0,1,1,u1,ID)
S2=Triangle2D3Node_Stress(E,NU,0,0,1,0,1,1,u2,ID)
S3=Triangle2D3Node_Stress(E,NU,1,1,1,0,2,0,u3,ID)
S4=Triangle2D3Node_Stress(E,NU,2,0,2,1,1,1,u4,ID)
2、求刚度矩阵程序
functionk=Triangle2D3Node_Stiffness(E,NU,t,xi,yi,xj,yj,xm,ym,ID)
%该函数计算单元的刚度矩阵
%输入弹性模量E,泊松比NU,厚度t
%输入三个节点i、j、m的坐标xi,yi,xj,yj,xm,ym
%输入平面问题性质指示参数ID(1为平面应力,2为平面应变)
%输出单元刚度矩阵k(6X6)
%---------------------------------------------------------------
A=(xi*(yj-ym)+xj*(ym-yi)+xm*(yi-yj))/2;
betai=yj-ym;
betaj=ym-yi;
betam=yi-yj;
gammai=xm-xj;
gammaj=xi-xm;
gammam=xj-xi;
B=[betai0betaj0betam0;
0gammai0gammaj0gammam;
gammaibetaigammajbetajgammambetam]/(2*A);
ifID==1
D=(E/(1-NU*NU))*[1NU0;
NU10;
00(1-NU)/2];
elseifID==2
D=(E/(1+NU)/(1-2*NU))*[1-NUNU0;
NU1-NU0;
00(1-2*NU)/2];
end
k=t*A*B'
*D*B;
3、求整体刚度矩阵
functionz=Triangle2D3Node_Assembly(KK,k,i,j,m)
%该函数进行单元刚度矩阵的组装
%输入单元刚度矩阵k
%输入单元的节点编号I、j、m
%输出整体刚度矩阵KK
DOF
(1)=2*i-1;
DOF
(2)=2*i;
DOF(3)=2*j-1;
DOF(4)=2*j;
DOF(5)=2*m-1;
DOF(6)=2*m;
forn1=1:
6
forn2=1:
KK(DOF(n1),DOF(n2))=KK(DOF(n1),DOF(n2))+k(n1,n2);
end
z=KK;
4、求应变程序
functionstrain=Triangle2D3Node_Strain(xi,yi,xj,yj,xm,ym,u)
%该函数计算单元的应变
%输入单元的位移列阵u(6X1)
%输出单元的应力strain(3X1),由于它为常应变单元,则单元的应变分量为SNx,SNy,SNz
strain=B*u;
5、求应力程序
functionstress=Triangle2D3Node_Stress(E,NU,xi,yi,xj,yj,xm,ym,u,ID)
%该函数计算单元的应力
%输入平面问题性质指示参数ID(1为平面应力,2为平面应变),单元的位移列阵u(6X1)
%输出单元的应力stress(3X1),由于它为常应力单元,则单元的应力分量为Sx,Sy,Sxy
stress=D*B*u;
1、四边形单元总程序:
h=1;
%调用Quad2D4Node_Stiffness函数,求出单元刚度矩阵
k1=Quad2D4Node_Stiffness(E,NU,h,0,1,0,0,1,0,1,1,ID)
k2=Quad2D4Node_Stiffness(E,NU,h,1,0,2,0,2,1,1,1,ID)
%调用Quad2D4Node_Assembly函数,求出求出总体刚度矩阵
KK=zeros(12,12);
KK=Quad2D4Node_Assembly(KK,k1,1,2,3,4);
KK=Quad2D4Node_Assembly(KK,k2,3,5,6,4)
%边界条件的处理及刚度方程求解
k=KK(5:
%调用Quad2D4Node_Stress函数,求出单元应力中的的S1、S2、S3分别为Sx,Sy,Sxy应力分量
U(8)];
u2=[U(5);
(8)];
S1=Quad2D4Node_Stress(E,NU,0,1,0,0,1,0,1,1,u1,ID)
S2=Quad2D4Node_Stress(E,NU,1,0,2,0,2,1,1,1,u2,ID)
functionk=Quad2D4Node_Stiffness(E,NU,h,xi,yi,xj,yj,xm,ym,xp,yp,ID)
%输入弹性模量E,泊松比NU,厚度h
%输入4个节点i、j、m、p的坐标xi,yi,xj,yj,xm,ym,xp,yp
%输出单元刚度矩阵k(8X8)
symsst;
a=(yi*(s-1)+yj*(-1-s)+ym*(1+s)+yp*(1-s))/4;
b=(yi*(t-1)+yj*(1-t)+ym*(1+t)+yp*(-1-t))/4;
c=(xi*(t-1)+xj*(1-t)+xm*(1+t)+xp*(-1-t))/4;
d=(xi*(s-1)+xj*(-1-s)+xm*(1+s)+xp*(1-s))/4;
B1=[a*(t-1)/4-b*(s-1)/40;
0c*(s-1)/4-d*(t-1)/4;
c*(s-1)/4-d*(t-1)/4a*(t-1)/4-b*(s-1)/4];
B2=[a*(1-t)/4-b*(-1-s)/40;
0c*(-1-s)/4-d*(1-t)/4;
c*(-1-s)/4-d*(1-t)/4a*(1-t)/4-b*(-1-s)/4];
B3=[a*(t+1)/4-b*(s+1)/40;
0c*(s+1)/4-d*(t+1)/4;
c*(s+1)/4-d*(t+1)/4a*(t+1)/4-b*(s+1)/4];
B4=[a*(-1-t)/4-b*(1-s)/40;
0c*(1-s)/4-d*(-1-t)/4;
c*(1-s)/4-d*(-1-t)/4a*(-1-t)/4-b*(1-s)/4];
Bfirst=[B1B2B3B4];
Jfirst=[01-tt-ss-1;
t-10s+1-s-t;
s-t-s-10t+1;
1-ss+t-t-10];
J=[xixjxmxp]*Jfirst*[yi;
yj;
ym;
yp]/8;
B=Bfirst/J;
BD=J*transpose(B)*D*B;
r=int(int(BD,t,-1,1),s,-1,1);
z=h*r;
k=double(z);
3、求总体刚度矩阵程序
functionz=Quad2D4Node_Assembly(KK,k,i,j,m,p)
%输入单元刚度矩阵k,单元的节点编号i、j、m、p
%输出整体刚度矩阵KK
DOF(7)=2*p-1;
DOF(8)=2*p;
8
4、求应力程序
functionstress=Quad2D4Node_Stress(E,NU,xi,yi,xj,yj,xm,ym,xp,yp,u,ID)
%输入弹性模量E,泊松比NU,厚度h,
%输入4个节点i、j、m、p的坐标xi,yi,xj,yj,xm,ym,xp,yp,
%输入单元的位移列阵u(8X1)
%输出单元的应力stress(3X1)
%由于它为常应力单元,则单元的应力分量为Sx,Sy,Sxy
str1=D*B*u;
str2=subs(str1,{s,t},{0,0});
stress=double(str2);