clc,clear tic nodes=zeros(3,49); %创建节点 ele=zeros(120,5);%创建单元 l1=13883.89;l2=24085.55;l3=31775.91; h1=3000;h2=5850.13;h3=7000;h4=0; th=0:1/6:(11/6); th=th.*pi; nodes(:,1)=[0;0;h3]; Constr=zeros(12,4); %节点坐标 for i=1:length(th) nodes(:,i+1)=[l1*cos(th(i));l1*sin(th(i));h2]; nodes(:,12+2*i:13+2*i)=[l2*cos(th(i)),l2*cos(th(i)+pi/12);... l2*sin(th(i)),l2*sin(th(i)+pi/12);h1,h1]; nodes(:,37+i)=[l3*cos(th(i));l3*sin(th(i));h4]; Constr(i,1)=37+i;%d定义约束 end %单元信息: 单元编号,单元节点1,单元节点2 for i=1:length(th) ele(i,2:3)=[1,i+1]; %顺时针对单元编号 if i==1 ele(10+3*i:12+3*i,2:3)=[i+1,37;i+1,12+2*i;i+1,13+2*i]; %13-48 ele(46+3*i:48+3*i,2:3)=[i+37,37;i+37,12+2*i;i+37,13+2*i]; %49-84 ele(84+i,2:3)=[13,i+1]; %85-96 ele(95+2*i:96+2*i,2:3)=[37,14;12+2*i,13+2*i]; %97-120 else ele(10+3*i:12+3*i,2:3)=[i+1,11+2*i;i+1,12+2*i;i+1,13+2*i]; ele(46+3*i:48+3*i,2:3)=[i+37,11+2*i;i+37,12+2*i;i+37,13+2*i]; ele(84+i,2:3)=[i,i+1]; ele(95+2*i:96+2*i,2:3)=[11+2*i,12+2*i;12+2*i,13+2*i]; end end for i=1:length(ele(:,1)) ele(i,1)=i; end A=3;E=2.1E005; %各单元截面面积和材料弹性模量 ele(:,4:5)=ones(120,2)*[A 0;0 E]; %单元信息: 截面积,弹性模量 Load=[1 0 0 -200]; %载荷信息:单元编号,x方向力,y方向力,z方向力 x=nodes(1,:); y=nodes(2,:); z=nodes(3,:); [U, Strain, Stress, AxialForce]=Truss3DStaticsFEA(x,y,z,ele,Load,Constr,20) toc