微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 1D Torque 应用到 3D Revolute Joint 无反作用

如何解决将 1D Torque 应用到 3D Revolute Joint 无反作用

模型就这么简单:我想对旋转接头的旋转法兰施加扭矩。
但是,扭矩反作用力不应作用于旋转接头的支撑法兰。
扭矩反作用力确实在其他地方得到平衡,而不是在旋转关节本身中得到平衡。
一个真实的例子是车轮:扭矩由动力总成提供并通过轴传递到车轮,因此扭矩反作用不会在轮毂上感知到,而是在动力总成支架上感知到。

enter image description here

所以,以上似乎都不正确:

  • 蓝色:Revolute frame_a 出现了不应该有的反应。支撑(白色圆圈)似乎总是平衡施加在法兰上的扭矩(灰色圆圈)),但在这种情况下没有意义;
  • 在 RED 中:Revolute frame_a 上没有反应,但 1D 线中没有速度,这不正常。

那么,如何在不被迫直接在关节上感应平衡扭矩的情况下向旋转关节施加扭矩?

Here the code

解决方法

我想出了这个需要修改 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,所以等待一些官方答复可能是值得的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。