请教结构的自由度耦合的问题
在ANSYS等有限元软件里面,可以对某些节点中的全部或部分自由度进行耦合,从而实现这些不同节点的自由度具有相同的计算数值。我看了一下相关的说明,但是大家都是说如何应用实现的,而没有涉及到底层的理论。若是自己对某些结构动力学问题进行编程分析,应该如何实现对多个节点的自由度耦合?具体在刚度和质量矩阵上或者求解方法上进行哪些特殊操作来达到这个目的?
欢迎讨论,谢谢指点。
.
如果希望结构系统某节点一些自由度从属另外节点的另一些自由度,那么建立系统刚度矩阵和质量矩阵照样,只是系统求解方程编号时将从属节点那些自由度的方程编号用需要从属主节点自由度的方程编号,这样就保证了从属自由度的解是一样的了。。。
本帖最后由 redstar 于 2010-11-27 13:35 编辑
欧阳教授的意思是不是这样:含从属自由度(属于第n个节点)的方程里面的从属自由度,例如x_{nx},x_{ny},用主自由度(属于第n-1个节点)的x_{(n-1)x},x_{(n-1)y}强制替换,得到的自由度向量为{x1x,x1y.....,x_{(n-1)x},x_{(n-1)y},x_{(n-1)z}... x_{nx},x_{ny},x_{nz}...} 这样的形式,然后根据此时的系统方程整理整合质量矩阵和刚度矩阵,使得位移向量为只含单一未知量形式的自由度向量,总自由度数减少2,处理完毕后再进行求解。
不知道我的理解对不对,请欧阳教授继续进行指点,谢谢。
另外,请问定义哪个自由度为主自由度,哪个为从属自由度,对结果有没有影响呢?(因为从方程的角度来说,按照我上面的理解,应该是没有影响的。但是从对实际结构的影响的角度来说呢?)
.
通常有限元程序是先确定系统的未知自由度数,并对其进行编号,然后单元矩阵组装时是根据单元节点自由度对应系统节点自由度编号叠加到系统矩阵中去的。
如果是存在主从节点的关系,实际上就是从节点自由度不参与系统矩阵,只是主节点自由度求解得到后,从节点自由度与主节点自由度相等。
主节点可以有一个以上从节点,从节点只可以从属一个主节点...
那么在形成系统矩阵时,与从节点相连的单元矩阵里的元素如何处理呢?不可能不管吧? .
有限元系统矩阵(如总刚度矩阵、总质量矩阵..)生成就是单元矩阵向系统矩阵的组装,组装时的“对号入座”就是根据系统节点未知自由度的编号,也就是有限元对应代数方程未知量的编号,从节点实际上不存在未知数,最后就是用对应主节点代替的,涉及到单元的相关部分就没有组装了...
系统矩阵的维数也是减少的...
.
为了说明问题,一个系统可以所有节点的自由度都从属系统质心的自由度,那么不管系统所有节点的多少,最后的问题只是质点自由度有关的几个方程了,典型的就是理论力学的刚体运动,知道质心运动就可以推导出刚体处处的运动...,不管刚体多大,质心运动方程数最多6个. . .
本帖最后由 Rainyboy 于 2010-11-27 13:51 编辑
回复 8 # 欧阳中华 的帖子
我也来参与讨论哈。
假如我们有这样的结构(所有的弹簧都是一维的,每个节点只有一个自由度):
那么描述这个结构的有限元方程为:
如果我们将3和4节点耦合自由度,则结构变为:
那么描述这个结构的有限元方程为:
即在组集方程的时候将本来算作u4自由度的部分组集到u3自由度上去:
而在u4自由度只保证其与u3相等即可:
u4 = u3
欧阳中华 发表于 2010-11-27 10:42 static/image/common/back.gif
.
有限元系统矩阵(如总刚度矩阵、总质量矩阵..)生成就是单元矩阵向系统矩阵的组装,组装时的“对号入 ...
从节点的单元部分没有参与组装?
那么拿一个例子来说:对于两个梁单元E1和E2,假设它们相邻的两个节点N2和N3为铰接形式,平移自由度一致,角度自由度不同。每个节点都有和它相关的单元矩阵K1,K2,M1、M2。设1为主节点,2为从节点,我感觉此时不可能忽视从节点M2和K2的元素的,否则与事实不符了。
不知道我这么理解是否正确,请欧阳教授继续指点,谢谢。 Rainyboy 发表于 2010-11-27 12:38 static/image/common/back.gif
回复 8 # 欧阳中华 的帖子
我也来参与讨论哈。
谢谢Rainyboy,不过你的矩阵写的有点问题,两个部件的分块矩阵合成的,应该是6列,而不是5列,所以后面合成后的矩阵我有些看迷糊了。:( 本帖最后由 redstar 于 2010-11-27 13:37 编辑
前面Rainyboy你的评论:
“理论上说第一段的描述是对的,但是咱们有限元编程不是一般不好调整矩阵和向量的维数么,所以实际处理起来应该还有其他方法吧。比如约束条件的引入不就有置大数法什么的么?发表于 2010-11-27 12:05 ”
置大数法有一定的局限性,我原来就都是按置大数法来处理的,但是后来发现这个大数的量级不好定,搞不好就造成矩阵奇异了,特征频率就相差很大,所以我想采取更好的方式,想了解下ANSYS等有限元软件里是如何实现的。
另外,目前一般的语言都支持动态数组,矩阵和向量的维数调整已经不是什么大的问题了。
本帖最后由 Rainyboy 于 2010-11-27 13:59 编辑
回复 12 # redstar 的帖子
我觉得在这个问题上也许你我的出发点有区别,我认为耦合自由度的处理是在【由单元节点向量构建系统方程】的时候完成的;而你似乎认为是在【由单元节点向量构建系统方程】已经完成后,再引入耦合自由度,是么? Rainyboy 发表于 2010-11-27 13:58 static/image/common/back.gif
回复 12 # redstar 的帖子
我觉得在这个问题上也许你我的出发点有区别,我认为耦合自由度的处理是在【由 ...
谢谢,看明白你的处理方式了。我分析了一下,感觉是比较合理的。
恩,出发点是一些区别,这是因为我是从我已有的模型程序上出发来考虑的这个问题,已经构建了整体矩阵,目前就想直接对整体矩阵直接进行元素调整,适应自由度耦合这种特殊的情况。
再问一句,从编程实现的角度来说,这两种方法哪种更具有优越性,更容易实现呢?谢谢。
学习学习,好多都不懂啊
页:
[1]
2