哈工大材料力学上机实验报告_第1页
哈工大材料力学上机实验报告_第2页
哈工大材料力学上机实验报告_第3页
哈工大材料力学上机实验报告_第4页
哈工大材料力学上机实验报告_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、材料力学I上机实验设计报告院 系: 机电学院 班 级: 1308* 姓 名: * 学 号: 11308* 指导教师: 张桂莲 时 间: 2015年6月 一、问题描述1、应力状态分析对于空间或者是平面应力状态的相关计算,如果采用人工计算的方式比较繁琐而且容易出错,对于这种简单的重复计算,编制相应的程序则可以大大提高计算准确度和人工计算强度。对于平面应力状态,输入量应为(),以及某截面的方位角,其输出数据应为该单元体所受主应力(),所受最大剪应力(),以及方位角为的斜截面上的应力()以及主方向角,同时还要画出其应力圆示意图,以直观的显示其应力状态。对于空间应力状态,输入量则应该为各应力(),其输出

2、数据应该为该单元体所受主应力(),所受最大剪应力(),同时还要画出其应力圆示意图,以直观的显示其应力状态。这样,应力状态分析的基本任务就可以完成。2、常用截面图形几何性质的分析在生活中,有各种各样的几何形状,但是对于工程实际中经常用到的构件,其截面的几何形状则非常有限。对于不同的截面,其形心位置、对于形心轴的惯性矩也就有所不同,这样在进行如弯曲、扭转等的应力分析时就会到来不便,因此编制相应的程序来计算相关截面的几何性质也就具有了实际应用价值和可行性。在这部分程序中,截面几何形状分为三角形、矩形、椭圆形、梯形、圆形、扇形等多种形式,对于不同的截面形状,输入量也就不同。例如,对于扇形应输入直径和圆

3、心角();对于梯形则应输入上底、下底和高();对于椭圆形,则要输入长轴长和短轴长()等等,在此不一一列举,具体输入数据请参看程序运行。不过对于不同的截面,其输出的量都是相同的,即截面形心的位置、面积、对于形心轴的惯性矩(),这些输出量就是这些截面的基本几何性质参数,有了这些参数之后则可以对其进行进一步的计算和接下来的分析等问题。这样,对于工程实际中常见的几种截面形状的几何性质的分析任务就可以用编写程序的方式来完成。以上两项内容即为本次上机实验程序的基本构成,两种功能相互配合、协调运行,以完成程序的稳定运行和人机交互,同时也可以解决工程实际中的一些比较简单的问题和任务,程序编制的任务就可以完成。

4、二、程序流程本程序分为三个窗体:主界面、应力状态分析界面、截面几何性质分析界面,下面将对各个界面进行程序流程的分析:1、主界面:程序运行截图:选择相应的计算程序,然后点击确定即可进入对应的计算程序窗口之中,如果点击退出则退出程序,菜单栏也包含有一些辅助的功能和相关的基本信息。2、应力状态分析窗口程序运行截图:点击某应力状态后,相应的输入框可用,输入数据之后,点击确定,输出计算结果,点击绘制应力圆,绘制对应的应力圆及坐标。点击退出,退出程序;点击返回,返回主界面;点击清除,清除所有数据。3、截面几何性质分析窗口程序运行截图:选择相应的形状类型,点击确定,显示提示图,输入框可用;输入数据,点击计算

5、,输出计算结果和截面构型图;点击清除,清除所有数据和图形显示;点击返回,返回主界面;点击退出,结束程序运行。按照此流程编制和应用程序,即可实现相应的设计任务。三、具体某个问题和涉及到的计算公式以及相关理论本程序涉及多条公式及相关理论,现分部分阐述:1、平面应力状态分析平面应力状态任一斜截面上既有正应力又有切应力,则其公式为:平面应力状态主应力大小及方向公式为:(1)主应力计算公式(2)主平面方位计算公式(3)最大切应力:最大切应力发生在与主平面夹45度角的平面方位。    其公式为:应力圆: 圆心:半径:根据数学建模结果,编制相应的程序,即可计算出结果。2、空间应

