哈工大材料力学上机大作业四——绘制梁的剪力弯矩图
作此梁的剪力图和弯矩图

• 弯矩为正时,正应力 以中性轴为界下拉上 压;
• 弯矩为负时,正应力上拉下压;
M
• 中性轴上,正应力等于零
3、静力学关系分析
没有轴向力 dA 0 A
E E y
E
E
A ydA A ydA 0
质心坐标
A ydA 0
ydA A
yc A
l
2
集中力使弯矩图折曲
(3)画弯矩图
集中力偶使弯矩图突变
5、分布载荷q、剪力Q 和弯矩 M之间的微分
关系
Y 0 :
Q qdx Q dQ 0
M0 0:
M Qdx qdx dx M dM 0
2
dQ qdx dM Qdx
dQ q , dx
斜的直线。此时弯矩图曲线的开口向下,具有极大值,极 值点位于剪力Q 为零的截面。
(4)集中力使剪力图突变,集中力偶矩使弯矩图突变。(突变 值等于集中力或集中力偶矩的值)
q 1 kN / m P1 2 kN
M D 10 kNm
P2 2 kN
A
C
D
RA
4m
4m
B
RB
4m
3m
E
RA 7 kN RB 5 kN
hb3 12
圆形与圆环截面
I p
A
2dA
D4
32
IP
2dA
A
( y2 z2 )dA A
y2dA
A
A z2dA Iz I y
IP 2Iz 2Iy
实心圆
Iz
Iy
材料力学4-弯矩图剪力图 PPT课件

梁上最大弯矩可能发生在Fs(x) = 0 的截面上或梁段边界 的截面上。最大剪力发生在全梁或梁段的界面。
在集中力作用处剪力图有突变,其突变值等于集中力的 值。弯矩图的相应处形成尖角。
在集中力偶作用处弯矩图有突变,其突变值等于集中力 偶的值,但剪力图无变化。
矩就等于梁在各项荷载单独作用下同一 横截面上弯矩的代数和。
叠加原理:由几个外力共同作用时所引起的某一参数 (内力、应力、位移),就等于每个外力单独作用时 所引起的该参数值的代数和。
• 5.4 内力与分布荷载间的关系及其应用
剪力图上某点处的切线斜率 等于该点处荷载集度的大小
弯矩图上某点处的切线斜率 等于该点处剪力的大小。
q(x)、Fs (x)图、M(x)图三者间的关系
梁上有向下的均布荷载,即 q(x) < 0 Fs (x)图为一向右下方倾斜的 直线 M(x)图为一向下凸的二次抛 物线
• 5.3 剪力方程与弯矩方程 剪力图与弯矩图
一、剪力和弯矩方程: 剪力和弯矩沿梁长度方向的表达式,表示的是剪力和
弯矩沿轴线长度方向的分布情况
二、剪力图和弯矩图 以X轴表示横截面位置,以纵坐标表示相应截面
上的剪力Fs 、弯矩M,称为剪力图、弯矩图。 剪力图为正值画在x 轴上侧,负值画在x 轴下侧 弯矩图为正值画在x 轴下侧,负值画在x 轴上侧
作剪力图和弯矩图的几条规律
梁上集中力作用处左、右两侧横截面上,剪 力值(图)有突变,其突变值等于集中力的 数值。在此处弯矩图则形成一个尖角。
梁上集中力偶作用处左、右两侧横截面上 的弯矩值(图)也有突变,其突变值等于 集中力偶矩的数值。但在此处剪力图没有 变化。
作剪力图和弯矩图的几条规律
梁上的最大剪力发生在全梁或各梁段的边界 截面处;梁上的最大弯矩发生在全梁或各梁 段的边界截面,或Fs = 0的截面处。
绘制工程力学剪力图和弯矩图的简易方法-力学论文-物理论文

绘制工程力学剪力图和弯矩图的简易方法-力学论文-物理论文——文章均为WORD文档,下载后可直接编辑使用亦可打印——0引言工程力学中,直梁的弯曲变形是杆件受力变形的基本形式之一,在对梁进行强度和刚度计算时,通常要画出剪力图和弯矩图,以便清楚地看出梁的各个截面上剪力和弯矩的大小、正负以及最大值所在截面的位置[1].但不少学生在学习剪力图和弯矩图绘制知识点时,直呼太难,根本不知从何下手。
因此,总结出一套行之有效的简易绘制剪力图和弯矩图的方法,显得越来越重要。
下面就结合作者实际教学经验,提出解决此类问题的简易方法。
1绘制剪力图和弯矩图的简易方法绘制剪力图和弯矩图时,应严格遵循下列基本步骤:①画梁的受力图,求约束力求出梁上所有约束部位的约束力是至关重要的第一步,这一步如果出现问题,后续步骤基本进行不了,关于求约束力的方法,在画好受力分析图后列平衡方程式即可求得。
②画剪力图。
画剪力图时,应牢记下面几句话:集中力作用处,剪力图有突变,突变幅值等于集中力的大小,突变的方向与力的方向同向;集中力偶作用处,剪力图无变化;均布载荷作用的梁段上,剪力图为一条斜直线;无外力作用的梁段上,剪力图为水平的直线。
对于剪力图为斜直线,只需确定直线的两个端点所对应的剪力值即可确定该直线,要求两个端点所对应的剪力值,采用某截面上的剪力值等于截面左边梁上所有外力的代数和,外力向上,则剪力为正,反之为负的方法。
③画弯矩图画弯矩图时,也须牢记以下几句话:集中力作用处,弯矩图有折点;集中力偶作用处,弯矩图有突变,突变幅值等于力偶矩的大小,力偶方向若为顺时针,则弯矩向上突变,反之向下突变;均布载荷作用的梁段,弯矩图为二次曲线,曲线开口方向与均布载荷同向,在剪力为零的截面,弯矩有极值;无外力作用的梁段,弯矩为直线。
对于弯矩为二次曲线的,只需取曲线上三个特殊的点,求出该点所对应截面的弯矩值即可确定该曲线,而求某截面上弯矩值,采用某截面上的弯矩值等于截面左边梁上所有外力矩的代数和,外力矩为顺时针的,弯矩为正,反之为负的方法。
快速绘制梁的剪力图和弯矩图.doc

快速绘制梁的剪力图和弯矩图梁的内力图梁的内力图——剪力图和弯矩图剪力图和弯矩图剪力方程和弯矩方程剪力方程和弯矩方程FF=F(x)=F(x)M=M(x)M=M(x)梁的剪力方程梁的剪力方程梁的弯矩方程梁的弯矩方程由前面的知识可知:梁的剪力和弯矩是随截面位置变化由前面的知识可知:梁的剪力和弯矩是随截面位置变化而变化的,如果将而变化的,如果将xx轴建立在梁的轴线上,原点建立在梁轴建立在梁的轴线上,原点建立在梁左端,左端,xx表示截面位置,则F和表示截面位置,则F和MM就随就随xx的变化而变化,的变化而变化,FF和和MM就是就是xx的函数,这个函数式就叫剪力方程和弯矩方程。
的函数,这个函数式就叫剪力方程和弯矩方程。
剪力图和弯矩图剪力图和弯矩图以梁横截面沿梁轴线的位置为横坐标,以垂直以梁横截面沿梁轴线的位置为横坐标,以垂直于梁轴线方向的剪力或弯矩为纵坐标,分别绘于梁轴线方向的剪力或弯矩为纵坐标,分别绘制表示F制表示F(x)(x)和和M(x)M(x)的图线。
这种图线分别称为的图线。
这种图线分别称为剪力图和弯矩图,简称F图和剪力图和弯矩图,简称F图和MM图。
绘图时一图。
绘图时一般规定正号的剪力画在般规定正号的剪力画在xx轴的上侧,负号的剪轴的上侧,负号的剪力画在力画在xx轴的下侧;正弯矩画在轴的下侧;正弯矩画在xx轴下侧,负弯轴下侧,负弯矩画在矩画在xx轴上侧,即把弯矩画在梁受拉的一侧。
轴上侧,即把弯矩画在梁受拉的一侧。
下端受拉为正弯矩下端受拉为正弯矩画剪力图和弯矩图时,一定要将梁正确分段,画剪力图和弯矩图时,一定要将梁正确分段,分段建立方程,依方程而作图分段建立方程,依方程而作图简支梁受均布荷载作用,如图示,简支梁受均布荷载作用,如图示,作此梁的剪力图和弯矩图。
作此梁的剪力图和弯矩图。
解:解:1.1.求约束反力求约束反力由对称关系,可得:由对称关系,可得:22、建立内力方程、建立内力方程33、依方程作剪力图和弯矩图、依方程作剪力图和弯矩图0时向右下方斜斜,时向右下方斜斜,V0时向右上方倾斜,时向右上方倾斜,V=0时为水平线。
浅谈材料力学中简易法快速画梁的剪力图和弯矩图

浅谈材料力学中简易法快速画梁的剪力图和弯矩图杜超凡,陶阳(扬州大学建筑科学与工程学院,江苏扬州225000)[摘要]文章以作用于梁上的横向分布力集度与剪力、弯矩的微分关系为基础,归纳总结了几种荷载作用下剪力图、弯矩图的特征。
掌握这些特征就能不写内力方程而根据外力直接画出相应的剪力图和弯矩图。
[关键词]剪力图;弯矩图;微分关系;积分关系[基金项目]2020年度扬州大学“课程思政”教学示范课程建设项目“材料力学”(131010341)[作者简介]杜超凡(1987—),男,山东威海人,工学博士,扬州大学建筑科学与工程学院土木系讲师,主要从事多体系统动力学与控制、计算力学教学与研究;陶阳(1964—),女,安徽宣城人,工学学士,扬州大学建筑科学与工程学院土木系副教授,主要从事工程力学测试与计算教学与研究。
[中图分类号]G642.0[文献标识码]A[文章编号]1674-9324(2021)04-0157-04[收稿日期]2020-08-13一、引言“材料力学”是工科学生的一门必修课,其中剪力图和弯矩图的绘制是本门课的重点也是难点,尤其对土木工程专业的学生而言尤为重要,也是后续课程“结构力学”的基础。
教材[1-3]中介绍的绘制剪力图和弯矩图的方法主要有两种:一种是用截面法写剪力方程和弯矩方程,再根据所列方程作图。
写剪力方程和弯矩方程的时候,要在外力荷载规律变化的截面进行分段,对于作用于梁上的荷载只有一种或两种的情况,对截面分段较少,所以这种方法简单、直观。
但若作用于梁上的荷载种类较多时,分段写剪力方程和弯矩方程将是一个非常烦琐的过程,而且极易出错,所以这种方法使用较少。
另一种方法是基于横向分布力集度与剪力、弯矩的微分关系和积分关系,根据剪力图和弯矩图在外力荷载作用下的规律,由控制截面上的内力值连线即可,不用写内力方程而直接画出相应的内力图。
这种方法简便、高效,也被称为简易法。
该方法的关键是要能熟练掌握不同荷载作用下剪力图和弯矩图的特征。
哈工大材力上机大作业解析

