MATLAB Answers

How do I build pulley systems with 3 or more pulleys?

10 views (last 30 days)
I do seem to miss a thing here. I want a network of 3 or more pulleys, where the shaft of one pulley is driven by a motor while the others drive some inertias via their shafts (in the following examples there are free rotational ends instead of inertias). I have studied the "best practices for pulley networks" example and read all the documentation that is out there, but I still encounter this problem:
Modeling the network with "ideal" pulleys without slip works fine. However, if I change the belts to "V-belts", the solver is not able to solve it anymore. Either it does not converge, or it can not solve the algebraic equations, etc. Or another one: The simulation is successfull, however, while the driven pulley shaft is rotating, the belt ends of said pulley do not receive any translational motion (meaning there is "total" slip, right?). I attached a sample file.
Example system
Very slippery
As you can see, the pulleys/belts slip in an absolute way. This is also true, if I remove one spring/damper couple. The springs have a small initial deformation (-0.005m) as recommended, and I am using an ideal torque source instead of velocity source, also as recommended. What am I doing wrong? I should add that I do care about the wrap angle and either calculate it or copy it from the transmission's datasheet.
Please help!
Kind regards,
  1 Comment
Felix Schönig
Felix Schönig on 21 Sep 2020
After a lot of trial and error, I have one hypothesis:
If the number of pulleys is even, all pulleys can have "ends move in opposite direction". If the number of pulleys is odd, one pulley (or probably an odd number of pulleys) need to be set to "ends move in same direction".
While I can picture this to be valid for some real life examples, it is very confusing, since with wrap angles that are not close to 180° or 360° (as in a rope drum), the "ends move in same direction" does not make a lot of sense to me.

Sign in to comment.

Accepted Answer

Jocie Kluger
Jocie Kluger on 28 Sep 2020
Edited: Jocie Kluger on 28 Sep 2020
Hi Felix,
As you mention, try changing the “Belt direction” in one of the pulleys from “Ends move in opposite direction” to “Ends move in same direction”. Then the simulation shows belts with translational motion and little slip.
In the original model, the issue is that even though the springs are initialized in tension, the force in the belt ends of each pulley remains trivial (even at t= 0 during initialization). This issue is unique to having an odd number of pulleys in a loop.
It was tricky to understand the issue. One way to think about it is considering the simplified model below: the Simscape solver requires that the forces sum to 0 at the nodes: i.e. for pulleys 0, 1, and 2, the model has F0A = -F1B, F0B= -F2A, and F2B= -F1A. If all of the Belt pulleys use “Ends move in opposite direction”, then the additional constraining equations provided by the block are F0A= -F0B, F1A= -F1B, and F2A= -F2B. This set of 6 equations only has the trivial solution of all forces = 0. If Belt Pulley2 uses “Ends move in same direction”, then the last equation is replaced by F2A=F2B, and the system has a nontrivial solution for the forces.
Hope this helps,
Jocie Kluger
Jocie Kluger on 9 Oct 2020
Hi Felix,
Try the attached model, which works more robustly. I believe it matches the pulley parameters in the original model. Let me know if you encounter issues for different parameters/wrap angles.
It helps initialization to add an element that smooths the initial torque input to the loop during start-up. The smoothing element may be an inertia or damper added to the Torque source. For the velocity source, increasing the belt stiffness, workspace parameter K from K= 1e4 N/m to K= 1e6 N/m resolves the initialization issue. I’m checking with the solver team why that is the case for the velocity source.
I am fairly certain a loop with 5 pulleys needs exactly 3 pulleys with the “same direction” and 2 pulleys with the “different direction” to avoid the high relative velocity issue. Once the pulleys have been adjusted this way, it’s also important to check that the springs in the tensioners (a.k.a. belts) are oriented the right way. You can do this by using the Simscape Results Explorer. If any of the springs in the tensioners show a sign change, swap the tensioner connections.
By the way, I’m a library developer. I’ve been discussing this issue with the solver team and discussing potential future updates to the Best Practices Pulley page with the documentation team. We may continue this thread for this question. For formal support on future questions, it's best to contact MathWorks technical support.

Sign in to comment.

More Answers (1)

J Chen
J Chen on 21 Sep 2020
I think you need to put some mass in the system for non-ideal pulley. The pulleys output forces and torques at the terminals. The equations of motion need forces and masses.
  1 Comment
Felix Schönig
Felix Schönig on 21 Sep 2020
Good idea, but it didnt help. I added a mass to the belts (between pulley and spring/damper couple) and it got me the same results: no velocity at pulley end A or B.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!