Incorrect Torque Calculation SimMechanics

1 view (last 30 days)
Jacob Korczyk
Jacob Korczyk on 14 Jul 2019
Answered: Steve Miller on 24 Jun 2021
I am wondering how exactly the gimbal joint works in SimMechanics. I have a robot rotating about a revoulte joint, on top of a gimbal joint that I have locked in place at 0, that is to say the gimbal joint is locked and cannot move, I am interested in the torques to keep this joint in place. I have fixed the angular acceleration to be zero for debugging purposes. When I leave the two frames coincident my simulation through SimMechanics matches with the Matlab numerical simulation I have developed using the parallel axis theorem and rigid body dynamics. With gravity turned off to ensure only torque due to the motion of the body. However when I move the revolut joint in the xy-plane SimMechanics believes that there is now a torque generated in the Z-axis when in reality I know there cannot be because angular acceleration is zero, while angular velocity is only in the z-axis because of this it cancels out torque generated in the z-axis because of the skew symmetric of angular acceleration. I use a rigid transform block to rigidly connect the gimbal joint to the revolut joint however this creats the inconsitency when displaced in the xy-plane but remains correct when displaced along the z-axis and the z-axes are coincident. My question is how to I rigidly connect a gimbal joint and a revolut joint without being coincident?

Answers (1)

Steve Miller
Steve Miller on 24 Jun 2021
Hi Jacob,
I am not sure I interpreted your explanation as you intended, but I believe the signals you are seeing on your scopes are mathematically accurate, just not the measurements you intended to review. If you lock a joint in place and measure the constraint torque, Simscape Multibody will tell you how much torque it requires to keep the joint in that position. If you apply a torque to a body about an axis that is offset and parallel from another axis about which it can rotate, I would expect that body to start rotating around that parallel axis. Attached to this answer is spinner_on_arm.slx which demonstrates what I think you are describing.
If you can upload your model, we can take a closer look.
--Steve

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!