0

我使用 Simscape/Simulink 模拟带有发电机的平开门。我想系统只有一个输入,即打开门所需的旋钮上的力,因此所有旋转接头都将其扭矩驱动设置为自动计算。但是,我收到一条错误消息:

“在包含 Revolute Joint 'SDL/SwingMotion' 的动态耦合组件中,具有自动计算的力或扭矩 (4) 的关节原始自由度比来自输入的运动 (0) 多。通常,运动方程不有一个独特的解决方案。通过增加来自输入的运动的关节基元的数量或减少具有自动计算的力或扭矩的关节基元的数量来解决这个问题。解决这个问题以便模拟模型。

如果我将所有 4 个旋转关节的扭矩驱动设置为无,动画效果很好,但力产生的扭矩不会以这种方式传递,发电机轴不会有任何扭矩。但是,我能够测量输出 RPM(发电机轴的角速度)。我不太明白这个错误。为什么旋转块将其他旋转块的运动程度视为自己的?我该如何解决这个问题?框图可以在这里看到。

框图

大会看起来像这样:

集会

任何帮助深表感谢!

4

1 回答 1

0

对于旋转接头,有三个选项:

  • 让旋转接头只充当铰链,不能从底座到从动件施加扭矩,反之亦然
  • 提供扭矩并根据扭矩计算运动。这称为前向动力学,运动由扭矩决定。
  • 提供运动并根据运动计算扭矩。这称为逆动力学,扭矩由运动确定。

因此,您必须选择其中一个选项。如果您选择自动计算的扭矩,那么您需要提供它必须遵循的运动。如果您不需要遵循提供的动作,则不需要扭矩。如果将计算的扭矩设置为“无”,则没有扭矩可以从底座施加到从动件,反之亦然,这就是自由度的概念。

似乎您希望 Base 和 Follower 有一定的刚性连接并遵循相同的动作。您可以考虑使用 Rigid Transform 块,它只是一个刚性链接,您可以在其中定义平移或旋转偏移。

编辑

你有效地做的是结合正向和反向动力学。您在门把手上施加一个力,让 Simulink 计算运动(到目前为止是正向动力学),然后您希望 GenShaft 从它正在做的运动中获得扭矩,这是逆动力学。那是行不通的。

检查 GenShaft 上的扭矩的更好方法是,例如,需要某个门铰链角速度,在其上放置一个比例控制器,然后检查所需的扭矩。请注意,在铰链中没有模拟摩擦的情况下,所需的扭矩将变为零。

因此,如果您将除 GenShaft 之外的所有计算扭矩设置为“无”,请将其设置为由输入提供。然后在门铰链的角速度上放置一个比例控制器。然后您可以检查所需的扭矩。

更新模型

更新模型

于 2020-08-05T07:51:57.433 回答