主要内容

使用联系人代理来模拟联系人

接触代理是用于表示实际物体的接触部分的简单形状。例如,在训练人形步行者例如,红色球体被用来代表机器人脚的底部。

机器人的脚

通过使用接触代理,可以提高接触模拟的速度和健壮性。例如,使用接触代理可以加速涉及复杂几何图形的模型,并防止静态接触模拟中接触力位置的不连续跳跃。

如何使用联系人代理

在许多情况下可以使用联系代理。然而,添加联系人代理需要更大的建模工作,并且在一些情况下很难利用代理。如果接触交互涉及实际物体的所有特征,那么代理可能无法完全表示物体的每个元素。如果你的模型很简单,你只需要运行一次,你可以使用实际的身体来建模接触。

如何选择代理

要为接触问题选择适当的代理,您需要指出实际主体的哪些部分将进行交互,然后为这些部分选择最简单的代理。注意,代理应该足以覆盖所有的联系区域。

Simscape™多体™万博1manbetx支持用于接触建模的各种几何图形和主体。基于复杂性,这些几何图形和主体可以分为三组。

  • 类定义的几何图形无限平面,球形固体块。这些几何图形由于其简单的形状和较高的建模效率而成为充当代理的最佳候选者。

  • 砖固体圆柱形固体,椭球形固体块。它们比第一组几何图形的计算成本更高。如果不能使用第一组中的几何图形,请尝试使用该组中的主体作为代理。

  • 通过挤压、旋转和CAD导入创建的几何图形。通常,这些几何图形由于其复杂的形状、高计算成本和简化的表示形式而不适合用作代理。请注意,Simscape多体在对接触进行建模时,使用凸包而不是实际物体表示其中一些几何图形。

在复杂模型中使用联系人代理的技巧

Simscape多体模拟物体之间的接触空间接触力块。每对可能接触的部件都需要一个空间接触力块。因此,包含许多代理的复杂模型可能导致过多的代理空间接触力块和几何线。使用以下技巧来保持框图的组织性。有关如何使用这些技术,请参阅第一个示例。

  • 将每个实际主体及其代理放在一个子系统中。子系统还应该包括所有相关的刚性变换块,以便相对于实际主体正确地放置代理。

  • 复制和粘贴子系统或使用引用的子系统来创建相同的子系统。

  • 使用Simscape总线块来捆绑复杂模型的几何线。

通常,实体及其代理占据了3d空间中的一些公共区域。在模拟的最终版本中,您应该只呈现实际的主体,并隐藏代理。但是,在建模或调试步骤中,查看代理以验证是否按预期建模了所有联系人是很有帮助的。考虑定义两个变量来调整实际主体和代理的透明度。使用实际物体的质量进行模拟,并将接触代理的质量或密度设置为零,以避免对动力学产生任何影响。

例子

在包含复杂形状的接触模型中使用代理

对具有复杂形状的物体之间的接触进行建模,计算成本高且耗时长。为了加快模型的速度,您可以将复杂的形状分解为更简单的部分,并使用代理来表示涉及接触的部分,然后对这些代理之间的接触建模。

棘轮式升降机例如,旅行者沿着齿架攀登,因为旅行者手柄被泵上和下。只有齿条齿和攀援缸的水平面和斜面参与接触。而且,旅行者只展示平面运动。换句话说,只有攀援柱的中心部分参与了接触相互作用。因此,本例仅使用代理来表示这些部分,并对代理之间的联系进行建模。

棘轮式升降机

本例使用圆柱体表示齿条齿的水平面和斜面,使用球体表示攀援柱的中心部分。使用球体而不是整个攀爬筒的优点是球体比圆柱体更简单,并提供更有效的接触建模。

透明棘轮升降机

齿架是对称的,每边有15个齿。因此,本例使用60个圆柱来表示牙齿。该模型包括一个名为齿架的子系统,该子系统包括齿架的实际主体、齿的所有代理以及相关部件刚性变换块。下图显示了齿架子系统。

棘轮升降器子系统

因为齿形机架是对称的,所以只有机架一侧的代理是手动创建的,并被分组到左斜柱面和左横柱面子系统中。然后这些子系统被复制,粘贴,然后旋转180度y-轴表示右侧的牙齿。

下图显示了左水平气缸子系统。该模型使用15个相同的圆柱体来代表左侧牙齿的水平表面。为了最小化手动创建的块的数量,创建了一个参数化的引用子系统来模拟其中一个圆柱体。然后将参数化的参考子系统复制14次。参数化的参考子系统使用圆柱的索引来指定圆柱的位置。最后,圆柱体的几何线被捆绑使用Simscape总线块。用同样的方法建立了齿面斜面子系统的模型。

联系的子系统

Simscape总线Block有助于避免在整个模型中出现复杂的线网。下图显示了两条Simscape总线通过Contacts Left和Contacts Right子系统将齿条的60个代理与登山者的代理连接起来。

二级模型

左联系人和右联系人子系统包括所有的空间接触力块。下图为左侧齿的水平面与左侧攀援器圆柱的接触示意图。

水平接触子系统

使用代理来模拟静态联系人

Simscape多体采用基于点的惩罚方法来模拟物体之间的接触。这种方法意味着空间接触力块将必要的接触力施加到其连接的物体上,在两个物体之间的最大穿透点上。每一个空间接触力Block在每个时间步对每个物体只施加一个接触力。

这种基于点的方法在模拟物体平面之间的静态接触时存在挑战。例如,考虑对两块砖之间的接触建模。为了简单起见,下面的图像显示了这个问题的二维版本。假设砖块A被扔到砖块B上,而砖块B的位置是固定的。左图显示了首次检测到接触时砖的配置。在这一点上空间接触力块对砖a的左下角施加接触力,因为它具有最大的穿透力。随着时间的推移,力使砖A的向下运动减速,并使其顺时针旋转。然后,构型如图所示,力被施加到Brick A的右下角。随着Brick A与Brick B静态接触,接触力的位置在Brick A的各个角落之间快速且不连续地跳跃。这种行为对求解器来说是一种挑战,并且会显著降低模拟速度。

砖接触

使用联系人代理是避免上述建模挑战的一种有效方法。通过这些代理,接触被建模为八个砖-球对,而不是一个砖-砖对。当接触稳定时,每个底角处的法向力将是砖块A重量的四分之一。

砖球接触

另请参阅

|||||||||

相关的话题