手机版

哈工大材料力学上机

发布时间:2024-11-07   来源:未知    
字号:

材料力学上机大作业

院 系: 机电工程学院

班 级: 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 value

case 1

I=pi*A^4/64;

case 2

I=pi*(A^4-B^4)/64;

case 3

I=A^3*B/12;

case 4

I=2450000;

case 5

I=23700000;

case 6

I=25000000;

end

E=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 valu

case 1 %简支梁

[n,m]=size(x);

[a,b]=size(ZH);

L=x(m);

x1=[];

for i=1:m-1

x1=[x1,linspace(x(i),x(i+1),30*(x(i+1)-x(i)))];

end

LO=zeros(size(x1));

JL=zeros(size(x1));

[PN,t]=size(ZH);

[t,n]=size(x1);

for i=1:PN

switch 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==0

LO=LO+M;

end

if a>0&a<L

LO=QLO(n,x1,a,M,LO);

end

case 2 %作用为剪力

P=ZH(i,2)*10^3;

b=ZH(i,3);

RA=(L-b)*P/L;

if b>0&b<L

JL(1:n)=JL+RA;

LO=LO+RA*x1;

[JL,LO]=QMP(n,x1,b,P,JL,LO);

end

case 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);

end

end

dx=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-1

x1=[x1,linspace(x(i),x(i+1),30*(x(i+1)-x(i)))];

end

LO=zeros(size(x1));

JL=zeros(size(x1));

[PN,t]=size(ZH);

[t,n]=size(x1);

for i=1:PN

switch ZH(i,1) %不同类型的作用对梁的贡献

case 1 %作用为弯矩

M=ZH(i,2)*10^3;

a=ZH(i,3);

if a>0&a<L

LO=LO-M;

LO=QLO(n,x1,a,M,LO);

end

if a==L

LO=LO-M;

end

case 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);

end

case 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);

end

end

h=cumtrapz(LO)/z;

y=cumtrapz(h);

case 3 %右端固定悬臂梁

[n,m]=size(x);

L=x(m);

x1=[];

for i=1:m-1

x1=[x1,linspace(x(i),x(i+1),30*(x(i+1)-x(i)))];

end

LO=zeros(size(x1));

JL=zeros(size(x1));

[PN,t]=size(ZH);

[t,n]=size(x1);

for i=1:PN

switch ZH(i,1) %不同类型的作用对梁的贡献

case 1 %作用为弯矩

M=ZH(i,2)*10^3;

a=ZH(i,3);

if a==0

LO=LO+M;

end

if a>0&a<L

LO=QLO(n,x1,a,M,LO);

end

case 2 %作用为剪力

P=ZH(i,2)*10^3;

b=ZH(i,3);

if b==0

JL=JL-P;

LO=LO-P*x1;

end

if b>0&b<L

[JL,LO]=QMP(n,x1,b,P,JL,LO);

end

case 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);

end

end

dx=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-1

x1=[x1,linspace(x(i),x(i+1),30*(x(i+1)-x(i)))];

end

LO=zeros(size(x1));

JL=zeros(size(x1));

[PN,t]=size(ZH);

[t,n]=size(x1);

for i=1:PN

switch 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<L

LO=QLO(n,x1,a,M,LO);

end

if a==0

LO=LO+M;

end

case 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);

end

if b==0

JL=JL-P;

LO=LO-P*x1;

end

case 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);

end

end

for i=1:n

if x1(i)==L1

t=i;

end

end

dx=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-1

x1=[x1,linspace(x(i),x(i+1),30*(x(i+1)-x(i)))];

end

LO=zeros(size(x1));

JL=zeros(size(x1));

[PN,t]=size(ZH);

[t,n]=size(x1);

for i=1:PN

switch 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<L

LO=QLO(n,x1,a,M,LO);

end

if a==0

LO=LO+M;

end

case 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);

end

if b==0

JL=JL-P;

LO=LO-P*x1;

end

case 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);

end

end

for i=1:n

if x1(i)==L1

t=i;

end

end

dx=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-1

x1=[x1,linspace(x(i),x(i+1),30*(x(i+1)-x(i)))];

end

LO=zeros(size(x1));

JL=zeros(size(x1));

[PN,t]=size(ZH);

[t,n]=size(x1);

for i=1:PN

switch 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<L

LO=QLO(n,x1,a,M,LO);

end

if a==0

LO=LO+M;

end

case 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);

end

if b==0

JL=JL-P;

LO=LO-P*x1;

end

case 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);

end

end

for i=1:n

if x1(i)==L1

t=i;

end

end

for i=1:n

if x1(i)==L2

r=i;

end

end

dx=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));

else

set(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));

else

set(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));

else

set(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));

else

set(handles.text26,'string',ymin);

set(handles.text27,'string',x1(j));

end

axes(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:n

if x1(j)==a

n1=j;

end

end

LO(n1:n)=LO(n1:n)+M;

%集中力对剪力和弯矩贡献的子程序:

function [JL,LO]=QMP(n,x1,b,P,JL,LO)

for j=1:n

if x1(j)==b;

n1=j;

end

end

JL(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:n

if x1(j)>c

JL(j)=JL(j)-q*(x1(j)-c);

LO(j)=LO(j)-0.5*q*(x1(j)-c)^2;

end

if x1(j)>d

JL(j)=JL(j)+q*(x1(j)-d);

LO(j)=LO(j)+0.5*q*(x1(j)-d)^2;

end

end

五、应用举例:

O简支梁,长1.6m,在0.7m及1.3m处分别有力偶30KN m及集中力46KN,截面为圆形,直径200mm,弹性模量210Gp

运行得出结果如下:

可得出最大剪力-46000N在0m处,最大弯矩-89800N m在0m处。最大角度-0.0035在1.3m处,最大挠度-0.0041在1.6m处,曲线如图

O左悬臂梁,长2m,在2m及1m处分别有力偶3KN m及分布力2KN/m共0.5m,截面为圆环,大圆直径100mm小圆直径40,弹性模量200Gp

可得出最大剪力1000N在0m处,最大弯矩-4250N m在0处。最大角度-0.0115在2m处,最大挠度-0.0121在2m处。曲线如图

O两端外伸梁长5m支点位置分别在1m及4m处,在0处有集中力2.1KN在1.2m处有力偶3KN m在3m 处有分布力1.6kN/m共0.5m,在5m处有集中力2kN。截面为矩形,长80mm,宽60mm弹性模量200Gp

可得出最大剪力3366.67N在4m处,最大弯矩-2355.33N m在3m处。最大角度0.0083在0m处,最大挠度-0.0078在0m处。曲线如图

六、实验结论

基本实现了预期目标,熟悉掌握了MatlabGUI基本操作,即材料力学相关知识,较圆满完成了任务。期间失败了很多次,特别是计算挠度与角度的部分,但通过不断尝试,与查找

相关资料,各个击破了,花费了很多的时间和精力,总算没有白费。这次材料力学上机真的获益匪浅,要想真的做成点什么没有百折不挠的精神和浓厚的兴趣是不可能的,但是坚持一定会有回报,付出了一定有收获,你所做的一切,一定不会被辜负的。

哈工大材料力学上机.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)