File Exchange

image thumbnail

Four Bar Linkage Optimization in Simscape

version 20.2.2.2 (1.76 MB) by Steve Miller
Four-bar linkage lengths are optimized using MATLAB to follow a desired trajectory.

19 Downloads

Updated 10 Oct 2020

View Version History

GitHub view license on GitHub

This example shows a four-bar linkage modeled in Simscape Multibody that is optimized using MATLAB so that the tip of the linkage follows a desired trajectory.

Mechanical designers often wish to design mechanisms that will enable an end effector to follow a certain path. The lengths of the links and the position of the end effector influence the trajectory of the end effector in a complex kinematic relationship. Optimization algorithms can be used to tune those lengths to achieve the desired motion.

The process is similar to what is described in the video “Computational Design of Mechanical Characters” https://www.youtube.com/watch?v=DfznnKUwywQ



In this example, a parameter sweep is performed to see which trajectories are possible when varying a subset of the lengths. Then those lengths are tuned using MATLAB optimization algorithms until the resulting trajectory is within tolerances of the desired trajectory.

Please read the README.md file to get started.

Use the "Download from GitHub" button above to get files compatible with the latest release of MATLAB.
Use the links below to get files compatible with earlier releases of MATLAB.

For R2020a: https://github.com/mathworks/Simscape-Multibody-Four-Bar-Optim/archive/20.1.2.1.zip
For R2019b: https://github.com/mathworks/Simscape-Multibody-Four-Bar-Optim/archive/19.2.2.0.zip
For R2019a: https://github.com/mathworks/Simscape-Multibody-Four-Bar-Optim/archive/19.1.1.4.zip
For R2018b: https://github.com/mathworks/Simscape-Multibody-Four-Bar-Optim/archive/18.2.1.3.zip
For R2018a: https://github.com/mathworks/Simscape-Multibody-Four-Bar-Optim/archive/18.1.1.2.zip
For R2017b: https://github.com/mathworks/Simscape-Multibody-Four-Bar-Optim/archive/17.2.1.1.zip
For R2017a: https://github.com/mathworks/Simscape-Multibody-Four-Bar-Optim/archive/17.1.1.0.zip

See how to use Simscape Multibody to model a cam-follower mechanism:
https://www.mathworks.com/videos/modeling-contact-forces-in-a-cam-follower-94291.html

Learn more about multibody simulation with Simscape Multibody by watching this webinar
https://www.mathworks.com/videos/multibody-simulation-with-simmechanics-81877.html

Find other Simscape examples by searching posts for the keyword "physical modeling"
https://www.mathworks.com/matlabcentral/fileexchange/?term=%22physical+modeling%22

Learn more about MathWorks Simscape Products:
https://www.mathworks.com/physical-modeling/

Cite As

Steve Miller (2020). Four Bar Linkage Optimization in Simscape (https://github.com/mathworks/Simscape-Multibody-Four-Bar-Optim/releases/tag/20.2.2.2), GitHub. Retrieved .

Comments and Ratings (6)

Hello steve,
I need to develop a 4 bar mechanism (or any other kind of mechanism) to trace a desired path. I tried using this GUI but I don't understand how to input the desired trajectory in this code.
Please guide me through it so that I can input the desired path and get the optimum mechanism dimensions which trace that path.
Also, if you could suggest me any other, better way to do this, it will be very helpful.

Thank you.

Artem Egorov

John Ris

Hello Steve,
I am using the latest version of Matlab R2018b. Please send me the files! Much obliged!
My email is john.ris.1863@gmail.com
Best regards

Steve Miller

@John - which MATLAB release are you using? Let me know and I may be able to send you the files tested and saved in the release you are using.

John Ris

Hello! It doesn't work on my PC! I have the next error:

Output argument "options" (and maybe others) not assigned during call to "optimoptions".
Error in sm_four_bar_optim_match_path (line 86)
opt = optimoptions('patternsearch','PollMethod','GSSPositiveBasis2N',...

Please, tell me! What should I do to fix it?

MATLAB Release Compatibility
Created with R2020b
Compatible with R2017a to R2020b
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!