材料力学上机报告课程名称:材料力学设计题目:简支梁在任意载荷下剪力图弯矩图挠度曲线的绘制院系:材料学院班级:设计者:学号:编程语言:Visual Basic设计时间:2016.06一、课题要求求三种截面的简支梁(矩形截面,实心圆截面和空心圆截面)在受到任意多的力F,力偶M和分布力q的作用下,其上任意一点的剪力弯矩和挠度的大小,并绘制梁的剪力图、弯矩图和挠曲线。
输入1.梁的总长度l和材料的弹性模量E。
2.选择界面形状(矩形截面,实心圆,空心圆)。
如果是矩形截面,输入矩形的宽度b和高度h。
如果是实心圆截面,输入圆的直径D。
如果是空心圆截面,输入空心圆的外径D和内径d。
3. 输入载荷情况。
若载荷是力,输入力的大小F和作用点a。
如果载荷是均布载荷,输入均布载荷的大小q和载荷的起始位置c和终止位置f。
如果载荷是力偶。
输入力偶的大小m和作用点e。
输出:1. 结构构形图2. 任意一点的剪力,弯矩,挠度3. 画出剪力图,弯矩图和挠曲线二.数学模型及算法总体思想为叠加法。
不妨假设简支梁的长度为l。
1.只有一个作用点位置为a的力F的作用下a)剪力的大小当0<x<a时,f1=(l-a)/l*f当a<x<l时,f1=(-1)*a/l*fb)弯矩的大小当0<x<a时:m1= (l-a)/l*F*x当a<x<l时:m1= a/l*F*(l-x)c)挠度的大小v1=(-1)*(F*(l-a)/(6*E*I*l))*(l/(l-a)*(x-a)^3)+((l*l-(l-a)*( l-a))*x- x^3)2.只有一个作用点位置为b和c的均布力作用下a)剪力的大小当0<x<b时:f2= q*(c-b)*(3*c-b)/(2*l)当b<x<c时:f2= q*(c-b)*(3*c-b)/(2*l)-q*(x-b)当c<x<l时:f2= (-1)*q*(c*c-b*b)/(2*l)b)弯矩的大小当0<x<b时:m2=q*(c-b)*(3*c-b)/(2*l)当b<x<c时:m2= q*(c-b)*(3*c-b)/(2*l)-(q*(x-b)*(x-b))/2当c<x<l时:m2= (-1)*(q*(c*c-b*b)/(2*l))*(c-x)c)挠度的大小当0<x<b时:v2= q*(c-b)*(3*c-b)/(12 *E*I*l)* (x^3)当b<x<c时:v2=q*(c-b)*(3*c-b)/(2*l)* (x^3)/6-((q*(x-b)*(x-b))/4) * (x^2)当c<x<l时:v2= (-1)*(q*(c*c-b*b)/(4 *E*I*l))*(c-x)* (x^2)3.只有一个作用点位置为d的力偶的作用下a)剪力的大小f3=m/lb)弯矩的大小当0<x<d时:m3= m/l*x当d<x<l时:m3= (-1)*m/l*(l-x)c)挠度的大小v3= (-1)*m/(6*E*I*l)*((-1)* (x^3)+3*l* ((x-d)^2)+x*(l*l-3* ((l-d)^2)))其中惯性矩I分为三种情况,即实心圆,空心圆和矩形截面:实心圆:I= pi*(d^4)/64空心圆:I= pi*(D^4) *(1- ((d/D)^4)/64矩形截面:I= b* (h^3)/12三.程序流程图三.程序变量说明及程序清单E:弹性模量n:力的个数F:集中力大小c:分布力右端距左端支座的距离k:空心圆筒内径o:空心圆筒外径L:杆件长度G:切变模量b:矩形截面的宽度h:矩形截面的高Y:挠度jiao:转角I:截面惯性矩L:梁长E:弹性模量Z:惯性矩a:集中力距支座左端的距离d:实心圆径q:分布力大小M:力偶大小程序源代码Form 1(封皮)Private Sub Command1_Click() '点击简支梁,出现form2Form1.HideForm10.ShowPrivate Sub Command2_Click() '点击结束,结束整个程序EndEnd SubPrivate Sub Form_Load()Label1.FontBold = TrueEnd SubForm10开始进入选择阶段(剪力弯矩或者挠度)Private Sub Command1_Click() '梁剪力弯矩图Form3.ShowForm2.HideEnd SubPrivate Sub Command2_Click() '梁挠度Form2.ShowForm3.HideEnd SubPrivate Sub Form_Load()End SubPrivate Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)Private Sub Option1_Click() '矩形数据的输入Text8.Enabled = FalseText6.Enabled = TrueText7.Enabled = TrueText11.Enabled = FalseText12.Enabled = FalsePicture4.Visible = TruePicture5.Visible = FalsePicture6.Visible = FalseEnd SubPrivate Sub Option2_Click() '圆截面数据的输入Text8.Enabled = TrueText6.Enabled = FalseText7.Enabled = FalseText11.Enabled = FalseText12.Enabled = FalsePicture4.Visible = FalsePicture5.Visible = TruePicture6.Visible = FalseEnd SubPrivate Sub Option3_Click() '空心圆截面数据的输入Text8.Enabled = FalseText6.Enabled = FalseText7.Enabled = FalseText11.Enabled = TrueText12.Enabled = TruePicture4.Visible = FalsePicture5.Visible = FalsePicture6.Visible = TrueEnd SubPrivate Sub Text1_Change() 'F的单位换算F = Val(Text1.Text) * 1000End SubPrivate Sub Text11_Change() '对o赋值,并换算o = Val(Text11.Text) / 100End SubPrivate Sub Text12_Change() '对d赋值,换算,并计算空心圆截面的Iz的值k = Val(Text12.Text) / 100F = (k / o) ^ 4Iz = 3.1415926 * o ^ 4 / 64 * (1 - F)End SubPrivate Sub Text2_Change() 'a的单位换算a = Val(Text2.Text) / 100End SubPrivate Sub Text3_Change() 'M的单位换算M = Val(Text3.Text) * 1000End SubPrivate Sub Text5_Change() 'q的单位换算q = Val(Text5.Text) * 1000End SubPrivate Sub Text6_Change() '对b赋值b = Val(Text6.Text)End SubPrivate Sub Text7_Change() '对h赋值,并计算矩形截面的Iz的值h = Val(Text7.Text)Iz = 10 ^ -8 * h * b ^ 3 / 12End SubForm 2 (输入杆长,载荷和截面大小尺寸,并且选择所要求的挠度,挠曲线等)Private Sub Check1_Click() '显示待输入数据栏及力样图片Text1.Enabled = TrueText2.Enabled = TruePicture3.Visible = TruePicture1.Visible = FalsePicture2.Visible = FalseEnd SubPrivate Sub Check2_Click() '显示待输入数据栏及力样图片Text3.Enabled = TruePicture1.Visible = FalsePicture2.Visible = TruePicture3.Visible = FalseEnd SubPrivate Sub Check3_Click() '显示待输入数据栏及力样图片Text5.Enabled = TruePicture1.Visible = TruePicture2.Visible = FalsePicture3.Visible = FalseEnd SubPrivate Sub Command1_Click() '返回主菜单,并清空数据Text1.Enabled = False: Text2.Enabled = False: Text3.Enabled = False: Text5.Enabled = False: Text8.Enabled = False:Text12.Enabled = False: Text11.Enabled = False: Text6.Enabled = False: Text7.Enabled = FalseCheck1 = False: Check2 = False: Check3 = False: Option1 = False: Option2 = FalsePicture1.Visible = False: Picture2.Visible = False: Picture3.Visible = False: Picture4.Visible = False: Picture5.Visible = FalseIz = 0: E = 0: Ym = 0: jiaom = 0: L = 0: F = 0: M = 0: q = 0: a = 0: b = 0: h = 0: d = 0: X = 0Text1.Text = "": Text2.Text = "": Text3.Text = "": Text8.Text = "": Text5.Text = "": Text6.Text = "": Text7.Text = "": Text9.Text = "": Text10.Text = ""Form2.HideForm10.ShowForm3.HideEnd SubPrivate Sub Command2_Click() '最大挠度与转角的输入检测If L = 0 Or E = 0 Or Iz = 0 Thenn = MsgBox("您还有数据未输入。
材料力学-第5章梁的剪力图与弯矩图

屋顶大梁上的孔为什么开在中间?上、下两 边各开一个半圆孔可以吗?
第5章 梁的剪力图与弯矩图
工程中的弯曲构件
梁为什么做成变截面的? 梁为什么可以开孔? 孔开在哪里最合理?
第5章 梁的剪力图与弯矩图
工程中的弯曲构件
第5章 梁的剪力图与弯矩图
工程中的弯曲构件
第5章 梁的剪力图与弯矩图
第5章 梁的剪力图与弯矩图
梁的内力及其与外力的相互关系
总体平衡与局部平衡的概念
q(x) FP2 M1 FP4
M2
FP1
FP3
FP5
刚体平衡概念的扩展和延伸:总体平衡,则其任何局部也 必然是平衡的。
第5章 梁的剪力图与弯矩图
梁的内力及其与外力的相互关系
总体平衡与局部平衡的概念
FP2
q(x) FQ M' M1 FP1 q(x) FP4
材料力学
基础篇之五
第5章 梁的剪力图与弯矩图
第5章 梁的剪力图与弯矩图
杆件承受垂直于其轴线的外力或位于其轴线所在平面 内的力偶作用时,其轴线将弯曲成曲线,这种受力与变形 形式称为 弯曲 ( bending )。主要承受弯曲的杆件称为 梁 (beam)。 在外力作用下,梁的横截面上将产生剪力和弯矩两种 内力。 在很多情形下,剪力和弯矩沿梁长度方向的分布不是 均匀的。 对梁进行强度计算,需要知道哪些横截面可能最先发 生失效,这些横截面称为危险面。弯矩和剪力最大的横截 面就是首先需要考虑的危险面。研究梁的变形和刚度虽然 没有危险面的问题,但是也必须知道弯矩沿梁长度方向是 怎样变化的。
第5章 梁的剪力图与弯矩图
弯曲时,由于横截面上应力非均匀分布,失效当然最 先从应力最大点处发生。因此,进行弯曲强度计算不仅要 考虑内力最大的“危险截面”,而且要考虑应力最大的点, 这些点称为“危险点”。
材料力学上机作业绘制梁的剪力弯矩图

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材料力学上机作业课程名称:材料力学设计题目:绘制梁的剪力弯矩图院系:机电工程学院班级:分析者:学号:指导教师:张桂莲设计时刻: 2021.6.3哈尔滨工业大学一、设计题目题目4 绘制梁的剪力弯矩图输入:1.梁的总长度l2.支撑条件及量的各区段长度输入(左、右固定端悬臂梁;简支梁;左、右、双外伸梁)3.各载荷大小、作用位置及方向(qi、ai、bi;pj、cj、mk、dk)输出:1.结构构型图(图示)2.剪力、弯矩(图示)3.输出剪力、弯矩的最大值及截面位置。
二、程序介绍一、简介本程序编译平台为MATLAB,能够对六种梁(左固定端悬臂梁、右固定端悬臂梁、简支梁、左外伸梁、右外伸梁、双外伸梁)在集中载荷、均布载荷及弯矩作用下的剪力、弯矩进行求解并绘制剪力、弯矩图。
本程序基于MATLAB的图形用户界面(GUI)功能,操作简单、运算稳固、界面简约美观,有良好的交互性。
二、程序利用方式此程序运行环境为安装有MATLAB R2020a或以上版本的运算机。
要运行此程序,第一打开MATLAB,在其中打开“KaiShiJieMian.m”文件,在函数编辑窗口里点击运行按钮(或按F5键),程序便开始启动。
启动画面如下:图1 启动界面点击“进入”即可进入选择梁的类型界面,在此界面中,利用者依如实际情形选择要研究的梁的类型,点击即可进入相应梁的计算界面。
例如想要计算双外伸梁,那么点击“6、双外伸梁”即可进入计算界面,假假想返回开始界面,那么点击“返回开始界面”即可。
图2 梁的选择界面图3 梁的计算界面此程序能够计算梁在集中力、均布力和集中力偶的作用下梁的剪力和弯矩,并求出剪力的最大值和弯矩的最大值。
以双外伸梁为例,对照左侧参数输入提示,在相应文本框里输入梁的大体参数,如弹性模量E、长度L,和载荷大小及位置,如均布力q、均布力起始位置b1、终止位置b2。
哈工大材料力学计算机计算大作业_范例

B
ql 3 48 EI z
500 23 1.5215mrad 3 0.034 0.054 3 9 0.04 0.06 48 200 10 12 12 500 2 4 1.1411mm 3 0.034 0.0543 9 0.04 0.06 128 200 10 12 12
max
1000 32 1 5.77 mm , x 3 1732.1mm 9 3 100000 3
电算解:
故:与理论解一致。
第 十四 页 共 二十一 页
材料力学大作业
(8)理论解:
增补条件: 代入约定条件算得: A M 3000 N m , a 1 .6 m , 电算解:
3
电算解:
故:与理论解一致。
第 十七 页 共 二十一 页
材料力学大作业
(11)理论解:
代入约定数据解之得: A B 11 .25mrad ; C
5 1000 34 10.55mm 384 100000
电算解:
故:与理论解一致。
第 十八 页 共 二十一 页
然后,我们需要输入抗弯刚度。题目没有给怎么办?不怕,我们有“抗弯刚度计算器”!点击对 应区段抗弯刚度边上的按钮即可开始计算!
第 三 页 共 二十一 页
材料力学大作业
在计算完毕之后,点击“置入并返回” ,则我们又来到了基本信息输入界面。由于这一根简单 梁是等截面、等抗弯刚度的,所以我们不用去管“区段二”和“区段三”的相关文本框(实际上在 你选定对应的区段之前,这些文本框都是无法激活的) 。我们需要点击“更新基本信息”按键,以 核查、写入数据。核查无误,我们点击“受力情况输入”按钮。
2016新编哈工大材料力学上机大作业四——绘制梁的剪力弯矩图

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); (第①、②、③两种情况合成)将上述公式编入程序即可计算出在固定端悬臂梁情况下任意位置处的剪力和弯矩,采用散点法作出梁的剪力弯矩图。
材料力学4-弯矩图剪力图

由(2),(4)式可知, AC,CB 两段梁的弯矩 图各是一条斜直线
作剪力图和弯矩图的几条规律
取梁的左端点为坐标原点,x 轴向右为正;剪 力图向上为正;弯矩图向下为正。
以集中力、集中力偶作用处,分布荷载开始或 结束处,及支座截面处为界点将梁分段。分段 写出剪力方程和弯矩方程,然后绘出剪力图和 弯矩图。
例2 图a 所示坐标原点取在梁 的左端,写出梁的剪力 方程和弯矩方程 :
根据方程画剪力图、弯矩图(注意正负号画的方向)
例3 图a 所示悬臂梁,在全梁上受集度为q 的均布荷 载作用 。试作此梁的的剪力图和弯矩图。
解:为计算方便,将坐标原 点取在梁的右端,得梁的剪 力方程和弯矩方程:
梁上最大弯矩可能发生在Fs(x) = 0 的截面上或梁段边界 的截面上。最大剪力发生在全梁或梁段的界面。 在集中力作用处剪力图有突变,其突变值等于集中力的 值。弯矩图的相应处形成尖角。
在集中力偶作用处弯矩图有突变,其突变值等于集中力 偶的值,但剪力图无变化。
叠加原理:当梁上受几项荷载共同作用时,某一横 截面上的弯矩就等于梁在各项荷载单独作用下同一 横截面上弯矩的代数和。
例4 图a 所示的简支梁,在全梁上受集度为q的均布 荷载作用。试作此梁的的剪力图和弯矩图。
解:由Σy =0求得两个支反力 取距左端为x的任意横截面。写出剪力方程和弯矩方程。
由式(1)可知,剪力图为一倾斜直线。由
由式(2)知,弯矩图为一条二次抛物线。由
由(1),(3)两 式可知,AC,CB 两段梁的剪力图各 是一条平行于 x轴 的直线。
• 5.3 剪力方程与弯矩方程 剪力图与弯矩图
一、剪力和弯矩方程: 剪力和弯矩沿梁长度方向的表达式,表示的是剪力和 弯矩沿轴线长度方向的分布情况
《材料力学》课件4-2梁的剪力和弯矩.剪力图和弯矩图

