厚度t=1cm的均质正方形薄板,上下受均匀拉力q= 10^6 N/m,材料弹性模量E= 2.1x10^11 Pa,泊松比μ= 1/3,不记自重。使用ANSYS软件或 MATLAB 软件,采用PLANE182单元进行求解。

>Element Type>Add/Edit/Delete>Add>Solid>Quad 4 node 182
>Element Type>Add/Edit/Delete>Options>K3:Plane strs w/thk
>Real Constants>Add/Edit/Delete>Add>THK:0.01
>Material Props>Material Models>Structural>Linear>Elastic>EX:2.1e11, PRXY:1/3
>Modeling>Create>Areas>Rectangle>By Dimensions>X1:1, Y1:1, X2:-1, Y2:-1
>Meshing>Size Cntrls>Manual Size>Global>Size>NDIV:2
>Meshing>Mesh>Areas>Free
>Define Loads>Apply>Structural>Displacement>On Nodes

按图片所示来限制自由度
>Define Loads>Apply>Structural>Pressure>On Lines>Min, Max, Inc>VALUE Load PRES value:-1e8(为什么不是-1e6呢?因为题目里q=10^6N/m,代表的是每米有10^6N的力,压强N/m^2代表的是每平方米有多少N的力,所以q/厚度t=(10^6N/m)/(0.01m)=10^8N/m^2)(这个地方最容易出错,一定要思考一下换算关系,思考到底给的是力还是压强还是其他什么东西)
>Solve>Current LS
>Read Results>First Set
>Plot Results>Deformed Shape>KUNhttps://www.gofarlic.comDef + undeformed

>Plot Results>Contour Plot>Nodal Solu>DOF Solution>Displacement vector sum>Undisplaced shape key:Deformed shape with undeformed model

>Plot Results>Contour Plot>Nodal Solu>Stress>von Mises stress>Undisplaced shape key:Deformed shape with undeformed model

