Internal Mechanics change for joint block in mid-simulation with function - Simscape
7 views (last 30 days)
Show older comments
Giacomo Bonafede
on 1 Feb 2021
Commented: Giacomo Bonafede
on 15 Feb 2021
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!
0 Comments
Accepted Answer
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
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.
More Answers (0)
See Also
Categories
Find more on Assembly in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!