实例1
实例2
实例3
03
剪力图和弯矩图的解读
剪力图和弯矩图的解读方法
截面法
通过在梁上选择若干个截面,分别计算出每个截面的剪力 和弯矩值,然后以这些值为纵坐标,以截面位置为横坐标, 绘制出剪力图和弯矩图。
微分关系法
利用剪力和弯矩的微分关系,通过积分求解出剪力图和弯 矩图。
叠加法
对于分段常数的情况,将每一段的剪力和弯矩分别叠加, 得到整体的剪力图和弯矩图。
在机械工程中,梁的剪力和弯矩分析用于设计和优化各种机 械设备,如起重机、输送机和机床等,以提高设备的性能和 可靠性。
梁的剪力和弯矩在科研中的应用
在科研领域,梁的剪力和弯矩分析也是重要的研究内容之 一。通过深入研究梁的剪力和弯矩的分布规律和影响因素 ,可以揭示材料的力学性能和结构行为的本质。
科研人员利用先进的实验技术和数值模拟方法,对梁的剪 力和弯矩进行深入探索,为材料科学、固体力学和结构工 程等领域的发展提供理论支持和实践指导。
选择截面位置
在梁上选择若干个具有代表性的截面,用于 计算剪力和弯矩。
计算剪力和弯矩
对每个截面进行受力分析,计算出剪力和弯 矩的大小。
绘制剪力图和弯矩图
根据计算结果,绘制出相应的剪力图和弯矩 图。
剪力图和弯矩图的绘制实例
悬臂梁在集中力作用下的 剪力和弯矩图
简支梁在均布载荷作用下 的剪力和弯矩图
简支梁在集中力作用下的 剪力和弯矩图
感谢您的观看
THANKS
截面法
通过在梁上选择若干个截面,计算每个截面的剪 力和弯矩,然后绘制相应的图形。
微元法
将梁分成若干个微元段,对每个微元段进行受力 分析,计算剪力和弯矩,然后绘制图形。
解析法
受力梁的剪力图和弯矩图的绘制方法

弯矩方程分别为 :
er.
Ke y wo r d s :b e a m;s h e a r i n g f o r c e ;b e n d i n g mo me n t
图1 外 伸 梁 内力 图
5 k N・ m
0 前
言
A
梁 是 工 程 建 筑 中 常 见 的 一 种 工 程 构 件 之 一 , 因 此 在 许
( T h e h o p e c o l l e g e o ft h e s o u t h w e s t j i a o t o n g u n i v e r s i t y ,C h e n g d u
6 1 40 0 0,C i n a )
Ab s t r ac t : Th i s p a p e r a d o p t s t hr e e me t h o ds t o a n a l y z e t h e s i z e o f t he i n t e r na l f o r c e o f e a c h p a r t s o n t h e b e nd i ng be a m, t ha t
一
速 、直观 、准确地绘 制 出剪 力 图和弯 矩 图。本 文通 过三 种
方法 进 行 描 述 ,并 进 行 讨 论 和 对 比 。
( 0< l< 2 )
( 2< 2< 5 ) ( 5< 3< 6 ) ( 0≤ l< 2 ) ( 2<X 2≤ 5 )
材料力学剪力图弯矩图绘制(有详细的程序)讲解

材料力学剪力图弯矩图绘制(有详细的程序)说明:输入变量:分段数组x分段点一般在集中力,集中力偶作用出和分布载荷的起末端。
载荷数组MPQ若梁上的外载荷总数为PN,则用PN行四列的数组MPQ储存载荷,数组MPQ第一列代表载荷的类型:1为集中力偶,2为集中力,3为分布载荷,第二列代表载荷的大小,第三列代表集中力,集中力偶或者分布载荷左端与简支梁左端的距离,第四列代表均匀载荷右端与简支梁左端的距离,当载荷为集中力或者集中力偶时,第四列为0.符号规定集中力和均匀载荷向下为正,向上为负,集中力偶顺时针为正,逆时针为负。
输出变量:内力数组XQM如果梁被分为NN-1段,则内力数组XQM为NN行,三列的数组,第一列代表梁的横截面的位置,第二列代表剪力,第三列代表弯矩。
剪力极值及位置QDXQDX是一个二行二列的数组,第一列代表极值所在的位置,第二列代表极值弯矩极值及位置MDXMDX是一个二行二列的数组,第一列代表极值所在的位置,第二列代表极值1.子程序1.1集中力偶对弯矩贡献的子函数QMM1.2集中力对剪力和弯矩贡献的子函数QMP1.3分布载荷对剪力和弯矩贡献的子函数QMQ1.4求剪力和弯矩极值的子函数MAX_MIN1.5绘制剪力图和弯矩图的子函数TU_QM2.计算分析程序2.1简支梁QMDJ2.2左端固定悬臂梁QMDXZ2.3右端固定悬臂梁QMDXY2.4左端外伸梁QMDWZ2.5右端外伸梁QMDWY2.6两端外伸梁QMDWL1.子程序1.1集中力偶对弯矩贡献的子函数QMMfunction MM=QMM(n,x1,a,M,MM)for j=1:nif x1(j)==an1=j;endendMM(n1:n)=MM(n1:n)+M;1.2集中力对剪力和弯矩贡献的子函数QMP function [QQ,MM]=QMP(n,x1,b,P,QQ,MM)for j=1:nif x1(j)==b;n1=j;endendQQ(n1:n)=QQ(n1:n)-P;MM(n1:n)=MM(n1:n)-P*(x1(n1:n)-b);1.3分布载荷对剪力和弯矩贡献的子函数QMQ function [QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM)for j=1:nif x1(j)>cQQ(j)=QQ(j)-q*(x1(j)-c);MM(j)=MM(j)-0.5*q*(x1(j)-c)^2;endif x1(j)>dQQ(j)=QQ(j)+q*(x1(j)-d);MM(j)=MM(j)+0.5*q*(x1(j)-d)^2;endend1.4求剪力和弯矩极值的子函数MAX_MINfunction [QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM) XQM=[x1',QQ',MM'];[Qmax,i]=max(QQ);Q1=[Qmax,x1(i)];[Qmin,i]=min(QQ);Q2=[Qmin,x1(i)];[Mmax,i]=max(MM);M1=[Mmax,x1(i)];[Mmin,i]=min(MM);M2=[Mmin,x1(i)];disp('剪力极值及位置')QDX=[Q1;Q2]disp('弯矩极值及位置')MDX=[M1;M2]t1=findobj(0,'Tag','text31');str=num2str(Q1(1));set(t1,'String',str);t2=findobj(0,'Tag','text39');str=num2str(Q1(2));set(t2,'String',str);t3=findobj(0,'Tag','text32');str=num2str(Q2(1));set(t3,'String',str);t4=findobj(0,'Tag','text40');str=num2str(Q2(2));set(t4,'String',str);m1=findobj(0,'Tag','text33');str=num2str(M1(1));set(m1,'String',str);m2=findobj(0,'Tag','text41');str=num2str(M1(2));set(m2,'String',str);m3=findobj(0,'Tag','text34');str=num2str(M2(1));set(m3,'String',str);m4=findobj(0,'Tag','text42');str=num2str(M2(2));set(m4,'String',str);1.5绘制剪力图和弯矩图的子函数TU_QM function TU_QM(x1,QQ,MM)h1=findobj(0,'Tag','axes1');axes(h1);plot(x1,QQ);grid;title('剪力图');h2=findobj(0,'Tag','axes2');axes(h2);plot(x1,MM);grid;title('弯矩图');2.计算分析程序2.1简支梁QMDJfunction XQM=QMDJ(x,MPQ)[n,m]=size(x);L=x(m);x1=[];for i=1:m-1x1=[x1,linspace(x(i),x(i+1),50)];endMM=zeros(size(x1));QQ=zeros(size(x1));[m,t]=size(MPQ);[t,n]=size(x1);for i=1:mswitch MPQ(i,1)case 1M=MPQ(i,2);a=MPQ(i,3);RA=-M/L;QQ=QQ+RA;MM=MM+RA*x1;if a>0 & a<LMM=QMM(n,x1,a,M,MM);endif a==0MM=MM+M;endcase 2P=MPQ(i,2);b=MPQ(i,3);RA=(L-b)*P/L;if b>0 & b<LQQ=QQ+RA;MM=MM+RA*x1;[QQ,MM]=QMP(n,x1,b,P,QQ,MM);endcase 3q=MPQ(i,2);c=MPQ(i,3);d=MPQ(i,4);RA=(L-0.5*(c+d))*q*(d-c)/L;QQ=QQ+RA;MM=MM+RA*x1+MA;[QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM);endend[QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM);TU_QM(x1,QQ,MM);disp('梁的有限元分析结果')disp('位置-----------剪力----------弯矩')2.2左端固定悬臂梁QMDXZfunction XQM=QMDXZ(x,MPQ)[n,m]=size(x);L=x(m);x1=[];for i=1:m-1x1=[x1,linspace(x(i),x(i+1),50)];endMM=zeros(size(x1));QQ=zeros(size(x1));[PN,t]=size(MPQ);[t,n]=size(x1);for i=1:PNswitch MPQ(i,1)case 1M=MPQ(i,2);a=MPQ(i,3);if a>0 & a<LMM=MM-M;MM=QMM(n,x1,a,M,MM);endif a==LMM=MM-M;endcase 2P=MPQ(i,2);b=MPQ(i,3);RA=P;MA=-P*b;QQ=QQ+RA;MM=MM+RA*x1+MA;if b>0 & b<L[QQ,MM]=QMP(n,x1,b,P,QQ,MM);endcase 3q=MPQ(i,2);c=MPQ(i,3);d=MPQ(i,4);RA=q*(d-c);MA=-0.5*q*(d-c)*(d+c);QQ=QQ+RA;MM=MM+RA*x1+MA;[QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM);endend[QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM);TU_QM(x1,QQ,MM);disp('梁的有限元分析结果')disp('位置-----------剪力----------弯矩')2.3右端固定悬臂梁QMDXYfunction XQM=QMDXY(x,MPQ)[n,m]=size(x);L=x(m);x1=[];for i=1:m-1x1=[x1,linspace(x(i),x(i+1),50)];endMM=zeros(size(x1));QQ=zeros(size(x1));[PN,t]=size(MPQ);[t,n]=size(x1);for i=1:PNswitch MPQ(i,1)case 1M=MPQ(i,2);a=MPQ(i,3);if a==0MM=MM+M;endif a>0 & a<LMM=QMM(n,x1,a,M,MM);endcase 2P=MPQ(i,2);b=MPQ(i,3);if b==0QQ=QQ-PMM=MM-P*x1;endif b>0 & b<L[QQ,MM]=QMP(n,x1,b,P,QQ,MM);endcase 3q=MPQ(i,2);c=MPQ(i,3);d=MPQ(i,4);[QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM);endend[QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM);TU_QM(x1,QQ,MM);disp('梁的有限元分析结果')disp('位置-----------剪力----------弯矩')2.4左端外伸梁QMDWZfunction XQM=QMDWZ(x,L1,MPQ)[n,m]=size(x);L=x(m);x1=[];for i=1:m-1x1=[x1,linspace(x(i),x(i+1),50)];endMM=zeros(size(x1));QQ=zeros(size(x1));[PN,t]=size(MPQ);[t,n]=size(x1);for i=1:PNswitch MPQ(i,1)case 1M=MPQ(i,2);a=MPQ(i,3);if a>0 & a<LMM=QMM(n,x1,a,M,MM);endif a==0MM=MM+M;endcase 2P=MPQ(i,2);b=MPQ(i,3);RA=P*(L-b)/(L-L1);[QQ,MM]=QMP(n,x1,L1,-RA,QQ,MM);if b>0 & b<L[QQ,MM]=QMP(n,x1,b,P,QQ,MM);endif b==0QQ=QQ-P;MM=MM-P*x1;endcase 3q=MPQ(i,2);c=MPQ(i,3);d=MPQ(i,4);b=(c+d)*0.5;P=(d-c)*q;RA=P*(L-b)/(L-L1);[QQ,MM]=QMP(n,x1,L1,-RA,QQ,MM);[QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM);endend[QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM);TU_QM(x1,QQ,MM);disp('梁的有限元分析结果')disp('位置-----------剪力----------弯矩')2.5右端外伸梁QMDWYfunction XQM=QMDWY(x,L1,MPQ)[n,m]=size(x);L=x(m);x1=[];for i=1:m-1x1=[x1,linspace(x(i),x(i+1),50)];endMM=zeros(size(x1));QQ=zeros(size(x1));[PN,t]=size(MPQ);[t,n]=size(x1);for i=1:PNswitch MPQ(i,1)case 1M=MPQ(i,2);a=MPQ(i,3);RA=-M/L1;RB=-RA;QQ=QQ+RA;MM=MM+x1*RA;if a>0 & a<LMM=QMM(n,x1,a,M,MM);endif a==0MM=MM+M;endcase 2P=MPQ(i,2);b=MPQ(i,3);RA=P*(L1-b)/L1;RB=P*b/L1;QQ=QQ+RA;MM=MM+x1*RA;[QQ,MM]=QMP(n,x1,L1,-RB,QQ,MM);if b>0 & b<L[QQ,MM]=QMP(n,x1,b,P,QQ,MM);endif b==0QQ=QQ-P;MM=MM-P*x1;endcase 3q=MPQ(i,2);c=MPQ(i,3);d=MPQ(i,4);b=(c+d)*0.5;P=(d-c)*q;RA=P*(L1-b)/L1;RB=P*b/L1;QQ=QQ+RA;MM=MM+x1*RA;[QQ,MM]=QMP(n,x1,L1,-RB,QQ,MM);[QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM);endend[QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM);TU_QM(x1,QQ,MM);disp('梁的有限元分析结果')disp('位置-----------剪力----------弯矩')2.6两端外伸梁QMDWLfunction XQM=QMDWL(x,L1,L2,MPQ)[n,m]=size(x);L=x(m);x1=[];for i=1:m-1x1=[x1,linspace(x(i),x(i+1),50)];endMM=zeros(size(x1));QQ=zeros(size(x1));[PN,t]=size(MPQ);[t,n]=size(x1);for i=1:PNswitch MPQ(i,1)case 1M=MPQ(i,2);a=MPQ(i,3);RA=-M/(L2-L1);RB=-RA;if a>0 & a<LMM=QMM(n,x1,a,M,MM);endif a==0MM=MM+M;endcase 2P=MPQ(i,2);b=MPQ(i,3);LL=L2-L1;bb=b-L1;RA=P*(LL-bb)/LL;RB=P*bb/LL;[QQ,MM]=QMP(n,x1,L1,-RA,QQ,MM);[QQ,MM]=QMP(n,x1,L2,-RB,QQ,MM);if b>0 & b<L[QQ,MM]=QMP(n,x1,b,P,QQ,MM);endif b==0QQ=QQ-P;MM=MM-P*x1;endcase 3q=MPQ(i,2);c=MPQ(i,3);d=MPQ(i,4);b=(c+d)*0.5;P=(d-c)*q;LL=L2-L1;bb=b-L1;RA=P*(LL-bb)/LL;RB=P*bb/LL;[QQ,MM]=QMP(n,x1,L1,-RA,QQ,MM);[QQ,MM]=QMP(n,x1,L2,-RB,QQ,MM);[QQ,MM]=QMQ(n,x1,c,d,q,QQ,MM);endend[QDX,MDX,XQM]=MAX_MIN(x1,QQ,MM);TU_QM(x1,QQ,MM);disp('梁的有限元分析结果')disp('位置-----------剪力----------弯矩')untitled.mfunction varargout = untitled(varargin)% UNTITLED M-file for untitled.fig% UNTITLED, by itself, creates a new UNTITLED or raises the existing% singleton*.%% H = UNTITLED returns the handle to a new UNTITLED or the handle to% the existing singleton*.%% UNTITLED('CALLBACK',hObject,eventData,handles,...) calls the local% function named CALLBACK in UNTITLED.M with the given input arguments. %% UNTITLED('Property','Value',...) creates a new UNTITLED or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before untitled_OpeningFunction gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to untitled_OpeningFcn via varargin.%% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one% instance to run (singleton)".%% See also: GUIDE, GUIDA TA, GUIHANDLES% Edit the above text to modify the response to help untitled% Last Modified by GUIDE v2.5 03-Jun-2008 23:12:06% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @untitled_OpeningFcn, ...'gui_OutputFcn', @untitled_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before untitled is made visible.function untitled_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDA TA) % varargin command line arguments to untitled (see V ARARGIN)% Choose default command line output for untitledhandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes untitled wait for user response (see UIRESUME) % uiwait(handles.figure1);% --- Outputs from this function are returned to the command line. function varargout = untitled_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see V ARARGOUT); % hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDA TA)% Get default command line output from handles structure varargout{1} = handles.output;function edit2_Callback(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDA TA)% Hints: get(hObject,'String') returns contents of edit2 as text% str2double(get(hObject,'String')) returns contents of edit2 as a double% --- Executes during object creation, after setting all properties.function edit2_CreateFcn(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');endfunction edit3_Callback(hObject, eventdata, handles)% hObject handle to edit3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDA TA)% Hints: get(hObject,'String') returns contents of edit3 as text% str2double(get(hObject,'String')) returns contents of edit3 as a double% --- Executes during object creation, after setting all properties.function edit3_CreateFcn(hObject, eventdata, handles)% hObject handle to edit3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');endfunction edit4_Callback(hObject, eventdata, handles)% hObject handle to edit4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDA TA)% Hints: get(hObject,'String') returns contents of edit4 as text% str2double(get(hObject,'String')) returns contents of edit4 as a double% --- Executes during object creation, after setting all properties.function edit4_CreateFcn(hObject, eventdata, handles)% hObject handle to edit4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');end% --- Executes on selection change in popupmenu1.function popupmenu1_Callback(hObject, eventdata, handles)% hObject handle to popupmenu1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: contents = get(hObject,'String') returns popupmenu1 contents as cell array% contents{get(hObject,'Value')} returns selected item from popupmenu1% --- Executes during object creation, after setting all properties.function popupmenu1_CreateFcn(hObject, eventdata, handles)% hObject handle to popupmenu1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: popupmenu controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');end% --- Executes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata, handles)% hObject handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDA TA)x=str2num(get(handles.edit2,'string'));MPQ=str2num(get(handles.edit3,'string'));L=str2num(get(handles.edit4,'string'));L1=L(1);L2=L(2);val=get(handles.popupmenu1,'Value');str=get(handles.popupmenu1,'String');switch str{val}case '简支梁'QMDJ(x,MPQ)case '左端固定悬臂梁'QMDXZ(x,MPQ)case '右端固定悬臂梁'QMDXY(x,MPQ)case '左端外伸梁'QMDWZ(x,L1,MPQ)case '右端外伸梁'QMDWY(x,L1,MPQ)case '两端外伸梁'QMDWL(x,L1,L2,MPQ)end% --- Executes on button press in pushbutton4.function pushbutton4_Callback(hObject, eventdata, handles)% hObject handle to pushbutton4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close all% --- Executes on key press over popupmenu1 with no controls selected. function popupmenu1_KeyPressFcn(hObject, eventdata, handles)% hObject handle to popupmenu1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDA TA)。
材料力学大作业 梁的剪力图、弯矩图的绘制

