matlab计算桁架,利用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;

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进行处理,非常感谢!

上一篇 2021年2月13日
下一篇 2021年2月13日

相关推荐