我用Simscape/Simulink模拟带有发电机的摆动门。我想系统只有一个输入,那就是打开门所需的旋钮处的力,所以所有旋转关节都有它们的扭矩驱动装置来自动计算。然而,我收到一个错误,说:
“在包含旋转关节'SDL/SwingMotion‘的动态耦合部件中,具有自动计算力或力矩(4)的关节原始自由度(4)比输入(0)运动的关节原始自由度(4)要多。通常,运动方程没有唯一的解。解决这个问题的方法是增加输入的关节原语的数量,或减少具有自动计算力或扭矩的关节原语的数量。解决这个问题是为了模拟模型。”
动画工作良好,如果我设置所有四个旋转关节的扭矩驱动为零,但扭矩产生的力量不会被这样传递,发电机轴不会有任何扭矩。然而,我能够测量输出RPM (发电机轴的角速度)。我不太明白这个错误。为什么旋转块把其他旋转块的运动程度当作自己的?我该怎么解决这个问题?这里可以看到方框图。

大会的情况如下:

任何帮助都是非常感谢的!
发布于 2020-08-05 07:51:57
对于旋转关节,有三种选择:
所以你必须选择其中一个选项。如果你选择扭矩自动计算,那么你需要提供的运动,它必须遵循。如果你不需要跟随给定的运动,那么就不需要扭矩。如果你把扭矩计算为“无”,那么就没有扭矩可以从基础施加到跟随者,反之亦然,这就是自由度的概念。
似乎你想要基地和跟随者在某种程度上严格连接,并遵循相同的运动。而不是考虑使用刚性转换块,这只是一个刚性的链接,您可以在其中定义一个平移或旋转偏移量。
编辑
你所有效做的是将正向和逆动力学结合起来。你在门把手上施加一个力,让Simulink计算运动(直到现在为止的前向动力学),然后你想从它所做的运动中得到GenShaft上的扭矩,这是逆动力学。这不管用。
一个更好的方法来检查扭矩在GenShaft上,例如,想要一个特定的门铰链角速度,在它上设置一个比例控制器,并检查所需的扭矩。请注意,在铰链中没有建立摩擦力模型的情况下,所需的扭矩将变为零。
因此,如果您将除GenShaft之外的所有扭矩计算为“无”,则将此设置为输入提供的扭矩。然后在门铰链的角速度上设置一个比例控制器。然后你可以检查所需的扭矩。

https://stackoverflow.com/questions/63256794
复制相似问题