基本信息
源码名称:结构动力学matlab代码
源码大小:4.70KB
文件格式:.m
开发语言:MATLAB
更新时间:2021-04-25
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 12 元×
微信扫码支付:12 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
%The author: wangjinghui %Date:2021.04 clear all; clc; %Beam_InputData544; Opt_beam = 1; Opt_mass = 2; Opt_section = 1; Opt_graphics1 = 1; Opt_graphics2 = 2; Prob_title= 'static analysisi of a 3-D frame structure'; No_el=12; No_nel=2; No_dof=6; No_node=8; Sys_dof=No_node*No_dof; prop(1)=2.1e11; prop(2)=0.3; prop(3)=7860; prop(4)=0.01; prop(5)=0.01; prop(6)=0.01*0.01; prop(7)=0.01*0.01^3/12; prop(8)=0.01*0.01^3/12; prop(9)=1; prop(10)=1; Opt_section=1; gcoord=[1 0,0,0; 2 4,0,0; 3 4,0,0; 4 4,0,0; 5 4,0,0; 6 4,0,0; 7 4,0,0; 8 4,0,0]; gcoord=[gcoord(:,2:4)]; al=0; node=[1 1 , 5; 2 2 , 6; 3 3 , 7; 4 4 , 8; 5 5 , 6; 6 6 , 7; 7 7 , 8; 8 8 , 5; 9 1 , 6; 10 2 , 7; 11 3 , 8; 12 4 , 5]; nodes=[nodes(:,2:3)]; P=[-100000,7,2]; ConNode =[1 , 1 , 1 , 1 , 1 , 1 ; 2 , 1 , 1 , 1 , 1 , 1 ; 3 , 1 , 1 , 1 , 1 , 1 ; 4 , 1 , 1 , 1 , 1 , 1 ]; ConVal =[1 , 0 , 0 , 0 , 0 , 0 ; 2 , 0 , 0 , 0 , 0 , 0 ; 3 , 0 , 0 , 0 , 0 , 0 ; 4 , 0 , 0 , 0 , 0 , 0 ]; k = zeros(No_nel*No_dof,No_nel*No_dof); m = zeros(No_nel*No_dof,No_nel*No_dof); kk = zeros(Sys_dof,Sys_dof); mm = zeros(Sys_dof,Sys_dof); ff = zeros(Sys_dof,1); bcdof = zeros(Sys_dof,1); index = zeros(No_nel*No_dof,1); [n1,n2]=size(ConNode); for ni = 1:n1 ki=ConNode(ni,1); bcdof((ki-1)*No_dof:ki*No_dof)=ConNode(ni,2:No_dof 1); bcval((ki-1)*No_dof:ki*No_dof)=ConVal(ni,2:No_dof 1); end [n1,n2]=size(P); for ni=i:n1 ff(No_dof*(P(ni,2)-1) P(ni,3))=P(ni,1); end for iel=1:No_el nd(1)=nodes(iel,1); nd(2)=nodes(iel,2); x(1)=gcoord(nd(1),1); y(1)=gcoord(nd(1),2); z(1)=gcoord(nd(1),3); x(2)=gcoord(nd(2),1); y(2)=gcoord(nd(2),2); z(2)=gcoord(nd(2),3); leng=sqrt((x(2)-x(1))^2 (y(2)-y(1))^2 (z(2)-z(1))^2); xi(1)=(x(2)-x(1))/leng; xi(2)=(y(2)-y(1))/leng; xi(3)=(z(2)-z(1))/leng; if Opt_beam==1 [k,m]=FrameElement31(prop,leng,xi,al,Opt_section,Opt_mass); elseif Opt_beam==2 [k,m]=FrameElement32(prop,leng,xi,al,Opt_section,Opt_mass); end index=femEldof(nd,No_nel,No_dof); kk=femAssemble(kk,k,index); mm=femAssemble(mm,m,index); end [kk0 , mm0 , ff0 ,bcdof0 , bcval0 , sdof0]=kkCheck1(kk , mm , ff , bcdof , bcval); [kk1 , mm1 , ff1 , sdof1]=femApplybc1(kk0 , mm0 , ff0 , bcdof0 , bcval0); displmt = kk1\ff1; No_dof1 = No_dof/(Sys_dof/sdof1); for ii=1:No_node for ij=1:No_dof1 displmtnode(ii , ij)=displmt((ii-1)*No_dof1 ij,1); end end if Opt_graphics1==1 for iel=1:No_el nd(1)=nodes(iel,1); nd(2)=nodes(iel,2); x(1)=gcoord(nd(1),1); y(1)=gcoord(nd(1),2); z(1)=gcoord(nd(1),3); x(2)=gcoord(nd(2),1); y(2)=gcoord(nd(2),2); z(2)=gcoord(nd(2),3); figure(1) plot3(x,y,z),xlabel('x'),ylabel('y'),zlabel('z'),hold on; end if Opt_graphics2~=1 title('nodal connectivity of elementd'); hold off; end end if Opt_graphics2==1 gcoordA= gcoord 10*displmtnode( : ,1:3); for iel=1:No_el nd(1)=nodes(iel,1); nd(2)=nodes(iel,2); x(1)=gcoordA(nd(1),1); y(1)=gcoordA(nd(1),2); z(1)=gcoordA(nd(1),3); x(2)=gcoordA(nd(2),1); y(2)=gcoordA(nd(2),2); z(2)=gcoordA(nd(2),3); figure(1) plot3(x,y,z,'r'), title('Deflection of the structure'), hold on; end hold off end disp('The calculation is use of') if Opt_beam==1 disp('Euler-Bernoulli beam element') elseif Opt_beam==2 diso('Timoshenko beam element') end disp(' ') disp(' numrical solution ') disp(' node x y z 牟x 牟y 牟z ') num = 1:1:No_node; displmts=[num' displmtnode]