材料力学上机大作业
题目名称:杆件在在拉伸与压缩变形下的强度及刚度计算
本程序应用matlab 软件编写,在matlab7.9上进行的编写与调试。计算的是轴向拉压的轴力,校核杆件的强度,计算变形。 应用matlab 主界面输入杆件的长度、截面参数、载荷的大小与位置以及材料的参数。进行计算。
主要的思想是采用微积分思想将杆件分成若干小份,对每份上的
载荷进行赋值,最后通过累加的方式画出轴力图。最后再校核强度以及计算变形。
由于程序设计缺陷,此程序不能计算分布载荷下的轴力。且所有的数组必须定义为一维数组。
原始代码
a=input('杆件各段长度 0,L1L2L3....') ;
b=input('各截面面积 A1A2A3....') ;
e=input('材料弹性模量') ;
c=input('许用正应力') ;
d=input('载荷所在位置') ;
f=input('载荷大小 含正负');
g=length(d) ;
y=zeros(g+1);
f=[f 0 0];
for i=1:g+1
sd=0;
for j=1:i
sd=sd+f(j) ;
end
y(i+1)=sd ;
end %求轴力
h=length(a) ;
k=length(b) ;
x=0:0.05:sum(a) ;
z=zeros(size(x));
for i=1:h-1
for j=floor(a(i)/0.05+1):floor(a(i+1)/0.05)
z(j)=b(i) ;
end
end
subplot(2,1,1);
plot(x,z) ;
title('结构构型图') ; %结构构型图
l=length(d) ;
m=0:0.05:sum(a) ;
n=zeros(size(m));
d=[d 0 0];
for i=2:l+1
for j=floor(d(i)/0.05)+1:floor(d(i+1)/0.05)
n(j)=y(i+1) ;
end
end
subplot(2,1,2)
plot(m,n) ;
title('轴力图') ; %轴力图 o=a(h)/0.05 ;
for i=1:o
if n(i)/z(i)
he=0 ;
else
he=1 ;
end
end
if he==0
disp(['安全']) ;
else
disp(['不安全']) ;
end %校核强度 p=input('求变形大小的区间') ; s=floor(p(1)) ;
t=floor(p(2)) ;
u=n(s)*a(h)/(e*z(s)) ;
for i=s:t
if n(i+1)==n(i)
u=u ;
else
u=u+n(i+1)*a(h)/(e*z(i+1)) ; end
end
disp(['变形量为',num2str(u)]);
材料力学上机大作业
题目名称:杆件在在拉伸与压缩变形下的强度及刚度计算
本程序应用matlab 软件编写,在matlab7.9上进行的编写与调试。计算的是轴向拉压的轴力,校核杆件的强度,计算变形。 应用matlab 主界面输入杆件的长度、截面参数、载荷的大小与位置以及材料的参数。进行计算。
主要的思想是采用微积分思想将杆件分成若干小份,对每份上的
载荷进行赋值,最后通过累加的方式画出轴力图。最后再校核强度以及计算变形。
由于程序设计缺陷,此程序不能计算分布载荷下的轴力。且所有的数组必须定义为一维数组。
原始代码
a=input('杆件各段长度 0,L1L2L3....') ;
b=input('各截面面积 A1A2A3....') ;
e=input('材料弹性模量') ;
c=input('许用正应力') ;
d=input('载荷所在位置') ;
f=input('载荷大小 含正负');
g=length(d) ;
y=zeros(g+1);
f=[f 0 0];
for i=1:g+1
sd=0;
for j=1:i
sd=sd+f(j) ;
end
y(i+1)=sd ;
end %求轴力
h=length(a) ;
k=length(b) ;
x=0:0.05:sum(a) ;
z=zeros(size(x));
for i=1:h-1
for j=floor(a(i)/0.05+1):floor(a(i+1)/0.05)
z(j)=b(i) ;
end
end
subplot(2,1,1);
plot(x,z) ;
title('结构构型图') ; %结构构型图
l=length(d) ;
m=0:0.05:sum(a) ;
n=zeros(size(m));
d=[d 0 0];
for i=2:l+1
for j=floor(d(i)/0.05)+1:floor(d(i+1)/0.05)
n(j)=y(i+1) ;
end
end
subplot(2,1,2)
plot(m,n) ;
title('轴力图') ; %轴力图 o=a(h)/0.05 ;
for i=1:o
if n(i)/z(i)
he=0 ;
else
he=1 ;
end
end
if he==0
disp(['安全']) ;
else
disp(['不安全']) ;
end %校核强度 p=input('求变形大小的区间') ; s=floor(p(1)) ;
t=floor(p(2)) ;
u=n(s)*a(h)/(e*z(s)) ;
for i=s:t
if n(i+1)==n(i)
u=u ;
else
u=u+n(i+1)*a(h)/(e*z(i+1)) ; end
end
disp(['变形量为',num2str(u)]);