6、力状态分析三向应力计算公式:特征方程:系数分别为:解出此特征方程即可求出单元体的三个主应力,求解该方程可以采用盛金公式,内容如下:一元三次方程aX3bX2cXd=0,(a,b,c,dR,且a0)。重根判别式:A=b23ac;B=bc9ad;C=c23bd,总判别式:=B24AC。当A=B=0时,盛金公式:X1=X2=X3=b/(3a)=c/b=3d/c。当=B24AC>0时,盛金公式:X1=(b(Y11/3Y21/3)/(3a);X2,3=(2bY11/3Y21/3±31/2 (Y11/3Y21/3)i)/(6a);其中Y1,2=Ab3a (B±(B24AC)1/2)

7、/2,i2=1。当=B24AC=0时,盛金公式:X1=b/aK;X2=X3=K/2,其中K=B/A,(A0)。当=B24AC<0时,盛金公式:X1= (b2A1/2cos(/3) )/(3a);X2,3= (bA1/2(cos(/3)±31/2sin(/3)/(3a);其中=arccosT,T= (2Ab3aB)/(2A3/2),(A>0,1<T<1)。盛金判别法:当A=B=0时,方程有一个三重实根;:当=B24AC>0时,方程有一个实根和一对共轭虚根;:当=B24AC=0时,方程有三个实根,其中有一个两重根;:当=B24AC<0时,方程有三个不相

8、等的实根。据此即可解除一元三次方程,得到单元体的主应力。然后即可根据主应力做出三向应力状态应力圆:据此即可做出应力圆及其坐标系。3、截面几何性质分析本计算程序所用公式较多,如下表所示:序号名称面积形心惯性矩1矩形2圆形3三角形4梯形5椭圆形6扇形按照此表所提供的公式编制程序,即可计算出相应的截面几何性质。由此,该程序的数学建模过程完成,可以照此编制出相应的程序。四、程序源代码代码分为三部分:主界面、应力分析窗口、截面几何性质分析窗口:1、主界面'1308*班,11308*10,*'2015年6月21日Private Sub Command2_Click() EndEnd Sub

9、Private Sub Form_Load() main.Show yingli.Hide jihe.HideEnd SubPrivate Sub jiaoshi_Click() MsgBox "张桂莲"End SubPrivate Sub shijian_Click() MsgBox "2015年6月2日"End SubPrivate Sub tuichu_Click() EndEnd SubPrivate Sub zuozhe_Click() MsgBox "11308*10*"End SubPrivate Sub Command

10、1_Click() If Option1.Value = True Then yingli.Show ElseIf Option2.Value = True Then jihe.Show Else MsgBox "请选择项目" End IfEnd Sub2、应力状态分析窗口Option ExplicitConst pi = 3.1415926Dim x, y, z, 1, 2, 3, xy, yz, xz, max, , , , As DoubleDim temp As DoubleDim I1, I2, I3 As DoubleDim R, C, C12, C23, C3

11、1, R12, R23, R31 As DoubleDim j, i As DoublePrivate Sub Command3_Click() EndEnd SubPrivate Sub Command4_Click() yingli.HideEnd SubPrivate Sub Command2_Click() Text1.Text = 0 Text2.Text = 0 Text3.Text = 0 Text4.Text = 0 Text5.Text = 0 Text6.Text = 0 Text7.Text = 0 Text8.Text = 0 Text9.Text = 0 Text10

12、.Text = 0 Text11.Text = 0 Text12.Text = 0 Text13.Text = 0 Text14.Text = 0End SubPrivate Sub Command5_Click() Set Picture1.Picture = Nothing x = Val(Text1.Text) y = Val(Text2.Text) z = Val(Text3.Text) xy = Val(Text4.Text) yz = Val(Text5.Text) xz = Val(Text6.Text) = Val(Text7.Text) / 180 * pi If Optio

13、n1.Value = True Then R = Sqr(x - y) / 2) 2 + xy 2) C = (x + y) / 2 Picture1.Scale (C - 2 * R - 1, 2 * R + 1)-(C + 2 * R + 1, -2 * R - 1) Picture1.DrawStyle = 0 Picture1.DrawWidth = 1 Picture1.Line (C - 2 * R - 2, 0)-(C + 2 * R + 2, 0) Picture1.Line (0, 2 * R + 2)-(0, -2 * R - 2) Picture1.DrawWidth =

14、 2 Picture1.Circle (C, 0), R Picture1.Line (x, -xy)-(y, xy) Picture1.DrawWidth = 5 Picture1.PSet (x, -xy), vbRed Picture1.PSet (y, xy), vbRed Picture1.PSet (C + R, 0), vbRed Picture1.PSet (C - R, 0), vbRed Picture1.CurrentX = C - R: Picture1.CurrentY = 0 Picture1.Print "min" Picture1.Curre

15、ntX = C + R: Picture1.CurrentY = 0 Picture1.Print "max" Picture1.CurrentX = y: Picture1.CurrentY = xy Picture1.Print "Y(y,xy)" Picture1.CurrentX = x: Picture1.CurrentY = -xy Picture1.Print "X(x,-xy)" Picture1.CurrentX = 0: Picture1.CurrentY = 0 Picture1.Print "O&qu

16、ot; Picture1.DrawStyle = 2 Picture1.DrawWidth = 1 For i = 0 To 200 Step 1 Picture1.Line (-20 * R + i * 0.2 * R, -2 * R - 2)-(-20 * R + i * 0.2 * R, 2 * R + 2) Picture1.Line (C - 2 * R - 2, -20 * R + i * 0.2 * R)-(C + 2 * R + 2, -20 * R + i * 0.2 * R) Next i ElseIf Option2.Value = True Then C12 = (1

17、+ 2) / 2 C23 = (2 + 3) / 2 C31 = (3 + 1) / 2 R12 = (1 - 2) / 2 R23 = (2 - 3) / 2 R31 = (1 - 3) / 2 Picture1.Scale (C31 - 2 * R31 - 1, 2 * R31 + 1)-(C31 + 2 * R31 + 1, -2 * R31 - 1) Picture1.DrawStyle = 0 Picture1.DrawWidth = 1 Picture1.Line (C31 - 2 * R31 - 2, 0)-(C31 + 2 * R31 + 2, 0) Picture1.Line

18、 (0, 2 * R31 + 2)-(0, -2 * R31 - 2) Picture1.DrawStyle = 2 For i = 0 To 200 Step 1 Picture1.Line (-20 * R31 + i * 0.2 * R31, -2 * R31 - 2)-(-20 * R31 + i * 0.2 * R31, 2 * R31 + 2) Picture1.Line (C31 - 2 * R31 - 2, -20 * R31 + i * 0.2 * R31)-(C31 + 2 * R31 + 2, -20 * R31 + i * 0.2 * R31) Next i Pictu

19、re1.DrawWidth = 2 Picture1.Circle (C12, 0), R12 Picture1.Circle (C23, 0), R23 Picture1.Circle (C31, 0), R31 Picture1.CurrentX = C12: Picture1.CurrentY = 0 Picture1.Print "C12" Picture1.CurrentX = C23: Picture1.CurrentY = 0 Picture1.Print "C23" Picture1.CurrentX = C31: Picture1.Cu

20、rrentY = 0 Picture1.Print "C31" Picture1.CurrentX = 1: Picture1.CurrentY = 0 Picture1.Print "1" Picture1.CurrentX = 2: Picture1.CurrentY = 0 Picture1.Print "2" Picture1.CurrentX = 3: Picture1.CurrentY = 0 Picture1.Print "3" Picture1.CurrentX = 0: Picture1.Curr

21、entY = 0 Picture1.Print "O" Picture1.DrawWidth = 4 Picture1.PSet (C12, 0) Picture1.PSet (C23, 0) Picture1.PSet (C31, 0) Picture1.DrawWidth = 5 Picture1.PSet (1, 0), vbRed Picture1.PSet (2, 0), vbRed Picture1.PSet (3, 0), vbRed Else MsgBox "请选择应力状态" End IfEnd SubPrivate Sub Comman

22、d6_Click() Picture1.Picture = NothingEnd SubPrivate Sub Form_Load() Option1.Value = False Option2.Value = FalseEnd SubPrivate Sub Option1_Click() Image1.Visible = True Image2.Visible = False Text1.Enabled = True Text2.Enabled = True Text3.Enabled = False Text4.Enabled = True Text5.Enabled = False Te

23、xt6.Enabled = False Text7.Enabled = True Text8.Enabled = True Text9.Enabled = True Text10.Enabled = True Text11.Enabled = True Text12.Enabled = True Text13.Enabled = True Text14.Enabled = True Label3.Enabled = False Label5.Enabled = False Label6.Enabled = False Label10.Enabled = False Label12.Enable

24、d = False Label13.Enabled = False Label19.Enabled = True Label20.Enabled = True Label21.Enabled = True Label26.Enabled = True Label27.Enabled = True Label28.Enabled = True Label7.Enabled = True Label14.Enabled = TrueEnd SubPrivate Sub Option2_Click() Image2.Visible = True Image1.Visible = False Text

25、1.Enabled = True Text2.Enabled = True Text3.Enabled = True Text4.Enabled = True Text5.Enabled = True Text6.Enabled = True Text7.Enabled = False Text8.Enabled = True Text9.Enabled = True Text10.Enabled = True Text11.Enabled = True Text12.Enabled = False Text13.Enabled = False Text14.Enabled = False L

26、abel3.Enabled = True Label5.Enabled = True Label6.Enabled = True Label7.Enabled = False Label14.Enabled = False Label10.Enabled = True Label12.Enabled = True Label13.Enabled = True Label19.Enabled = False Label20.Enabled = False Label21.Enabled = False Label26.Enabled = False Label27.Enabled = False

27、 Label28.Enabled = FalseEnd SubFunction Arccos(X) As Double '反余弦 Arccos = Atn(-X / Sqr(-X * X + 1) + 2 * Atn(1)End FunctionPrivate Sub Command1_Click() If Option1.Value = True Then x = Val(Text1.Text) y = Val(Text2.Text) xy = Val(Text4.Text) = Val(Text7.Text) / 180 * pi = (x + y) / 2 + (x - y) /

28、 2 * Cos(2 * ) + xy * Sin(2 * ) = -(x - y) / 2 * Sin(2 * ) + xy * Cos(2 * ) If x <> y Then = (Atn(2 * xy / (x - y) / 2) / pi * 180 Else = 90 End If 1 = (x + y) / 2 + Sqr(x - y) / 2) 2 + xy 2) 2 = (x + y) / 2 - Sqr(x - y) / 2) 2 + xy 2) 3 = 0 If 2 > 1 Then temp = 1 1 = 2 2 = temp End If If 3

