材料力学上机大作业
院 系: 机电工程学院
班 级: 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 %作用为 …… 此处隐藏:6337字,全部文档内容请下载后查看。喜欢就下载吧 ……