?? cal.m
字號(hào):
function cal()
%-----桿1-----
a1=str2num(get(hedit1,'String'));%單元碼
a2=str2num(get(hedit6,'String'));%結(jié)點(diǎn)碼
a3=str2num(get(hedit7,'String'));%結(jié)點(diǎn)碼
a4=str2num(get(hedit16,'String'));%長(zhǎng)度L
a5=str2num(get(hedit21,'String'));%EI
a6=str2num(get(hedit26,'String'));%集中荷載大小
a7=str2num(get(hedit27,'String'));%均布荷載大小
k1=[4*a5/a4,2*a5/a4;2*a5/a4,4*a5/a4];%單元?jiǎng)偠染仃?k11=[6*a5/a4.^2,6*a5/a4.^2;-6*a5/a4.^2,-6*a5/a4.^2];
%-----等效結(jié)點(diǎn)荷載-----
if get(hcheckbox11,'Value')==1&&get(hcheckbox12,'Value')==0
p1=-[-a6*a4/8;a6*a4/8];
p11=[a6/2;a6/2];
elseif get(hcheckbox11,'Value')==0&&get(hcheckbox12,'Value')==1
p1=-[-a7*a4.^2/12;a7*a4.^2/12];
p11=[a7*a4/2;a7*a4/2];
elseif get(hcheckbox11,'Value')==1&&get(hcheckbox12,'Value')==1
p1=-[-(a6*a4/8+a7*a4.^2/12);a6*a4/8+a7*a4.^2/12];
p11=[a6/2+a7*a4/2;a6/2+a7*a4/2];
else p1=[0;0];
p11=[0;0];
end
%-----集成整體剛度矩陣-----
K1=zeros(5,5);
P1=zeros(5,1);
if a2==0
K1(a3,a3)=K1(a3,a3)+k1(2,2);
P1(a3,1)=P1(a3,1)+p1(2,1);
elseif a3==0
K1(a2,a2)=K1(a2,a2)+k1(1,1);
P1(a2,1)=P1(a2,1)+p1(1,1);
else
K1(a2,a2)=K1(a2,a2)+k1(1,1);
K1(a2,a3)=K1(a2,a3)+k1(1,2);
K1(a3,a2)=K1(a3,a2)+k1(2,1);
K1(a3,a3)=K1(a3,a3)+k1(2,2);
P1(a2,1)=P1(a2,1)+p1(1,1);
P1(a3,1)=P1(a3,1)+p1(2,1);
end
%-----桿2-----
b1=str2num(get(hedit2,'String'));
b2=str2num(get(hedit8,'String'));
b3=str2num(get(hedit9,'String'));
b4=str2num(get(hedit17,'String'));
b5=str2num(get(hedit22,'String'));
b6=str2num(get(hedit28,'String'));
b7=str2num(get(hedit29,'String'));
k2=[4*b5/b4,2*b5/b4;2*b5/b4,4*b5/b4];
k21=[6*b5/b4.^2,6*b5/b4.^2;-6*b5/b4.^2,-6*b5/b4.^2];
if get(hcheckbox21,'Value')==1&&get(hcheckbox22,'Value')==0
p2=-[-b6*b4/8;b6*b4/8];
p21=[b6/2;b6/2];
elseif get(hcheckbox21,'Value')==0&&get(hcheckbox22,'Value')==1
p2=-[-b7*b4.^2/12;b7*b4.^2/12];
p21=[b7*b4/2;b7*b4/2];
elseif get(hcheckbox21,'Value')==1&&get(hcheckbox22,'Value')==1
p2=-[-(b6*b4/8+b7*b4.^2/12);b6*b4/8+b7*b4.^2/12];
p21=[b6/2+b7*b4/2;b6/2+b7*b4/2];
else p2=[0;0];
p21=[0;0];
end
K2=zeros(5,5);
P2=zeros(5,1);
if b2==0
K2(b3,b3)=K2(b3,b3)+k2(2,2);
P2(b3,1)=P2(b3,1)+p2(2,1);
elseif b3==0
K2(b2,b2)=K2(b2,b2)+k2(1,1);
P2(b2,1)=P2(b2,1)+p2(1,1);
else
K2(b2,b2)=K2(b2,b2)+k2(1,1);
K2(b2,b3)=K2(b2,b3)+k2(1,2);
K2(b3,b2)=K2(b3,b2)+k2(2,1);
K2(b3,b3)=K2(b3,b3)+k2(2,2);
P2(b2,1)=P2(b2,1)+p2(1,1);
P2(b3,1)=P2(b3,1)+p2(2,1);
end
%-----桿3-----
c1=str2num(get(hedit3,'String'));
c2=str2num(get(hedit10,'String'));
c3=str2num(get(hedit11,'String'));
c4=str2num(get(hedit18,'String'));
c5=str2num(get(hedit23,'String'));
c6=str2num(get(hedit30,'String'));
c7=str2num(get(hedit31,'String'));
k3=[4*c5/c4,2*c5/c4;2*c5/c4,4*c5/c4];
k31=[6*c5/c4.^2,6*c5/c4.^2;-6*c5/c4.^2,-6*c5/c4.^2];
if get(hcheckbox31,'Value')==1&&get(hcheckbox32,'Value')==0
p3=-[-c6*c4/8;c6*c4/8];
p31=[c6/2;c6/2];
elseif get(hcheckbox31,'Value')==0&&get(hcheckbox32,'Value')==1
p3=-[-c7*c4.^2/12;c7*c4.^2/12];
p31=[c7*c4/2;c7*c4/2];
elseif get(hcheckbox31,'Value')==1&&get(hcheckbox32,'Value')==1
p3=-[-(c6*c4/8+c7*c4.^2/12);c6*c4/8+c7*c4.^2/12];
p31=[c6/2+c7*c4/2;c6/2+c7*c4/2];
else p3=[0;0];
p31=[0;0];
end
K3=zeros(5,5);
P3=zeros(5,1);
if c2==0
K3(c3,c3)=K3(c3,c3)+k3(2,2);
P3(c3,1)=P3(c3,1)+p3(2,1);
elseif c3==0
K3(c2,c2)=K3(c2,c2)+k3(1,1);
P3(c2,1)=P3(c2,1)+p3(1,1);
else
K3(c2,c2)=K3(c2,c2)+k3(1,1);
K3(c2,c3)=K3(c2,c3)+k3(1,2);
K3(c3,c2)=K3(c3,c2)+k3(2,1);
K3(c3,c3)=K3(c3,c3)+k3(2,2);
P3(c2,1)=P3(c2,1)+p3(1,1);
P3(c3,1)=P3(c3,1)+p3(2,1);
end
%-----桿4-----
d1=str2num(get(hedit4,'String'));
d2=str2num(get(hedit12,'String'));
d3=str2num(get(hedit13,'String'));
d4=str2num(get(hedit19,'String'));
d5=str2num(get(hedit24,'String'));
d6=str2num(get(hedit32,'String'));
d7=str2num(get(hedit33,'String'));
k4=[4*d5/d4,2*d5/d4;2*d5/d4,4*d5/d4];
k41=[6*d5/d4.^2,6*d5/d4.^2;-6*d5/d4.^2,-6*d5/d4.^2];
if get(hcheckbox41,'Value')==1&&get(hcheckbox42,'Value')==0
p4=-[-d6*d4/8;d6*d4/8];
p41=[d6/2;d6/2];
elseif get(hcheckbox41,'Value')==0&&get(hcheckbox42,'Value')==1
p4=-[-d7*d4.^2/12;d7*d4.^2/12];
p41=[d7*d4/2;d7*d4/2];
elseif get(hcheckbox41,'Value')==1&&get(hcheckbox42,'Value')==1
p4=-[-(d6*d4/8+d7*d4.^2/12);d6*d4/8+d7*d4.^2/12];
p41=[d6/2+d7*d4/2;d6/2+d7*d4/2];
else p4=[0;0];
p41=[0;0];
end
K4=zeros(5,5);
P4=zeros(5,1);
if d2==0
K4(d3,d3)=K4(d3,d3)+k4(2,2);
P4(d3,1)=P4(d3,1)+p4(2,1);
elseif d3==0
K4(d2,d2)=K4(d2,d2)+k4(1,1);
P4(d2,1)=P4(d2,1)+p4(1,1);
else
K4(d2,d2)=K4(d2,d2)+k4(1,1);
K4(d2,d3)=K4(d2,d3)+k4(1,2);
K4(d3,d2)=K4(d3,d2)+k4(2,1);
K4(d3,d3)=K4(d3,d3)+k4(2,2);
P4(d2,1)=P4(d2,1)+p4(1,1);
P4(d3,1)=P4(d3,1)+p4(2,1);
end
%-----桿5-----
e1=str2num(get(hedit5,'String'));
e2=str2num(get(hedit14,'String'));
e3=str2num(get(hedit15,'String'));
e4=str2num(get(hedit20,'String'));
e5=str2num(get(hedit25,'String'));
e6=str2num(get(hedit34,'String'));
e7=str2num(get(hedit35,'String'));
k5=[4*e5/e4,2*e5/e4;2*e5/e4,4*e5/e4];
k51=[6*e5/e4.^2,6*e5/e4.^2;-6*e5/e4.^2,-6*e5/e4.^2];
if get(hcheckbox51,'Value')==1&&get(hcheckbox52,'Value')==0
p5=-[-e6*e4/8;e6*e4/8];
p51=[e6/2;e6/2];
elseif get(hcheckbox51,'Value')==0&&get(hcheckbox52,'Value')==1
p5=-[-e7*e4.^2/12;e7*e4.^2/12];
p51=[e7*e4/2;e7*e4/2];
elseif get(hcheckbox51,'Value')==1&&get(hcheckbox52,'Value')==1
p5=-[-(e6*e4/8+e7*e4.^2/12);e6*e4/8+e7*e4.^2/12];
p51=[e6/2+e7*e4/2;e6/2+e7*e4/2];
else p5=[0;0];
p51=[0;0];
end
K5=zeros(5,5);
P5=zeros(5,1);
if e2==0
K5(e3,e3)=K5(e3,e3)+k5(2,2);
P5(e3,1)=P5(e3,1)+p5(2,1);
elseif e3==0
K5(e2,e2)=K5(e2,e2)+k5(1,1);
P5(e2,1)=P5(e2,1)+p5(1,1);
else
K5(e2,e2)=K5(e2,e2)+k5(1,1);
K5(e2,e3)=K5(e2,e3)+k5(1,2);
K5(e3,e2)=K5(e3,e2)+k5(2,1);
K5(e3,e3)=K5(e3,e3)+k5(2,2);
P5(e2,1)=P5(e2,1)+p5(1,1);
P5(e3,1)=P5(e3,1)+p5(2,1);
end
K0=zeros(4,4);
P0=zeros(4,4);
K=K1+K2+K3+K4+K5;%整體剛度矩陣
P=P1+P2+P3+P4+P5;%整體等效結(jié)點(diǎn)荷載
if (a2==0&&e3>0)||(a2>0&&e3==0)
delta=K\P;
elseif a2==0&&e3==0
for i=1:4
for j=1:4
K0(i,j)=K0(i,j)+K(i,j);
end
end
for k=1:4
P0(k,1)=P0(k,1)+P(k,1);
end
delta=K0\P0;%位移向量
end
%-----計(jì)算桿端彎矩-----
if a2==0
F1=k1*[0;delta(a3,1)]-p1;
elseif a3==0
F1=k1*[delta(a2,1);0]-p1;
else
F1=k1*[delta(a2,1);delta(a3,1)]-p1;
end
if b2==0
F2=k2*[0;delta(b3,1)]-p2;
elseif b3==0
F2=k2*[delta(b2,1);0]-p2;
else
F2=k2*[delta(b2,1);delta(b3,1)]-p2;
end
if c2==0
F3=k3*[0;delta(c3,1)]-p3;
elseif c3==0
F3=k3*[delta(c2,1);0]-p3;
else
F3=k3*[delta(c2,1);delta(c3,1)]-p3;
end
if d2==0
F4=k4*[0;delta(d3,1)]-p4;
elseif d3==0
F4=k4*[delta(d2,1);0]-p4;
else
F4=k4*[delta(d2,1);delta(d3,1)]-p4;
end
if e2==0
F5=k5*[0;delta(e3,1)]-p5;
elseif e3==0
F5=k5*[delta(e2,1);0]-p5;
else
F5=k5*[delta(e2,1);delta(e3,1)]-p5;
end
%-----顯示彎矩值-----
set(hedit36,'String',F1(1,1));
set(hedit37,'String',F1(2,1));
set(hedit38,'String',F2(1,1));
set(hedit39,'String',F2(2,1));
set(hedit40,'String',F3(1,1));
set(hedit41,'String',F3(2,1));
set(hedit42,'String',F4(1,1));
set(hedit43,'String',F4(2,1));
set(hedit44,'String',F5(1,1));
set(hedit45,'String',F5(2,1));
%-----計(jì)算桿端剪力-----
if a2==0
F11=k11*[0;delta(a3,1)]-p11;
elseif a3==0
F11=k11*[delta(a2,1);0]-p11;
else
F11=k11*[delta(a2,1);delta(a3,1)]-p11;
end
if b2==0
F21=k21*[0;delta(b3,1)]-p21;
elseif b3==0
F21=k21*[delta(b2,1);0]-p21;
else
F21=k21*[delta(b2,1);delta(b3,1)]-p21;
end
if c2==0
F31=k31*[0;delta(c3,1)]-p31;
elseif c3==0
F31=k31*[delta(c2,1);0]-p31;
else
F31=k31*[delta(c2,1);delta(c3,1)]-p31;
end
if d2==0
F41=k41*[0;delta(d3,1)]-p41;
elseif d3==0
F41=k41*[delta(d2,1);0]-p41;
else
F41=k41*[delta(d2,1);delta(d3,1)]-p41;
end
if e2==0
F51=k51*[0;delta(e3,1)]-p51;
elseif e3==0
F51=k51*[delta(e2,1);0]-p51;
else
F51=k51*[delta(e2,1);delta(e3,1)]-p51;
end
%-----顯示剪力值-----
set(hedit46,'String',F11(1,1));
set(hedit47,'String',F11(2,1));
set(hedit48,'String',F21(1,1));
set(hedit49,'String',F21(2,1));
set(hedit50,'String',F31(1,1));
set(hedit51,'String',F31(2,1));
set(hedit52,'String',F41(1,1));
set(hedit53,'String',F41(2,1));
set(hedit54,'String',F51(1,1));
set(hedit55,'String',F51(2,1));
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -