translational body spring damper system with friction

5 views (last 30 days)
To test the Joint Stiction Actuator block in SimMechanics, I made a small model containing 2 bodies, a prismatic joint and a spring/damper. The actuation is a body actuator which yields a force step input after 2 seconds.
To get this small test model running it took me quite some time. At this moment it sometimes runs without problems, sometimes it runs very slow, other times it freezes (simulation is running but no progress can be seen, also the simulation time stops), and sometimes it gives an error after some seconds of running. To check, just change the constants at top right corner, the spring constant, the step value (force actuation) or the damping coefficients.
Is there anyone who has experience with this Joint Stiction Actuator, or with modeling friction? Also if there are some faults in the model, please let me know.

Accepted Answer

Arnaud Miege
Arnaud Miege on 20 Jul 2011
Hi,
Looking at your model, I would make the following comments:
  • This is a numerically stiff system, so use a stiff solver (ode15s or ode23t)
  • Leave the max step size to auto, and maybe change the AbsTol to 1e-4
  • I think you need to subtract the external actuation signal from the computed force to work out the static friction force
  • When computing the normal force, you need to include the z axis ( sqrt(u(1)*u(1) + u(2)*u(2) + u(3)*u(3)) )
The model runs OK with the above changes. Have a look at mech_sticky_boxes as an example. It uses blocks from the library mech_friction, which might be easier to use (the joint stiction actuator is used underneath the mask). You might also want to change the visualization sample time to something like 0.1s to speed up the execution of the model, or disable the visualization altogether.
You can maybe also try using the interface blocks to Simscape so that you can use the Translational Friction block to model the friction in the joint.
HTH,
Arnaud
  8 Comments
Jordan
Jordan on 21 Jul 2011
Ok, no problem. I'm glad you can help me!
It does seem to work with these changes. Still just a few question about the reasons:
- Shouldn't I also include the external actuation force (which actuates the body) to calculate the static friction. This one will also affect the Computed Force in the joint, no?
- Why is it necessary to include the force in z-direction to calculate the total normal force? Only the forces in x- and y-direction are perpendicular to the movement direction. And isn't it mostly the perpendicular force multiplied with the friction coefficient to determine the friction force?
Arnaud Miege
Arnaud Miege on 21 Jul 2011
I think the only external actuation force to subtract is the external one to the Joint Stiction actuator, because that's external to the friction. The external actuation of the body does not come into account when computing the friction (or at least not directly).
If you look at the reaction force component on the z axis, you'll see that it's not zero (in fact it's the computed force), so I think it should be included, even if the translation is along the z axis. You'll see that in mech_dpen_sticky of mech_sticky_box, all 3 axes are included. You're essentially taking the norm of the reaction force.

Sign in to comment.

More Answers (1)

reza
reza on 15 Apr 2012
Dear Mr. Arnaud In my point of view, Jordan's opinion is right. Since the computed force or torque is along the relative motion of the connected bodies, it does not have any contribution in the Stiction friction limit. Hence, the example provided by the Mathworks has some faults which should be modified if possible. Regards Mohajerpoor

Community Treasure Hunt

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

Start Hunting!