问题描述:
如下图所示,当以固定内部变形(U1,U2,U3)的单点连接单元模拟简支梁右端的固定铰支座时,为何此处的节点反力值为零?如何才能输出正确的反力值(30)呢?
解答:
对于连接单元“固定(Fixed)的内部变形”,程序会自动指定相应的节点约束(Constraint);而节点约束的刚性行为则是通过约束节点间的相对位移为零来实现的。因此,连接单元的内部变形 D(即节点间的相对位移)为零,单元内力 F 必然也等于零,毕竟“F = K
x D”嘛!其中,K 为单元刚度矩阵。对于单点连接单元,由于单元内力与节点反力一一对应,“节点反力值为零”也就不足为奇了。
注意:虽然上述以单点连接单元模拟铰支座的方法导致节点反力(即连接单元的内力)输出为零,但这并不意味着这种方法不可取。事实上,在无需输出连接单元内力的情况下,该方法完全可行而且可以巧妙模拟多种复杂的结点连接方式。既然问题的根源在于连接单元内部变形的“固定(Fixed)”方式,那我们就“对症下药”:在连接属性的定义中摒弃“固定”选项,换之以刚度放大来模拟刚性行为。如此一来,新的问题出现了:
模拟刚性行为的刚度系数到底该如何取值呢?
通常,以刚度放大的方式模拟刚性行为时,具体的刚度放大倍数应满足以下两个条件:
-
刚度应足够大,这样才能尽量模拟实际的刚性行为。
-
刚度不能过大,否则将造成数值奇异或收敛性问题。
可以看到,刚度放大倍数实际上并没有一个明确的定值,只要能满足力学上的刚性行为和数值计算上的稳定性即可。如《刚性杆的模拟》中所推荐的,对于 CSI 的结构分析软件,通常建议放大 1000 ~ 10000 倍。这个放大倍数在对构件进行弹性模量或截面刚度的放大时很容易实现,但在对弹簧或连接单元进行刚度系数的输入时却需要考虑与之相连材料的弹性模量。
例如,对于与混凝土构件相连的弹簧或连接单元的轴向(拉压)刚度,可以通过将单位体积(1m x 1m x 1m)混凝土的轴向刚度放大 10000 倍来确定。以常用的 C30 混凝土(弹性模量 30GPa)为例,轴向刚度可取为:
至于其他的截面刚度(弯曲刚度、剪切刚度和扭转刚度),基本上与上述轴向刚度处于同一数量级,故可统一取为 1.0E11kN/m 或 1.0E11kN·m/rad。考虑到钢材的弹性模量(如 200GPa)通常比混凝土高出一个数量级,故与钢构件相连的弹簧或连接单元的刚度值可统一取为 1.0E12kN/m 或 1.0E12kN·m/rad。
以上内容参考 CSI 知识库文档,链接如下:
https://wiki.csiamerica.com/display/kb/Bearing+and+foundation+springs
基于上述建议的连接单元的刚度系数取值,重新对【问题描述】中的简支梁进行建模,具体如下。此时,简支梁右端的节点反力(即连接单元的内力)可正常输出(非零)且与理论值完全一致。