利用MATLAB进行桁架结构内力及位移
disp('----本程序用于计算桁架结构内力及位移----');
disp('以下为本程序所用计算基本数据:');
disp('[L]——结构杆件长度列阵(包括定位向量,即节点编号)');
disp('[A]——结构杆件面积列阵');
disp('[I]——结构杆件截面惯性矩列阵');
disp('[E]——结构杆件材料弹性模量列阵');
disp('[a]——结构杆件单元单元坐标系与整体坐标系夹角列阵,以逆时针为正');
disp('[K]——结构整体刚度矩阵');
disp('[B]——结构杆件单元刚度矩阵');
disp('[T]——结构杆件单元刚度矩阵转换矩阵');
disp(' n——杆件单元数目');
disp('---程序初始化,输入基本数据---');
n=input('\n请输入杆件单元个数n=');
A=zeros(1,n);
s=input('\n请输入杆件单元截面面积s=');
A=A+s;
I=zeros(1,n);
i=input('\n请输入杆件单元截面惯性矩i=');
I=I+i;
E=zeros(1,n);
e=input('\n请输入杆件单元材料弹性模量e=');
E=E+e;
a=zeros(1,n);
j=input('\n请输入杆件单元单元坐标系与整体坐标系夹角j=');
a=a+j;
L=zeros(n,3);
L=input('\n请输入杆件长度和节点编号L=');
T=zeros(6,6);
B=zeros(6,6);
K=zeros(3*n,3*n);
disp('---生成整体刚度矩阵---');
for i=1:n
disp('---生成单元坐标系下的单元刚度矩阵---');
B(1,1)=E(i)*A(i)/L(i,1);
B(2,2)=12*E(i)*I(i)/L(i,1)^3;
B(3,2)=-6*E(i)*I(i)/L(i,1)^2;
B(3,3)=E(i)*I(i)/L(i,1);
B(4,1)=-E(i)*A(i)/L(i,1);
B(5,2)=-12*E(i)*I(i)/L(i,1)^3;
B(5,3)=6*E(i)*I(i)/L(i,1)^2;