将 1D 扭矩应用于 3D 旋转关节,无反作用力
Apply 1D Torque to 3D Revolute Joint without back reaction
模型就这么简单:我想对旋转接头的旋转法兰施加扭矩。
但是,扭矩反作用应 而不是 应用于旋转接头的支撑法兰。
扭矩反作用力确实在 其他地方 而不是在旋转关节本身中得到平衡。
real-world 以车轮为例:扭矩由动力总成提供并通过轴传递到车轮,因此扭矩反作用不会在轮毂上感知,而是在动力总成支架上感知。
所以,上面的none似乎是正确的:
- 蓝色:Revolute frame_a 出现了不应该出现的反应。支撑(白色圆圈)似乎总是平衡施加在法兰(灰色圆圈)上的扭矩,但在这种情况下没有意义;
- 红色:Revolute 没有反应 frame_a 但是 1D 线没有速度,这是不对的。
那么,如何在不被迫直接在关节上感应平衡扭矩的情况下向旋转关节施加扭矩?
我想到了这个需要修改 Revolute 关节的解决方案。
This is a minimal library with the modified Revolute Joint and a minimal example
基本上我只需要 frame_a 和 frame_b 上的扭矩相等 仅沿着与旋转轴正交的两个方向 (在它们相等之前沿着任何方向)。
并且辅助法兰提供的称为'tau'的扭矩沿旋转轴方向仅施加到frame_b,而对于frame_a沿该方向施加的扭矩为零。
这对我来说更有意义,但如果有人证明我错了,我会很高兴。
正如@tbeu 刚刚看到的,我也sent an issue to the Modelica Standard Library GitHub,所以等待一些官方回答可能是值得的。
模型就这么简单:我想对旋转接头的旋转法兰施加扭矩。
但是,扭矩反作用应 而不是 应用于旋转接头的支撑法兰。
扭矩反作用力确实在 其他地方 而不是在旋转关节本身中得到平衡。
real-world 以车轮为例:扭矩由动力总成提供并通过轴传递到车轮,因此扭矩反作用不会在轮毂上感知,而是在动力总成支架上感知。
所以,上面的none似乎是正确的:
- 蓝色:Revolute frame_a 出现了不应该出现的反应。支撑(白色圆圈)似乎总是平衡施加在法兰(灰色圆圈)上的扭矩,但在这种情况下没有意义;
- 红色:Revolute 没有反应 frame_a 但是 1D 线没有速度,这是不对的。
那么,如何在不被迫直接在关节上感应平衡扭矩的情况下向旋转关节施加扭矩?
我想到了这个需要修改 Revolute 关节的解决方案。
This is a minimal library with the modified Revolute Joint and a minimal example
基本上我只需要 frame_a 和 frame_b 上的扭矩相等 仅沿着与旋转轴正交的两个方向 (在它们相等之前沿着任何方向)。
并且辅助法兰提供的称为'tau'的扭矩沿旋转轴方向仅施加到frame_b,而对于frame_a沿该方向施加的扭矩为零。
这对我来说更有意义,但如果有人证明我错了,我会很高兴。
正如@tbeu 刚刚看到的,我也sent an issue to the Modelica Standard Library GitHub,所以等待一些官方回答可能是值得的。