29、 > 1 Then temp = 1 1 = 3 3 = temp End If If 3 > 2 Then temp = 2 2 = 3 3 = temp End If max = (1 - 3) / 2 Text8.Text = 1 Text9.Text = 2 Text10.Text = 3 Text11.Text = max Text12.Text = Text13.Text = Text14.Text = ElseIf Option2.Value = True Then x = Val(Text1.Text) y = Val(Text2.Text) z = Val(Tex

30、t3.Text) xy = Val(Text4.Text) yz = Val(Text5.Text) xz = Val(Text6.Text) I1 = x + y + z I2 = (x * y - xy 2) + (y * z - yz 2) + (z * x - xz 2) I3 = x * y * z + xy * yz * xz + xy * yz * xz - x * yz * yz - z * xy * xy - y * xz * xz Dim aa, bb, cc, dd As Double Dim a1, b1, c1, derta As Double aa = 1 bb =

31、 -I1 cc = I2 dd = -I3 a1 = bb 2 - 3 * aa * cc b1 = bb * cc - 9 * aa * dd c1 = cc * cc - 3 * bb * dd derta = b1 * b1 - 4 * a1 * c1 If (0 = a1) And (0 = b1) Then 1 = -bb / (3 * aa) 2 = -bb / (3 * aa) 3 = -bb / (3 * aa) 'ElseIf derta > 0 Then 'Dim y1, y2 As Double 'y1 = a1 * b + 3 * a *

