材料力学上机大作业(哈工大)
- 格式:doc
- 大小:419.50 KB
- 文档页数:4
应力状态分析一、问题的提出该程序可以解决的问题:①平面应力状态,已知σx,σy,τxy和角度的情况下计算不同任意截面的应力分量,还可以计算平面应力状态主应力的大小和方向并能画出应力圆;②空间应力状态,已知σx,σy,σz,τxy等的情况下计算主应力和最大切应力。
二、数学模型1、平面应力状态任一斜截面上既有正应力又有切应力,公式为:2、平面应力状态主应力大小及方向1、公式主应力计算公式主平面方位计算公式3、最大切应力:最大切应力发生在与主平面夹45度角的平面方位。
其公式4、应力圆应力圆原理:圆心:半径:5、三向应力状态三向应力计算公式:特征方程:222222x y x y xy αασσσσσττ+-⎛⎫⎛⎫-+=+ ⎪ ⎪⎝⎭⎝⎭2x y a σσ+=222x y xy R σστ-⎛⎫=+ ⎪⎝⎭三个不变量三、程序流程图㈠ 平面应力计算 打开界面选择平面应力计算 出现数据输入对话框 输入σx ,σy ,τxy 和角度 点击计算 可计算出任意截面的应力分量以及三个主应力和最大切应力 记录数据点击清除可进行重复计算㈡ 空间应力状态计算打开界面选择空间应力状态计算 出现数据输入对话框输入σx ,σy ,σz ,τxy ,τyz ,τxz 点击计算 得出结果可计算出三个主应力及最大切应力 记录数据点击清除可以重复计算四、程序说明本程序分为平面应力状态与空间应力状态,点击相应主菜单进行相应的计算。
平面应力状态:本程序能进行多次重复输入与计算根据提示输入数据进行计算输入X ,Y ,XY 方向上的应力值及X'转动的角度值,点击"计算"按扭,进行数值计算。
1x y z I σσσ=++2x yx y zy z xz xy y yz z zx x I στστσττστστσ=++3x yx zx xy y zy xz yz zI στττστττσ=可画出与数据相对应的应力圆空间应力状态:本程序能进行多次重复输入与计算根据提示输入数据进行计算输入X,Y,Z,XY,YZ,ZY方向上的应力值,点击"计算"按扭,可以计算出三个主应力及最大切应力。
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材料力学上机报告课程名称:材料力学设计题目:二向应力状态分析院系:XXXXXX班级:XXXXXX设计者:XXXXXX学号:XXXXXX设计时间:2013.06.18哈尔滨工业大学二向应力状态分析一:课题要求1.输入:任意一点的应力状态:(σx、σy、τxy);某截面方位角α2.输出:输入点的主应力(σ1、σ2、σ3),方位角α斜截面上的应力σα、τα。
及主方向角α3.画出应力圆示意图。
4.程序运行时为界面显示形式。
二:程序框图三:所编程序x=str2double(get(handles.edit1,'string'));y=str2double(get(handles.edit2,'string'));xy=str2double(get(handles.edit3,'string'));M=str2double(get(handles.edit4,'string')); %将窗口输入值分别赋给x,y,xy,M b=sqrt((x/2-y/2)^2+xy^2);x1=(x+y)/2+b;x3=(x+y)/2-b;x2=0;if x1<0x2=x1;x1=0;endt=(x1-x3)/2;M=M*pi/180;b1=(x+y)/2+(x-y)*cos(2*M)/2-xy*sin(2*M);b2=(x-y)*sin(2*M)/2+xy*cos(2*M);b3=90*atan((-2*xy)/(x+y))/pi;%计算输出的主切应力大小、方向和截面上的应力并赋值set(handles.edit5,'string',x1);set(handles.edit6,'string',x2);set(handles.edit7,'string',x3);set(handles.edit9,'string',t);set(handles.edit10,'string',b3);set(handles.edit11,'string',b1);set(handles.edit12,'string',b2);%在输出窗口显示主切应力大小、方向和截面上应力b4=sqrt(b.^2+t.^2);v1=(x+y)/2-b4:0.001:(x+y)/2+b4;b11=sqrt(b4.^2-(v1-(x+y)/2).^2);b12=-sqrt(b4.^2-(v1-(x+y)/2).^2);%绘制应力圆上的点axes(handles.axes1); %选择应力圆的输出地址plot(v1,b11,v1,b12);grid on%绘制应力圆以上程序为在matlab中使用GUI编程时的主代码,界面代码请见m文件。
本程序只支持静定结构的梁(左端悬臂梁、简支梁)函数输入格式:beamsolver(L,EI,supports,loads,maxdx);参量的输入格式:L=10.0EI=2e8supports={{'f',0},{'v',10.0}} ----左端悬臂梁supports={{'p',2.0},{'r',8.0}} ----简支梁loads={{'f',[2.0,1000]},{'m',[4.0,500]},{'d',[7.0,9.0,3.0,20,100]}}maxdx=0.01输出为V,M,vy,x的一维行向量和三张坐标图----图1:剪力V图,图2:弯矩M图,图3:挠度vy图.范例:悬臂梁:纯受集中力:beamsolver(10.0,2e8,{{'f',0},{'v',10.0}},{{'f',[2.0,1000]}},0.01)纯受集中矩:beamsolver(10.0,2e8,{{'f',0},{'v',10.0}},{{'m',[4.0,500]}},0.01)纯受分布力(格式一):beamsolver(10.0,2e8,{{'f',0},{'v',10.0}},{{'d',[7.0,9.0,3.0,20,100]}},0.01) 纯受分布力(格式二):beamsolver(10.0,2e8,{{'f',0},{'v',10.0}},{{'d',[(7.0:0.01:9.0);(0:0.01:2.0).^2]} },0.01)受混合力:beamsolver(10.0,2e8,{{'f',0},{'v',10.0}},{{'f',[2.0,1000]},{'m',[4.0,500]},{'d', [7.0,9.0,3.0,20,100]}},0.01)简支梁:纯受集中力:beamsolver(10.0,2e8,{{'p',2.0},{'r',8.0}},{{'f',[5.0,1000]}},0.01)纯受集中矩:beamsolver(10.0,2e8,{{'p',2.0},{'r',8.0}},{{'m',[4.0,500]}},0.01)纯受分布力(格式一):beamsolver(10.0,2e8,{{'p',2.0},{'r',8.0}},{{'d',[7.0,9.0,3.0,20,100]}},0.01) 纯受分布力(格式二):beamsolver(10.0,2e8,{{'p',2.0},{'r',8.0}},{{'d',[(7.0:0.01:9.0);(0:0.01:2.0).^2] }},0.01)受混合力:beamsolver(10.0,2e8,{{'p',2.0},{'r',8.0}},{{'f',[5.0,1000]},{'m',[4.0,500]},{'d' ,[7.0,9.0,3.0,20,100]}},0.01)以上范例输出的剪力V图、弯矩M图都经过笔算检验完全正确。
材料力学I上机实验设计报告院系:机电学院班级: 1308***姓名:***学号: 11308*****指导教师:张桂莲时间:2015年6月一、问题描述1、应力状态分析对于空间或者是平面应力状态的相关计算,如果采用人工计算的方式比较繁琐而且容易出错,对于这种简单的重复计算,编制相应的程序则可以大大提高计算准确度和人工计算强度。
对于平面应力状态,输入量应为(,,x y xy σστ),以及某截面的方位角α,其输出数据应为该单元体所受主应力(123,,σσσ),所受最大剪应力(13max 132σσττ-==),以及方位角为α的斜截面上的应力(,ααστ)以及主方向角σα,同时还要画出其应力圆示意图,以直观的显示其应力状态。
对于空间应力状态,输入量则应该为各应力(,,,,,x y z xy yz xz σσστττ),其输出数据应该为该单元体所受主应力(123,,σσσ),所受最大剪应力(13max 132σσττ-==),同时还要画出其应力圆示意图,以直观的显示其应力状态。
这样,应力状态分析的基本任务就可以完成。
2、常用截面图形几何性质的分析在生活中,有各种各样的几何形状,但是对于工程实际中经常用到的构件,其截面的几何形状则非常有限。
对于不同的截面,其形心位置、对于形心轴的惯性矩也就有所不同,这样在进行如弯曲、扭转等的应力分析时就会到来不便,因此编制相应的程序来计算相关截面的几何性质也就具有了实际应用价值和可行性。
在这部分程序中,截面几何形状分为三角形、矩形、椭圆形、梯形、圆形、扇形等多种形式,对于不同的截面形状,输入量也就不同。
例如,对于扇形应输入直径和圆心角(,d α);对于梯形则应输入上底、下底和高(,,a b h );对于椭圆形,则要输入长轴长和短轴长(,a b )等等,在此不一一列举,具体输入数据请参看程序运行。
不过对于不同的截面,其输出的量都是相同的,即截面形心的位置、面积、对于形心轴的惯性矩(,,,,C C C C y z y z S I I ),这些输出量就是这些截面的基本几何性质参数,有了这些参数之后则可以对其进行进一步的计算和接下来的分析等问题。
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σσττ-== 可求得最大切应力。
材料力学电算实验压杆的临界力计算院系:机电工程学院班级:设计者:学号:指导教师:张桂莲软件要求:设计时间:一.概述:本程序使用Microsoft Visual Basic编写,可以对不同材料、不同约束类型、不同截面类型的压杆进行临界力的计算。
杆件的参数可以输入,得出结果之后也可以清零。
二、问题分析及相关公式:1、压杆稳定当短粗杆受压时(图1),在压力F由小逐渐增大的过程中,杆件始终保持原有的直线平衡形式,直到压力F达到屈服强度载荷F s(或抗压强度载荷F b),杆件发生强度破坏时为止。
但是,如果用相同的材料,做一根与图1a所示的同样粗细而比较长的杆件(图1b),当压力F比较小时,这一较长的杆件尚能保持直线的平衡形式,而当压力F逐渐增大至某—数值F1时,杆件将突然变弯,不再保持原有的直线平衡形式,因而丧失了承载能力。
我们把受压直杆突然变弯的现象,称为丧失稳定或失稳。
此时,F1可能远小于F s (或F b)。
可见,细长杆在尚未产生强度破坏时,就因失稳而破坏。
图1在研究压杆稳定时,我们用一微小横向干扰力使处于直线平衡状态的压杆偏离原有的位置,如图1所示。
当轴向压力F由小变大的过程中,可以观察到:1)当压力值F1较小时,给其一横向干扰力,杆件偏离原来的平衡位置。
若去掉横向干扰力后,压杆将在直线平衡位置左右摆动,最终将恢复到原来的直线平衡位置。
2)当压力值F2超过其一限度F cr时,平衡状态的性质发生了质变。
这时,只要有一轻微的横向干扰,压杆就会继续弯曲,不再恢复原状,。
3)界于前二者之间,存在着一种临界状态。
当压力值正好等于F cr时,一旦去掉横向干扰力,压杆将在微弯状态下达到新的平衡,既不恢复原状,也不再继续弯曲,。
临界状态是杆件从稳定平衡向不稳定平衡转化的极限状态。
压杆处于临界状态时的轴向压力称为临界力或临界载荷,用F cr表示。
2、两端铰支细长压杆的临界力图2为一两端为球形铰支的细长压杆,其临界力公式为:图222lEIF cr π=(1)式(1)又称为欧拉公式。
铁碳马氏体的强化机制摘要:钢中铁碳马氏体的最主要特性是高强度、高硬度,其硬度随碳含量的增加而升高。
马氏体的强化机制是多种强化机制共同作用的结果。
主要的强化机制包括:相变强化、固溶强化、时效强化、形变强化和综合强化等。
本文介绍了铁碳马氏体及其金相组织和力学特性,着重深入分析马氏体的强化机制。
关键词:铁碳马氏体强化机制1.马氏体的概念,组织及力学特性1.1马氏体的概念马氏体,也有称为麻田散铁,是纯金属或合金从某一固相转变成另一固相时的产物;在转变过程中,原子不扩散,化学成分不改变,但晶格发生变化,同时新旧相间维持一定的位向关系并且具有切变共格的特征。
马氏体最先在淬火钢中发现,是由奥氏体转变成的,是碳在α铁中的过饱和固溶体。
以德国冶金学家阿道夫·马登斯(A.Martens)的名字命名;现在马氏体型相变的产物统称为“马氏体”。
马氏体的开始和终止温度,分别称为M始点和M终点;钢中的马氏体在显微镜下常呈针状,并伴有未经转变的奥氏体(残留奥氏体);钢中的马氏体的硬度随碳量增加而增高;高碳钢的马氏体的硬度高而脆,而低碳钢的马氏体具有较高的韧性。
1.3马氏体的力学特性铁碳马氏体最主要的性质就是高硬度、高强度,其硬度随碳含量的增加而增加。
但是当碳含量达到6%时,淬火钢的硬度达到最大值,这是因为碳含量进一步提高,虽然马氏体的硬度会提高但是由于残余奥氏体量的增加,使钢的硬度反而下降。
2.铁碳马氏体的晶体学特性和金相形貌钢经马氏体转变形成的产物。
绝大多数工业用钢中马氏体属于铁碳马氏体,是碳在体心立方结构铁中的过饱和固溶体。
铁碳合金的奥氏体具有很宽的碳含量范围,所形成的马氏体在晶体学特性、亚结构和金相形貌方面差别很大。
可以把铁碳马氏体按碳含量分为5个组别(见表)【1】。
低碳马氏体为体心立方结构,中、高碳为体心正方结构。
碳原子的固溶为间隙式,处于八面体间隙之中。
如图1A中×号所示,三坐标方向的面心位置是具有代表性的三种八面体间隙中心,构成了体心晶格中的三套亚点阵,分别以1/2[001]、1/2[010]、1/2[100]表示,每单位晶胞中有六个八面体间隙分属这三套亚点阵。
哈工大材料力学实验报告哈工大材料力学实验报告引言哈尔滨工业大学(以下简称哈工大)是中国著名的工科大学之一,其材料力学实验是该校材料科学与工程专业的重要课程之一。
本文将对哈工大材料力学实验进行报告,介绍实验的目的、方法、结果和分析。
实验目的材料力学实验旨在通过实际操作和数据分析,加深学生对材料力学理论的理解,并培养学生的实验操作技能和数据处理能力。
通过该实验,学生可以了解不同材料的力学性能,如强度、韧性、硬度等,并掌握常见的力学测试方法和设备。
实验方法本次实验选取了常见的金属材料和聚合物材料,分别进行了拉伸试验和冲击试验。
拉伸试验通过引伸计测量材料在受力过程中的变形,从而得到材料的应力-应变曲线。
冲击试验则通过冲击试验机测量材料在受冲击载荷下的断裂韧性。
实验过程中,我们严格按照实验操作规程进行操作,确保实验的准确性和可靠性。
实验结果与分析拉伸试验结果显示,金属材料在受力过程中呈现出明显的弹性阶段和塑性阶段。
弹性阶段中,材料的应力与应变成正比,符合胡克定律。
塑性阶段中,材料开始发生塑性变形,应力逐渐增大,而应变增大的速度逐渐减小。
最终,材料发生断裂。
通过绘制应力-应变曲线,我们可以得到材料的屈服强度、断裂强度等重要参数。
冲击试验结果显示,聚合物材料在受冲击载荷下表现出较好的韧性。
冲击试验机通过测量材料的断裂能量来评估材料的韧性。
结果显示,聚合物材料的断裂能量较大,说明其在受冲击载荷下能够吸收较多的能量,具有较好的抗冲击性能。
实验结论通过本次实验,我们对材料力学的基本概念和测试方法有了更深入的了解。
拉伸试验和冲击试验结果表明,金属材料具有较高的强度和硬度,而聚合物材料具有较好的韧性和抗冲击性能。
这些结果对于材料的选择和设计具有重要的参考价值。
进一步讨论除了本次实验所涉及的拉伸试验和冲击试验,材料力学还包括很多其他的测试方法和实验技术。
例如,硬度测试可以用来评估材料的硬度和耐磨性。
疲劳试验可以用来评估材料在循环载荷下的寿命和稳定性。
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材料力学上机作业课程名称:材料力学设计题目:绘制梁的剪力弯矩图院系:班级:分析者:学号:指导教师:设计时间:哈尔滨工业大学材料力学上机课设计说明书一,设计题目题目4 绘制梁的剪力弯矩图输入:1.梁的总长度l2.支撑条件及量的各区段长度输入(左、右固定端悬臂梁;简支梁;左、右、双外伸梁)3.各载荷大小、作用位置及方向(q i、a i、b i;p j、c j、m k、d k)输出:1.结构构型图(图示)2.剪力、弯矩(图示)3.输出剪力、弯矩的最大值及截面位置。
二,方向规定本程序规定集中作用力及均布载荷以向下为正,右固定端悬臂梁与左外伸梁集中力偶以顺时针方向为正,其他情况集中力偶以逆时针方向为正。
当取出梁的一段为研究对象时,梁左端面力以向下为正,力偶以顺时针方向为正,梁右端面力以向上为正,力偶以逆时针方向为正。
三,程序设计过程1,制作程序框架,显示提示内容,提示操作者需要输入的作用条件及各作用位置;2,编写程序使计算机读入操作者输入的作用条件;3,草稿拟写各种情况下为达到题目要求所需使用的计算公式设量的长度为l,集中力大小为p,作用位置为c,集中力大小为q,作用起始位置a,终止位置为b,集中力偶大小为m,作用位置d。
(1)左固定端悬臂梁:在任意位置x处,取x以右部分为研究对象a,终止位置为b,集中力作用位置为c,大小为P,集中力偶作用位置为d,大小为m。
①若c<x,a<b<x,d>x,则Fs y=0,M(x)=m;②若c>x,a<b<x,d<x,则Fs y=-P,M(x)=Px-Pc;③若c<x,a<x<b,d<x,则Fs y=-q(b-x),M(x)=-2q(b-x)²;④若c<x, x<a<b,d>x,则Fs y=-q(b-a),M(x)=-q(b-a)(2ba+-x);⑤若c>x,a<b<x,d>x,则Fs y=-P,M(x)= Px-Pc+m;(第①、②两种情况合成)⑥若c<x,a<x<b,d>x,则Fs y=-q(b-x),M(x)=m-2q(b-x)²;(第①、③两种情况合成)⑦若c<x,x<a<b,d>x,则Fs y=-q(b-a),M(x)=m-q(b-a)(2ba+-x);(第①、④两种情况合成)⑧若c>x,a<x<b,d<x,则Fs y=-P-q(b-x),M(x)=Px-Pc-2q(b-x)²;(第②、③两种情况合成)⑨若c>x,x<a<b,d<x,则Fs y=-P-q(b-a),M(x)=Px-Pc-q(b-a)*(2ba+-x);(第②、④两种情况合成)⑩若c>x,x<a<b,d>x,则Fs y=-P-q(b-a), M(x)=m+Px-Pc-q(b-a)*(2ba+-x);(第①、②、④两种情况合成)⑪c>x,a<x<b,d>x, 则Fs y=-P-q(b-x), M(x)m+Px-Pc-q(b-a)*(2ba+-x); (第①、②、③两种情况合成)将上述公式编入程序即可计算出在固定端悬臂梁情况下任意位置处的剪力和弯矩,采用散点法作出梁的剪力弯矩图。
材料力学上机大作业题目名称:应力状态分析班号:学号:姓名:学院:机电工程学院指导教师:完成时间: 2013.6.20使用软件:Matlab应力状态分析一、 解决问题方向该程序可以解决的问题:① 平面应力状态,已知σx ,σy ,τxy 和角度的情况下计算不同任意截面的应力分量,还可以计算平面应力状态主应力的大小和方向并能画出应力圆;② 空间应力状态,已知σx ,σy ,σz ,τxy 等的情况下计算主应力和最大切应力。
二、 数学模型1、平面应力状态任一斜截面上正应力与切应力的公式为:ατασσσσσα2sin 2cos 22x yx yx -+++=ατασστ2cos 2sin 2x yx x +-=2、平面应力状态的主应力大小及方向分析:主应力计算公式: 主平面方位计算公式: 22min max 22x y x y x τσσσσσσ+⎪⎪⎭⎫ ⎝⎛-±+=⎭⎬⎫ y x xσστα--=22tan 03、最大切应力:与主平面45度角的平面方位231max σστ-=4、应力圆原理:222222xy y x y x x τσστσσσα+⎪⎪⎭⎫ ⎝⎛-=+⎪⎪⎭⎫ ⎝⎛+- 5、三向应力状态特征方程:032213=-+-I I I σσσ3个不变量:z y x I σσσ++=1xzx xz z z yz zy y y xy yx x I σττσσττσσττσ++=2 zyz xz zy y xy zxyx x I στττστττσ=3三、程序流程图1.平面应力计算(1)打开M 程序之后,选择平面应力计算部分。
提示输入数据σx ,σy ,τxy 。
(2)点击回车后计算。
(3)程序算出任意截面的应力分量以及三个主应力和最大切应力。
(4)启动绘图,可以得到相应的平面应力圆图像。
2.空间应力计算(1)打开M 程序之后,选择空间应力计算部分。
提示输入数据σx ,σy ,σz ,τxy ,τyz ,τxz 。
材料力学上机课程作业:C语言编写1一个力作用下的任意截面的弯矩,挠度。
程序:#include <stdio.h>#include<math.h>double Mz,l,a,x,v,E,I,b,F;main(){printf("请输入长度l\n");scanf("%lf",&l);printf("请输入长度a\n");scanf("%lf",&a);printf("请输入弹性模量E\n");scanf("%lf",&E);printf("请输入极惯性矩I\n");scanf("%lf",&I);printf("请输入力F\n");scanf("%lf",&F);printf("请输入x\n");scanf("%lf",&x);b=l-a;if(x>0&&x<a){Mz=F*(l-a)*x/l;v=-F*b*x*(l*l-x*x-b*b)/(6*E*I*l);printf("Mz=%f\n",Mz);printf("v=%f\n",v);}else if(x>a&&x<l){Mz=F*a*(l-x)/l;v=-F*b*(l/b*pow(x-a,3)+(l*l-b*b)*x-x*x*x)/(6*E*I*l);printf("Mz=%f\n",Mz);printf("v=%f\n",v);}else{printf("數值溢出\n");}}运算结果:选取材料的L=1m,E=4.5GPa。
材料力学上机大作业题目名称:二向应力状态分析通用程序作者班号作者学号:作者姓名:指导教师:完成时间:2013年运行环境:microsoft visual basic语言环境结果数据:主应力的大小和方向、主切应力的大小和方向、任意截面上的应力大小。
同时可以输出单元体和应力圆。
1.双击打开材料力学二向应力状态分析通用程序,弹出下示对话框2.按提示要求输入数据正应力和切应力,以及所要求应力状态的截面角度,单击确定,在计算结果栏显示出所求得的数据结果。
3.单击“输出单元体和应力圆”按钮,弹出新的对话框如下图5.单击“重新输入”返回上级窗体,可以按步骤重新输入数据进行下一组数据的计算附:源程序代码 form1语句:Private Sub Command1_Click()Dim j As DoubleDim k As DoubleDim i As DoubleDim q As Double '输入的应力状态Dim m As DoubleDim n As DoubleDim p As Double '输出的主应力Dim X As DoubleDim Y As DoubleDim z As Double '输出的切应力Dim a As DoubleDim b As DoubleDim c As Double '输出的任意应力状态j = Val(Text1.Text)k = Val(Text2.Text)i = Val(Text3.Text)q = Val(Text4.Text)/180*3.14159m = (j + k) / 2 + Sqr(((j - k) / 2) ^ 2 + i ^ 2) '最大主应力n = (j + k) / 2 - Sqr(((j - k) / 2) ^ 2 + i ^ 2) '最小主应力If j = k Thenp = 45Elsep = ((Atn((i * 2) / (j - k))) / 2) / 3.1415926 * 180 '角度End IfX = Sqr(((j - k) / 2) ^ 2 + i ^ 2) '最大切应力Y = -Sqr(((j - k) / 2) ^ 2 + i ^ 2) '最小切应力If i = 0 Thenz = 45Elsez = ((Atn(-(j - k) / (2 * i))) / 2) / 3.1415926 * 180 '主切平面方位角End Ifa = (j + k) / 2 + (j - k) * Cos(2 * q) / 2 + i * Sin(2 * q) '任意面应力b = -(j - k) * Sin(2 * q) / 2 + i * Cos(2 * q)Text7.Text = Format(m, "0.00")Text8.Text = Format(n, "0.00")Text9.Text = Format(p, "0.00")Text10.Text = Format(X, "0.00")Text11.Text = Format(Y, "0.00")Text12.Text = Format(z, "0.00")σ=xText5.Text = Format(a, "0.00")Text6.Text = Format(b, "0.00")End SubPrivate Sub Command2_Click()Form1.Visible = FalseForm2.Visible = TrueEnd Subform2语句:Private Sub Command2_Click()Form1.Visible = TrueForm2.Visible = FalseEnd SubPrivate Sub picture2_GotFocus()Dim j As DoubleDim k As DoubleDim i As DoubleDim q As Double '输入的应力状态Dim m As DoubleDim n As DoubleDim p As Double '输出的主应力Dim X As DoubleDim Y As DoubleDim z As Double '输出的切应力Dim a As DoubleDim b As Double '输出的任意应力状态Dim c As Doublej = Val(Form1.Text1.Text)k = Val(Form1.Text2.Text)i = Val(Form1.Text3.Text)q = Val(Form1.Text4.Text) /180*3.14159m = (j + k) / 2 + Sqr(((j - k) / 2) ^ 2 + i ^ 2) '最大主应力n = (j + k) / 2 - Sqr(((j - k) / 2) ^ 2 + i ^ 2) '最小主应力If j = k Thenp = 45Elsep = ((Atn((i * 2) / (j - k))) / 2) / 3.1415926 * 180 '角度End Ifc = (j + k) / 2 + (j - k) / 2 * Cos(2 * p) + c * Sin(2 * p)If c <> m Thenp = p + 90End IfX = Sqr(((j - k) / 2) ^ 2 + i ^ 2) '最大切应力Y = -Sqr(((j - k) / 2) ^ 2 + i ^ 2) '最小切应力If i = 0 Thenz = 45Elsez = ((Atn(-(j - k) / (2 * i))) / 2) / 3.1415926 * 180 '主切平面方位角End Ifa = (j + k) / 2 + (j - k) * Cos(2 * q) / 2 + i * Sin(2 * q)b = -(j - k) * Sin(2 * q) / 2 + i * Cos(2 * q)Picture2.Cls '清除图中线条Picture2.DrawWidth = 3Picture2.Scale (-2, 2)-(2, -2)Picture2.Line (-1, 1)-(-1, -1)Picture2.Line (-1, -1)-(1, -1)Picture2.Line (1, -1)-(1, 1)Picture2.Line (1, 1)-(-1, 1) '输出正方形Picture2.DrawWidth = 1If p <> 0 ThenIf Abs(Tan(p)) < 1 ThenPicture2.Line (0, 0)-(Tan(p), -1), vbGreenPicture2.Line (0, 0)-(-Tan(p), 1), vbGreenPicture2.Line (0, 0)-(1.6 * Cos(p), 1.6 * Sin(p)), vbGreenElseIf Abs(Tan(p)) > 1 ThenPicture2.Line (0, 0)-(1, -1 / Tan(p)), vbGreenPicture2.Line (0, 0)-(-1, 1 / Tan(p)), vbGreenPicture2.Line (0, 0)-(1.6 * Cos(p), 1.6 * Sin(p)), vbGreen '按角度不同作出主应力的平面End IfEnd IfEnd IfPicture2.DrawWidth = 3If i > 0 ThenPicture2.Line (1.2, -0.8)-(1.2, 0.8), vbRedPicture2.Line (1.2, 0.8)-(1.3, 0.7), vbRedPicture2.Line (1.2, 0.8)-(1.1, 0.7), vbRed '切应力Picture2.Line (-1.2, -0.8)-(-1.2, 0.8), vbRedPicture2.Line (-1.2, -0.8)-(-1.3, -0.7), vbRedPicture2.Line (-1.2, -0.8)-(-1.1, -0.7), vbRed '切应力Picture2.Line (0.8, 1.2)-(-0.8, 1.2), vbRedPicture2.Line (0.8, 1.2)-(0.7, 1.3), vbRedPicture2.Line (0.8, 1.2)-(0.7, 1.1), vbRed '切应力Picture2.Line (0.8, -1.2)-(-0.8, -1.2), vbRedPicture2.Line (-0.8, -1.2)-(-0.7, -1.3), vbRedPicture2.Line (-0.8, -1.2)-(-0.7, -1.1), vbRed '切应力ElseIf i < 0 ThenPicture2.Line (1.2, -0.8)-(1.2, 0.8), vbRedPicture2.Line (1.2, -0.8)-(1.3, -0.7), vbRedPicture2.Line (1.2, -0.8)-(1.1, -0.7), vbRed '切应力Picture2.Line (-1.2, -0.8)-(-1.2, 0.8), vbRedPicture2.Line (-1.2, 0.8)-(-1.3, 0.7), vbRedPicture2.Line (-1.2, 0.8)-(-1.1, 0.7), vbRed '切应力Picture2.Line (0.8, 1.2)-(-0.8, 1.2), vbRedPicture2.Line (-0.8, 1.2)-(-0.7, 1.3), vbRedPicture2.Line (-0.8, 1.2)-(-0.7, 1.1), vbRed '切应力Picture2.Line (0.8, -1.2)-(-0.8, -1.2), vbRedPicture2.Line (0.8, -1.2)-(0.7, -1.3), vbRedPicture2.Line (0.8, -1.2)-(0.7, -1.1), vbRed '切应力End IfEnd IfIf j > 0 ThenPicture2.Line (1, 0)-(1.8, 0), vbRedPicture2.Line (1.8, 0)-(1.7, 0.1), vbRedPicture2.Line (1.8, 0)-(1.7, -0.1), vbRed '主应力Picture2.Line (-1, 0)-(-1.8, 0), vbRedPicture2.Line (-1.8, 0)-(-1.7, 0.1), vbRedPicture2.Line (-1.8, 0)-(-1.7, -0.1), vbRed '主应力ElseIf j < 0 ThenPicture2.Line (1, 0)-(1.8, 0), vbRedPicture2.Line (1, 0)-(1.1, 0.1), vbRedPicture2.Line (1, 0)-(1.1, -0.1), vbRed '主应力Picture2.Line (-1, 0)-(-1.8, 0), vbRedPicture2.Line (-1, 0)-(-1.1, 0.1), vbRedPicture2.Line (-1, 0)-(-1.1, -0.1), vbRed '主应力End IfEnd IfIf k > 0 ThenPicture2.Line (0, 1)-(0, 1.8), vbRedPicture2.Line (0, 1.8)-(0.1, 1.7), vbRedPicture2.Line (0, 1.8)-(-0.1, 1.7), vbRedPicture2.Line (0, -1)-(0, -1.8), vbRedPicture2.Line (0, -1.8)-(0.1, -1.7), vbRedPicture2.Line (0, -1.8)-(-0.1, -1.7), vbRed ElseIf k < 0 ThenPicture2.Line (0, 1)-(0, 1.8), vbRedPicture2.Line (0, 1)-(0.1, 1.1), vbRedPicture2.Line (0, 1)-(-0.1, 1.1), vbRedPicture2.Line (0, -1)-(0, -1.8), vbRedPicture2.Line (0, -1)-(0.1, -1.1), vbRedPicture2.Line (0, -1)-(-0.1, -1.1), vbRedEnd IfEnd IfEnd SubPrivate Sub Picture3_GotFocus()Dim j As DoubleDim k As DoubleDim i As DoubleDim q As Double '输入的应力状态Dim m As DoubleDim n As DoubleDim p As Double '输出的主应力Dim X As DoubleDim Y As DoubleDim z As Double '输出的切应力Dim a As DoubleDim b As DoubleDim c As Double '输出的任意应力状态j = Val(Form1.Text1.Text)k = Val(Form1.Text2.Text)i = Val(Form1.Text3.Text)q = Val(Form1.Text4.Text) /180*3.14159m = (j + k) / 2 + Sqr(((j - k) / 2) ^ 2 + i ^ 2) '最大主应力n = (j + k) / 2 - Sqr(((j - k) / 2) ^ 2 + i ^ 2) '最小主应力If j = k Thenp = 45Elsep = ((Atn((i * 2) / (j - k))) / 2) / 3.1415926 * 180 '角度End IfX = Sqr(((j - k) / 2) ^ 2 + i ^ 2) '最大切应力Y = -Sqr(((j - k) / 2) ^ 2 + i ^ 2) '最小切应力If i = 0 Thenz = 45Elsez = ((Atn(-(j - k) / (2 * i))) / 2) / 3.1415926 * 180 '主切平面方位角End Ifa = (j + k) / 2 + (j - k) * Cos(2 * q) / 2 + i * Sin(2 * q)b = -(j - k) * Sin(2 * q) / 2 + i * Cos(2 * q)Picture3.Cls '清除图中线条s = (j + k) / 2r = ((j + k) / 2 - n)Picture3.DrawWidth = 3 '确定线宽Picture3.ScaleMode = 3If s <> 0 ThenPicture3.Scale (-(1.6 * r + Abs(s)), (1.6 * r + Abs(s)))-((1.6 * r + Abs(s)), -(1.6 * r + Abs(s))) '定义坐标Picture3.Line ((1.5 * r + Abs(s)), 0)-(-(1.5 * r + Abs(s)), 0)Picture3.Line (0, -(1.5 * r + Abs(s)))-(0, (1.5 * r + Abs(s)))Picture3.Line ((1.5 * r + Abs(s)), 0)-((1.4 * r + Abs(s)), 0.1 * r)Picture3.Line ((1.5 * r + Abs(s)), 0)-((1.4 * r + Abs(s)), -0.1 * r)ElsePicture3.Scale (-2, 2)-(2, -2) '定义坐标Picture3.Line (-1.9, 0)-(1.9, 0)Picture3.Line (0, -1.9)-(0, 1.9)Picture3.Line (1.9, 0)-(1.7, 0.1)Picture3.Line (1.9, 0)-(1.7, -0.1)End IfPicture3.Circle (s, 0), Abs(r), vbRed '做圆,圆心,半径,红线End SubPrivate Sub Command1_Click()Dim j As DoubleDim k As DoubleDim i As DoubleDim q As Double '输入的应力状态Dim m As DoubleDim n As DoubleDim p As Double '输出的主应力Dim X As DoubleDim Y As DoubleDim z As Double '输出的切应力Dim a As DoubleDim b As DoubleDim c As Double '输出的任意应力状态j = Val(Form1.Text1.Text)k = Val(Form1.Text2.Text)i = Val(Form1.Text3.Text)q = Val(Form1.Text4.Text) /180*3.14159m = (j + k) / 2 + Sqr(((j - k) / 2) ^ 2 + i ^ 2) '最大主应力n = (j + k) / 2 - Sqr(((j - k) / 2) ^ 2 + i ^ 2) '最小主应力If j = k Thenp = 45Elsep = ((Atn((i * 2) / (j - k))) / 2) / 3.1415926 * 180 '角度End Ifc = (j + k) / 2 + (j - k) / 2 * Cos(2 * p) + c * Sin(2 * p)If c <> m Thenp = p + 90End If'判定X = Sqr(((j - k) / 2) ^ 2 + i ^ 2) '最大切应力Y = -Sqr(((j - k) / 2) ^ 2 + i ^ 2) '最小切应力If i = 0 Thenz = 45Elsez = ((Atn(-(j - k) / (2 * i))) / 2) / 3.1415926 * 180 '主切平面方位角End Ifa = (j + k) / 2 + (j - k) * Cos(2 * q) / 2 + i * Sin(2 * q)b = -(j - k) * Sin(2 * q) / 2 + i * Cos(2 * q)Picture2.Cls '清除图中线条Picture2.DrawWidth = 3Picture2.Scale (-2, 2)-(2, -2)Picture2.Line (-1, 1)-(-1, -1)Picture2.Line (-1, -1)-(1, -1)Picture2.Line (1, -1)-(1, 1)Picture2.Line (1, 1)-(-1, 1) '正方形Picture2.DrawWidth = 1If p <> 0 ThenIf Abs(Tan(p)) < 1 ThenPicture2.Line (0, 0)-(Tan(p), -1), vbGreenPicture2.Line (0, 0)-(-Tan(p), 1), vbGreenPicture2.Line (0, 0)-(1.6 * Cos(p), 1.6 * Sin(p)), vbGreenElseIf Abs(Tan(p)) > 1 ThenPicture2.Line (0, 0)-(1, -1 / Tan(p)), vbGreenPicture2.Line (0, 0)-(-1, 1 / Tan(p)), vbGreenPicture2.Line (0, 0)-(1.6 * Cos(p), 1.6 * Sin(p)), vbGreen '按角度不同作出主应力的平面End IfEnd IfEnd IfPicture2.DrawWidth = 3If i > 0 ThenPicture2.Line (1.2, 0.8)-(1.3, 0.7), vbRedPicture2.Line (1.2, 0.8)-(1.1, 0.7), vbRed '切应力Picture2.Line (-1.2, -0.8)-(-1.2, 0.8), vbRedPicture2.Line (-1.2, -0.8)-(-1.3, -0.7), vbRedPicture2.Line (-1.2, -0.8)-(-1.1, -0.7), vbRed '切应力Picture2.Line (0.8, 1.2)-(-0.8, 1.2), vbRedPicture2.Line (0.8, 1.2)-(0.7, 1.3), vbRedPicture2.Line (0.8, 1.2)-(0.7, 1.1), vbRed '切应力Picture2.Line (0.8, -1.2)-(-0.8, -1.2), vbRedPicture2.Line (-0.8, -1.2)-(-0.7, -1.3), vbRedPicture2.Line (-0.8, -1.2)-(-0.7, -1.1), vbRed '切应力ElseIf i < 0 ThenPicture2.Line (1.2, -0.8)-(1.2, 0.8), vbRedPicture2.Line (1.2, -0.8)-(1.3, -0.7), vbRedPicture2.Line (1.2, -0.8)-(1.1, -0.7), vbRed '切应力Picture2.Line (-1.2, -0.8)-(-1.2, 0.8), vbRedPicture2.Line (-1.2, 0.8)-(-1.3, 0.7), vbRedPicture2.Line (-1.2, 0.8)-(-1.1, 0.7), vbRed '切应力Picture2.Line (0.8, 1.2)-(-0.8, 1.2), vbRedPicture2.Line (-0.8, 1.2)-(-0.7, 1.3), vbRedPicture2.Line (-0.8, 1.2)-(-0.7, 1.1), vbRed '切应力Picture2.Line (0.8, -1.2)-(-0.8, -1.2), vbRedPicture2.Line (0.8, -1.2)-(0.7, -1.3), vbRedPicture2.Line (0.8, -1.2)-(0.7, -1.1), vbRed '切应力End IfEnd IfIf j > 0 ThenPicture2.Line (1, 0)-(1.8, 0), vbRedPicture2.Line (1.8, 0)-(1.7, 0.1), vbRedPicture2.Line (1.8, 0)-(1.7, -0.1), vbRed '主应力Picture2.Line (-1, 0)-(-1.8, 0), vbRedPicture2.Line (-1.8, 0)-(-1.7, -0.1), vbRed '主应力ElseIf j < 0 ThenPicture2.Line (1, 0)-(1.8, 0), vbRedPicture2.Line (1, 0)-(1.1, 0.1), vbRedPicture2.Line (1, 0)-(1.1, -0.1), vbRed '主应力Picture2.Line (-1, 0)-(-1.8, 0), vbRedPicture2.Line (-1, 0)-(-1.1, 0.1), vbRedPicture2.Line (-1, 0)-(-1.1, -0.1), vbRed '主应力End IfEnd IfIf k > 0 ThenPicture2.Line (0, 1)-(0, 1.8), vbRedPicture2.Line (0, 1.8)-(0.1, 1.7), vbRedPicture2.Line (0, 1.8)-(-0.1, 1.7), vbRedPicture2.Line (0, -1)-(0, -1.8), vbRedPicture2.Line (0, -1.8)-(0.1, -1.7), vbRedPicture2.Line (0, -1.8)-(-0.1, -1.7), vbRedElseIf k < 0 ThenPicture2.Line (0, 1)-(0, 1.8), vbRedPicture2.Line (0, 1)-(0.1, 1.1), vbRedPicture2.Line (0, 1)-(-0.1, 1.1), vbRedPicture2.Line (0, -1)-(0, -1.8), vbRedPicture2.Line (0, -1)-(0.1, -1.1), vbRedPicture2.Line (0, -1)-(-0.1, -1.1), vbRedEnd IfEnd IfPicture3.Cls '清除图中线条s = (j + k) / 2r = ((j + k) / 2 - n)Picture3.DrawWidth = 3 '确定线宽Picture3.ScaleMode = 3If s <> 0 ThenPicture3.Scale (-(1.6 * r + Abs(s)), (1.6 * r + Abs(s)))-((1.6 * r + Abs(s)), -(1.6 * r + Abs(s))) '定义坐标Picture3.Line ((1.5 * r + Abs(s)), 0)-(-(1.5 * r + Abs(s)), 0)Picture3.Line (0, -(1.5 * r + Abs(s)))-(0, (1.5 * r + Abs(s)))Picture3.Line ((1.5 * r + Abs(s)), 0)-((1.4 * r + Abs(s)), 0.1 * r)Picture3.Line ((1.5 * r + Abs(s)), 0)-((1.4 * r + Abs(s)), -0.1 * r)ElsePicture3.Scale (-2, 2)-(2, -2) '定义坐标Picture3.Line (-1.9, 0)-(1.9, 0)Picture3.Line (0, -1.9)-(0, 1.9)Picture3.Line (1.9, 0)-(1.7, 0.1)Picture3.Line (1.9, 0)-(1.7, -0.1)End IfPicture3.Circle (s, 0), Abs(r), vbRed '做圆,圆心,半径,红线End Sub。
哈工大材料力学上机实验课作业Harbin Institute of Technology材料力学电算大作业题目名称:各种条件下的任意截面的弯矩,挠度作者班号:1108108作者学号:1110810812作者姓名:刘涛指导教师:王春香完成时间:2013/5/23一、问题的提出该程序可以解决的问题:一个力作用下(1)圆柱面杆(2)矩形截面杆(3)工字梁截面杆(4)空心圆柱截面杆的弯矩和挠度二、程序流程图输入杆长(mm),力F(kN),力作用点到左端面A的距离a(mm)输入梁的弹性模量(Gpa)输入所求端面到左端面的距离X 输入梁的形状计算惯性矩计算并输出弯矩根据梁的形状不同输入不同的数值计算并输出挠度三、不同力作用下的弯矩,挠度1.一个力作用下的任意截面的弯矩,挠度程序:#include <stdio.h>#include <stdlib.h>#include <math.h>#define PI 3.1415926int get_I(int kind);int main(){float f=100, l=100, a=50, b, x=60;float M, v;float E = 200, I;int kind=1;printf("请输入杆长l(mm),力F(kN),力作用点到左端面A的距离a(mm)\n");scanf("%f%f%f",&l,&f,&a);l /= 1000;f *= 1000;a /= 1000;printf("请输入梁的弹性模量(GPa)\n");scanf("%f",&E);E *= 1.e9;printf("请输入所求端面到左端面A的距离X\n");scanf("%f",&x);x /= 1000;printf("请输入梁的截面形状(圆柱面=1,矩形梁=2,工字梁=3,空心圆柱梁=4)\n");scanf("%d",&kind);I = get_I(kind);//计算惯性矩b = l - a;M = f * x;//计算弯矩if (0 <= x && x <= a){v = (-1) * f * b * x *(l*l - x*x - b*b) / (6 * E * I * l);}else if (a < x && x <= l){v = (-1) * f * b * x *(l/b * pow((x-a), 3) + (l*l - b*b)*x -pow(x, 3)) / (6 * E * I * l);}else{v = 0;printf("error!");exit (0);}printf("转矩M = %gN•m\n", M);printf("挠度V = %gm\n", v);system("pause");return 0;}int get_I(int kind)//计算截面的I惯性矩{float d,b, h;//矩形梁,工字梁,圆柱梁float d2, alpha;//空心圆柱梁float I;//圆柱面=1,矩形梁=2,工字梁=3,空心圆柱梁=4if (1 == kind)//圆柱面=1{printf ("请输入圆柱梁的直径d\n");scanf("%f", &d);I = PI * pow(d, 4) / 64;}else if (2 == kind)//矩形梁=2{printf ("请输入矩形截面的b和h\n");scanf ("%f%f",&b, &h);I = b * pow(h, 3) / 12;}///*else if (3 == kind)//工字梁=3{printf("|——————-—————|\n");printf("|————| |——————|t\n");printf(" |d|\n");printf(" | |\n");printf("|————| |——————|\n");printf("|—————b——————|\n");/*printf ("请输入工字梁的翼缘厚度t,腹板厚度d,翼缘宽度b,梁高度h\n");scanf ("%f%f%f%f",&t,&d,&b,&h);*/printf ("请查附表B输入工字梁的惯性矩I\n");scanf ("%f",&I);}//*/else if (4 == kind)//空心圆柱梁=4{printf ("请输入圆柱梁的直径d和内外径比例alpha\n"); scanf ("%f%f",&d2, &alpha);I = PI * pow(d2, 4) *(1 - pow(alpha, 4)) / 64; }else{I = 0;}return I;}2.一个力偶作用下的任意截面的弯矩,挠度#include <stdio.h>#include <stdlib.h>#include <math.h>#define PI 3.1415926#define TORAD (PI/180)float get_I(int kind);float get_V_M0(float E, float Length,float I,float x, float M0, float a_L );float get_M_M0(float Length, float M0,float a_L, float x);int main(){int kind;//截面形状float Length, a_L, x;float E, I, M0;float v, M;//所求截面的挠度,弯矩printf(" Input Length(mm): ");scanf ("%f", &Length);Length /= 1000;/*单位转化*/printf("Input shape (circle=1,scquare=2,gongZL=3,blank circle=4): ");scanf("%d",&kind);printf("Input E(GPa): ");scanf("%f",&E);E *= 1.e9;/*单位转化*/printf("Input M0(N*m): ");scanf ("%f", &M0);printf("Input a_L( mm) ");scanf ("%f", &a_L);a_L /= 1000;/*单位转化*/while(a_L < 0 || a_L > Length){printf("力偶没有作用在杆上,请重新输入作用点位置: \n"); printf("请输入力偶作用点距离左端面的距离a_L( mm) "); scanf ("%f", &a_L);a_L /= 1000;/*单位转化*/}printf("Input x ( mm): ");scanf ("%f", &x);x /= 1000;/*单位转化*/I = get_I(kind );v = get_V_M0(E, Length, I, x, M0, a_L );M = get_M_M0(Length, M0, a_L, x);printf("Toatal M = %g N•m\n", M);printf("Toatal v = %g mm\n", v);return 0;system("pause");}float get_I(int kind)//计算截面的I惯性矩{float d,b, h;//矩形梁,工字梁,圆柱梁float d2, alpha;//空心圆柱梁float I;//float t;if (1 == kind)//圆柱面=1{printf ("Input d\n");scanf("%f", &d);I = PI * pow(d, 4) / 64;}else if (2 == kind)//矩形梁=2{printf ("Input b和h\n");scanf ("%f%f",&b, &h);I = b * pow(h, 3) / 12;}///*else if (3 == kind)//工字梁=3{printf("|——————-—————|\n");printf("|————| |——————|t\n");printf(" |d|\n");printf(" | |\n");printf("|————| |——————|\n");printf("|—————b——————|\n");printf ("Input I\n");scanf ("%f",&I);}else if (4 == kind)//空心圆柱梁=4{printf ("Input d and alpha\n");scanf ("%f%f",&d2, &alpha);I = PI * pow(d2, 4) *(1 - pow(alpha, 4)) / 64;}else{I = 0;}return I;}float get_V_M0(float E, float Length, float I, float x, float M0, float a_L ){float v;float m, b;b = Length - a_L;m = M0;if (E < 1.e7){E *= 1.e9;}if(x >= 0 && x <= a_L){v = m * x * (3*Length*Length - 3*b*b - x*x)/(6*E*I*Length );}else if (x > a_L && x <= Length){v = m * (-pow(x, 3) + 3*Length*pow(x-a_L, 2) + (pow(Length, 2) -3*b*b)*x) / (6*E*I*Length );}else{printf ("ERROR!!!\n");v = 0;exit(0);}return v;}float get_M_M0(float Length, float M0, float a_L, float x) {float F_L, F_R;//左右两处的支反力float m, b;float M;//所求任意截面的弯矩b = Length - a_L;m = M0;F_L = - M0 / Length;F_R = - F_L;if(x >= 0 && x <= a_L){M = F_L * x;}else if (x > a_L && x <= Length){M = F_R * (x - a_L);}else{printf ("ERROR!!!\n");M = 0;exit(0);}return M;}3. 一段分布力作用下的任意截面的弯矩,挠度#include<stdio.h>#include<math.h>#include<stdlib.h># define PI 3.1415926float get_I(int kind);//计算截面的I惯性矩float get_M_q(float E, float I, float Length, float x, floatq, float a_q_L, float a_q_R);float get_V_q(float E, float I, float Length, float x, floatq, float a_q_L, float a_q_R);int main(){float Length, a_q_L, a_q_R, q;float E, I;float M, V, x;int kind;printf("请输入梁的长度Length(单位:mm) ");scanf("%f",&Length);Length *= 1.e-3;printf("请输入分布力最左端距离梁左端距离a_q_L(单位:mm) ");scanf("%f",&a_q_L);a_q_L *= 1.e-3;printf("请输入分布力最左端距离梁右端距离a_q_R(单位:mm) ");scanf("%f",&a_q_R);a_q_R *= 1.e-3;printf("请输入分布力q:(单位:kN) ");scanf("%f",&q);q *= 1.e3;printf("请输入梁的弹性模量E(单位:GPa) ");scanf("%f",&E);E *= 1.e9;printf("请输入截面形状(圆柱面=1,矩形梁=2,工字梁=3,空心圆柱梁=4): ");scanf("%d",&kind);I = get_I(kind);printf("请输所求截面距离左端面距离x(单位:mm) ");scanf("%f",&x);x *= 1.e-3;M = get_M_q(E, I, Length, x, q, a_q_L, a_q_R);V = get_V_q(E, I, Length, x, q, a_q_L, a_q_R);printf("所求截面的弯矩是:%g N•m\n",M);printf("所求截面的挠度是:%g m\n",V);system ("pause");return 0;}float get_I(int kind)//计算截面的I惯性矩{float d,b, h;//矩形梁,工字梁,圆柱梁float d2, alpha;//空心圆柱梁float I;if (1 == kind)//圆柱面=1{printf ("请输入圆柱梁的直径d(单位:mm) ");scanf("%f", &d);d *= 1.e-3;I = PI * pow(d, 4) / 64;}else if (2 == kind)//矩形梁=2{printf ("请输入矩形截面的b和h(单位:mm) ");scanf ("%f%f",&b, &h);b *= 1.e-3;h *= 1.e-3;I = b * pow(h, 3) / 12;}else if (3 == kind)//工字梁=3{printf("|——————-—————|\n");printf("|————| |——————|t\n");printf(" |d|\n");printf(" | |\n");printf("|————| |——————|\n");printf("|—————b——————|\n");printf ("请查附表B输入工字梁的惯性矩I ");scanf ("%f",&I);}else if (4 == kind)//空心圆柱梁=4{printf ("请输入圆柱梁的直径d和内外径比例alpha "); scanf ("%f%f",&d2, &alpha);d2 *= 1.e-3;I = PI * pow(d2, 4) *(1 - pow(alpha, 4)) / 64;}else{I = 0;}return I;}float get_M_q(float E, float I, float Length, float x,float q, float a_q_L, float a_q_R){float c_q, fa, fb;float M;c_q = Length - a_q_L - a_q_R;fa = (a_q_R + c_q/2) * c_q * q / Length;fb = (a_q_L + c_q/2) * c_q * q / Length;if ((x >= 0) && (x <= a_q_L)){M = fa * x / (E * I);}else if ((x > a_q_L) && (x <= (Length-a_q_R))){M = ( fa * x - (x - a_q_L) * (x - a_q_L) * q/2 ) / (E*I);}else if ((x > (Length-a_q_R)) && (x <= Length)){M = ( fb * (Length - x)) / (E*I);}else{M = 0;printf("ERROR!!!!! \n");exit(0);}return M;}float get_V_q(float E, float I, float Length, float x, float q, float a_q_L, float a_q_R){float c_q, fa, fb;float V;c_q = Length - a_q_L - a_q_R;fa = (a_q_R + c_q/2) * c_q * q / Length;fb = (a_q_L + c_q/2) * c_q * q / Length;if ((x >= 0) && (x <= a_q_L)){V = fa * pow(x, 3) / (6*E*I);}else if ((x > a_q_L) && (x <= (Length-a_q_R))){V = ( fa*pow(x, 3) / 6 - pow((x-a_q_L), 4) * q / 24 )/ (E*I);}else if ((x > (Length-a_q_R)) && (x <= Length)){V = ( fb*Length*pow(x, 2)/2 - fb*pow(x, 3)/6 - fb*pow(Length, 2)*x/3 ) / (E*I);}else{V = 0;printf("ERROR!!!!!\n");exit(0);}return V;}。
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材料力学上机作业课程名称:材料力学设计题目:应力状态分析院系:XXXXXXXXX 班级:XXXXX姓名:XXXXX学号:XXXXXXXXX指导教师:XXXXX哈尔滨工业大学1.算法:枚举法、迭代法。
2.本程序用Matlab编程,程序如下:clear all;g=input('如果求二向应力,输入2,如果求三向应力,输入3 '); while g==3;clear allsx=input('sx(Mpa)=');sy=input('sy(Mpa)=');sz=input('sz(Mpa)=');txy=input('txy(Mpa)=');tyz=input('tyz(Mpa)=');txz=input('txz(Mpa)=');i1=sx+sy+sz;i2=sx*sy-txy*txy+sy*sz-tyz*tyz+sx*sz-txz*txz;i31=[sx,txy,txz;txy,sy,tyz;txz,tyz,sz];i3=det(i31);a=[1,-i1,i2,-i3];s=roots(a);s1=max(s);s3=min(s);for k=1:1:3if((s(k)~=s1)&&(s(k)~=s3))s2=s(k);endendg=1;tmax=(s1-s3)/2;r13=(s1-s3)/2;r12=(s1-s2)/2;r23=(s2-s3)/2;alpha1=0:pi/100:2*pi;%角度[0,2*pi]R=r13;%半径x1=R*cos(alpha1)+s3+r13;y1=R*sin(alpha1);plot(x1,y1,'*'),grid, hold onaxis equalv=axis;line([v(1),v(2)],[0,0]);line([0,0],[v(3),v(4)]) ;alpha2=0:pi/100:2*pi;%角度[0,2*pi]R=r12;%半径x2=R*cos(alpha2)+s2+r12;y2=R*sin(alpha2);plot(x2,y2,'*'),grid, hold onalpha3=0:pi/100:2*pi;%角度[0,2*pi]R=r23;%半径x3=R*cos(alpha3)+s3+r23;y3=R*sin(alpha3);plot(x3,y3,'k-'),grid, hold onfprintf('主应力1=%8.5fMpa\n',s1);fprintf('主应力2=%8.5fMpa\n',s2);fprintf('主应力3=%8.5fMpa\n',s3);fprintf('最大剪应力=%8.5fMpa\n',tmax);hold offendwhile g==2;sx=input('sx(Mpa)=');sy=input('sy(Mpa)=');txy=input('txy(Mpa)=');a=linspace(0,pi,37);sa=(sx+sy)/2;sd=(sx-sy)/2;sigma=sa+sd*cos(2*a)-txy*sin(2*a);tau=sd*sin(2*a)+txy*cos(2*a);plot(sigma,tau,sx,txy,'b-');axis equal;v=axis;line([v(1),v(2)],[0,0]);line([0,0],[v(3),v(4)])hold,plot(sa,0,'x')smax=max(sigma),smin=min(sigma),tmax=max(tau);asigma=((atan((2*txy)/(sx-sy)))/2)/pi*180;fprintf('主应力最大值=%8.5fMpa\n',smax);fprintf('主应力最小值=%8.5fMpa\n',smin);fprintf('切应力最大值=%8.5fMpa\n',tmax);fprintf('主方向角=%8.5f度和%8.5f度\n',asigma,asigma+90);h=input('如果不求应力,输入0,如果要再求应力,输入1 ');while h==1;a=input('给出斜截面方向角a=(弧度)')sigma=sa+sd*cos(2*a)-txy*sin(2*a)tau=sd*sin(2*a)+txy*cos(2*a)plot(sigma,tau,'or')h=input('如果不继续求应力,输入0,如果还要求应力,输入1 ');end,hold offg=0;end3.程序在Matlab中运行时的界面:(以三向应力为例)应力圆示意图:。
哈工大材料力学经验篇一:材料力学试题及答案哈尔滨工业大学哈尔滨工业大学-----------------------号---学-----_-_--_-_--_-_--_-_--_-_--_-_--名---姓---------级题班答准不内线业封专_密_-_--_-_--_-_--_-_--_-_--_-_--_-_-- -院---学---术---技---程---工--------------学年第二学期材料力学试题(a卷)1、图示刚性梁aB由杆1和杆2支承,已知两杆的材料相同,长度不等,横截面积分别为a1和a2,若载荷P使刚梁平行下移,则其横截面面积()。
a、a1〈a2B、a1〉a2c、a1=a2d、a1、a2为任意2、建立圆周的扭转应力公式τρ=mρρ/iρ时需考虑下列因素中的哪几个?答:()(1)扭矩mm题一、1图T与剪应力τρ的关系T=∫aτρρda(2)变形的几何关系(即变形协调条件)(3)剪切虎克定律(4)极惯性矩的关系式iT=∫aρ2daa、(1)B、(1)(2)c、(1)(2)(3)d、全部3、二向应力状态如图所示,其最大主应力σ1=()a、σB、2σc、3σd、4σ4、高度等于宽度两倍(h=2b)的矩形截面梁,承受垂直方向的载荷,若仅将竖放截面改为平放截面,其它条件都不变,则梁的强度(题一、3)图a、提高到原来的2倍B、提高到原来的4倍c、降低到原来的1/2倍d、降低到原来的1/4倍5.已知图示二梁的抗弯截面刚度Ei相同,若二者自由端的挠度相等,则P1/P2=()题一、4a、2B、4第1页共40页题一、5图--------------------------学-----_-_--_-_--_-_--_-_--_-_--_-_--名---姓---------级题班答准不内线封专_密_-_--_-_--_--_--c、8d、16二、作图示梁的剪力图、弯矩图。
(15分)三、如图所示直径为dm的作用。
铁碳马氏体的强化机制摘要:钢中铁碳马氏体的最主要特性是高强度、高硬度,其硬度随碳含量的增加而升高。
马氏体的强化机制是多种强化机制共同作用的结果。
主要的强化机制包括:相变强化、固溶强化、时效强化、形变强化和综合强化等。
本文介绍了铁碳马氏体及其金相组织和力学特性,着重深入分析马氏体的强化机制。
关键词:铁碳马氏体强化机制1.马氏体的概念,组织及力学特性1.1马氏体的概念马氏体,也有称为麻田散铁,是纯金属或合金从某一固相转变成另一固相时的产物;在转变过程中,原子不扩散,化学成分不改变,但晶格发生变化,同时新旧相间维持一定的位向关系并且具有切变共格的特征。
马氏体最先在淬火钢中发现,是由奥氏体转变成的,是碳在α铁中的过饱和固溶体。
以德国冶金学家阿道夫·马登斯(A.Martens)的名字命名;现在马氏体型相变的产物统称为“马氏体”。
马氏体的开始和终止温度,分别称为M始点和M终点;钢中的马氏体在显微镜下常呈针状,并伴有未经转变的奥氏体(残留奥氏体);钢中的马氏体的硬度随碳量增加而增高;高碳钢的马氏体的硬度高而脆,而低碳钢的马氏体具有较高的韧性。
1.3马氏体的力学特性铁碳马氏体最主要的性质就是高硬度、高强度,其硬度随碳含量的增加而增加。
但是当碳含量达到6%时,淬火钢的硬度达到最大值,这是因为碳含量进一步提高,虽然马氏体的硬度会提高但是由于残余奥氏体量的增加,使钢的硬度反而下降。
2.铁碳马氏体的晶体学特性和金相形貌钢经马氏体转变形成的产物。
绝大多数工业用钢中马氏体属于铁碳马氏体,是碳在体心立方结构铁中的过饱和固溶体。
铁碳合金的奥氏体具有很宽的碳含量范围,所形成的马氏体在晶体学特性、亚结构和金相形貌方面差别很大。
可以把铁碳马氏体按碳含量分为5个组别(见表)【1】。
表1 铁碳马氏体的晶体学特性和金相形貌低碳马氏体为体心立方结构,中、高碳为体心正方结构。
碳原子的固溶为间隙式,处于八面体间隙之中。
如图1A中×号所示,三坐标方向的面心位置是具有代表性的三种八面体间隙中心,构成了体心晶格中的三套亚点阵,分别以1/2[001]、1/2[010]、1/2[100]表示,每单位晶胞中有六个八面体间隙分属这三套亚点阵。
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
材料力学上机报告
课程名称:材料力学
设计题目:二向应力状态分析
院系:XXXXXX
班级:XXXXXX
设计者:XXXXXX
学号:XXXXXX
设计时间:2013.06.18
哈尔滨工业大学
二向应力状态分析
一:课题要求
1.输入:任意一点的应力状态:(σx、σy、τxy);某截面方位角α
2.输出:输入点的主应力(σ1、σ2、σ3),方位角α斜截面上的应力σ
α、τα。
及主方向角α
3.画出应力圆示意图。
4.程序运行时为界面显示形式。
二:程序框图
三:所编程序
x=str2double(get(handles.edit1,'string'));
y=str2double(get(handles.edit2,'string'));
xy=str2double(get(handles.edit3,'string'));
M=str2double(get(handles.edit4,'string')); %将窗口输入值分别赋给x,y,xy,M b=sqrt((x/2-y/2)^2+xy^2);x1=(x+y)/2+b;x3=(x+y)/2-b;
x2=0;
if x1<0
x2=x1;
x1=0;
end
t=(x1-x3)/2;
M=M*pi/180;
b1=(x+y)/2+(x-y)*cos(2*M)/2-xy*sin(2*M);
b2=(x-y)*sin(2*M)/2+xy*cos(2*M);
b3=90*atan((-2*xy)/(x+y))/pi;%计算输出的主切应力大小、方向和截面上的应力并赋值set(handles.edit5,'string',x1);
set(handles.edit6,'string',x2);
set(handles.edit7,'string',x3);
set(handles.edit9,'string',t);
set(handles.edit10,'string',b3);
set(handles.edit11,'string',b1);
set(handles.edit12,'string',b2);%在输出窗口显示主切应力大小、方向和截面上应力
b4=sqrt(b.^2+t.^2);
v1=(x+y)/2-b4:0.001:(x+y)/2+b4;
b11=sqrt(b4.^2-(v1-(x+y)/2).^2);b12=-sqrt(b4.^2-(v1-(x+y)/2).^2);
%绘制应力圆上的点
axes(handles.axes1); %选择应力圆的输出地址
plot(v1,b11,v1,b12);grid on%绘制应力圆
以上程序为在matlab中使用GUI编程时的主代码,界面代码请见m文件。
四:运行过程、结果和应力圆
在matlab中打开m文件,按F5使程序运行,显示窗口如下:
左侧为输入窗口,中间为相应的主切应力和斜截面应力的输出窗口,右侧为二向
应力圆的输出窗口。
现在在左侧输入一些值,显示如下:
点击Enter键,即可得到相应的值与应力圆,如下图所示:。