Synchronizing metronomes
I do not have the perfect solution, but I want to add little something in the challenge. Simulating that kind of coupled non-linear system seems to be tricky in Simulink®.
At first I thought this challenge was going to be easy, I assembled a SimMechanics model, clicked play… but the pendulums are not synchronizing, as mentioned by Parasar in his post.
Then I thought, let’s try with Simulink®. I implemented the equations provided and then face two choices:
- By default, the coupling of the equations results in an algebraic loop. I try to let the algebraic loop solver resolving the algebraic loop, and the results are similar to the ones from SiMemchanics™. It looks like the Simulink® algebraic loop solver is doing a job similar to the SimMechanics™ solver. I cannot explain the exact reason, my guess is that the algebraic loop solver removes the non-linearity that makes the pendulums synchronize in real life.
- My standard way to remove algebraic loops is to introduce a delay in the feedback path. In that case, the pendulums synchronize but the model becomes instable. The maximum sample time of the Simulink® solver must be adjusted to an appropriate value to obtain an acceptable tradeoff between synchronization and stability.
I implemented the model using a vector approach. It allows easily changing the number of pendulums and modifying the algorithm.
From what I understand, the pendulum equations are non-linear and it should not be required to add any nonlinear limits, like bump stops in a metronome.
I hope Seth will provide explanations on why no one has been able to obtain the synchronization using SimMechanics™.
Guy
Cita come
Guy Rouleau (2024). Synchronizing metronomes (https://www.mathworks.com/matlabcentral/fileexchange/21748-synchronizing-metronomes), MATLAB Central File Exchange. Recuperato .
Compatibilità della release di MATLAB
Compatibilità della piattaforma
Windows macOS LinuxCategorie
Tag
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Scopri Live Editor
Crea script con codice, output e testo formattato in un unico documento eseguibile.