MATLAB Answers

Could the value of Spring Stiffness in the Revolute joint block (Simscape) be variable?

6 views (last 30 days)
I'm trying to build an inverse dynamic model, where the * spring stiffness* is a variable value, or more specifically, a function of the input, the motion trajectory. How should I implement for this? Could someone give me any related examples or information? Thanks a lot!


Sign in to comment.

Accepted Answer

Nicolas Schmit
Nicolas Schmit on 21 May 2018
The stiffness parameter of the revolute joint is a constant. You cannot change it in real time.
Here is how you can implement a variable stiffness:
  1. In the actuation tab, set the torque to "Provided by Input" and the motion to "Automatically Computed".
  2. In the sensing tab, activate the Position sensing.
  3. Create a feedback loop from the position sensing output to the torque input.
  4. In your feedback loop, place a function which calculates a torque as a function of the position. The derivative of your function with respect to the position will be the stiffness at a given time.


FENGPEI YUAN on 22 May 2018
Thanks for your help very much! I think it works! By the way, do you think if it works if I do the following things? 1. Set the spring stiffness in the Revolute Joint to be 0; 2. Add an External Torque/ Force Block which may be a function of sensing-position.
Thanks for your help again!
Nicolas Schmit
Nicolas Schmit on 22 May 2018
The External Force and Torque block models a one way force, from the outside world to a given reference frame, as if you had a buoyancy force or a kind of thruster attached to the reference frame.
In the case of a revolute joint, the force is a two way (action and reaction), so that if frame B applies a force to frame F, frame F applies an equal force of opposite direction to frame B. The revolute joint is design to handle this two way interaction, therefore you should build around this block instead of using the External Force and Torque block.
FENGPEI YUAN on 22 May 2018
I got your idea...but in my model, especially the inverse model, I need to actuate my mechanical system by Motion Input, where the spring stiffness is still dynamic. Therefore, I think of one solution, as shown in the attached picture... Moreover, if we monitor the actuator torque of the Revolute joint, I think it will work...

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by