这个问题看到很多人遇到,但只有人问,没人回答。这里聊聊问题成因,并且举一个出现问题的实例,介绍解决该问题的两个方法。
错误信息内容
xx nodes are missing degree of freedoms. The MPC/Equation/kinematic coupling constraints can not be formed. The nodes have been identified in node set ErrNodeMissingDofConstrDef.
问题成因
这是个过约束问题。 通常是因为你给两个相邻的面 / 相交的线分别设置了一个约束 (可能是 MPC、Equation或者Coupling),然后它们的公共边 / 点就被约束了两次,实际计算的时候 Abaqus 不知道听哪个约束的好,左右为难,就懵逼了,不会算了。
[举起一枚坏栗子] 如图带孔方块,一端固定,一端受力。我希望平面承担与其垂直方向 (即 Z 方向) 的力,孔承担其他方向 (即 X、Y 两个方向) 的力 (对于带周向定位的螺纹连接,比如沉头孔,这是比较符合实际的受力情况)
于是分别设置两个 Kinematic Coupling Constraint
问题果然出现了!
如何查看具体是哪些节点有问题呢?
在 [Job Manager] 中点击右侧的 Results,打开对应的结果文件
然后在左侧 [Results] Session Data 树中依次展开 Output Databases → Job-xx.obd (出错的那个 Job) → Node Sets,然后点击 ErrNodeMissingDofConstrDef,有问题的节点即被高亮显示。可见这些节点正是前述两个约束面的交界线
如何处理这种问题 / 避免其出现呢?
这里给出两种方法,适用于不同情况。
方法1:倒角过渡
在两个面之间给个倒角做过渡。这一步可以用外部软件做,也可以用Abaqus Part模块里面自带的。倒角尺寸最好和附近网格大小大体一致,大了影响准确性,小了易产生低质量网格。 我这里网格的平均尺寸为1,因此倒角设置为0.7 (
=
1
/
2
=1/\sqrt{2}
=1/2)。因为画了倒角,这里用不了六面体网格了,换成四面体网格。
注意改变几何之后,需要检查相关的参考点 (Reference Point)、载荷 (Load) 和约束 (Constraint) 有没有失效。如果失效需要重新设置。
跑通,过约束问题得到解决。
方法2:选择不包含边界的表面
选择从面时提示 Select the constraint region type 时,不要选择默认的 Surface,而是选择 Node Region,然后按住 Shift 选择所需的面,再按住 Ctrl 取消选择边界即可 (被选择的边界显示为洋红色,未选择的边界显示为正红色)
可以不选择一个面的边界,也可以两个面的边界都不选,步骤相同
跑通,过约束问题得到解决。
几种方法的对比及选择策略
方法1: 倒角过渡 | 方法2: 选择不包含边界的表面 | ||
---|---|---|---|
取消选择一个边界 | 两个边界都不选 | ||
操作 | 需修改特征 | 只需选区时操作一下 | |
网格 | 需重新划分,且只能用四面体网格 | 不影响原有网格 | |
影响单元数量 | 1排 | 1排 | 2排 |
两个面是否平等 | √ | × | √ |
适用情况 | 两个面的地位是平等的,或者实际上两面相交处本来就有个倒角,只是建模时省略了 | 两个面重要程度不同 (一般保留承载较大面的边界) | 两个面重要程度相同,并且懒得画倒角 |
另外,大多数情况下,网格总数较多,且不是非常关注两面交界处受力情况。此时以上方法差异不大,用哪个都行,不必过于纠结。
下图为示例模型的结果,从左到右分别为:倒角法、不选平面的边界、不选孔边缘的约束、平面和孔边缘的约束都不选
可以看出,除两面交界处,结果差异不大。