在ANSYS里我们是对整个平面进行求解,其实我们可以只对右上角1/4平面求解,计算结果是一样的。在MATLAB里我为了简化计算,取的右上角1/4平面。
单元数量和刚才ANSYS里一致,ANSYS里右上角只有一个单元,MATLAB里我也只用一个单元。
clc %应该能看懂吧。Ksi、Eta和Mu是希腊字母对应的英文写法。E是弹性模量,t是厚度。x1=0;y1=0; x2=1;y2=0; x3=1;y3=1; x4=0;y4=1;a=(x2-x1)/2; b=(y4-y1)/2;Ksi1=-1;Eta1=-1; Ksi2=1;Eta2=-1; Ksi3=1;Eta3=1; Ksi4=-1;Eta4=1;E=2.1e11; Mu=1/3; t=0.01; %k11、k12、k13、k14、k22、k23、k24、k33、k34、k44是单元刚度矩阵。Ksii=Ksi1;Etai=Eta1; Ksij=Ksi1; Etaj=Eta1;k11=(E*t/(4*(1-Mu*Mu)))*[(b/a)*(Ksii*Ksij+Ksii*Etai*Ksij*Etaj/3)+((1-Mu)/2)*(a/b)*(Etai*Etaj+Ksii*Etai*Ksij*Etaj/3),Mu*Ksii*Etaj+((1-Mu)/2)*Etai*Ksij; Mu*Etai*Ksij+((1-Mu)/2)*Ksii*Etaj,(a/b)*(Etai*Etaj+Ksii*Etai*Ksij*Etaj/3)+((1-Mu)/2)*(b/a)*(Ksii*Ksij+Ksii*Etai*Ksij*Etaj)];Ksii=Ksi1;Etai=Eta1; Ksij=Ksi2; Etaj=Eta2;k12=(E*t/(4*(1-Mu*Mu)))*[(b/a)*(Ksii*Ksij+Ksii*Etai*Ksij*Etaj/3)+((1-Mu)/2)*(a/b)*(Etai*Etaj+Ksii*Etai*Ksij*Etaj/3),Mu*Ksii*Etaj+((1-Mu)/2)*Etai*Ksij; Mu*Etai*Ksij+((1-Mu)/2)*Ksii*Etaj,(a/b)*(Etai*Etaj+Ksii*Etai*Ksij*Etaj/3)+((1-Mu)/2)*(b/a)*(Ksii*Ksij+Ksii*Etai*Ksij*Etaj)];Ksii=Ksi1;Etai=Eta1; Ksij=Ksi3; Etaj=Eta3;k13=(E*t/(4*(1-Mu*Mu)))*[(b/a)*(Ksii*Ksij+Ksii*Etai*Ksij*Etaj/3)+((1-Mu)/2)*(a/b)*(Etai*Etaj+Ksii*Etai*Ksij*Etaj/3),Mu*Ksii*Etaj+((1-Mu)/2)*Etai*Ksij; Mu*Etai*Ksij+((1-Mu)/2)*Ksii*Etaj,(a/b)*(Etai*Etaj+Ksii*Etai*Ksij*Etaj/3)+((1-Mu)/2)*(b/a)*(Ksii*Ksij+Ksii*Etai*Ksij*Etaj)];Ksii=Ksi1;Etai=Eta1; Ksij=Ksi4; Etaj=Eta4;k14=(E*t/(4*(1-Mu*Mu)))*[(b/a)*(Ksii*Ksij+Ksii*Etai*Ksij*Etaj/3)+((1-Mu)/2)*(a/b)*(Etai*Etaj+Ksii*Etai*Ksij*Etaj/3),Mu*Ksii*Etaj+((1-Mu)/2)*Etai*Ksij; Mu*Etai*Ksij+((1-Mu)/2)*Ksii*Etaj,(a/b)*(Etai*Etaj+Ksii*Etai*Ksij*Etaj/3)+((1-Mu)/2)*(b/a)*(Ksii*Ksij+Ksii*Etai*Ksij*Etaj)];Ksii=Ksi2;Etai=Eta2; Ksij=Ksi2; Etaj=Eta2;k22=(E*t/(4*(1-Mu*Mu)))*[(b/a)*(Ksii*Ksij+Ksii*Etai*Ksij*Etaj/3)+((1-Mu)/2)*(a/b)*(Etai*Etaj+Ksii*Etai*Ksij*Etaj/3),Mu*Ksii*Etaj+((1-Mu)/2)*Etai*Ksij; Mu*Etai*Ksij+((1-Mu)/2)*Ksii*Etaj,(a/b)*(Etai*Etaj+Ksii*Etai*Ksij*Etaj/3)+((1-Mu)/2)*(b/a)*(Ksii*Ksij+Ksii*Etai*Ksij*Etaj)];Ksii=Ksi2;Etai=Eta2; Ksij=Ksi3; Etaj=Eta3;k23=(E*t/(4*(1-Mu*Mu)))*[(b/a)*(Ksii*Ksij+Ksii*Etai*Ksij*Etaj/3)+((1-Mu)/2)*(a/b)*(Etai*Etaj+Ksii*Etai*Ksij*Etaj/3),Mu*Ksii*Etaj+((1-Mu)/2)*Etai*Ksij; Mu*Etai*Ksij+((1-Mu)/2)*Ksii*Etaj,(a/b)*(Etai*Etaj+Ksii*Etai*Ksij*Etaj/3)+((1-Mu)/2)*(b/a)*(Ksii*Ksij+Ksii*Etai*Ksij*Etaj)];Ksii=Ksi2;Etai=Eta2; Ksij=Ksi4; Etaj=Eta4;k24=(E*t/(4*(1-Mu*Mu)))*[(b/a)*(Ksii*Ksij+Ksii*Etai*Ksij*Etaj/3)+((1-Mu)/2)*(a/b)*(Etai*Etaj+Ksii*Etai*Ksij*Etaj/3),Mu*Ksii*Etaj+((1-Mu)/2)*Etai*Ksij; Mu*Etai*Ksij+((1-Mu)/2)*Ksii*Etaj,(a/b)*(Etai*Etaj+Ksii*Etai*Ksij*Etaj/3)+((1-Mu)/2)*(b/a)*(Ksii*Ksij+Ksii*Etai*Ksij*Etaj)];Ksii=Ksi3;Etai=Eta3; Ksij=Ksi3; Etaj=Eta3;k33=(E*t/(4*(1-Mu*Mu)))*[(b/a)*(Ksii*Ksij+Ksii*Etai*Ksij*Etaj/3)+((1-Mu)/2)*(a/b)*(Etai*Etaj+Ksii*Etai*Ksij*Etaj/3),Mu*Ksii*Etaj+((1-Mu)/2)*Etai*Ksij; Mu*Etai*Ksij+((1-Mu)/2)*Ksii*Etaj,(a/b)*(Etai*Etaj+Ksii*Etai*Ksij*Etaj/3)+((1-Mu)/2)*(b/a)*(Ksii*Ksij+Ksii*Etai*Ksij*Etaj)];Ksii=Ksi3;Etai=Eta3; Ksij=Ksi4; Etaj=Eta4;k34=(E*t/(4*(1-Mu*Mu)))*[(b/a)*(Ksii*Ksij+Ksii*Etai*Ksij*Etaj/3)+((1-Mu)/2)*(a/b)*(Etai*Etaj+Ksii*Etai*Ksij*Etaj/3),Mu*Ksii*Etaj+((1-Mu)/2)*Etai*Ksij; Mu*Etai*Ksij+((1-Mu)/2)*Ksii*Etaj,(a/b)*(Etai*Etaj+Ksii*Etai*Ksij*Etaj/3)+((1-Mu)/2)*(b/a)*(Ksii*Ksij+Ksii*Etai*Ksij*Etaj)];Ksii=Ksi4;Etai=Eta4; Ksij=Ksi4; Etaj=Eta4;k44=(E*t/(4*(1-Mu*Mu)))*[(b/a)*(Ksii*Ksij+Ksii*Etai*Ksij*Etaj/3)+((1-Mu)/2)*(a/b)*(Etai*Etaj+Ksii*Etai*Ksij*Etaj/3),Mu*Ksii*Etaj+((1-Mu)/2)*Etai*Ksij; Mu*Etai*Ksij+((1-Mu)/2)*Ksii*Etaj,(a/b)*(Etai*Etaj+Ksii*Etai*Ksij*Etaj/3)+((1-Mu)/2)*(b/a)*(Ksii*Ksij+Ksii*Etai*Ksij*Etaj)]; %单元刚度矩阵组装成为整体刚度矩阵。整体刚度矩阵是对称矩阵,所以只求了一半数量的单元刚度矩阵,通过tiru()和tril()把整体刚度矩阵k搞出来了。k_temp=[k11,k12,k13,k14; zeros(2,2),k22,k23,k24; zeros(2,2),zeros(2,2),k33,k34; zeros(2,2),zeros(2,2),zeros(2,2),k44];k=triu(k_temp,0)+tril(k_temp',-1) %这个地方容易出错,要思考到底给多大的力q=1e6;Force_column_matrix=[0;0;0;0;0;q/2;0;q/2]; %因为u1=0,v1=0,v2=0,u4=0,所以引入位移约束,我采用的是置1法。把第1,2,4,7行置0,然后把(1,1),(2,2),(3,3),(4,4)这4个元素置1。k([1,2,4,7],:)=0;k(1,1)=1; k(2,2)=1; k(4,4)=1; k(7,7)=1; Displacement_column_matrix=inv(k)*Force_column_matrix Ksii=Ksi1;Etai=Eta1; Ksi=0;Eta=0;S1=(E/((1-Mu*Mu)*4))*[(Ksii+Ksii*Etai*Eta)/a,Mu*(Etai+Ksii*Etai*Ksii)/b; Mu*(Ksii+Ksii*Etai*Eta)/a,(Etai+Ksii*Etai*Ksi)/b; ((1-Mu)/2)*(Etai+Ksii*Etai*Ksi)/b,((1-Mu)/2)*(Ksii+Ksii*Etai*Eta)/a];Ksii=Ksi2;Etai=Eta2; Ksi=0;Eta=0;S2=(E/((1-Mu*Mu)*4))*[(Ksii+Ksii*Etai*Eta)/a,Mu*(Etai+Ksii*Etai*Ksii)/b; Mu*(Ksii+Ksii*Etai*Eta)/a,(Etai+Ksii*Etai*Ksi)/b; ((1-Mu)/2)*(Etai+Ksii*Etai*Ksi)/b,((1-Mu)/2)*(Ksii+Ksii*Etai*Eta)/a];Ksii=Ksi3;Etai=Eta3; Ksi=0;Eta=0;S3=(E/((1-Mu*Mu)*4))*[(Ksii+Ksii*Etai*Eta)/a,Mu*(Etai+Ksii*Etai*Ksii)/b; Mu*(Ksii+Ksii*Etai*Eta)/a,(Etai+Ksii*Etai*Ksi)/b; ((1-Mu)/2)*(Etai+Ksii*Etai*Ksi)/b,((1-Mu)/2)*(Ksii+Ksii*Etai*Eta)/a];Ksii=Ksi4;Etai=Eta4; Ksi=0;Eta=0;S4=(E/((1-Mu*Mu)*4))*[(Ksii+Ksii*Etai*Eta)/a,Mu*(Etai+Ksii*Etai*Ksii)/b; Mu*(Ksii+Ksii*Etai*Eta)/a,(Etai+Ksii*Etai*Ksi)/b; ((1-Mu)/2)*(Etai+Ksii*Etai*Ksi)/b,((1-Mu)/2)*(Ksii+Ksii*Etai*Eta)/a];S=[S1,S2,S3,S4]Stress_column_matrix=S*Displacement_column_matrix
可以看到,MATLAB里计算出来的应力σy和ANSYS里一致,都是10^8。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删