MATLAB在结构力学分析中应用
MATLAB在结构力学分析中的应用
摘 要:传统的手算方法解超静定结构工作量繁重,有时甚至是不可能,运用结构有限元编程的一般方法,通过两个实例的对照,展示MATLAB在结构力学分析中的应用,MATLAB具有高性能,方法具有普遍的适用性,实现弯矩图自动绘制。
关键词: MATLAB结构有限元弯矩图
Abstract:While using the traditional manual method to resolve complex statically indeterminate structures, it is heavy workloads, sometimes even impossible,using finite element programming of the general method, Based on two examples, This paper introduces a method of application of MATLAB in structure mechanics, MATLAB has the advantages of high performance, it can be applied to many kinds of structures, realization of automatic drawing bending moment diagram.
Key words: MATLAB; Finite element; Bend moment diagram
引言
结构力学[3]中,常利用传统的力法与位移法求解超静定结构,力法是几何问题,位移法把复杂的几何图乘转化为代数运算,但它们基本未知量很多时,系数构成的矩阵计算巨大,两者都不能满足科研工作者的需要。应用MATLAB软件丰富可靠的矩阵运算、数据处理、图形绘制等便利工具,可使得计算和图象一体化。对于结构力学计算是十分有利的工具。
1基本方法
MATLAB结构有限元编程的基本思路是先分后合,即将结构分成各个单元和节点,桁架与刚架已经离散化,对于连续系统这一步极其重要,然后进行单元分析,集成整体刚度矩阵,引入边界条件,最后解方程。在求解平面桁架结构,虽然结构简单,用手算可得各杆件的轴力,但重复的过程太多,现在使用MATLAB语言来编制有限元位移法的程序时,则编程的难度明显降低,对有限元位移法的概念的理解更加深入,编程所需时间也大大减少。
图1为一平面桁架,各杆E=70GPaA=0.004,试用矩阵位移法求解各杆轴力
图1
解:平面桁架元是既有局部坐标又有总体坐标的二维有限元;对各结点和单元进行编号,建立结构坐标系( 图1 )
第一步,利用MATLAB函数
y=Plane Truss Element Length(x1, y1, x2, y2)
L=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); % 局部坐标中杆件长度
第二步, MATLAB函y=Plane Truss Element Stiffness(E ,A ,L ,theta)
x=theta*pi/180; C= cos (x); S=sin(x);
y=E*A/L*[C*C C*S -C*C -C*S; C*S S*S -C*S -S*S;-C*C -C*S C*C C*S;-C*S -S*S C*S S*S];% 总体坐标中建立各单元的刚度 矩阵
第三步,建立整体刚度阵。该结构有4个节点,每个节点有两个自由度(可考虑支座沉降),为了得到整体刚度阵K,首先利用生成一个8×8的0矩阵,因为该结构有4个单元,所以4次调用M a t lab的Plane Truss Assemble函数;其中K为整体刚度阵, k为单元刚度阵, i j为单元两端在整体节点上的编号。
y=Plane Truss Assemble (K, k, i , j)
K (2*i-1, 2*i-1) =K (2*i-1, 2*i-1) +k (1, 1);
K (2*i-1, 2*i) =K (2*i-1, 2*i) + k (1, 2);
K (2*i-1, 2*j-1) = K (2*i-1, 2*j-1)+ k (1,3);
K (2*i-1, 2*j) =K (2*i-1, 2*j) +k (1, 4);
K (2* i , 2*i-1) =K (2* i, 2*i-1) +k (2, 1);
K (2*i, 2*i) =K (2*i, 2*i) +k (2, 2);
K (