张拉整体二阶截角棱柱结构
张拉整体二阶截角棱柱结构 及其MATLAB 构型程序
%!!!杆与杆相连!!!
n=6; %---单元杆数--- for i=1:n
n1i=[R1*cos(2*pi*i/n);R1*sin(2*pi*i/n);0];
n2i=[R2*cos(2*pi*i/n+phi);R2*sin(2*pi*i/n+phi);h];
n3i=[R1*cos(2*pi*(i-1)/n+2*phi);R1*sin(2*pi*(i-1)/n+2*phi);H];
n4i=[R1*cos(2*pi*i/n+2*(phi-2*pi/n));R1*sin(2*pi*i/n+2*(phi-2*pi/n));0];
n5i=[R1*cos(2*pi*i/n);R1*sin(2*pi*i/n);H];
N1=[N1 n1i];N2=[N2 n2i];N3=[N3 n3i];N4=[N4 n4i];N5=[N5 n5i]; end
N=[N1 N2 N3 N4 N5]; [nr nc]=size(N); for i=1:nc
plot3(N(1,i),N(2,i),N(3,i),'o'); hold on end
xlabel('x[ ]'); ylabel('y[ ]'); zlabel('z[ ]'); %---杆矩阵B--- e1=[];e2=[]; for i=1:n if i
e1i=[zeros(1,i) 1 zeros(1,n-i-1)]; elseif i==n
e1i=[1 zeros(1,n-1)]; end
e1=[e1;e1i]; end
for i=1:n end
e2=[e2;e2i]; end
CB=[-eye(n) eye(n) zeros(n,3*n);zeros(n,n) -eye(n) e1 zeros(n,2*n);zeros(n,3*n) -eye(n) eye(n)]; CBT=CB'; B=N*CBT;
[nbr nbc]=size(CBT); for i=1:nbc;
CBTi=CBT(:,i);
n1n=find(~(CBTi+ones(nbr,1))); n1=N(:,n1n); n2=N(:,n1n)+B(:,i);
g_b=line([n1(1) n2(1)],[n1(2) n2(2)],[n1(3) n2(3)]); set([g_b],'LineWidth',3,'color','b'); hold on; end
%---索矩阵S---
CS1=[-eye(n) zeros(n,2*n) eye(n) zeros(n,n);e1 zeros(n,2*n) -eye(n) zeros(n,n)]; CS2=[zeros(n,2*n) -eye(n) zeros(n,n) e1;zeros(n,2*n) e2 zeros(n,n) -eye(n)]; for i=1:nsc;
CSTi=CST(:,i);
n2n=find(~(CSTi+ones(nsr,1))); n1=N(:,n2n); n2=N(:,n2n)+S(:,i);
s_b=line([n1(1) n2(1)],[n1(2) n2(2)],[n1(3) n2(3)]); set([s_b],'LineWidth',1,'color','r'); hold on; end
axis equal