forceBeamColumn和dispBeamColumn

通过之前的学习,相信你对OpenSees已经有了初步的了解。但你仍然会有疑问,为什么这样一款奇奇怪怪的软件会如此风靡。它的流行绝不仅仅是因为它逼(hao)格(fa)很(lun)高(wen),而是确有其出众之处。其中之一就是它丰富的单元库,它为求解复杂问题提供了支持。今天我们就简要谈一下两种单元: dispBeamColumnforceBeamColumn 。这两种单元名字类似,功能相近,初识之下,往往不知如何选择。

dispBeamColumn 的全称是Displacement-Based Beam-Column Element即基于位移的梁柱单元(以下简称DBC),而 forceBeamColumn 的全称是Force-Based Beam-Column Element,即基于力的梁柱单元(以下简称FBC)。下面就两者的共性与特性进行说明。

两种单元有如下共性:均适用于细长梁,即符合平截面假定,弯矩与曲率成线性关系,忽略剪切变形的影响。对于深梁,模拟效果不佳。

两种单元的区别,从字面意思上来说,DBC是以位移作为基本未知量;而FBC是以力作为基本未知量。看到这里,想必你已经想到了自己失传多年的结构力学—— 位移法力法 。拓展到有限元中,它们有了更加通用的名字: 刚度法柔度法 。DBC以位移作为基本未知量,通过构造刚度矩阵和力矩阵来求解位移,再由节点位移计算其他参数,原理是刚度法。而FBC以力作为基本未知量,通过构造柔度矩阵和位移矩阵求解力,再从力出发,计算其他参数,原理是柔度法。乍看没什么区别,在结构力学中,我们也知道力法和位移法是等价的。所以为什么要这么费劲构造两种单元呢?

_images/liweiyifa.png

这是因为,在非线性很强的情况下,如,材料存在刚度退化或构件曲率变化剧烈时,DBC即使细化单元仍常出现数值计算的不稳定甚至难以收敛;相比之下,FBC仍可以获得较精确的解答。这又是为什么呢?

这一切的根源在于插值函数的选取。在刚度法中, 位移插值函数 也叫 形函数 。 形函数 是人为近似假定的,如用2节点线性元或3节点二次元表示一根梁的变形。为了提高拟合精度,要么选择用多个低阶单元代替梁(即划更密的网格),要么选择用更高阶的单元来拟合。但由于形函数构造的变形形状与实际变形并不一致,当出现强烈非线性行为时,即使采用高次元,或细化网格,也往往难以达到非常精确的拟合效果。由于刚度法是从位移出发,出发点引起的误差,将向刚度矩阵和力矩阵传递,所以后续求解过程精度均受到影响,导致数值计算的不稳定或收敛困难。

_images/danyuanxuanze.png _images/danyuanxihua.png _images/danyuanjieshu.png

那么,柔度法就可以解决这个问题吗?答案是肯定的。柔度法的插值函数称为 力插值函数 。以平面梁单元为例,在平截面假定下,扒出材料力学中就收获的微分关系。

_images/weifenguanxi.png _images/liangweifentu.png

在平截面假定下,这一微分关系是精确的。假设梁不存在分布荷载,即微分方程右侧为0。

Note

这个假设并不是必要的,我只是懒得写一长串积分而已

则有:

_images/lichazhihanshu1.png _images/lichazhihanshu2.png

其中矩阵B即为力插值函数。可知,在以力为基本未知量的柔度法中,插值函数是精确的。以此为出发点,在后续的推导中,可以获得精确的结果。

由于插值函数的精度差异,柔度法的求解精度更高。但这在普通线弹性问题中,是看不出来的。因为这时,位移插值函数构造变形与实际变形接近,亦能获得很高精度的解答。

那么,既然FBC有如此优点,为什么还需要DBC呢?其实在很多年以前,人们就意识到了柔度法的优势,但是对于一般力学问题,刚度法的计算速度更快。更重要的原因是,柔度法的程序实现很困难,其中原因也不是一两句话能讲完,相信你看到这里已经实在要看不下去了,不如我们下回分解吧。

经过多年的研究,FBC终于由Oregon State University的 Michael H. Scott 博士写进了OpenSees里。从中也可以看出,OpenSees由于其开源的特性,博采众家之长,在很短的时间里,就爆炸式地发展了起来,具有了一些传统软件所不具备的求解能力。