32、(-b1 + Sqr(b1 2 - 4 * a1 * c1) / 2 'y2 = a1 * b + 3 * a * (-b1 - Sqr(b1 2 - 4 * a1 * c1) / 2 '1 = (-b - (y1 (1 / 3) + y2 (1 / 3) / (3 * a) '2 = (-b + (y1 (1 / 3) + y2 (1 / 3) / 2 + Sqr(3) / 2 * (y1 (1 / 3) - y2 (1 / 3) * i) / (3 * a) '3 = (-b + (y1 (1 / 3) + y2 (1 / 3) / 2 - Sqr(3) /

33、 2 * (y1 (1 / 3) - y2 (1 / 3) * i) / (3 * a) ElseIf (0 = derta) Then 1 = -bb / aa + b1 / a1 2 = -b1 / (a1 * 2) 3 = -b1 / (a1 * 2) ElseIf (derta < 0) Then Dim As Double = Arccos(2 * a1 * bb - 3 * aa * b1) / (2 * Sqr(a1 * a1 * a1) 1 = (-bb - 2 * Sqr(a1) * Cos( / 3) / (3 * aa) 2 = (-bb + Sqr(a1) * (

34、Cos( / 3) + Sqr(3) * Sin( / 3) / (3 * aa) 3 = (-bb + Sqr(a1) * (Cos( / 3) - Sqr(3) * Sin( / 3) / (3 * aa) End If If 2 > 1 Then temp = 1 1 = 2 2 = temp End If If 3 > 1 Then temp = 1 1 = 3 3 = temp End If If 3 > 2 Then temp = 2 2 = 3 3 = temp End If max = (1 - 3) / 2 Text8.Text = 1 Text9.Text

35、 = 2 Text10.Text = 3 Text11.Text = max Else MsgBox "请选择应力状态" End IfEnd Sub3、截面几何性质分析窗口Option ExplicitDim a, b, h As DoubleDim d, al As DoubleDim iyc, izc, s, yc, zc As DoubleConst pi = 3rivate Sub Command1_Click() Command5.SetFocus If Combo1.Text = "三角形" Then Frame1.

36、Visible = True Image1.Visible = True Image2.Visible = False Frame3.Visible = False Image3.Visible = False Frame4.Visible = False Image4.Visible = False Image5.Visible = False Frame5.Visible = False Image6.Visible = False Frame6.Visible = False ElseIf Combo1.Text = "矩形" Then Frame1.Visible

37、= True Image2.Visible = True Image1.Visible = False Frame3.Visible = False Image3.Visible = False Frame4.Visible = False Image4.Visible = False Image5.Visible = False Frame5.Visible = False Image6.Visible = False Frame6.Visible = False ElseIf Combo1.Text = "圆形" Then Frame3.Visible = True I

38、mage3.Visible = True Image2.Visible = False Image1.Visible = False Frame1.Visible = False Frame4.Visible = False Image4.Visible = False Image5.Visible = False Frame5.Visible = False Image6.Visible = False Frame6.Visible = False ElseIf Combo1.Text = "梯形" Then Image5.Visible = True Frame5.Vi

39、sible = True Frame3.Visible = False Image3.Visible = False Image2.Visible = False Image1.Visible = False Frame1.Visible = False Frame4.Visible = False Image4.Visible = False Image6.Visible = False Frame6.Visible = False ElseIf Combo1.Text = "椭圆形" Then Image6.Visible = True Frame6.Visible =

40、 True Image1.Visible = False Frame1.Visible = False Image2.Visible = False Image3.Visible = False Frame3.Visible = False Image4.Visible = False Frame4.Visible = False Image5.Visible = False Frame5.Visible = False ElseIf Combo1.Text = "扇形" Then Frame4.Visible = True Image4.Visible = True Im

41、age5.Visible = False Frame3.Visible = False Image3.Visible = False Image2.Visible = False Image1.Visible = False Frame1.Visible = False Frame5.Visible = False Image6.Visible = False Frame6.Visible = False ElseIf Combo1.Text = "组合图形" Then Else MsgBox "请选择截面形状" End IfEnd SubPrivate

42、 Sub Command2_Click() Text1.Text = "0" Text2.Text = "0" Text3.Text = "0" Text4.Text = "0" Text5.Text = "0" Text6.Text = "0" Text7.Text = "0" Text8.Text = "0" Text9.Text = "0" Text10.Text = "0" Text11.

43、Text = "0" Text12.Text = "0" Text13.Text = "0" Text14.Text = "0" Text15.Text = "0" Set Picture1.Picture = NothingEnd SubPrivate Sub Command3_Click() jihe.Hide main.ShowEnd SubPrivate Sub Command4_Click() EndEnd SubPrivate Sub Command5_Click() Set Pic

44、ture1.Picture = Nothing If Combo1.Text = "三角形" Then b = Val(Text1.Text) h = Val(Text2.Text) If b <= 0 Or h <= 0 Then MsgBox "输入错误" Else s = 0.5 * b * h yc = b / 3 zc = h / 3 iyc = b * h 3 / 36 izc = h * b 3 / 36 Text3.Text = yc Text4.Text = zc Text5.Text = iyc Text6.Text =

45、iyc Text7.Text = s Picture1.Scale (-(b + h) / 2, 3 * (b + h) / 2)-(3 * (b + h) / 2, -(b + h) / 2) Picture1.DrawStyle = 0 Picture1.DrawWidth = 1 Picture1.Line (-(b + h) / 2, 0)-(3 * (b + h) / 2, 0) Picture1.Line (0, -(b + h) / 2)-(0, 3 * (b + h) / 2) Picture1.DrawWidth = 2 Picture1.Line (0, 0)-(0, h)

46、 Picture1.Line (0, h)-(b, 0) Picture1.Line (b, 0)-(0, 0) Picture1.DrawWidth = 5 Picture1.PSet (yc, zc), vbRed Picture1.CurrentX = 0: Picture1.CurrentY = 0 Picture1.Print "O" Picture1.CurrentX = yc: Picture1.CurrentY = zc Picture1.Print "C" Picture1.CurrentX = yc: Picture1.CurrentY = 3 * h / 2 Picture1.Print "zc" Picture1.CurrentX = 3 * b / 2: Pic

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论