首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >水弹性接触不提供期望的接触面。

水弹性接触不提供期望的接触面。
EN

Stack Overflow用户
提问于 2022-05-19 06:04:42
回答 1查看 145关注 0票数 6

我一直在用水弹性接触来模拟钉入孔任务。模拟场景就像

蓝钉是一个柔顺的水弹性圆柱体,孔是一个刚性的水弹性网格。孔网的线框视图是

当我推倒木桩并在其上施加外力(左端向下的力,指向孔表面)时,我发现钉突然倾斜。

可以看出,钉头的左边部分穿透了孔的表面,从而产生了倾斜的角度。由于栓钉是一个柔顺的身体,所以预期会有穿透力。然而,让我困惑的是倾斜角和接触面。我所期望的是,接触面应该包含所有区域的渗透部分的钉,然而,我真正得到的只是一个条带。图示如下图所示。左边显示我真正得到的接触面,右边显示我期望的接触面。

由于孔表面和桩端之间的接触是表面对表面的接触,所以我预计,在孔表面和桩端接触后,钉将处于起跑线位置(垂直方向),尽管受到外力的影响,钉的倾斜角还是很小的。然而,由于接触表面是条,钉可以沿该条旋转,倾斜角度可能很大。一开始,我怀疑原因是我的洞的网格是稀疏的。然而,在我把更多的三角形添加到我的洞表面后,我得到了几乎相同的结果。增加水弹性模量也没有帮助。我还试着在钉的尖端加上小的碰撞球,就像点接触的情况。然而,我得到

代码语言:javascript
复制
RuntimeError: Bad tetrahedron. Cannot compute gradient.

我应该做什么修改才能得到正确的接触面?或者有变通的方法可以使钉的穿透倾斜角在表面接触后变小?

我已经运行了ball and plate水弹性接触的例子,并发现板与平面之间的接触似乎没有这个问题。

非常感谢你的回答!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-19 15:23:15

(编辑):resolution_hint太小了(~1e-17),触发了德雷克的一个bug。下面是resolution_hint = peg_circumference / 20的结果

(原答覆):

您有一个公共分支,我可以用来复制错误吗?

我的第一个怀疑是你的resolution_hint太大了。给出了水弹性力学中使用的所有原始形状的内部网格表示,该参数控制网格的粗度。如果有一个非常大的分辨率提示,圆柱体的近似可能最终成为一个盒子。尝试一个较小的分辨率提示。

如果不起作用的话:

您是使用圆柱形原语作为您的钉子,还是使用带有drake:declare_convex标记的网格?我的另一个怀疑是,在钉网或孔网中的一些面的方向是相反的。

我们依赖于这样一种期望,即作为水弹性几何的网格具有一致的和向外定向的面法线。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72299376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档