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

21 ビュー (過去 30 日間)
Henintsoa
Henintsoa 2024 年 6 月 14 日
コメント済み: Yifeng Tang 2024 年 6 月 21 日
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.

回答 (1 件)

Yifeng Tang
Yifeng Tang 2024 年 6 月 17 日
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 件のコメント
Henintsoa
Henintsoa 2024 年 6 月 21 日
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 2024 年 6 月 21 日
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.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMultibody Dynamics についてさらに検索

製品


リリース

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by