材料力学上机大作业题目名称:绘制梁的剪力图、弯矩图姓名:王二小完成时间:2011.11.22运行环境:winXP(及以上)题目4绘制梁的剪力图、弯矩图输入1.梁的总长度l2.支撑条件及梁的各区段长度输入(左、右固定端悬臂梁;简支梁;左、右、双外伸梁)3. 各载荷大小、作用位置及方向(q i、a i、b i; p j、c j; m k、d k)输出:1. 结构构形图(图示)2. 剪力、弯矩(图示)3. 输出剪力、弯矩的最大值及截面位置软件运行结果:软件运行过程如下所示:软件代码:Private Sub Form_Click()Dim l As Doublel = Val(Text1.Text)Dim x, y, Hua, fd1(10), fd2(10), fd3(10), pos1(10), pos2(10), pos3(10), pos4(10) As DoubleDim xiang1(10), xiang2(10), xiang3(10) As DoubleDim y1(10), y2(10), y3(10), M1(10), M2(10), M3(10) As DoubleDim i, j As Integer For i = 1 To 10fd1(i) = Val(InputBox("请输入集中力的大小:(/kN,推荐值5KN)"))If fd1(i) = 0 ThenExit ForEnd Ifpos1(i) = Val(InputBox("请输入集中力的位置:(m)"))xiang1(i) = Val(InputBox("请输入集中力的方向:(向上为-1,向下为1)"))Next iFor i = 1 To 10 Step 1fd2(i) = Val(InputBox("请输入分布力的大小:(kN/m)"))If fd2(i) = 0 ThenExit ForEnd Ifpos2(i) = Val(InputBox("请输入分布力的pos2位置1:(m)"))pos3(i) = Val(InputBox("请输入分布力的pos3位置2:(m)"))xiang2(i) = Val(InputBox("请输入分布力的方向:(向上为-1,向下为1)"))Next iFor i = 1 To 10fd3(i) = Val(InputBox("请输入集中力偶的大小:(kN*m)"))If fd3(i) = 0 ThenExit ForEnd Ifpos4(i) = Val(InputBox("请输入集中力偶的位置:(m)"))xiang3(i) = Val(InputBox("请输入集中力偶的方向:(顺时针为-1,逆时针为1)"))Next iPicture1.ClsPicture1.Scale (-0.2 * l, 20)-(1.2 * l, -20) Picture1.Line (0, 0)-(l, 0)For i = 0 To 10If fd1(i) <> 0 And xiang1(i) > 0 Then Picture1.Line (pos1(i), 5)-(pos1(i), 0) Picture1.Line (pos1(i), 0)-(pos1(i) - 1, 1) Picture1.Line (pos1(i), 0)-(pos1(i) + 1, 1) ElseIf fd1(i) <> 0 And xiang1(i) < 0 Then Picture1.Line (pos1(i), -5)-(pos1(i), 0) Picture1.Line (pos1(i), 0)-(pos1(i) - 1, -1) Picture1.Line (pos1(i), 0)-(pos1(i) + 1, -1) End IfNext iFor i = 0 To 10If fd2(i) <> 0 ThenPicture1.Line (pos2(i), 3)-(pos3(i), 3) Picture1.Line (pos2(i), 3)-(pos2(i), 0) Picture1.Line (pos2(i), 0)-(pos2(i) - 0.5, 1) Picture1.Line (pos2(i), 0)-(pos2(i) + 0.5, 1) Picture1.Line (pos3(i), 3)-(pos3(i), 0) Picture1.Line (pos3(i), 0)-(pos3(i) - 0.5, 1) Picture1.Line (pos3(i), 0)-(pos3(i) + 0.5, 1)For x = pos2(i) + 0.8 To pos3(i) Step 0.8 Picture1.Line (x, 3)-(x, 0)Picture1.Line (x, 0)-(x - 0.5, 1)Picture1.Line (x, 0)-(x + 0.5, 1)Next xEnd IfNext iFor i = 0 To 10If fd3(i) <> 0 And xiang3(i) > 0 Then Picture1.Line (pos4(i), 3)-(pos4(i), -3) Picture1.Line (pos4(i), 3)-(pos4(i) - 1, 3) Picture1.Line (pos4(i), -3)-(pos4(i) + 1, -3) ElseIf fd3(i) <> 0 And xiang3(i) < 0 ThenPicture1.Line (pos4(i), 3)-(pos4(i), -3) Picture1.Line (pos4(i), 3)-(pos4(i) + 1, 3) Picture1.Line (pos4(i), -3)-(pos4(i) - 1, -3) End IfNext iPicture2.Scale (-0.2 * l, 20)-(1.2 * l, -20) Picture2.Line (0, 0)-(l, 0)If Combo1 = "简支梁" ThenPicture1.Line (0, -3)-(0, 0)Picture1.Line (l, -3)-(l, 0)For x = 0.01 To l Step 0.001For i = 1 To 10If x > 0 And x < pos1(i) Theny1(i) = fd1(i) * (l - pos1(i)) / l * xiang1(i) ElseIf x > pos1(i) And x < l Theny1(i) = -fd1(i) * pos1(i) / l * xiang1(i)End IfIf x > 0 And x < pos2(i) Theny2(i) = fd2(i) * (pos3(i) - pos2(i)) * (2 * l - pos2(i) - pos3(i)) * xiang2(i) / (2 * l)ElseIf x > pos2(i) And x < pos3(i) Theny2(i) = fd2(i) * (pos3(i) - pos2(i)) * (2 * l - pos2(i) - pos3(i)) * xiang2(i) / (2 * l) - fd2(i) * xiang2(i) * (x - pos2(i))Elsey2(i) = -fd2(i) * (pos3(i) - pos2(i)) * (pos2(i) + pos3(i)) * xiang2(i) / (2 * l)End IfIf x > 0 And x < pos4(i) Theny3(i) = fd3(i) / lElseIf x > pos4(i) And x < l Then y3(i) = -fd3(i) / lEnd IfNext iy = 0For j = 1 To 10y = y + y1(j) + y2(j) + y3(j)Next jPicture2.PSet (x, y)Next xFor x = 0 To l Step 1For i = 1 To 10If x > 0 And x < pos1(i) Theny1(i) = fd1(i) * (l - pos1(i)) / l * xiang1(i) ElseIf x > pos1(i) And x < l Theny1(i) = -fd1(i) * pos1(i) / l * xiang1(i)End IfIf x > 0 And x < pos2(i) Theny2(i) = fd2(i) * (pos3(i) - pos2(i)) * (2 * l - pos2(i) - pos3(i)) * xiang2(i) / (2 * l)ElseIf x > pos2(i) And x < pos3(i) Theny2(i) = fd2(i) * (pos3(i) - pos2(i)) * (2 * l - pos2(i) - pos3(i)) * xiang2(i) / (2 * l) - fd2(i) * xiang2(i) * (x - pos2(i))Elsey2(i) = -fd2(i) * (pos3(i) - pos2(i)) * (pos2(i) + pos3(i)) * xiang2(i) / (2 * l)End IfIf x > 0 And x < pos4(i) Theny3(i) = fd3(i) / lElseIf x > pos4(i) And x < l Theny3(i) = -fd3(i) / lEnd IfNext iy = 0For j = 1 To 10y = y + y1(j) + y2(j) + y3(j)Next jIf y > 0 ThenFor Hua = 0 To y Step 0.01Picture2.PSet (x, Hua)Next HuaElseIf y < 0 ThenFor Hua = y To 0 Step 0.01Picture2.PSet (x, Hua)Next HuaEnd IfNext xPicture3.ClsPicture3.Scale (-0.2 * l, 20)-(1.2 * l, -30) Picture3.Line (0, 0)-(l, 0)For x = 0.01 To l Step 0.01For i = 1 To 10If x > 0 And x < pos1(i) Then M1(i) = -fd1(i) * (l - pos1(i)) * x / l * xiang1(i)ElseIf x > pos1(i) And x < l ThenM1(i) = -fd1(i) * pos1(i) * (l - x) / l * xiang1(i)End IfIf x > 0 And x < pos2(i) ThenM2(i) = -fd2(i) * (pos3(i) - pos2(i)) * (2 * l - pos2(i) - pos3(i)) * xiang2(i) / (2 * l) * xElseIf x > pos2(i) And x < pos3(i) ThenM2(i) = -(fd2(i) * (pos3(i) - pos2(i)) * (2 * l - pos2(i) - pos3(i)) * xiang2(i) / (2 * l) * x - fd2(i) * (x - pos2(i)) * (x - pos2(i)) / 2)ElseM2(i) = -(fd2(i) * (pos3(i) - pos2(i)) * (pos2(i) + pos3(i)) * xiang2(i) / (2 * l) * (l - x))End IfIf x > 0 And x < pos4(i) ThenM3(i) = -fd3(i) * x / l * xiang3(i)ElseIf x > pos4(i) And x < l ThenM3(i) = -(fd3(i) * x / l - fd3(i)) * xiang3(i) End IfNext iy = 0For j = 1 To 10y = y + M1(j) + M2(j) + M3(j)Next jPicture3.PSet (x, y)Next xFor x = 0.01 To l Step 0.6For i = 1 To 10If x > 0 And x < pos1(i) ThenM1(i) = -fd1(i) * (l - pos1(i)) * x / l * xiang1(i)ElseIf x > pos1(i) And x < l ThenM1(i) = -fd1(i) * pos1(i) * (l - x) / l * xiang1(i)End IfIf x > 0 And x < pos2(i) ThenM2(i) = -fd2(i) * (pos3(i) - pos2(i)) * (2 * l - pos2(i) - pos3(i)) * xiang2(i) / (2 * l) * xElseIf x > pos2(i) And x < pos3(i) ThenM2(i) = -(fd2(i) * (pos3(i) - pos2(i)) * (2 * l - pos2(i) - pos3(i)) * xiang2(i) / (2 * l) * x - fd2(i) * (x - pos2(i)) * (x - pos2(i)) / 2)ElseM2(i) = -(fd2(i) * (pos3(i) - pos2(i)) * (pos2(i) + pos3(i)) * xiang2(i) / (2 * l) * (l - x))End IfIf x > 0 And x < pos4(i) ThenM3(i) = -fd3(i) * x / l * xiang3(i)ElseIf x > pos4(i) And x < l Then M3(i) = -(fd3(i) * x / l - fd3(i)) * xiang3(i) End IfNext iy = 0For j = 1 To 10y = y + M1(j) + M2(j) + M3(j)Next jIf y > 0 And x < l ThenFor Hua = 0 To y Step 0.01Picture3.PSet (x, Hua)Next HuaElseIf y < 0 And x < l ThenFor Hua = y To 0 Step 0.01Picture3.PSet (x, Hua)Next HuaEnd IfNext xElseIf Combo1 = "左端悬臂梁" Then Picture1.Line (0, -5)-(0, 5)For x = 0.01 To l Step 0.001For i = 1 To 10If x > 0 And x < pos1(i) Theny1(i) = fd1(i) * xiang1(i)ElseIf x > pos1(i) And x < l Theny1(i) = 0End IfIf x > 0 And x < pos2(i) Theny2(i) = fd2(i) * (pos3(i) - pos2(i)) * xiang2(i)ElseIf x > pos2(i) And x < pos3(i) Theny2(i) = fd2(i) * (pos3(i) - x) * xiang2(i) Elsey2(i) = 0End IfIf x > 0 And x < pos4(i) Theny3(i) = 0ElseIf x > pos4(i) And x < l Theny3(i) = 0End IfNext iy = 0For j = 1 To 10y = y + y1(j) + y2(j) + y3(j)Next jPicture2.PSet (x, y)Next xFor x = 0.01 To l Step 1For i = 1 To 10If x > 0 And x < pos1(i) Theny1(i) = fd1(i) * xiang1(i)ElseIf x > pos1(i) And x < l Theny1(i) = 0End IfIf x > 0 And x < pos2(i) Theny2(i) = fd2(i) * (pos3(i) - pos2(i)) * xiang2(i) ElseIf x > pos2(i) And x < pos3(i) Then y2(i) = fd2(i) * (pos3(i) - x) * xiang2(i) Elsey2(i) = 0End IfIf x > 0 And x < pos4(i) Theny3(i) = 0ElseIf x > pos4(i) And x < l Theny3(i) = 0End IfNext iy = 0For j = 1 To 10y = y + y1(j) + y2(j) + y3(j)Next jIf y > 0 ThenFor Hua = 0 To y Step 0.01Picture2.PSet (x, Hua)Next HuaElseIf y < 0 ThenFor Hua = y To 0 Step 0.01Picture2.PSet (x, Hua)Next HuaEnd IfNext xPicture3.ClsPicture3.Scale (-0.2 * l, 10)-(1.2 * l, -30) Picture3.Line (0, 0)-(l, 0)For x = 0.01 To l Step 0.001For i = 1 To 10If x > 0 And x < pos1(i) ThenM1(i) = -(fd1(i) * x - pos1(i) * fd1(i))ElseIf x > pos1(i) And x < l ThenM1(i) = 0End IfIf x > 0 And x < pos2(i) ThenM2(i) = -(fd2(i) * (pos3(i) - pos2(i)) * x - fd2(i) * (pos3(i) - pos2(i)) * (pos2(i) + pos3(i)) * xiang2(i) / 2)ElseIf x > pos2(i) And x < pos3(i) ThenM2(i) = fd2(i) * (pos3(i) - x) * (pos3(i) - x) / 2ElseM2(i) = 0End IfIf x > 0 And x < pos4(i) ThenM3(i) = -fd3(i)ElseIf x > pos4(i) And x < l ThenM3(i) = 0End IfNext iy = 0For j = 1 To 10y = y + M1(j) + M2(j) + M3(j)Next jPicture3.PSet (x, y)Next x For x = 0.01 To l Step 0.6For i = 1 To 10If x > 0 And x < pos1(i) ThenM1(i) = -(fd1(i) * x - pos1(i) * fd1(i))ElseIf x > pos1(i) And x < l ThenM1(i) = 0End IfIf x > 0 And x < pos2(i) ThenM2(i) = -(fd2(i) * (pos3(i) - pos2(i)) * x - fd2(i) * (pos3(i) - pos2(i)) * (pos2(i) + pos3(i)) * xiang2(i) / 2)ElseIf x > pos2(i) And x < pos3(i) ThenM2(i) = fd2(i) * (pos3(i) - x) * (pos3(i) - x) / 2ElseM2(i) = 0End IfIf x > 0 And x < pos4(i) ThenM3(i) = -fd3(i)ElseIf x > pos4(i) And x < l ThenM3(i) = 0End IfNext iy = 0For j = 1 To 10y = y + M1(j) + M2(j) + M3(j)Next jIf y > 0 And x < l ThenFor Hua = 0 To y Step 0.01Picture3.PSet (x, Hua)Next HuaElseIf y < 0 And x < l ThenFor Hua = y To 0 Step 0.01Picture3.PSet (x, Hua)Next HuaEnd IfNext xElseIf Combo1 = "左右端外伸梁" ThenDim Zhi1, Zhi2 As DoubleZhi1 = Val(InputBox("请输入左支承的位置:(m)"))Zhi2 = Val(InputBox("请输入右支承的位置:(m)"))Picture1.Line (Zhi1, -3)-(Zhi1, 0)Picture1.Line (Zhi2, -3)-(Zhi2, 0)For x = 0.01 To l Step 0.001For i = 1 To 10 Step 1If pos1(i) < Zhi1 ThenIf x > 0 And x < pos1(i) Theny1(i) = 0ElseIf x > pos1(i) And x < Zhi1 Theny1(i) = -fd1(i) * xiang1(i)ElseIf x > Zhi1 And x < Zhi2 Theny1(i) = fd1(i) * xiang1(i) * (Zhi1 - pos1(i)) / (Zhi2 - Zhi1)ElseIf x > Zhi2 And x < l Then y1(i) = 0End IfElseIf pos1(i) > Zhi1 And pos1(i) < Zhi2 Then If x > 0 And x < Zhi1 Theny1(i) = 0ElseIf x > Zhi1 And x < pos1(i) Theny1(i) = fd1(i) * (Zhi2 - pos1(i)) / (Zhi2 - Zhi1) * xiang1(i)ElseIf x > pos1(i) And x < Zhi2 Theny1(i) = -fd1(i) * (pos1(i) - Zhi1) / (Zhi2 - Zhi1) * xiang1(i)ElseIf x > Zhi2 And x < l Theny1(i) = 0End IfElseIf pos1(i) > Zhi2 And pos1(i) < l ThenIf x > 0 And x < Zhi1 Theny1(i) = 0ElseIf x > Zhi1 And x < Zhi1 Theny1(i) = -fd1(i) * xiang1(i) * (pos1(i) - Zhi2) / (Zhi2 - Zhi1)ElseIf x > Zhi2 And x < pos1(i) Theny1(i) = fd1(i) * xiang1(i)ElseIf x > Zhi2 And x < l Theny1(i) = 0End IfEnd IfIf pos2(i) > 0 And pos3(i) < Zhi1 ThenIf x > 0 And x < pos2(i) Theny2(i) = 0ElseIf x > pos2(i) And x < pos3(i) Theny2(i) = -fd2(i) * xiang2(i) * (x - pos2(i)) ElseIf x > pos3(i) And x < Zhi1 Theny2(i) = -fd2(i) * (pos3(i) - pos2(i)) * xiang2(i) ElseIf x > Zhi1 And x < Zhi2 Theny2(i) = fd2(i) * (pos3(i) - pos2(i)) * xiang2(i) * (Zhi1 - (pos2(i) + pos3(i)) / 2) / (Zhi2 - Zhi1)Elsey2(i) = 0End IfElseIf pos2(i) > Zhi1 And pos3(i) < Zhi2 Then If x > 0 And x < Zhi1 Theny2(i) = 0ElseIf x > Zhi1 And x < pos2(i) Theny2(i) = fd2(i) * (pos3(i) - pos2(i)) * (Zhi2 - (pos2(i) + pos3(i)) / 2) / (Zhi2 - Zhi1) * xiang2(i)ElseIf x > pos2(i) And x < pos3(i) Theny2(i) = fd2(i) * xiang2(i) * (pos3(i) - pos2(i)) * (Zhi2 - (pos2(i) + pos3(i)) / 2) / (Zhi2 - Zhi1) - fd2(i) * (x - pos2(i))ElseIf x > pos3(i) And x < Zhi2 Theny2(i) = -fd2(i) * (pos3(i) - pos2(i)) * ((pos2(i) + pos3(i)) / 2 - Zhi1) / (Zhi2 - Zhi1)Elsey2(i) = 0End IfElseIf pos2(i) > Zhi2 And pos3(i) < l ThenIf x > 0 And x < Zhi1 Theny2(i) = 0ElseIf x > Zhi1 And x < Zhi2 Theny2(i) = -fd2(i) * (pos3(i) - pos2(i)) * ((pos3(i) + pos2(i)) / 2 - Zhi2) * xiang2(i) / (Zhi2 - Zhi1) ElseIf x > Zhi2 And x < pos2(i) Theny2(i) = fd2(i) * (pos3(i) - pos2(i)) * xiang2(i) ElseIf x > pos2(i) And x < pos3(i) Theny2(i) = fd2(i) * (pos3(i) - pos2(i)) * xiang2(i) - fd2(i) * (x - pos2(i)) * xiang2(i)ElseIf x > pos3(i) And x < l Theny2(i) = 0End IfEnd IfIf pos4(i) > 0 And pos4(i) < Zhi1 ThenIf x > 0 And x < pos4(i) Theny3(i) = 0ElseIf x > pos4(i) And x < Zhi1 Theny3(i) = 0ElseIf x > Zhi1 And x < Zhi2 Theny3(i) = fd3(i) * xiang3(i) / (Zhi2 - Zhi1) ElseIf x > Zhi2 And x < l Theny3(i) = 0End IfElseIf pos4(i) > Zhi1 And pos4(i) < Zhi2 Then If x > 0 And x < Zhi1 Theny3(i) = 0ElseIf x > Zhi1 And x < pos4(i) Theny3(i) = fd3(i) * xiang3(i) / (Zhi2 - Zhi1) ElseIf x > pos4(i) And x < Zhi2 Theny3(i) = 0ElseIf x > Zhi2 And x < l Theny3(i) = 0End IfElseIf pos4(i) > Zhi2 And pos4(i) < l ThenIf x > 0 And x < Zhi1 Theny3(i) = 0ElseIf x > Zhi1 And x < Zhi2 Theny3(i) = fd3(i) * xiang3(i) / (Zhi2 - Zhi1) ElseIf x > Zhi2 And x < pos4(i) Theny3(i) = 0ElseIf x > pos4(i) And x < l Theny3(i) = 0End IfEnd IfNext iy = 0For j = 1 To 10y = y + y1(j) + y2(j) + y3(j)Next jPicture2.PSet (x, y)Next xFor x = 0.01 To l Step 0.6For i = 1 To 10 Step 1If pos1(i) < Zhi1 ThenIf x > 0 And x < pos1(i) Theny1(i) = 0ElseIf x > pos1(i) And x < Zhi1 Theny1(i) = -fd1(i) * xiang1(i)ElseIf x > Zhi1 And x < Zhi2 Theny1(i) = fd1(i) * xiang1(i) * (Zhi1 - pos1(i)) / (Zhi2 - Zhi1)ElseIf x > Zhi2 And x < l Theny1(i) = 0End IfElseIf pos1(i) > Zhi1 And pos1(i) < Zhi2 Then If x > 0 And x < Zhi1 Theny1(i) = 0ElseIf x > Zhi1 And x < pos1(i) Theny1(i) = fd1(i) * (Zhi2 - pos1(i)) / (Zhi2 - Zhi1) * xiang1(i) ElseIf x > pos1(i) And x < Zhi2 Theny1(i) = -fd1(i) * (pos1(i) - Zhi1) / (Zhi2 - Zhi1) * xiang1(i)ElseIf x > Zhi2 And x < l Theny1(i) = 0End IfElseIf pos1(i) > Zhi2 And pos1(i) < l ThenIf x > 0 And x < Zhi1 Theny1(i) = 0ElseIf x > Zhi1 And x < Zhi1 Theny1(i) = -fd1(i) * xiang1(i) * (pos1(i) - Zhi2) / (Zhi2 - Zhi1)ElseIf x > Zhi2 And x < pos1(i) Theny1(i) = fd1(i) * xiang1(i)ElseIf x > Zhi2 And x < l Theny1(i) = 0End IfEnd IfIf pos2(i) > 0 And pos3(i) < Zhi1 ThenIf x > 0 And x < pos2(i) Theny2(i) = 0ElseIf x > pos2(i) And x < pos3(i) Theny2(i) = -fd2(i) * xiang2(i) * (x - pos2(i)) ElseIf x > pos3(i) And x < Zhi1 Theny2(i) = -fd2(i) * (pos3(i) - pos2(i)) * xiang2(i) ElseIf x > Zhi1 And x < Zhi2 Theny2(i) = fd2(i) * (pos3(i) - pos2(i)) * xiang2(i) * (Zhi1 - (pos2(i) + pos3(i)) / 2) / (Zhi2 - Zhi1)Elsey2(i) = 0End IfElseIf pos2(i) > Zhi1 And pos3(i) < Zhi2 Then If x > 0 And x < Zhi1 Theny2(i) = 0ElseIf x > Zhi1 And x < pos2(i) Theny2(i) = fd2(i) * (pos3(i) - pos2(i)) * (Zhi2 - (pos2(i) + pos3(i)) / 2) / (Zhi2 - Zhi1) * xiang2(i)ElseIf x > pos2(i) And x < pos3(i) Theny2(i) = fd2(i) * xiang2(i) * (pos3(i) - pos2(i)) * (Zhi2 - (pos2(i) + pos3(i)) / 2) / (Zhi2 - Zhi1) - fd2(i) * (x - pos2(i))ElseIf x > pos3(i) And x < Zhi2 Theny2(i) = -fd2(i) * (pos3(i) - pos2(i)) * ((pos2(i) + pos3(i)) / 2 - Zhi1) / (Zhi2 - Zhi1)Elsey2(i) = 0End IfElseIf pos2(i) > Zhi2 And pos3(i) < l ThenIf x > 0 And x < Zhi1 Theny2(i) = 0ElseIf x > Zhi1 And x < Zhi2 Theny2(i) = -fd2(i) * (pos3(i) - pos2(i)) * ((pos3(i) + pos2(i)) / 2 - Zhi2) * xiang2(i) / (Zhi2 - Zhi1)ElseIf x > Zhi2 And x < pos2(i) Theny2(i) = fd2(i) * (pos3(i) - pos2(i)) * xiang2(i) ElseIf x > pos2(i) And x < pos3(i) Theny2(i) = fd2(i) * (pos3(i) - pos2(i)) * xiang2(i) - fd2(i) * (x - pos2(i)) * xiang2(i)ElseIf x > pos3(i) And x < l Theny2(i) = 0End IfEnd IfIf pos4(i) > 0 And pos4(i) < Zhi1 ThenIf x > 0 And x < pos4(i) Theny3(i) = 0ElseIf x > pos4(i) And x < Zhi1 Theny3(i) = 0ElseIf x > Zhi1 And x < Zhi2 Theny3(i) = fd3(i) * xiang3(i) / (Zhi2 - Zhi1) ElseIf x > Zhi2 And x < l Theny3(i) = 0 End IfElseIf pos4(i) > Zhi1 And pos4(i) < Zhi2 Then If x > 0 And x < Zhi1 Theny3(i) = 0ElseIf x > Zhi1 And x < pos4(i) Theny3(i) = fd3(i) * xiang3(i) / (Zhi2 - Zhi1) ElseIf x > pos4(i) And x < Zhi2 Theny3(i) = 0ElseIf x > Zhi2 And x < l Theny3(i) = 0End IfElseIf pos4(i) > Zhi2 And pos4(i) < l ThenIf x > 0 And x < Zhi1 Theny3(i) = 0ElseIf x > Zhi1 And x < Zhi2 Theny3(i) = fd3(i) * xiang3(i) / (Zhi2 - Zhi1) ElseIf x > Zhi2 And x < pos4(i) Theny3(i) = 0ElseIf x > pos4(i) And x < l Theny3(i) = 0End IfEnd IfNext iy = 0For j = 1 To 10y = y + y1(j) + y2(j) + y3(j)Next jIf y > 0 ThenFor Hua = 0 To y Step 0.01Picture2.PSet (x, Hua)Next HuaElseIf y < 0 ThenFor Hua = y To 0 Step 0.01Picture2.PSet (x, Hua)Next HuaEnd IfNext xPicture3.ClsPicture3.Scale (-0.2 * l, 20)-(1.2 * l, -30) Picture3.Line (0, 0)-(l, 0)For x = 0.01 To l Step 0.001For i = 1 To 10If pos1(i) < Zhi1 ThenIf x > 0 And x < pos1(i) ThenM1(i) = 0 ElseIf x > pos1(i) And x < Zhi1 ThenM1(i) = fd1(i) * xiang1(i) * (x - pos1(i))ElseIf x > Zhi1 And x < Zhi2 ThenM1(i) = fd1(i) * xiang1(i) * (pos2(i) - pos1(i)) - fd1(i) * xiang1(i) * (x - Zhi1)ElseIf x > Zhi2 And x < l ThenM1(i) = 0End IfElseIf pos1(i) > Zhi1 And pos1(i) < Zhi2 Then If x > 0 And x < Zhi1 ThenM1(i) = 0ElseIf x > Zhi1 And x < pos1(i) ThenM1(i) = -fd1(i) * (Zhi2 - pos1(i)) / (Zhi2 - Zhi1) * (x - Zhi1)ElseIf x > pos1(i) And x < Zhi2 ThenM1(i) = -fd1(i) * (Zhi2 - pos1(i)) / (Zhi2 - Zhi1) * (pos1(i) - Zhi1) + fd1(i) * xiang1(i) * (pos1(i) - Zhi1) / (Zhi2 - Zhi1) * (x - pos1(i)) ElseIf x > Zhi2 And x < l ThenM1(i) = 0End IfElseIf pos1(i) > Zhi2 And pos1(i) < l ThenIf x > 0 And x < Zhi1 ThenM1(i) = 0ElseIf x > Zhi1 And x < Zhi1 ThenM1(i) = fd1(i) * (pos1(i) - Zhi2) * xiang1(i) / (Zhi2 - Zhi1) * (x - Zhi1)ElseIf x > Zhi2 And x < pos1(i) ThenM1(i) = fd1(i) * (pos1(i) - Zhi2) * xiang1(i) - fd1(i) * xiang1(i) * (x - Zhi2)ElseIf x > Zhi2 And x < l ThenM1(i) = 0End IfEnd IfIf pos2(i) > 0 And pos3(i) < Zhi1 ThenIf x > 0 And x < pos2(i) ThenM2(i) = 0ElseIf x > pos2(i) And x < pos3(i) ThenM2(i) = fd2(i) * xiang2(i) * (x - pos2(i)) * (x - pos2(i)) / 2ElseIf x > pos3(i) And x < Zhi1 ThenM2(i) = fd2(i) * xiang2(i) * (pos3(i) - pos2(i)) * (pos3(i) - pos2(i)) / 2 + fd2(i) * xiang2(i) * (pos3(i) - pos2(i)) * (x - pos3(i))ElseIf x > Zhi1 And x < Zhi2 ThenM2(i) = fd2(i) * xiang2(i) * (Zhi2 - x)ElseM2(i) = 0End IfElseIf pos2(i) > Zhi1 And pos3(i) < Zhi2 ThenIf x > 0 And x < Zhi1 ThenM2(i) = 0ElseIf x > Zhi1 And x < pos2(i) ThenM2(i) = -(fd2(i) * (pos3(i) - pos3(i)) * (Zhi2 - (pos2(i) + pos3(i)) / 2) / (Zhi2 - Zhi1)) * (x - Zhi1)ElseIf x > pos2(i) And x < pos3(i) ThenM2(i) = -(fd2(i) * (pos3(i) - pos3(i)) * (Zhi2 - (pos2(i) + pos3(i)) / 2) / (Zhi2 - Zhi1)) * (pos2(i) - Zhi1) - (fd2(i) * (pos3(i) - pos3(i)) * (Zhi2 - (pos2(i) + pos3(i)) / 2) / (Zhi2 - Zhi1) + fd2(i) * xiang2(i) * (pos3(i) - pos2(i)) * (Zhi2 - (pos2(i) + pos3(i)) / 2) / (Zhi2 - Zhi1) - fd2(i) * (x - pos2(i))) * (x - pos2(i)) ElseIf x > pos3(i) And x < Zhi2 ThenM2(i) = -fd2(i) * (pos3(i) - pos2(i)) * ((pos2(i) + pos3(i)) / 2 - Zhi1) / (Zhi2 - Zhi1) * (Zhi2 - x)ElseM2(i) = 0End IfElseIf pos2(i) > Zhi2 And pos3(i) < l ThenIf x > 0 And x < Zhi1 ThenM2(i) = 0ElseIf x > Zhi1 And x < Zhi2 ThenM2(i) = fd2(i) * (pos3(i) - pos2(i)) * ((pos3(i) + pos2(i)) / 2 - Zhi2) * xiang2(i) / (Zhi2 - Zhi1) * (x - Zhi1)ElseIf x > Zhi2 And x < pos2(i) ThenM2(i) = fd2(i) * xiang2(i) * (pos3(i) - pos2(i)) * ((pos2(i) + pos3(i)) / 2 - x)ElseIf x > pos2(i) And x < pos3(i) ThenM2(i) = fd2(i) * xiang2(i) * (pos3(i) - x) * (pos3(i) - x) / 2ElseIf x > pos3(i) And x < l ThenM2(i) = 0End IfEnd IfIf pos4(i) > 0 And pos4(i) < Zhi1 ThenIf x > 0 And x < pos4(i) ThenM3(i) = 0ElseIf x > pos4(i) And x < Zhi1 ThenM3(i) = fd3(i) * xiang3(i)ElseIf x > Zhi1 And x < Zhi2 ThenM3(i) = fd3(i) * xiang3(i) * (x - Zhi1) - fd3(i) * xiang3(i)ElseIf x > Zhi2 And x < l ThenM3(i) = 0End IfElseIf pos4(i) > Zhi1 And pos4(i) < Zhi2 Then If x > 0 And x < Zhi1 ThenM3(i) = 0ElseIf x > Zhi1 And x < pos4(i) ThenM3(i) = -fd3(i) * (x - Zhi1) / (Zhi2 - Zhi1) * xiang3(i)ElseIf x > pos4(i) And x < Zhi2 ThenM3(i) = fd3(i) * (Zhi2 - x) / (Zhi2 - Zhi1) * xiang3(i)ElseIf x > Zhi2 And x < l ThenM3(i) = 0End IfElseIf pos4(i) > Zhi2 And pos4(i) < l ThenIf x > 0 And x < Zhi1 ThenM3(i) = 0ElseIf x > Zhi1 And x < Zhi2 ThenM3(i) = -fd3(i) * (x - Zhi1) / (Zhi2 - Zhi1) * xiang3(i)ElseIf x > Zhi2 And x < pos4(i) ThenM3(i) = -fd3(i) * xiang3(i)ElseIf x > pos4(i) And x < l ThenEnd IfEnd IfNext iy = 0For j = 1 To 10y = y + M1(j) + M2(j) + M3(j)Next jPicture3.PSet (x, y)Next x For x = 0.01 To l Step 0.6For i = 1 To 10If pos1(i) < Zhi1 ThenIf x > 0 And x < pos1(i) ThenM1(i) = 0ElseIf x > pos1(i) And x < Zhi1 ThenM1(i) = fd1(i) * xiang1(i) * (x - pos1(i))ElseIf x > Zhi1 And x < Zhi2 ThenM1(i) = fd1(i) * xiang1(i) * (pos2(i) - pos1(i)) - fd1(i) * xiang1(i) * (x - Zhi1)ElseIf x > Zhi2 And x < l ThenM1(i) = 0End IfElseIf pos1(i) > Zhi1 And pos1(i) < Zhi2 Then If x > 0 And x < Zhi1 ThenM1(i) = 0ElseIf x > Zhi1 And x < pos1(i) ThenM1(i) = -fd1(i) * (Zhi2 - pos1(i)) / (Zhi2 - Zhi1) * (x - Zhi1)ElseIf x > pos1(i) And x < Zhi2 ThenM1(i) = -fd1(i) * (Zhi2 - pos1(i)) / (Zhi2 - Zhi1) * (pos1(i) - Zhi1) + fd1(i) * xiang1(i) * (pos1(i) - Zhi1) / (Zhi2 - Zhi1) * (x - pos1(i)) ElseIf x > Zhi2 And x < l ThenM1(i) = 0End IfElseIf pos1(i) > Zhi2 And pos1(i) < l ThenIf x > 0 And x < Zhi1 ThenM1(i) = 0ElseIf x > Zhi1 And x < Zhi1 ThenM1(i) = fd1(i) * (pos1(i) - Zhi2) * xiang1(i) / (Zhi2 - Zhi1) * (x - Zhi1)ElseIf x > Zhi2 And x < pos1(i) ThenM1(i) = fd1(i) * (pos1(i) - Zhi2) * xiang1(i) - fd1(i) * xiang1(i) * (x - Zhi2)ElseIf x > Zhi2 And x < l ThenM1(i) = 0End IfEnd IfIf pos2(i) > 0 And pos3(i) < Zhi1 ThenIf x > 0 And x < pos2(i) ThenM2(i) = 0ElseIf x > pos2(i) And x < pos3(i) ThenM2(i) = fd2(i) * xiang2(i) * (x - pos2(i)) * (x - pos2(i)) / 2ElseIf x > pos3(i) And x < Zhi1 ThenM2(i) = fd2(i) * xiang2(i) * (pos3(i) - pos2(i)) * (pos3(i) - pos2(i)) / 2 + fd2(i) * xiang2(i) * (pos3(i) - pos2(i)) * (x - pos3(i))ElseIf x > Zhi1 And x < Zhi2 ThenM2(i) = fd2(i) * xiang2(i) * (Zhi2 - x)ElseM2(i) = 0End IfElseIf pos2(i) > Zhi1 And pos3(i) < Zhi2 ThenIf x > 0 And x < Zhi1 ThenM2(i) = 0ElseIf x > Zhi1 And x < pos2(i) ThenM2(i) = -(fd2(i) * (pos3(i) - pos3(i)) * (Zhi2 - (pos2(i) + pos3(i)) / 2) / (Zhi2 - Zhi1)) * (x - Zhi1) ElseIf x > pos2(i) And x < pos3(i) ThenM2(i) = -(fd2(i) * (pos3(i) - pos3(i)) * (Zhi2 - (pos2(i) + pos3(i)) / 2) / (Zhi2 - Zhi1)) * (pos2(i) - Zhi1) - (fd2(i) * (pos3(i) - pos3(i)) * (Zhi2 - (pos2(i) + pos3(i)) / 2) / (Zhi2 - Zhi1) + fd2(i) * xiang2(i) * (pos3(i) - pos2(i)) * (Zhi2 - (pos2(i) + pos3(i)) / 2) / (Zhi2 - Zhi1) - fd2(i) * (x - pos2(i))) * (x - pos2(i))ElseIf x > pos3(i) And x < Zhi2 ThenM2(i) = -fd2(i) * (pos3(i) - pos2(i)) * ((pos2(i) + pos3(i)) / 2 - Zhi1) / (Zhi2 - Zhi1) * (Zhi2 - x)ElseM2(i) = 0End IfElseIf pos2(i) > Zhi2 And pos3(i) < l ThenIf x > 0 And x < Zhi1 ThenM2(i) = 0ElseIf x > Zhi1 And x < Zhi2 ThenM2(i) = fd2(i) * (pos3(i) - pos2(i)) * ((pos3(i) + pos2(i)) / 2 - Zhi2) * xiang2(i) / (Zhi2 - Zhi1) * (x - Zhi1)ElseIf x > Zhi2 And x < pos2(i) ThenM2(i) = fd2(i) * xiang2(i) * (pos3(i) - pos2(i)) * ((pos2(i) + pos3(i)) / 2 - x)ElseIf x > pos2(i) And x < pos3(i) ThenM2(i) = fd2(i) * xiang2(i) * (pos3(i) - x) * (pos3(i) - x) / 2ElseIf x > pos3(i) And x < l ThenM2(i) = 0End IfEnd IfIf pos4(i) > 0 And pos4(i) < Zhi1 ThenIf x > 0 And x < pos4(i) ThenM3(i) = 0ElseIf x > pos4(i) And x < Zhi1 ThenM3(i) = fd3(i) * xiang3(i)ElseIf x > Zhi1 And x < Zhi2 ThenM3(i) = fd3(i) * xiang3(i) * (x - Zhi1) - fd3(i) * xiang3(i)ElseIf x > Zhi2 And x < l ThenM3(i) = 0End IfElseIf pos4(i) > Zhi1 And pos4(i) < Zhi2 Then If x > 0 And x < Zhi1 ThenM3(i) = 0ElseIf x > Zhi1 And x < pos4(i) ThenM3(i) = -fd3(i) * (x - Zhi1) / (Zhi2 - Zhi1) * xiang3(i)ElseIf x > pos4(i) And x < Zhi2 ThenM3(i) = fd3(i) * (Zhi2 - x) / (Zhi2 - Zhi1) * xiang3(i)ElseIf x > Zhi2 And x < l ThenM3(i) = 0End IfElseIf pos4(i) > Zhi2 And pos4(i) < l ThenIf x > 0 And x < Zhi1 ThenM3(i) = 0ElseIf x > Zhi1 And x < Zhi2 ThenM3(i) = -fd3(i) * (x - Zhi1) / (Zhi2 - Zhi1) * xiang3(i)ElseIf x > Zhi2 And x < pos4(i) ThenM3(i) = -fd3(i) * xiang3(i)ElseIf x > pos4(i) And x < l ThenEnd IfEnd IfNext iy = 0 For j = 1 To 10y = y + M1(j) + M2(j) + M3(j) Next jIf y > 0 And x < l ThenFor Hua = 0 To y Step 0.01 Picture3.PSet (x, Hua)Next HuaElseIf y < 0 And x < l ThenFor Hua = y To 0 Step 0.01 Picture3.PSet (x, Hua)Next HuaEnd IfNext xEnd IfEnd SubPrivate Sub Form_Load()Combo1.AddItem "简支梁" Combo1.AddItem "左端悬臂梁"Combo1.AddItem "左右端外伸梁" End Sub。
材料力学课件:剪力图与弯矩图

