如何正确地给实体模型施加上轴力、剪力和弯矩呢?ANSYS并不支持直接往实体的某个截面上施加集中力,当然轴力可以用SFA命令施加一个均布荷载来“等效”,但要施加弯矩就需要上一些手段了。
目前,能实现上述目标的方法,主要有四种:
- 方法1:建立独立节点(mass21质量单元),利用cerig命令将整个截面与该节点建立成“刚性区”,然后将弯矩、剪力、轴力均以F命令施加到这个节点上;
- 方法2:建立独立的节点,将截面上每个节点与新建节点建立成MPC184单元,即形成许多根刚性梁,从而形成刚性截面,将弯矩、剪力、轴力均以F命令施加到新建节点上;
- 方法3:建立独立节点(mass21质量单元),在独立节点与截面上各节点之间建立RBE3单元,实现“主从约束”;
- 方法4:基于表面边界法,通过设置接触对来实现“主从约束”。
方法一只适用于小变形的情况(对于箱梁分析来说,小变形够用了),用起来命令最简洁。实例参考:如何在ANSYS中实体单元施加弯矩。
方法二的适用性最广,可以解决大变形、非线性问题,实例参考:如何在ANSYS中实体单元施加弯矩。
方法三和方法四的原理近似,方法三的原理说明请参考RBE2和RBE3单元的理论基础和ANSYS实现,方法三的实例见如何在ANSYS中实体单元施加弯矩,方法四的实例见实体单元施加弯矩的方法-基于表面边界法。
好了,今天不是来总结教程的,是来解决问题的。
我在运行一段老代码(2011年完成,当时采用的方法一,即利用cerig命令建立刚性区域)的时候,意外地遇到了两处报错:
- 提示我mass21单元和其他单元共用了实常数,且没有指定质量;
- 提示类似“Constraint equation 68 has node 1 = 392 degree of freedom = UY which is also a slave in coupled set 101.”的一串错误
上述两个问题报错,导致求解无法进行。
关于错误提示1,在老版本ANSYS中,虽然设定了mass21单元,但可以与solid单元共用一个“空的实常数”,也就是说实际上并没有给mass21单元指定质量,一样可用——现在看来,这应当是ANSYS新版本修补了该命令,使其更加符合逻辑。质量单元嘛,是应该指定质量的,在实践中给个很小的数值就可以了。
关于错误提示2,分别利用celist和cplist查看约束方程与耦合对的情况,通过nplot查找原因:
左下角的365402号节点就是新建独立节点,右上方是箱梁截面的节点。把右上角的节点放大一看:
原来如此,在老版本ANSYS中,耦合是不可以一对多的(当然新版本也不可以),但是cerig建立的刚性区域可以这样操作。即上面节点392,既能与新建节点组成刚性区域,也能与预应力钢筋节点建立耦合对,这样操作程序没有报错,计算结果也正常。
现在看来,很可能是之前老版本忽略掉了这种情况,让程序继续进行了。
找到了问题所在,解决就容易了。好在建立耦合对的时候,利用了数组,于是可以把参与耦合的节点在选择集中去掉。
先选择上混凝土节点中参与耦合的节点:
nsel,s,,,cp_node(1) *do,i,1,count1_node-1 nsel,a,,,cp_node(i+1) *enddo cm,conccp,node
就是图中这些“绿色”的节点,nsel,u,,,conccp ,从选择集中取消掉这些节点
变成这样的就行了,程序报错消失,问题完美解决。
一点体会,很多年前,提到ANSYS APDL的优势,其中之一便是“可以在不同版本之间无缝切换”。然而事实并非完全如此,很多时候程序会默默修补bug,重点往往由于是太细节的更新,不会和用户说明。所以,对于老代码也不能太放心啦。
非常感谢!