Simscape Multibody torque measurement on bushing joint seems wrong.

5 views (last 30 days)
Hello,
im currently working on a Simscape Multibody project, which simulates the forces and torques on the handle of a cordless screwdriver. The forces and torques are measured in a bushing joint, which computes the forces and torques in the base-frame, if I understood the documentation correct. (https://de.mathworks.com/help/sm/ref/bushingjoint.html;jsessionid=1315d3bf1ecb8487feb20176cb76) The calculated results do not correspond to the expected results, which made me decrease the level of complexity of the system down to the handle. I removed all parts besides the handle, the position-input (translation and rotation) and the external forces in x/y/z-direction.
The given example can be accesed on GitHub and is attached above.
The follower-frame of the bushing-joint is rotated in 90° around the +y-axis. The force is 100 N in the +y-direction.
The scope for the torques states, that all torques are ~0 Nm, but the torque around the +z-axis should be 10 Nm.
An error also occours for Fx = 100 N, Fy = Fz = 0 N while rot_x = 90° and rot_y = rot_z = 0°, where the magnitude of the torque is correct but the corresponding axis is wrong.
I really don't know where my mistake is, since there are almost no components left in the model.
I've also tried replacing the bushing-joint with a gimbal-joint but it still gives me the same values.
Has anyone experienced these kind of error in a problem before?

Answers (1)

Steve Miller
Steve Miller on 12 Feb 2023
Hi Lukas,
Your model is delivering the correct results.
  1. The force is being applied along the global z-axis, local y axis. The External Force and Torque block is configured to apply the force along the axes of the attached frame.
  2. Nonzero torque is shown about the global y-axis, which is consistent for a force applied along the global z-axis in the x-z plane of the bushing joint.
Check your settings closely to determine you are applying the torque about the axis you intend.
As for your error, it is likely you have "gimbal lock", when two of the rotational degrees of freedom are aligned. You will not have this problem if use the 6-DOF joint which uses a spherical primitive to represent the three degrees of freedom.
--Steve
  1 Comment
Lukas Wirth
Lukas Wirth on 12 Feb 2023
Edited: Lukas Wirth on 12 Feb 2023
Hello Steve,
thank you for your input. I already considered the posibility of a gimbal lock here. Is there a way to detect a gimbal lock directly in the model?
If I'm not mistaken, you can't use motion-data as input for the rotation in the 6-DOF joint.
So for the final model, we have data that gives us the position and rotation of the follower frame with respect to the base frame. Some external forces and torques are also applied to the model during its motion. This problem can only be modelled with the bushing joint right?
Greetings, Lukas
-----------------
EDIT:
I played around with the model some more, and figured out that for the setup shown below (screenshot), it still gives me some wrong values for the torque (2nd screenshot) as the magnitude of the torque should be 10 Nm in total if I'm not mistaken. When looking at the "total torque" plot, the values actually fit the expectations (3rd screenshot)

Sign in to comment.

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!