剪力图与弯矩图
载荷集度、剪力、弯矩之间的微分关系
绘制剪力图和弯矩图有两种方法:第一 种方法是:根据剪力方程和弯矩方程,在
FQ-x和M-x坐标系中首先标出剪力方程和
弯矩方程定义域两个端点的剪力值和弯矩 值,得到相应的点;然后按照剪力和弯矩 方程的类型,绘制出相应的图线,便得到 所需要的剪力图与弯矩图。
ΣMC=0: (M+dM) +q dx ·dx /2 -M- FQ dx=0
剪力、弯矩与载荷集度之间的微分关系的证明
q
y
Mz(x)
O
Mz(x)+d Mz(x)
x
ΣFy=0:
FQ+q dx- FQ-d FQ =0
FQ
x
dx
FQ +dFQ
ΣMC=0:
(M+dM) +q dx ·dx /2 -M- FQ dx=0
剪力图与弯矩图
剪力图与弯矩图
剪力图与弯矩
图
剪力图与弯矩图
载荷集度、剪力、弯矩之间的微分关系绘制剪 力图与弯矩图的方法,与绘制轴力图和扭矩图的 方法大体相似,但略有差异,主要步骤如下:
根据载荷及约束力的作用位置,确定控制面;
应用截面法确定控制面上的剪力和弯矩数值;
建立FQ-x和M-x坐标系,并将控制面上的剪
如果一段梁上作用有均布载荷,即q=常数,这一段 梁上剪力的一阶导数等于常数,弯矩的一阶导数为x的线性函
数,因此,这一段梁的剪力图为斜直线;弯矩图为二次抛物线 。
弯矩图二次抛物线的凸凹性,与载荷集度q的正负有 关:当q为正(向上)时,抛物线为凹曲线,凹的方向与M坐标正 方向一致,:当q为负(向下)时,抛物线为凸曲线,凸的方向 与M坐标正方向一致。
哈工大材料力学上机

