How to make a revolute joint turn in one direction in Simscape?

34 views (last 30 days)
Hello all,
I am building a bicycle on Simscape. The tyres are connected to axles which in turn are connected to the bicycle frame, and I used a revolute joint to connect the tyre and the axle (as shown in the picture below). I would like my tyres to only turn in one direction (clockwise) but it always turn in both senses when I simulate it. I saw another post saying that we needed to put a Rigid Transform before and after the Revolute joint to change its direction and I tried it but it didn't work (the only thing it did was make the tyre go clockwise or counter-clockwise at first depending on the rotation parameters of the joint, but the tyre still kept going both senses).
Could someone help me on this matter please? I am still new to Matlab and Simscape and I am learning new things and how to use it as I progress in my project, but that problem has kept me stuck for quite some time now.
Thank you very much.
Here is a screenshot of the model built with Simscape Multibody. I apologize for the the way it looks as it is quite messy but I hope you can still understand it.

Answers (1)

Yifeng Tang
Yifeng Tang on 17 Jun 2024
There may be better solutions, but just some ideas.
If you have access to Simscape Driveline, there is a one-way clutch (Unidirectional Clutch) that only transmit torque in one direction. When one end is fixed to the ground, the rotation become only clockwise, or counterclockwise, depending on how you set up the block. You can use this clutch block together with Multibody. Something like this:
Check out the documentation page of that Rotational-Multibody Interface block if you haven't used it before.
This does require you go between 1D Simscape world and 3D Multibody world.
Another possibility I can think of is to use the "mode" in the Revolute Joint. You can go between "normal" and "locked" mode based on an input. Enable that in the Revolute Joint dialog. Then you can set up algorithm externally to determine when to "lock" the joint, i.e. when it attempts to rotate backward (velocity close to zero, torque negative). You also need to set up logic for it to unlock (e.g. velocity zero, torque positive). And be careful with a small buffer region to ensure the trainsition is smooth.
Again, just some thoughts. I've tried neither myself.
  10 Comments
Henintsoa
Henintsoa on 21 Jun 2024
Hello,
Thank you so much for your answer and for taking the time to make this. Yes, this is what I was looking for, thank you so much. I'm sorry but could you please tell me how to make the wheel go faster? I increased and decreased the torque (the gain) but it goes very slowly no matter what.
Yifeng Tang
Yifeng Tang on 21 Jun 2024
The gain is there to adjust the "strength" of the one-way brake as a large damping coefficient. It's not what makes the wheel move. The force (PS Step) applied on the rectangular joint (i.e. on that shaft) is what pushes things forward. Then the friction between the wheel and the ground make the wheel rotate. Change the final value of the PS step will make the wheel go faster.

Sign in to comment.

Products


Release

R2023b

Community Treasure Hunt

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

Start Hunting!