FEM-Course-Matlab/1.matlab平面纯弯梁有限元编程/固支梁/beam_main_varying_thickness.m

57 lines
1.1 KiB
Mathematica
Raw Permalink Normal View History

2024-01-28 16:46:36 +00:00
clear all;close all;clc;
E=210e3;
% t=2;% I=1/12*100*t^3;
L=5;
ele_num=500/L;
%*****<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for i=1:ele_num
if i*5>=0 && i*5<200
t(i)=0.5+(i*5)*(3-0.5)/200;
elseif i*5>=200 && i*5<300
t(i)=3;
elseif i*5>=300 && i*5<=500
t(i)=3-(3-0.5)/200*(i*5-300);
end
I(i)=1/12*100*t(i)^3;
end
for i=1:ele_num
ke(:,:,i)=BeamElementStiffness(E,I(i),L); %*****<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
end
K=zeros((ele_num+1)*2);
for i=1:ele_num
% ke=BeamElementStiffness(E,I,L);
K=BeamAssemble(K,ke(:,:,i),i,i+1);
end
k=[K(3:(ele_num+1)*2-2,3:(ele_num+1)*2-2)];
f=zeros(2*(ele_num-1),1);
f(ele_num-1)=-400;
u=k\f;
U=zeros((ele_num+1)*2,1);
U(3:ele_num*2)=u;
for i=1:ele_num
Fe(i,:)=ke(:,:,i)*U((i-1)*2+1:(i-1)*2+4);
end
F=K*U;
figure;
x = [0 : L:500]';
M=Fe(:,2);
M(ele_num+1)=-Fe(end,4);
hold on;
title('Bending Moment Diagram');
plot(x,M);
y1 = zeros(1,ele_num+1);
plot(x,y1,'k')
xlabel('length(mm)')
ylabel('Moment(N.mm)')
title('moment diagram with varing thickness');
%plot disp
figure;
hold on;
title('Displacment Diagram');
for i=1:length(x)
disp_plot_vary(i)=U(2*(i-1)+1);
end
plot(x,disp_plot_vary);