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;
B(6,2)=-6*E(i)*I(i)/L(i,1)^2;
B(6,3)=E(i)*I(i)/L(i,1);
B(6,5)=6*E(i)*I(i)/L(i,1)^2;
B(6,6)=4*E(i)*I(i)/L(i,1);
B=B+B’;
disp(‘—生成单元刚度矩阵转换矩阵—‘);
T(1,1)=cos(a(i));
T(1,2)=-sin(a(i));
T(2,1)=sin(a(i));
T(2,2)=cos(a(i));
T(3,3)=1;
T([4,6],[4,6])=T([1,3],[1,3]);
disp(‘—生成整体坐标系下的单元刚度矩阵—‘);
B=T’*B*T;
disp(‘—由单元刚度矩阵组装整体刚度矩阵—‘);
K([L(i,2),L(i,2)+2],[L(i,2),L(i,2)+2)])=B([1,3],[1,3]);
K([L(i,2),L(i,2)+2],[L(i,3),L(i,3)+2)])=B([1,3],[4,6]);
K([L(i,3),L(i,3)+2],[L(i,2),L(i,2)+2)])=B([4,6],[1,3]);
K([L(i,3),L(i,3)+2],[L(i,3),L(i,3)+2)])=B([4,6],[4,6]);
end
以上是我利用MATLAB编写的有单元刚度矩阵生成整体刚度矩阵的小程序,但是在运行的时候出错了
出错提示:
nbsp; K([L(i,2),L(i,2)+2],[L(i,2),L(i,2)+2)])=B([1,3],[1,3]);
|
Error: Unbalanced or unexpected parenthesis or bracket.
那位仁兄能帮我修改一下,看看错在哪里。谢谢诸位了!!
相关资源:欧德克连杆仿真设计软件Linkage_linkage软件-其它工具类资源-CSDN…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!