材料力学上机大作业院系:机电工程学院班级: 1208107 作者:吕肃学号: 1120810728 指导教师:张桂莲设计时间: 2014.6.12一、问题的提出:计算出6种梁的剪力,弯矩,挠度及角度,给出剪力图、弯矩图,挠曲线,角度曲线。
二、数学模型及算法算法实现:剪力,弯矩运用叠加法,挠度,角度运用积分法计算。
三、程序说明鉴于GUI界面复杂,回调函数众多,故只给出主回调函数,及对应的三个子函数。
需要输入分段矩阵x及载荷矩阵ZH。
输入分段矩阵为行矩阵,每个矩阵中的值对应载荷及支点位置或固定端,按从小到大顺序输入,从0开始。
载荷矩阵为多行矩阵,每行形式如:a b c d。
a对应载荷类型,1为力偶,2为集中力,3位分布力。
b对应载荷大小,单位为k。
c对应载荷起点位置,d对于载荷终点位置。
还可以选择不同截面类型,得到不同的E。
四、主回调程序global x ZH E I %定义所有的全局变量L1=get(handles.edit17,'string');L1=str2num(L1); %将文本格式转换到数值L2=get(handles.edit16,'string');L2=str2num(L2); %将文本格式转换到数值A=get(handles.edit18,'string');A=str2num(A); %将文本格式转换到数值B=get(handles.edit19,'string');B=str2num(B); %将文本格式转换到数值valu=get(handles.popupmenu2,'Value');value=get(handles.popupmenu3,'Value');switch valuecase 1I=pi*A^4/64;case 2I=pi*(A^4-B^4)/64;case 3I=A^3*B/12;case 4I=2450000;case 5I=23700000;case 6I=25000000;endE=get(handles.edit4,'string');E=str2num(E); %将文本格式转换到数值E=E*10^9;I=I/10^12;z=E*I;x=get(handles.edit1,'string');x=str2num(x); %将文本格式转换到数值ZH=get(handles.edit2,'string');ZH=str2num(ZH);switch valucase 1 %简支梁[n,m]=size(x);[a,b]=size(ZH);L=x(m);x1=[];for i=1:m-1x1=[x1,linspace(x(i),x(i+1),30*(x(i+1)-x(i)))]; endLO=zeros(size(x1));JL=zeros(size(x1));[PN,t]=size(ZH);[t,n]=size(x1);for i=1:PNswitch ZH(i,1) %不同类型的作用对梁的贡献case 1 %作用为弯矩M=ZH(i,2)*10^3;a=ZH(i,3);d=-M/L;JL=JL+d;LO=LO+d*x1;if a==0LO=LO+M;endif a>0&a<LLO=QLO(n,x1,a,M,LO);endcase 2 %作用为剪力P=ZH(i,2)*10^3;b=ZH(i,3);RA=(L-b)*P/L;if b>0&b<LJL(1:n)=JL+RA;LO=LO+RA*x1;[JL,LO]=QMP(n,x1,b,P,JL,LO);endcase 3 %作用为均布载荷q=ZH(i,2)*10^3;c=ZH(i,3);d=ZH(i,4);RA=(L-0.5*(c+d))*q*(d-c)/L;JL=JL+RA;LO=LO+RA*x1;[JL,LO]=QMQ(n,x1,c,d,q,JL,LO);endenddx=1/10;h=cumtrapz(LO)*dx/z;y=cumtrapz(h)*dx;D=-y(1);C=(-D-y(n))/L;h=cumtrapz(LO)*dx/z;h=h+C;y=cumtrapz(h)*dx;y=y+D;case 2 %左端固定悬臂梁[n,m]=size(x);L=x(m);x1=[];for i=1:m-1x1=[x1,linspace(x(i),x(i+1),30*(x(i+1)-x(i)))]; endLO=zeros(size(x1));JL=zeros(size(x1));[PN,t]=size(ZH);[t,n]=size(x1);for i=1:PNswitch ZH(i,1) %不同类型的作用对梁的贡献case 1 %作用为弯矩M=ZH(i,2)*10^3;a=ZH(i,3);if a>0&a<LLO=LO-M;LO=QLO(n,x1,a,M,LO);endif a==LLO=LO-M;endcase 2 %作用为剪力P=ZH(i,2)*10^3;b=ZH(i,3);RA=P;MA=-P*b;JL=JL+RA;LO=LO+RA*x1+MA;if b>0&b<L[JL,LO]=QMP(n,x1,b,P,JL,LO);endcase 3 %作用为均布载荷q=ZH(i,2)*10^3;c=ZH(i,3);d=ZH(i,4);RA=Q*(d-c);MA=-0.5*Q*(d-c)*(d+c);JL=JL+RA;LO=LO+RA*x1+MA;[JL,LO]=QMQ(n,x1,c,d,q,JL,LO);endendh=cumtrapz(LO)/z;y=cumtrapz(h);case 3 %右端固定悬臂梁[n,m]=size(x);L=x(m);x1=[];for i=1:m-1x1=[x1,linspace(x(i),x(i+1),30*(x(i+1)-x(i)))]; endLO=zeros(size(x1));JL=zeros(size(x1));[PN,t]=size(ZH);[t,n]=size(x1);for i=1:PNswitch ZH(i,1) %不同类型的作用对梁的贡献case 1 %作用为弯矩M=ZH(i,2)*10^3;a=ZH(i,3);if a==0LO=LO+M;endif a>0&a<LLO=QLO(n,x1,a,M,LO);endcase 2 %作用为剪力P=ZH(i,2)*10^3;b=ZH(i,3);if b==0JL=JL-P;LO=LO-P*x1;endif b>0&b<L[JL,LO]=QMP(n,x1,b,P,JL,LO);endcase 3 %作用为均布载荷q=ZH(i,2)*10^3;c=ZH(i,3);d=ZH(i,4);[JL,LO]=QMQ(n,x1,c,d,q,JL,LO);endenddx=1/10;h=cumtrapz(LO)*dx/z;y=cumtrapz(h)*dx;C=-h(n);D=-y(n)-C*L;h=cumtrapz(LO)*dx/z;h=h+C;y=cumtrapz(h)*dx;y=y+D;case 4 %左端外伸梁[n,m]=size(x);L=x(m);x1=[];for i=1:m-1x1=[x1,linspace(x(i),x(i+1),30*(x(i+1)-x(i)))]; endLO=zeros(size(x1));JL=zeros(size(x1));[PN,t]=size(ZH);[t,n]=size(x1);for i=1:PNswitch ZH(i,1) %不同类型的作用对梁的贡献case 1 %作用为弯矩M=ZH(i,2)*10^3;a=ZH(i,3);RA=-M/(L-L1);[JL,LO]=QMP(n,x1,L1,-RA,JL,LO);if a>0&a<LLO=QLO(n,x1,a,M,LO);endif a==0LO=LO+M;endcase 2 %作用为剪力P=ZH(i,2)*10^3;b=ZH(i,3);RA=P*(L-b)/(L-L1);[JL,LO]=QMP(n,x1,L1,-RA,JL,LO);if b>0&b<L[JL,LO]=QMP(n,x1,b,P,JL,LO);endif b==0JL=JL-P;LO=LO-P*x1;endcase 3 %作用为均布载荷q=ZH(i,2)*10^3;c=ZH(i,3);d=ZH(i,4);b=(c+d)*0.5;P=(d-c)*q;RA=P*(L-b)/(L-L1);[JL,LO]=QMP(n,x1,L1,-RA,JL,LO); [JL,LO]=QMQ(n,x1,c,d,q,JL,LO);endendfor i=1:nif x1(i)==L1t=i;endenddx=1/10;h=cumtrapz(LO)*dx/z;y=cumtrapz(h)*dx;C=(y(n)-y(t))/(t*dx-L);D=-y(n)-L*C;h=cumtrapz(LO)*dx/z;h=h+C;y=cumtrapz(h)*dx;y=y+D;case 5 %右端外伸梁[n,m]=size(x);L=x(m);x1=[];for i=1:m-1x1=[x1,linspace(x(i),x(i+1),30*(x(i+1)-x(i)))]; endLO=zeros(size(x1));JL=zeros(size(x1));[PN,t]=size(ZH);[t,n]=size(x1);for i=1:PNswitch ZH(i,1) %不同类型的作用对梁的贡献case 1 %作用为弯矩M=ZH(i,2)*10^3;a=ZH(i,3);RA=-M/L1;RB=-RA;JL=JL+RA;LO=LO+x1*RA;[JL,LO]=QMP(n,x1,L1,-RB,JL,LO);if a>0&a<LLO=QLO(n,x1,a,M,LO);endif a==0LO=LO+M;endcase 2 %作用为剪力P=ZH(i,2)*10^3;b=ZH(i,3);RA=P*(L1-b)/L1;RB=P*b/L1;JL=JL+RA;LO=LO+RA*x1;[JL,LO]=QMP(n,x1,L1,-RB,JL,LO);if b>0&b<L[JL,LO]=QMP(n,x1,b,P,JL,LO);endif b==0JL=JL-P;LO=LO-P*x1;endcase 3 %作用为均布载荷q=ZH(i,2)*10^3;c=ZH(i,3);d=ZH(i,4);b=(c+d)*0.5;P=(d-c)*q;RA=P*(L1-b)/L1;RB=P*b/L1;JL=JL+RA;LO=LO+RA*x1;[JL,LO]=QMP(n,x1,L1,-RB,JL,LO);[JL,LO]=QMQ(n,x1,c,d,q,JL,LO);endendfor i=1:nif x1(i)==L1t=i;endenddx=1/10;h=cumtrapz(LO)*dx/z;y=cumtrapz(h)*dx;D=-y(1);C=(-D-y(t))/(t*dx);h=cumtrapz(LO)*dx/z;h=h+C;y=cumtrapz(h)*dx;y=y+D;case 6 %两端外伸梁[n,m]=size(x);L=x(m);x1=[];for i=1:m-1x1=[x1,linspace(x(i),x(i+1),30*(x(i+1)-x(i)))]; endLO=zeros(size(x1));JL=zeros(size(x1));[PN,t]=size(ZH);[t,n]=size(x1);for i=1:PNswitch ZH(i,1) %不同类型的作用对梁的贡献case 1 %作用为弯矩M=ZH(i,2)*10^3;a=ZH(i,3);RA=-M/(L2-L1);RB=-RA;[JL,LO]=QMP(n,x1,L1,-RA,JL,LO);[JL,LO]=QMP(n,x1,L2,-RB,JL,LO);if a>0&a<LLO=QLO(n,x1,a,M,LO);endif a==0LO=LO+M;endcase 2 %作用为剪力P=ZH(i,2)*10^3;b=ZH(i,3);LL=L2-L1;bb=b-L1;RA=P*(LL-bb)/LL;RB=P*b/LL;[JL,LO]=QMP(n,x1,L1,-RA,JL,LO); [JL,LO]=QMP(n,x1,L2,-RB,JL,LO);if b>0&b<L[JL,LO]=QMP(n,x1,b,P,JL,LO);endif b==0JL=JL-P;LO=LO-P*x1;endcase 3 %作用为均布载荷q=ZH(i,2)*10^3;c=ZH(i,3);d=ZH(i,4);b=(c+d)*0.5;P=(d-c)*q;LL=L2-L1;bb=b-L1;RA=P*(LL-bb)/LL;RB=P*bb/LL;[JL,LO]=QMP(n,x1,L1,-RA,JL,LO); [JL,LO]=QMP(n,x1,L2,-RB,JL,LO); [JL,LO]=QMQ(n,x1,c,d,q,JL,LO);endendfor i=1:nif x1(i)==L1t=i;endendfor i=1:nif x1(i)==L2r=i;endenddx=1/10;h=cumtrapz(LO)*dx/z;y=cumtrapz(h)*dx;C=(y(r)-y(t))/(t*dx-r*dx);D=-y(t)-C*t*dx;h=cumtrapz(LO)*dx/z;h=h+C;y=cumtrapz(h)*dx;y=y+D;end[Qmax,i]=max(JL); %寻找最大剪力[Qmin,j]=min(JL); %寻找最小剪力if abs(max(JL))>=abs(min(JL))set(handles.text7,'string',Qmax); set(handles.text8,'string',x1(i)); elseset(handles.text7,'string',Qmin); set(handles.text8,'string',x1(j)); end[LOax,i]=max(LO); %寻找最大弯矩[LOin,j]=min(LO); %寻找最小弯矩if abs(max(LO))>=abs(min(LO))set(handles.text9,'string',LOax); set(handles.text10,'string',x1(i)); elseset(handles.text9,'string',LOin); set(handles.text10,'string',x1(j)); end[hmax,i]=max(h); %寻找最大弯矩[hmin,j]=min(h); %寻找最小弯矩if abs(max(h))>=abs(min(h))set(handles.text24,'string',hmax); set(handles.text25,'string',x1(i)); elseset(handles.text24,'string',hmin); set(handles.text25,'string',x1(j)); end[ymax,i]=max(y); %寻找最大弯矩[ymin,j]=min(y); %寻找最小弯矩if abs(max(y))>=abs(min(y))set(handles.text26,'string',ymax);set(handles.text27,'string',x1(i));elseset(handles.text26,'string',ymin);set(handles.text27,'string',x1(j));endaxes(handles.axes1); %绘制剪力图并显示在axe.1中stem(x1,JL);grid;title('剪力图')axes(handles.axes2); %绘制弯矩图并显示在axe.2中stem(x1,LO);grid;title('弯矩图');axes(handles.axes3);stem(x1,h);grid;title('转角图');axes(handles.axes4);stem(x1,y,'b');grid;title('挠度图');3个子函数%集中力偶对弯矩贡献的子程序:function LO=QLO(n,x1,a,M,LO)for j=1:nif x1(j)==an1=j;endendLO(n1:n)=LO(n1:n)+M;%集中力对剪力和弯矩贡献的子程序:function [JL,LO]=QMP(n,x1,b,P,JL,LO)for j=1:nif x1(j)==b;n1=j;endendJL(n1:n)=JL(n1:n)-P;LO(n1:n)=LO(n1:n)-P*(x1(n1:n)-b);%分布力对剪力和弯矩贡献的子程序:function [JL,LO]=QMQ(n,x1,c,d,q,JL,LO)for j=1:nif x1(j)>cJL(j)=JL(j)-q*(x1(j)-c);LO(j)=LO(j)-0.5*q*(x1(j)-c)^2;endif x1(j)>dJL(j)=JL(j)+q*(x1(j)-d);LO(j)=LO(j)+0.5*q*(x1(j)-d)^2;endend五、应用举例:O简支梁,长1.6m,在0.7m及1.3m处分别有力偶30KN m及集中力46KN,截面为圆形,直径200mm,弹性模量210Gp运行得出结果如下:可得出最大剪力-46000N在0m处,最大弯矩-89800N m在0m处。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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材料力学上机作业课程名称:材料力学设计题目:绘制梁的剪力弯矩图院系:能源科学与工程学院班级:0902101分析者:¥¥¥学号:指导教师:张桂莲设计时间:哈尔滨工业大学材料力学上机课设计说明书一,设计题目题目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); (第①、②、③两种情况合成)将上述公式编入程序即可计算出在固定端悬臂梁情况下任意位置处的剪力和弯矩,采用散点法作出梁的剪力弯矩图。
利用max函数筛选出最大值及该最大值所对应的x,即可输出最大值和最大值位置。
(2)右固定端悬臂梁:在任意位置x处,取x以左部分为研究对象分析方法与(1)相同,但注意此时规定的集中力偶正方向与(1)相反(程序中已注明),仍采用散点法和max函数即可求得剪力弯矩图以及剪力弯矩的最大值与其出现位置。
(设梁的总长度为l,均布载荷起始位置为a,终止位置为b,集中力作用位置为c,大小为P,集中力偶作用位置为d,大小为m。
首先对于图示情况求支反力:∑M A=0,q(b-a)*(a+2a-b)+P*c-m+F B*l=0 ∑M B=0,q(b-a)*(i-a-2a-b)+P*(l-c)+m-FA*l=0解得:F A=[q(b-a)(l-2a-b)+ P*(l-c)+m]/l FB=2l22?-²(mPcabq-+由于F B的表达是相对于F A较简单一些,所以以A点为原点建立坐标系,并取出任意位置x以右部分为研究对象,分类如下:①若c<x,a<b<x,d>x,则Fs y= F B,M(x)=m+ F B(l-x);②若c>x,a<b<x,d<x,则Fs y= F B-P,M(x)= F B(l-x)+Px-Pc;③若c<x,a<x<b,d<x,则Fs y= F B -q(b-x),M(x)= F B(l-x)-2q(b-x)²;④若c<x,x<a<b,d>x,则Fs y=F B-q(b-a),M(x)=F B(l-x)-q(b-a)*(2ba+- x);⑤若c>x,a<b<x,d>x,则Fs y= F B -P,M(x)= F B(l-x)+Px-Pc+m;⑥若c<x,a<x<b,d>x,则Fs y= F B-q(b-x),M(x)= F B(l-x)+m-2q(b-x)²;⑦若c<x,x<a<b,d>x,则Fs y=F B-q(b-a),M(x)=F B(l-x)+m-q(b-a)*(2ba+-x);⑧若c>x,a<x<b,d<x,则Fs y=F B-P-q(b-x),M(x)=F B(l-x)+Px-Pc-2q(b-x)²;⑨若c>x,x<a<b,d<x,则Fs y=F B-P-q(b-a),M(x)=F B(l-x)+Px-Pc-q(b-a) *(2ba+-x);⑩若c>x,x<a<b,d>x,则Fs y=-F B+P-q(b-a), M(x)=F B(l-x)+m+Px-Pc-q(b-a) *(2ba+-x);⑪c>x,a<x<b,d>x, 则Fs y=F B-P-q(b-x), M(x)=F B(l-x)+m+Px-Pc-q(b-a) *(2b a +-x); 将上述公式编入程序即可计算出在简支梁情况下任意位置处的剪力和弯矩,采用散点法作出梁的剪力弯矩图。
利用max 函数筛选出最大值及该最大值所对应的x ,即可输出最大值和最大值位置。
(4)右外伸梁程序编写:设梁的总长度为l,可动铰支座位置在s2处,均布载荷起始位置为a ,终止位置为b ,集中力作用位置为c ,大小为P ,集中力偶作用位置为d ,大小为m 。
以梁最左端为原点、向右为正方向作x 轴,设右边可动铰支座距远点距离为s,则可求得支反力:∑M A =0, F B *s+m-q*(b-a)*(a+2a -b )-Pc=0 ∴F B =2s 2m -a?-²(Pc 2b q + F A =s m a b s a b q c s 22)2)(()(P 2+---+- 1)对集中力P 作用情况进行分类讨论当只有集中力作用时,∑M A =0,F B*s-Pc=0, ∴F B =s Pc F A =sc)-P(s ①c>s ,对任意位置x 处有若0≤x<s ,则Fs y '=-F A ,M(x)'=F A *x ;若s ≤x ≤c ,则Fs y '=-P ,M(x)'=P x-P c ;若c ≤x ≤l ,则Fs y '=0,M(x)'=0;②c ≤s ,对任意位置x 处有若0≤x<s ,则Fs y '=-F A ,M(x)'=F A *x ;若c ≤x ≤s ,则Fs y '=P-F A ,M(x)'=F A *x-P(x-c);若s<x ≤l ,则Fs y '=0,M(x)'=0;2)对集中力偶m 作用情况进行分类讨论求支反力:F A +F B =0, ∑M A =0,F B*s+m=0, ∴F B =-s m F A =s m ①d>s ,对任意位置x 处有若0≤x ≤s ,则Fs y ''=-s m , M(x)''=sm x ; 若s <x ≤d ,则Fs y ''=0, M(x)''=s m x-s m (x-s)=m ; 若d<x ≤l ,则Fs y ''=0, M(x)''=0;②d ≤s ,对任意位置x 处有若0≤x ≤d ,则Fs y ''=-s m , M(x)''=sm x ; 若d <x ≤s ,则Fs y ''=-s m , M(x)''=s m x-m ; 若s<x ≤l ,则Fs y ''=0, M(x)''=0;3)对均布载荷q 作用情况进行分类讨论当只有均布载荷作用时,求支反力:F A +F B =q(b-a), ∑M A =0,F B*s-q(b-a)(a+2a -b )=0, ∴F B =-2s ))(a (q a b b -+ F A =2sb)-a)(a -q(b ① 当0≤a <b ≤s 时,对任意位置x 处有若0≤x ≤a ,则Fs y '''=-F A , M(x)'''=F A*x ;若a <x <b ,则Fs y '''=-F A +q(x-a), M(x)'''=F A*x-21q (x-a)²; 若b ≤x ≤s ,则Fs y '''=-F A +q(b-a), M(x)'''=F A*x-q(b-a)(x-2b a +); 若s <x ≤l ,则Fs y '''=0, M(x)'''=0;② 当0≤a <s ≤b 时,对任意位置x 处有若0≤x ≤a ,则Fs y '''=-F A , M(x)'''=F A*x ;若a <x <s ,则Fs y '''=-F A +q(x-a), M(x)'''=F A*x-21q (x-a)²; 若s ≤x ≤b ,则Fs y '''=-q(b-x), M(x)'''=21q(b-x)²;若b <x ≤l ,则Fs y '''=0, M(x)'''=0;③ 当0≤s ≤a<b 时,对任意位置x 处有若0≤x ≤s ,则Fs y '''=-F A , M(x)'''=F A*x ;若s <x <a ,则Fs y '''=-q(b-a), M(x)'''=q(b-a)(x-2b a ); 若a ≤x ≤b ,则Fs y '''=-q(b-x), M(x)'''=-21q(b-x)²;若b <x ≤l ,则Fs y '''=0, M(x)'''=0;最后采用叠加法Fs y =Fs y '+Fs y ''+Fs y ''',M(x)=M(x)'M(x)''+M(x)'''(5)左外伸梁程序编写:分析方法与(4)相同,但注意此时规定的集中力偶正方向与(4)相反(程序中已注明),仍采用散点法和max 函数即可求得剪力弯矩图以及剪力弯矩的最大值与其出现位置。