Internal Mechanics change for joint block in mid-simulation with function - Simscape

7 views (last 30 days)
Hi all,
my question is: is it possible to modify some parameters in internal mechanics box of a joint block (like a prismatic joint) in Simulink, for example the spring stiffness, to let it assume a value dynamically during the simulation, using a function? This function must receive as input some values that I cannot pass it directly.. Reading other topics it would not seem possible, but does anyone know some tricks?
Thanks in advance!

Accepted Answer

Sam Hunt
Sam Hunt on 10 Feb 2021
The internal mechanics of a joint cannot change during simulation. They assume constant spring stiffness and damping. One solution for developing a variable spring and damper is to sense the position and velocity of the joint primitive in question and then develop a force law in Simulink that follows the desired behavior. That force can be provided as input to the joint primitive via the Actuation settings of the primitive. This strategy allows users to develop their own custom force laws. The MATLAB Function block in Simulink provides a nice interface for writing a custom force law.
  3 Comments
Sam Hunt
Sam Hunt on 10 Feb 2021
I don't understand your specific situation so it is difficult to say exactly what you need to do. The general strategy is to derive the force-law equations by hand on paper. You then sense relevant quantities from the Simscape Multibody blocks that are required by the force law. You then apply the forces via the Actuation settings in the joint blocks or via equal and opposite External Force and Torque blocks.
Giacomo Bonafede
Giacomo Bonafede on 15 Feb 2021
I see, Sam. I'll try this solution in my future work, because for the moment it requires many changes to my model and I cannot do it right now. I hope for the best!
Thanks for all!

Sign in to comment.

More Answers (0)

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!