第四章结构刚度矩阵的存贮方式和组集程序.ppt
《第四章结构刚度矩阵的存贮方式和组集程序.ppt》由会员分享,可在线阅读,更多相关《第四章结构刚度矩阵的存贮方式和组集程序.ppt(64页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第四章 结构刚度矩阵的存贮方式和组集程序,前面几章,我们介绍了有限元法的基本原理,较深入地讨论了单元分析和系统分析理论。有限元法的重要价值在于方便编写程序,借助于计算机完成全部计算工作。,在整个编程和计算中,影响最大的是结构刚度矩阵的存贮和组集。本章就对这一问题进行专门讨论。,结构刚度矩阵的组集方法、程序和它的存贮方式密切相关,还依赖于约束条件的处理方式。本章介绍三种存贮方式:方阵存贮、等带宽存贮和一维数组存贮。,本章讨论的结构刚度矩阵存贮方式和组集的基本内容,适合于各类结构,包括杆系结构、弹性连续结构等。适合于结构静力分析,也是结构动力分析以及稳定性分析的重要基础。,约束条件采用第三章思想处
2、理:从无约束的结构刚度矩阵中删去与受约束位移号对应的行和列,再将矩阵压缩排列成nn阶方阵。实际操作时,根本就不去存贮这些行和列。,下面,我们就从方阵存贮方式开始。,为叙述简便起见,本章中所用“单元刚度矩阵”一词都指结构坐标单元刚度矩阵。只有特别需要时才加“结构坐标”定语。,5.1 结构刚度矩阵的方阵存贮,(3-8),由第三章式(3-8)知,结构刚度矩阵K等于所有膨胀后的单元刚度矩阵k相累加。下面详细考察如何在程序中实现这个操作。,1、单元刚度矩阵元素的两类地址,单刚地址和总刚地址。,(1)单刚地址 单刚地址是指单元刚度矩阵元素在膨胀前的单元刚度矩阵中的地址,即行、列号。式(4-1)矩阵中每个元
3、素的两个下标就是该元素的单刚地址。第一个下标指行号,第二个下标指列号。例如k15的说明它是矩阵中第1行第5列位置的元素。,(4-1),(2)总刚地址 总刚地址是指单元刚度矩阵元素在膨胀后的单元刚度矩阵中的地址(行、列号)。这个地址与单元的节点号有关,而节点号是离散结构时编好的,还与节点自由度有关。,设式(4-1)是图4-1所示梁单元的单元刚度矩阵。该单元两个节点的节点号为i、j,节点自由度是3。,单元刚度矩阵元素的总刚地址应为:i1、i2、i3、j1、j2、j3,如式(4-2)。,有,(4-3),图4-2,如果式(4-1)是图4-2所示平面问题三角形单元的单元刚度矩阵。该单元三个节点的节点号为
4、i、j、m,节点自由度是2。,单元刚度矩阵元素的总刚地址应为:i1、i2、j1、j2、m1、m2,如式(4-4)、(4-5)。,有,(4-4),(4-5),(3)两类地址的连接数组,建立一个连接数组供计算机识别两类地址,以便正确地从单元刚度矩阵中取出元素,并放入结构刚度矩阵之中。,给连接数组取个名,例如:LM(NDF2),它是一维数组,数组长度NDF2是单元自由度的最大值。,先不考虑约束情况:,对于平面梁单元组成的结构,对于平面问题三角形单元组成的结构,从式(4-6)、(4-7)知,建立连接数组应先知道单元的节点号i、j、m 。这些数据应作为结构计算的初始数据在程序开始后即读入的,因此是已知的
5、。通常,这些数据读入后,按照单元号顺序由小到大依次存放在若干个一维数组中,例如,数组IO、JO、MO分别存放i、j、m节点号;数组IO、JO、MO的长度为单元总数。当然也可用一个多维数组存放它们。,(4)建立连接数组的条件,现在我们指出一个明显而重要的事实。所谓单元刚度矩阵的膨胀只不过为了说明问题的概念。事实上,执行时并不去膨胀单元刚度矩阵。所谓把所有单元膨胀后的单元刚度矩阵累加起来,即算式 的实现操作方法非常简单:,只要把每个单元的单元刚度矩阵k的每个元素按照它的总刚地址送入总刚度矩阵K,并简单地累加起来就组集起了总刚度矩阵K。,2、组集无约束结构刚度矩阵,(1)方法,(2)步骤,组集无约束
6、结构总刚度矩阵的具体步骤如下: 矩阵K充零 即把K的N1N1个元素全部置为零元素。N1=NJ(节点总数)NDF(一个节点自由度数) 从第1号单元开始,依次对所有单元执行下述操作:(下面符号“e”代表被执行的单元号) (a) 计算e号单元单元坐标系下的单元刚度矩阵ke。 (b) 计算e号单元的坐标变换矩阵R。 (c) 形成e号单元结构坐标系下的单元刚度矩阵k。计算公式为: k=RTkeR,(d) 建立e号单元的连接数组LM (e) 把e号单元结构坐标单元刚度矩阵k的元素按连接数组给出的总刚地址送入结构刚度矩阵K并进行累加。赋值语句为: K(i,j)=K(i,j)+k(p,q) (4-8) K(i
7、,j) 结构刚度矩阵中第i行j列元素 k(p,q) 单元刚度矩阵中第p行q列元素 p, q 单刚地址 i, j 总刚地址,为了节省存贮、节省运算时间,执行第(e)步时应利用单元刚度矩阵和结构刚度矩阵的对称性。用式(4-8)只须将单元刚度矩阵的上三角部分(含对角线元素)装入结构刚度矩阵中,形成结构刚度矩阵的上三角部分。,执行命令 K( j, i )=K( i, j ) ( ij )即得结构刚度矩阵K的下三角部分元素。,结构刚度矩阵中的上三角元素,执行上述第步时,对每个单元皆重复同样规律的计算,因而应编写独立的子程序。,(3)程序框图,3、组集约束结构总刚度矩阵,组集起无约束结构的总刚度矩阵K之后
8、,形成受约束结构的结构刚度矩阵Kff的原则是很简单的。例如,如果第L号位移分量受有刚性约束,即L=0。那么,只要把无约束结构刚度矩阵K的第L行和第L列删去即可。对所有受刚性约束的位移分量都作这样处理后,就得到约束结构的结构刚度矩阵Kff。,所谓约束是指刚性约束。弹性约束可按弹性单元处理,而在刚性支承处引入约束。,假定所讨论的结构受刚性支承约束的节点共有NRJ个。我们用一维数组 KRJ(NRJ)来存贮这些受刚性支承约束的节点的号码。 每个受约束的节点,它的各个自由度可能全受到约束,也可能只有一个自由度被约束。为了表明这种情况,还需一个二维数组:,(1)约束信息数组,KRL(NDF,NRJ),下面
9、我们就按照这个原则来组集Kff。但不是在形成K之后再从其中删去一些行和列,而是根本不去存贮应该删去的那些行和列。,例 图4-3所示框架结构NRJ=3,数组KRL的第i列,说明数组KRJ中的第i个节点的每个自由度是否受约束。我们规定:元素为1受约束,0表示不受约束。,1号节点1、 2受约束, 3不受约束; 2号节点3个位移均受约束;3号节点只2受约束。,数组KRJ、KRL给出了结构的全部约束信息。这些信息应作为初始数据交由计算机读入的。,(2)节点位移信息数组,节点位移信息数组可命名为ID(NDF,NJ)。NJ是节点总数。数组ID是一个NDF行, NJ列的二维数组。,ID数组先用来表明每个节点(
10、无论它是否受约束)的各个自由是否受到约束。对图4-3情形,NDF=3,NJ=6,ID数组的内容是:,(4-9),1,2,3,4,6,5,这一步可借助于KRL数组实现。,再对ID数组进行如下改造:从第1列开始,自上而下检查,遇1改0,遇0则用上一个非0元素加1;然后,对第2列、第3列、依次按同样办法检查处理,完成后,得最终形式的ID数组。仍以图4-3为例,对式(5-9)改造后,得:,(4-10),0,0,1,0,0,0,2,0,3,4,5,6,7,8,9,10,11,12,a) 如果 ID(i, j ) = 0则表明j号节点第i个自由度受有约束。,b) 如果 ID( i, j ) 0则j号节点第
11、i个自由度不受约束。并且, j号节点第i个位移分量在非约束节点位移列向量 f的序号就是: ID( i, j ),改造后的ID数组的性质是:,ID数组形成框图,受约束节点总数,受约束节点号,受约束节点信息,组集受约束结构总刚度矩阵Kff和组集无约束结构总刚度矩阵K的区别在于前者引入了约束,而后者没有。因此,组集受约束结构总刚度矩阵Kff的步骤与组集无约束结构总刚度矩阵K的步骤完全相同。只须在组集无约束结构总刚度矩阵K的方法中,做以下三点修改,以反应约束的引入。,(3) 受约束结构总刚度矩阵的组集, 结构刚度矩阵的体积从n1n1改为nn n1不考虑约束的节点总自由度 n1=NDFNJ, 根据ID数
12、组形成连接数组 在单元刚度k的总刚地址中只要为0,则根本不把k中的相应行和列送入结构刚度矩阵。,执行上述过程,得到的就是受约束结构刚度矩阵Kff。,n删去约束后,结构的节点自由度总数 n=n1-nr nr受约束节点的自由度数,(4)程序框图,4.2 结构刚度矩阵的等带宽存贮,1、结构刚度矩阵的稀疏性,在第3章里,我们曾经指出,结构刚度矩阵是具有大量零元素的稀疏矩阵。,现在对这一性质作进一步的考察。,在对结构系统进行平衡分析时知,如果i节点发生单位位移,只有与节点i有直接联系的那些节点才会受到影响,产生节点力。反之, i节点是否产生节点力也只会受与它直接相连的节点的影响。 设结构中共有100个节
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 结构 刚度 矩阵 存贮 方式 程序
限制150内