冗余约束

了解冗余约束如何出现在您的模型中,以及它们如何影响您的解决方案。

什么是冗余约束?

当多个刚性铰接或某些类型的输入都试图控制零件的一个或多个相同自由度 (DOF) 时,在刚性多实体动力学中会出现冗余约束。

由于将网格单元连接在一起的许多节点,柔性(有限元)体可以具有数百或数千个 DOF。向柔性零件添加一个铰接会约束约束点附近的节点,但零件其余部分的其余节点可以自由移动,因此零件可以弯曲。您可以添加额外的铰接,而不会使零件约束过多。

刚性体仅有六个 DOF。整个实体只能沿三个平移 DOF (x, y, z) 在空间中运动,并绕三个 DOF (x, y, z) 旋转。将单个运动学铰接添加到刚性零件可以约束零件的六个 DOF 中的一个或多个。因此,对于刚性零件,在单个零件上增加一个以上的特定类型的运动学铰接会很快导致约束过多。

刚性(运动学)铰接是根据其类型删除 DOF 的理想化铰接。它们不能像真实世界中的铰接那样变形。以下是刚性铰接及其删除的 DOF 的一些示例:

铰接类型 删除的 DOF 允许
合叶或销 5 1 个旋转
圆柱或滑动铰接 4 1 个旋转

1 个平移

球和球承窝 3 3 个旋转
平移 5 1 个平移
平面 3 1 个旋转

2 个平移

此外,不使用控制器的、非基于力的转动电机和平动电机会被视为约束。它们沿会自己运动的方向删除 DOF。

为了确定模型的总体系统 DOF,使用一个叫做 Gruebler 数的公式:

移动零件 DOF - 约束 DOF = 系统总 DOF

冗余约束是如何构造的?

请考虑以下场景:

  • 悬挂在两个(刚性)合叶上的(刚性)门,这两个合叶依次与门框连接,门框使用运动学铰接接地。
  • 重力是门上唯一的载荷。

    在构建多实体模型时,自然会希望使用与真实世界中一样多的合叶将门连接到门框。但是,这可能会导致冗余约束。

是什么使系统冗余?

在上面的场景中,当添加第一个合叶将门连接到地面时,它删除了门的六个可用 DOF 中的五个。该解决方案完全定义为 1 个旋转 DOF,绕合叶轴旋转。当添加第二个合叶铰接时,它试图删除的是与第一个铰接相同的五个 DOF。最后,这两个铰接变得相互冗余。第二个铰接引入的约束方程与第一个铰接相同,不是求解所必需的。

下面是针对上述场景的完整 Gruebler 数示例。

1. Gruebler 数
零件 DOF
+6
合叶 1 -5
合叶 2 -5
总计 -4

冗余约束的后果

在求解时,如果存在冗余约束,求解器将尝试通过自动删除负责的约束方程来消除冗余。这是求解器的半随机过程。因此,删除的任何约束 DOF 上都不会有反作用力或力矩结果。例如,合叶铰接允许旋转 DOF。如果求解器删除了其任何受约束的平移 DOF,则铰接的 x、y 或 z 方向将不会产生线性反作用力。

注: 尽管已由求解器删除的约束 DOF 上不存在力和力矩,但位移、速度和加速度结果将是正确的。

示例 1:双合叶门

在下图中,左侧的门与右侧的门的建模方式不同。请注意反作用力的类型及其方向的不同。

左边的门只有一个合叶上的反作用力和弯矩,而不是两个都有。这是因为求解器确定上合叶约束与底部合叶约束冗余,因此它删除了关联的约束方程。因此,没有为删除的约束计算反作用力。另一方面,使用其他连接方法,结果与右侧门的经验解相匹配,并显示了正确的反作用力类型和方向。

示例 2:由轴承支撑的轴

在下图中,轴由两个轴承(刚性合叶铰接)支撑。在构建多实体模型时,自然会希望使用与真实世界中一样多的轴承将轴连接到轴承。这可能会导致冗余约束。

左边的轴有一个反作用力和弯矩,而它应该有两个相等的垂直反作用力,如右图所示。对于该刚体问题的虚拟表示,不需要两个刚性合叶铰接。求解器确定了一个或多个合叶约束彼此冗余,并选择删除冲突的约束 DOF。因此,没有为删除的约束计算反作用力。右侧轴的结果是正确的。

如何避免创建冗余约束:

  • 使用柔性铰接。默认情况下,Inspire Motion 使用柔性运动类型,以防止在使用刚性零件建模时出现冗余约束。柔性运动类型使用力平衡而不是约束方程,这不会导致冗余约束。可以将多个柔性运动类型添加到刚性零件,而不会产生冗余约束。
  • 使用柔性主体,它们由数百或数千个 DOF 组成。可以将多个刚性运动类型添加到柔性零件,而不会使该零件的约束过多。在对铰接摩擦力进行建模时,这也是一个很好的选择,因为铰接必须为刚性才能考虑摩擦力。
  • 使用运动接触。如果几何体允许,可以使用运动接触来代替运动类型。接触不使用约束方程,因此不能引入冗余。
  • 使用虚拟铰接。虚拟铰接将提供与理想运动学铰接相同的约束行为,不同之处在于,由于其求解方法的原因,它不能引入冗余。虚拟铰接使用另一种数值方法来求解一般运动方程。

最后注意事项:

冗余约束通常只在寻找作用力或力矩时才会引起关注。并非所有约束过多的模型都会产生不正确的结果。这取决于在哪里寻求结果以及哪些类型。例如,轴可能有某些冗余,这会阻止产生适当的垂直反作用力,但角速度将是正确的。力浏览器是一个很好的工具,可以快速验证各个铰接处是否存在特定的载荷反作用力。