MPC与纯拉格朗日在壳单元绑定中的工程应用
大家好,由于今年换了工作,喜提996,所以暂时没有时间写小作文了,今天花一点点时间研究下壳单元的绑定连接。
如图,对紧贴在一起的板材进行抽中面操作。由于板材厚度均为5mm,所以大小面之间的距离为5mm。
其中4个小面中,AC的法向朝上,BD朝下。大面法向朝上。
进入Mechanical后会发现,由于间隙太大,程序没有自动创建绑定。将接触容差改为5.1mm,再次自动创建接触如下图。程序自动创建了4个接触对,每个接触对都是1个接触面+1个目标面,即1对1关系。
点击其中一个接触对会发现,接触面与目标面的法向选择都是程序控制,即程序会在计算中调整接触面方向与目标面方向的顶与底,此处看到的颜色显示不是计算最终的面方向选择。
固定长版一端,在另一端加力,计算结果如下。可以看到所有小板跟随长板运动,绑定是成功的。
(1)程序控制顶与底
删除所有接触,插入手动接触,接触选择4块小板,目标选择长板。面方向都选择程序控制,手动接触需要设置大于间隙的接触半径,这里设置为5.1mm。这里设置的是多对1的接触,多对多的接触同理。
为避免报错,打开弱弹簧开关,计算结果如下,可以看到小板中AC绑定成功,BD绑定失败。
(2)手动选择顶与底
回到接触中,修改接触面方向为顶部,这时4块小板的顶部将以红色显示,其中AC顶部(红色)朝上,BD顶部(红色)朝下。目标面方向也设置为顶部,此时长板的顶部将以蓝色显示。也就是AC与长板是面对背的关系,BD与长板是面对面关系。
计算结果如下,可以看到小板中BD绑定成功,AC绑定失败。
回到接触中,接触面方向为顶部不变,目标面方向也设置为底部,此时长板的底部将以蓝色显示。也就是AC与长板是背对背的关系,BD与长板是面对背关系。
计算结果如下,可以看到小板中AC绑定成功,BD绑定失败。
汇总以上结果如下表
序号 | 顶底选择 | AC板与长板关系 | AC板是否绑定成功 | BD板与长板关系 | BD板是否绑定成功 |
1 | 程序控制 | 未知 | 是 | 未知 | 否 |
2 | 手动选择 | 面对背 | 否 | 面对面 | 是 |
3 | 手动选择 | 背对背 | 是 | 面对背 | 否 |
从表中可知,在绑定接触的默认罚刚度(罚函数或增广拉格朗日)算法下,面对面或背对背的接触能成功绑定,而面对背的接触绑定失败。
当然,如果使用程序自动生成接触对,或者手动创建1对1的接触对,方向选择程序控制,就无需担心此问题。这是因为程序控制会在计算中探测面的接触方向,如果发现接触方向为面对背,程序将自动调整过来。这个探测会耗费一点点时间,ANSYS计算器也会温馨第跳出提示。
通过以上小案例,小伙伴可以有个疑问,能不能创建1对多(或多对多)的接触,也不用去调整面方向,让所有接触都成功呢?还真有。
在上面案例中,接触与目标方向仍然都选择顶部,即AC与长板面对背,BD与长板面对面,接触算法使用纯拉格朗日。
再次计算,结果如下,可以看到ABCD与长板均接触成功。
同样将接触算法修改为MPC,也能达到同样效果。
但是这两个结果明显有差距,对比文章开头自动生成的1对1接触,各计算的变形结果如下表:
序号 | 接触 | 接触算法 | 位移结果 |
1 | 自动生成1对1 | 默认罚刚度 | 11.2527 |
2 | 手动创建4对1 | 纯拉格朗日 | 11.191 |
3 | 手动创建4对1 | MPC默认选项 | 8.0296 |
从上表可以看出,纯拉格朗日算法结果与罚刚度相差无几。而MPC计算的位移明显偏小,即MPC提高了结构的刚度,这是因为MPC默认算法使用的是“分布式”约束类型,什么意思呢,看下图就明白了。
上图中蓝色箭头是这个节点半径5.1mm内探测到的目标节点,蓝色椭圆框外是“分布式”扩展的节点连接。
想要MPC算出正常的结果,那么就要减少连接数量,将MPC的约束类型修改为投影方式,即可解决。
序号 | 接触 | 接触算法 | 位移结果 |
1 | 自动生成1对1 | 默认罚刚度 | 11.2527 |
2 | 手动创建4对1 | 纯拉格朗日 | 11.191 |
3 | 手动创建4对1 | MPC默认选项 | 8.0296 |
4 | MPC分布式 | 8.0296 | |
5 | MPC投影,仅位移 | 11.191 | |
6 | MPC投影,解耦U到ROT | 10.742 |
可以看到,”MPC_投影仅位移“计算结果与纯拉格朗日相似,”MPC_投影解耦U到ROT“的结构刚度稍稍偏大。
这里需要注意的是,同一个面,施加了多个MPC(或纯拉格朗日),会跳出警告,这并不代表有问题,而是提示用户检查。
特别是一对接触对施加了MPC绑定后又施加了罚刚度或纯拉格朗日绑定,或者一对接触对施加了纯拉格朗日绑定后又施加了罚刚度或MPC绑定,会导致接触处刚度异常增大。如果用户确认没有多施加,此条警告可以无视。(关于这一点,帮助文档有详细介绍)
是不是MPC_投影法或者纯拉格朗日绑定方法,就能使得我们创建的多对多接触万无一失呢?面对面的接触的确是这样,那么能推广到边线接触、边边接触吗?
如下图3个独立壳体,既有边边接触,又有面边接触。
手动创建这两个接触,接触算法默认的罚刚度。
在模态计算中,固定底板一端。
计算结果如下。
将两个接触的算法改为为纯拉格朗日。
计算前6阶模态,可以发现前2阶全为0。
打开前两个振形如下图,分别为中间竖面的转动和左边斜面的转动。说明纯拉格朗日绑定无法约束节点的转动自由度。
将两个接触的算法都改为MPC——投影仅位移,结果与纯拉格朗日相同。
将两个接触的算法都改为MPC——投影解耦U到ROT,结果如下。
继续将接触改为MPC默认算法(分布式),结果如下。
对比几个计算结果如下表
模态阶 | 默认 罚刚度 | 纯拉格朗日 | MPC | ||
投影仅位移 | 投影解耦U到ROT | 默认(分布式) | |||
1 | 160.45 | 0 | 0 | 160.47 | 153.25 |
2 | 663.31 | 0 | 0 | 663.4 | 630.91 |
3 | 972.11 | 165.36 | 165.36 | 972.16 | 1001.4 |
4 | 1061.3 | 702.36 | 702.36 | 1061.4 | 1068.6 |
5 | 2831.4 | 1012 | 1012 | 2831.6 | 2857 |
6 | 3003.5 | 1059.6 | 1059.6 | 3003.8 | 3129.2 |
由此可以得出结论,纯拉格朗日或”MPC_投影仅位移“无法约束节点的3个转动自由度,”MPC_投影解耦U到ROT“顾名思义,是在”MPC_投影仅位移“的基础上,将三个方向的转动自由度从位移自由度解耦出来使其生效,简而言之,”MPC_投影解耦U到ROT“可以绑定节点6个方向的自由度。
从绑定刚度来看,”MPC_投影解耦U到ROT“最接近默认的罚刚度,而分布式的MPC只有在低阶时结构刚度较低,其它情况下结构刚度明显大于罚刚度,原因还是因为分布式MPC使用了1个节点对多个节点的绑定。
在1对1的面面接触中,推荐使用默认的罚刚度绑定方法,在多对多(或1对多)的面面接触中,推荐使用纯拉格朗日或投影法的MPC绑定。
在面边接触或边边接触中,推荐使用默认的罚刚度绑定方法,如果偏要使用MPC,推荐使用”投影解耦U到ROT“算法。