translational body spring damper system with friction

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.

 Respuesta aceptada

Arnaud Miege
Arnaud Miege el 20 de Jul. de 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 comentarios

Jordan
Jordan el 20 de Jul. de 2011
Thanks for the answer!
- I will try the different solvers you mentioned
- ok, will do
- For calculating the Static Friction Force I agree it would be more logical to subtract the external force from the computed force. However, in this Joint Stiction Actuator, the "Static Friction" input is used to compare with the Forward and Reverse Stiction Limits. Isn't it than more logic to compare the actually computed force with these limits, rather than the difference of computed and external force? If the Computed Force is greater than the Stiction Limit, the system should go back to/remain in the Unlocked Mode. Also in the explanation is mentioned: "In most realistic friction models, you would set Ftest equal to the computed FS."
see: http://www.mathworks.com/help/toolbox/physmod/mech/ref/jointstictionactuator.html
in the part Locked Mode (quite at the bottom of the page)
- In my system, the actuation is done in the z direction. For calculating the normal force (to multiply the friction coefficients with), shouldn't I only use the x and y direction as normal forces? They are the only one perpendicular to the movement (z direction). Or do I miss something?
I will also have a look at the mech_sticky_box demo. Didn't know it exists. I used the double pendulum demo (mech_dpen_sticky) to look at the usage of the Joint Stiction Actuator, but it was not always straightforward to see the similarities, since it was a rotational system.
If the things for my system are the same as used in the mech_sticky_box, I will most probably switch to the library block, but I think it's good to first try to understand the Joint Stiction Actuator block before using it blindly in a bigger model.
I was suggesting subtracting the external force from the computed force because this is what is done in mech_sticky_boxes and mech_sticky_dpen. It seems to make sense that if the computed force includes the external actuation, you'd want to subtract it in order to work out the static friction. As I said, using the Simscape blocks might be easier.
Jordan
Jordan el 21 de Jul. de 2011
I made the changes you mentioned, but with both solvers, the simulation yields an error. For the 23t solver, I get an error at 2.4058s. With the 15s solver, the simulation goes very slow after 2.3992s and gives an error at 2.5057s.
How can I change the visualization sample time?
You also need to subtract the external force from the computed force for it to run. To change the visualization sample time, please refer to the SimMechanics documentation:
http://www.mathworks.com/help/toolbox/physmod/mech/vis/bruinjw-1.html#f16-40258
Jordan
Jordan el 21 de Jul. de 2011
I also subtracted the external force from the computed force. I uploaded the model with the corrections you proposed.
http://www.2shared.com/file/Fp9_MHBz/test_damper_friction_3_corr.html
Sorry, by external force, I meant the external actuation input to the joint stiction actuator block. Apologies about the confusion.
Jordan
Jordan el 21 de Jul. de 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?
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.

Iniciar sesión para comentar.

Más respuestas (1)

reza
reza el 15 de Abr. de 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

Preguntada:

el 19 de Jul. de 2011

Community Treasure Hunt

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

Start Hunting!

Translated by