FEM-Course-Matlab/2.铁木辛柯梁的matlab有限元编程/cantilever.m

78 lines
1.8 KiB
Mathematica
Raw Normal View History

2024-01-28 16:46:36 +00:00
clear all;close all;clc;
%SI:m,kN,kPa
h=0.007;b=0.3;
E=3e7;A=b*h;I=b*h^3/12;v=0.2;
G=E*0.5/(1+v);
EI=E*I;
GA=G*A;
L=5;%<EFBFBD>˼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Ele_L=0.01;%<EFBFBD><EFBFBD>Ԫ<EFBFBD>ߴ<EFBFBD>
ele_num=L/Ele_L;%<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
q=1;%1kN/m
W=q*L^4/(8*EI)%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD>Ӷȼ<EFBFBD><EFBFBD>ʽ
linetype={'-','--','-.'}
figure;
hold on;
for way=1:3
for i=1:ele_num
if way==1
ke(:,:,i)=BeamElementStiffness(EI,Ele_L);%ŷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ
elseif way==2
ke(:,:,i)=TimoshenkoStiffness(EI,GA,Ele_L);%<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
elseif way==3
ke(:,:,i)=TimoshenkoReduceStiffness(EI,GA,Ele_L);%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ
end
end
K=zeros((ele_num+1)*2);
for i=1:ele_num
K=BeamAssemble(K,ke(:,:,i),i,i+1); %ȫ<EFBFBD>ָնȾ<EFBFBD><EFBFBD><EFBFBD>
end
k=[K(3:(ele_num+1)*2,3:(ele_num+1)*2)]; %***ȥ<EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ĸնȾ<EFBFBD><EFBFBD><EFBFBD>
f=zeros(2*(ele_num),1); %<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>f
for i=1:ele_num
f(2*(i-1)+1)=q*Ele_L;%****<EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>СΪ1*<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD>Ⱦ<EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>ڵ<EFBFBD><EFBFBD>ϵĽڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>
end
u=k\f;
U=zeros((ele_num+1)*2,1);%<EFBFBD>ڵ<EFBFBD>λ<EFBFBD><EFBFBD>
U(3:(ele_num+1)*2)=u;%
for i=1:ele_num
Fe(i,:)=ke(:,:,i)*U((i-1)*2+1:(i-1)*2+4); %<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>=<EFBFBD><EFBFBD>Ԫ<EFBFBD>նȾ<EFBFBD><EFBFBD><EFBFBD>*<EFBFBD>ڵ<EFBFBD>λ<EFBFBD><EFBFBD>
end
% F=K*U; %ȫ<EFBFBD>ָնȾ<EFBFBD><EFBFBD><EFBFBD>*<EFBFBD>ڵ<EFBFBD>λ<EFBFBD><EFBFBD>=<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>
x = [0 : Ele_L:L]';
% figure;
% 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')
% ylabel('Moment')
% title('moment diagram with constant thickness');
title('Displacment Diagram');
for i=1:length(x)
disp_plot_constant(i)=U(2*(i-1)+1);
end
aa=plot(x,disp_plot_constant,linetype{way},'linewidth',2);
aa.Color(4)=0.5
% figure;
% hold on;
% title('Rotation Diagram');
% for i=1:length(x)
% rot_plot_constant(i)=U(2*(i));
% end
% plot(x,rot_plot_constant);
% save data disp_plot_constant
end
legend('ŷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<EFBFBD><EFBFBD>ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<EFBFBD><EFBFBD>ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');