clc
clear
E=2e5;
v=0.3; %材料属性
%%定义各个矩阵
f=zeros(211,2); %框架节点整合成二维矩阵
p=zeros(21,10,2); %框架节点
ell=zeros(21,2); %椭圆节点
dot=zeros(201,2); %整合后整体节点坐标
units=zeros(344,3); %各单元节点编号
length=zeros(344,3,3); %单元的a,b,c
A=zeros(344,1); %各单元的面积
krs=zeros(2,2);
k_units=zeros(344,6,6); %单元刚度矩阵
k_whole=zeros(402,402); %总体刚度矩阵
k=0;
%%%%%%%%%%%%中间内容已经正确,不需大修改!!!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%求解框架点
for i=1:1:21
for j=1:1:10
if i<=11
if i==1
p(1,j,1)=0;
p(1,j,2)=0.5*j;
else
p(i,j,1)=(i-1)*0.5/5*(j*0.5);
p(i,j,2)=j*0.5;
end
else
if i==21
p(21,j,1)=0.5*j;
p(21,j,2)=0;
else
p(i,j,1)=0.5*j;
p(i,j,2)=(21-i)*0.5/5*0.5*j;
end
end
end
end
%%框架矩阵整合
for i=1:1:21
for j=1:1:10
f((i-1)*10+j+1,1)=p(i,j,1);
f((i-1)*10+j+1,2)=p(i,j,2);
end
end
f(1,1)=0;
f(1,2)=0;
%% 椭圆点求解
for i=1:1:11
ell(i+1,1)=10000000000000000./(44444444444444444444444444444445.+1000000000000000000000000000000.*i^2)^(1/2);
ell(i+1,2)=1000000000000000.0000000000000000/(44444444444444444444444444444445.+1000000000000000000000000000000.*i^2)^(1/2)*i;
end
for i=12:1:21
ell(i,1)=-10000000000000000.000000000000000/(.29600000000000000000000000000000e35-.18666666666666666666666666666667e34*i+44444444444444444444444444444445.*i^2)^(1/2)*(-21.+i);
ell(i,2)=100000000000000000./(.29600000000000000000000000000000e35-.18666666666666666666666666666667e34*i+44444444444444444444444444444445.*i^2)^(1/2);
end
ell(1,1)=1.5;
ell(1,2)=0;
%%整合整体点的坐标
for i=1:1:129
d=mod(i,10);
if d==0
dot(i,1)=ell(21-i/10,1);
dot(i,2)=ell(21-i/10,2);
else
dot(i,1)=f(i+2,1);
dot(i,2)=f(i+2,2);
end
end
dot(130,1)=1;
dot(130,2)=0.7454;
for i=131:1:194
n=mod(i,9);
if n==5
dot(i,1)=ell(22-(i-5)/9,1);
dot(i,2)=ell(22-(i-5)/9,2);
k=k+1;
else
dot(i,1)=f(i+k+1,1);
dot(i,2)=f(i+k+1,2);
end
end
for i=195:1:201
dot(i,1)=f(i+10,1);
dot(i,2)=f(i+10,2);
end
%
% ell
% f
% dot
%%计算各单元的节点号,单元共344,节点总共201
units(1,1)=1;
units(1,2)=10;
units(1,3)=11;
for i=1:1:8
units(2*i,1)=i;
units(2*i,2)=10+i;
units(2*i,3)=11+i;
units(2*i+1,1)=11+i;
units(2*i+1,2)=i+1;
units(2*i+1,3)=i;
end
for j=1:1:11
for i=10*j:1:10*j+8
units(2*(i-j),1)=i;
units(2*(i-j),2)=10+i;
units(2*(i-j),3)=11+i;
units(2*(i-j)+1,1)=11+i;
units(2*(i-j)+1,2)=i+1;
units(2*(i-j)+1,3)=i;
end
end
units(216,1)=130;
units(216,2)=121;
units(216,3)=120;
units(217,1)=130;
units(217,2)=131;
units(217,3)=121;
for i=121:1:128
units(2*i-24,1)=i;
units(2*i-24,2)=i+10;
units(2*i-24,3)=i+11;
units(2*i-23,1)=i+11;
units(2*i-23,2)=i+1;
units(2*i-23,3)=i;
end
for i=131:1:138
units(2*i-28,1)=i;
units(2*i-28,2)=9+i;
units(2*i-28,3)=10+i;
units(2*i-27,1)=10+i;
units(2*i-27,2)=i+1;
units(2*i-27,3)=i;
end
for i=140:1:147
units(2*i-30,1)=i;
units(2*i-30,2)=9+i;
units(2*i-30,3)=10+i;
units(2*i-29,1)=10+i;
units(2*i-29,2)=i+1;
units(2*i-29,3)=i;
end
for i=149:1:156
units(2*i-32,1)=i;
units(2*i-32,2)=9+i;
units(2*i-32,3)=10+i;
units(2*i-31,1)=10+i;
units(2*i-31,2)=i+1;
units(2*i-31,3)=i;
end
for i=158:1:165
units(2*i-34,1)=i;
units(2*i-34,2)=9+i;
units(2*i-34,3)=10+i;
units(2*i-33,1)=10+i;
units(2*i-33,2)=i+1;
units(2*i-33,3)=i;
end
for i=167:1:174
units(2*i-36,1)=i;
units(2*i-36,2)=9+i;
units(2*i-36,3)=10+i;
units(2*i-35,1)=10+i;
units(2*i-35,2)=i+1;
units(2*i-35,3)=i;
end
for i=176:1:183
units(2*i-38,1)=i;
units(2*i-38,2)=9+i;
units(2*i-38,3)=10+i;
units(2*i-37,1)=10+i;
units(2*i-37,2)=i+1;
units(2*i-37,3)=i;
end
units(330,1)=185;
units(330,2)=194;
units(330,3)=186;
for i=186:1:192
units(2*i-41,1)=i;
units(2*i-41,2)=i+8;
units(2*i-41,3)=i+9;
units(2*i-40,1)=i+9;
units(2*i-40,2)=i+1;
units(2*i-40,3)=i;
end
%units
%%%单元标号结束
%%%%%%%%%%%%以上内容已经正确,不需大修改!!!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%求解各单元刚度矩阵的待定系数及单元面积
for i=1:1:344
length(i,1,1)=dot(units(i,2),1)*dot(units(i,3),2)-dot(units(i,3),1)*dot(units(i,2),2);
length(i,1,2)=dot(units(i,2),2)-dot(units(i,3),2);
length(i,1,3)=dot(units(i,3),1)-dot(units(i,2),1);
length(i,2,1)=dot(units(i,3),1)*dot(units(i,1),2)-dot(units(i,1),1)*dot(units(i,3),2);
length(i,2,2)=dot(units(i,3),2)-dot(units(i,1),2);
length(i,2,3)=dot(units(i,1),1)-dot(units(i,3),1);
length(i,3,1)=dot(units(i,1),1)*dot(units(i,2),2)-dot(units(i,2),1)*dot(units(i,1),2);
length(i,3,2)=dot(units(i,1),2)-dot(units(i,2),2);
length(i,3,3)=dot(units(i,2),1)-dot(units(i,1),1);
A(i)=1/2*(length(i,1,2)*length(i,2,3)-length(i,2,2)*length(i,1,3));
end
% length
% A
%%%%%%求解单元刚度矩阵
for i=1:1:344
k_units(i,1,1)=length(i,1,2)*length(i,1,2)+(1-v)/2*length(i,1,3)*length(i,1,3);
k_units(i,1,2)=v*length(i,1,2)*length(i,1,3)+(1-v)/2*length(i,1,3)*length(i,1,2);
k_units(i,2,1)=v*length(i,1,3)*length(i,1,2)+(1-v)/2*length(i,1,2)*length(i,1,3);
k_units(i,2,2)=length(i,1,3)*length(i,1,3)+(1-v)/2*length(i,1,2)*length(i,1,2);
k_units(i,1,3)=length(i,1,2)*length(i,2,2)+(1-v)/2*length(i,1,3)*length(i,2,3);
k_units(i,1,4)=v*length(i,1,2)*length(i,2,3)+(1-v)/2*length(i,1,3)*length(i,2,2);
k_units(i,2,3)=v*length(i,1,3)*length(i,2,2)+(1-v)/2*length(i,1,2)*length(i,2,3);
k_units(i,2,4)=length(i,1,3)*length(i,2,3)+(1-v)/2*length(i,1,2)*length(i,2,2);
k_units(i,1,5)=length(i,1,2)*length(i,3,2)+(1-v)/2*length(i,1,3)*length(i,3,3);
k_units(i,1,6)=v*length(i,1,2)*length(i,3,3)+(1-v)/2*length(i,1,3)*length(i,3,2);
k_units(i,2,5)=v*length(i,1,3)*length(i,3,2)+(1-v)/2*length(i,1,2)*length(i,3,3);
k_units(i,2,6)=length(i,1,3)*length(i,3,3)+(1-v)/2*length(i,1,2)*length(i,3,2);
k_units(i,3,1)=length(i,2,2)*length(i,1,2)+(1-v)/2*length(i,2,3)*length(i,1,3);
k_units(i,3,2)=v*length(i,2,2)*length(i,1,3)+(1-v)/2*length(i,2,3)*length(i,1,2);
k_units(i,4,1)=v*length(i,2,3)*length(i,1,2)+(1-v)/2*length(i,2,2)*length(i,1,3);
k_units(i,4,2)=length(i,2,3)*length(i,1,3)+(1-v)/2*length(i,2,2)*length(i,1,2);
k_units(i,3,3)=length(i,2,2)*length(i,2,2)+(1-v)/2*length(i,2,3)*length(i,2,3);
k_units(i,3,4)=v*length(i,2,2)*length(i,2,3)+(1-v)/2*length(i,2,3)*length(i,2,2);
k_units(i,4,3)=v*length(i,2,3)*length(i,2,2)+(1-v)/2*length(i,2,2)*length(i,2,3);
k_units(i,4,4)=length(i,2,3)*length(i,2,3)+(1-v)/2*length(i,2,2)*length(i,2,2);
k_units(i,3,5)=length(i,2,2)*length(i,3,2)+(1-v)/2*length(i,2,3)*length(i,3,3);
k_units(i,3,6)=v*length(i,2,2)*length(i,3,3)+(1-v)/2*length(i,2,3)*length(i,3,2);
k_units(i,4,5)=v*length(i,2,3)*length(i,3,2)+(1-v)/2*length(i,2,2)*length(i,3,3);
k_units(i,4,6)=length(i,2,3)*length(i,3,3)+(1-v)/2*length(i,2,2)*length(i,3,2);
k_units(i,5,1)=length(i,3,2)*length(i,1,2)+(1-v)/2*length(i,3,3)*length(i,1,3);
k_units(i,5,2)=v*length(i,3,2)*length(i,1,3)+(1-v)/2*length(i,3,3)*length(i,1,2);
k_units(i,6,1)=v*length(i,3,3)*length(i,1,2)+(1-v)/2*length(i,3,2)*length(i,1,3);
k_units(i,6,2)=length(i,3,3)*length(i,1,3)+(1-v)/2*length(i,3,2)*length(i,1,2);
k_units(i,5,3)=length(i,3,2)*length(i,2,2)+(1-v)/2*length(i,3,3)*length(i,2,3);
k_units(i,5,4)=v*length(i,3,2)*length(i,2,3)+(1-v)/2*length(i,3,3)*length(i,2,2);
k_units(i,6,3)=v*length(i,3,3)*length(i,2,2)+(1-v)/2*length(i,3,2)*length(i,2,3)