H a r b i n I n s t i t u t e o f T e c h n o l o g y材料力学上机作业课程名称:材料力学设计题目:应力状态分析院系:机电学院班级:分析者:学号:指导教师:***设计时间:2013年6月18日哈尔滨工业大学材料力学上机课设计说明书一, 设计题目题目7 应力状态分析 输入:1. 平面应力状态输入:x y xy σστ(,,);某截面方位角α2. 空间应力状态输入:,x y z xy yz zx σσστττ(,,,,)输出: 1. 输出主应力123σσσ(,,)2. 最大切应力(13max 132σσττ-==)3.如为平面应力状态则需要输出方位角α斜截面上的应力ααστ、及主方向角*σα4. 画出应力圆示意图二, 程序计算设计过程1. 平面应力状态分析对于任意平面应力状态,有max min σσ=2x y σσ+±主应力为:1max 23min ,0,σσσσσ===并且由 2tan 2xyx yστασσ=-可求得主应力方向角13σσαα、。
对于任意一个方位角α,有:=cos 2sin 222sin 2cos 22x yx yxy x yxy αασσσσσατασστατα++++-=-+从而,输入任意角α,即可求得该截面的应力状态ααστ、并且ααστ、都是关于α的函数,上式即为应力圆的参数方程,参数为α。
将α从0到pi 取一系列的值,则可以求出一系列的ααστ、,在坐标系中找到对应点,连接即可作出应力圆。
2. 三向应力状态分析解特征方程 321230I I I σσσ-+-=即可求出主应力123σσσ、、 其中:123||||||||x y z xyx y zy z xz xy y yz z zx x x yx zx xyy zy xzyz z I I I σσσστστσττστστσστττστττσ=-+⎛⎫⎛⎫⎛⎫=++⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭⎛⎫⎪= ⎪ ⎪⎝⎭再由 13max 132σσττ-== 可求得最大切应力。
求解三向应力圆:三个圆121323C 、C 、C 的圆心分别为:231312122313,0,0,0222C C C σσσσσσ+++⎛⎫⎛⎫⎛⎫⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭、、半径非别为:231312122313r =,r =,r =222σσσσσσ---由此可以求出三个应力圆的方程,从而作出三向应力圆。
三, 程序代码reg=input('选择应力状态方式(1或2):');%1表示平面应力状态,2表示空间应力状态if reg==1 %选择平面应力状态分析%输入已知量,应力单位为MPa ,转角单位为radcgmx=input('输入x轴方向正应力 cgmx=');cgmy=input('输入y轴方向正应力 cgmy=');txy=input('输入切应力 txy=');%求解主应力、主方向及最大剪应力并输出cgm1=(cgmx+cgmy)/2+(((cgmx-cgmy)/2)^2+txy^2)^(1/2);cgm2=0;cgm3=(cgmx+cgmy)/2-(((cgmx-cgmy)/2)^2+txy^2)^(1/2);tm=(cgm1-cgm3)/2;aerfc=(1/2)*atan(2*txy/(cgmx-cgmy));cgmt=(cgmx+cgmy)/2+(cgmx-cgmy)*cos(2*aerfc)/2+txy*sin(2*aerfc);if cgmt==cgm1;aerfc1=aerfc;aerfc3=aerfc+pi/2;elseaerfc3=aerfc;aerfc1=aerfc+pi/2;enddisplay('主应力为:');display(cgm1);display(cgm2);display(cgm3);display('主方向为:');display(aerfc1);display(aerfc3);display('最大切应力为:');display(tm);% 求解任意截面上的应力aerfa=input('输入截面方位(以弧度表示) aerfa=');cgmr=(cgmx+cgmy)/2+(cgmx-cgmy)*cos(2*aerfa)/2+txy*sin(2*aerfa);tr=-(cgmx-cgmy)*sin(2*aerfa)/2+txy*cos(2*aerfa);display('截面处应力状况:');display('正应力:');display(cgmr);display('切应力:');display(tr);%求解应力圆并作图i=0;for theta=0:pi/200:picgmt=(cgmx+cgmy)/2+(cgmx-cgmy)*cos(2*theta)/2+txy*sin(2*theta); tt=-(cgmx-cgmy)*sin(2*theta)/2+txy*cos(2*theta);i=i+1;CG(i)=cgmt;TT(i)=tt;plot(CG,TT),axis equal;title('应力圆');xlabel('正应力cgm/ MPa');ylabel('切应力t/MPa');grid on;endelseif reg==2 %选择三向应力状态分析%输入已知量,应力单位为MPa,转角单位为radcgmx=input('输入x轴方向正应力 cgmx=');cgmy=input('输入y轴方向正应力 cgmy=');cgmz=input('输入y轴方向正应力 cgmz=');txy=input('输入切应力 txy=');tyz=input('输入切应力 tyz=');tzx=input('输入切应力 tzx=');%求解主应力及最大剪应力并输出I1=cgmx+cgmy+cgmz;I2=det([cgmx,txy;txy,cgmy])+det([cgmy,tyz;tyz,cgmz])+det([cgmz,tzx;tzx,c gmx]);I3=det([cgmx,txy,tzx;txy,cgmy,tyz;tzx,tyz,cgmz]);syms x;ffp=x^3-I1*x^2+I2*x-I3;cgm=solve(ffp);cgm=eval(cgm);cgm1=max(cgm(1),cgm(2));cgm1=max(cgm1,cgm(3));cgm3=min(cgm(1),cgm(2));cgm3=min(cgm3,cgm(3));cgm2=cgm(1)+cgm(2)+cgm(3)-cgm1-cgm3;tm=(cgm1-cgm3)/2;display('主应力为:');display(cgm1);display(cgm2);display(cgm3);display('最大切应力为:');display(tm);%求解应力圆并作图i=0;r12=(cgm1-cgm2)/2;r23=(cgm2-cgm3)/2;r13=(cgm1-cgm3)/2;x12=(cgm1+cgm2)/2;x23=(cgm2+cgm3)/2;x13=(cgm1+cgm3)/2;for theta=0:pi/200:2*pi X12=x12+r12*cos(theta); Y12=r12*sin(theta); X23=x23+r23*cos(theta); Y23=r23*sin(theta); X13=x13+r13*cos(theta); Y13=r13*sin(theta); i=i+1;XX12(i)=X12;YY12(i)=Y12;XX23(i)=X23;YY23(i)=Y23;XX13(i)=X13;YY13(i)=Y13; plot(XX12,YY12,XX23,YY23,XX13,YY13),axis equal;title('三向应力圆');xlabel('正应力cgm/ MPa');ylabel('切应力t/MPa');grid on;text(x12,0,'C12');text(x23,0,'C23');text(x13,0,'C13'); end elsedisplay('选择方式错误!'); end四, 程序说明程序运行后,首先给reg 变量赋值,选择应力状态方式,其中reg=1位平面应力状态,reg=2为三向应力状态。
若输入reg 为其他值,则会显示“选择方式错误!”。
1.平面应力状态若选择平面应力状态,则需要输入:正应力cgmx 、cgmy 以及切应力txy 。
然后程序就会自动输出三个主应力:cgm1、cgm2、cgm3以及主应力方向角:aerfc1、aerfc3,和最大切应力:tm ,进一步输入任意截面方向角:aerfa ,即可求出该截面的正应力:cgmr ,切应力:tr 。
同时作出应力圆的图像。
2.三向应力状态若选择三向应力状态,则需要输入:正应力cgmx 、cgmy 、cgmz ,以及切应力txy 、tyz 、tzx 。
然后程序会自动输出三个主应力:cgm1、cgm2、cgm3,以及最大切应力tm 。
同时作出三向应力圆的图像。
五, 举例验证例1.选择平面应力状态,已知=x y xy σστ40MPa,=-20MPa,=40MPa ,求主应力、主方向、最大切应力以及6πα=斜截面上的应力,并作出应力圆。
例2.选择空间应力状态,已知:=6a =20M =2=-4=0,=0x y z xy yz zx MPa σσστττ0MP ,Pa,0MPa,0MPa,MPa求主应力及最大切应力,并作出应力圆。
(材料力学第二单元课后第13题)收获感悟:做这个材料大作业,虽然花费了很长时间,但是我感到收获很多。
在此过程中,我对MATLAB从一无所知到熟练编辑,甚至接触到对界面编辑,这将成为我一生的财富,MATLAB也必将成为我日后工作的得力助手。
我为能有一次这样锻炼的机会而感到幸运,希望以后还会更多这样的机会充实自己。
对于应力分析部分,我想也会因为这次程序的编写而理解的更加深刻。
不足之处在于因时间关系,没有完全编出界面。
所呈现的界面还不能进行运算。