How to simulate revolute joint friction?

59 views
Skip to first unread message

Patrick Roncagliolo

unread,
Sep 16, 2024, 11:58:23 AM9/16/24
to ProjectChrono
I'd like to simulate a revolute joint with some kind of friction in it, like a torque proportional to bearing/radial load and opposite in sign to the current rotation direction.

However, I could not find an example for this. Is it possible to implement such behaviour? Why Chrono doesn't implement, for example, radial bearings imposing non-ideal (not-exactly-free) rotation?

Thank you in advance,
Patrick

Radu Serban

unread,
Sep 18, 2024, 1:59:35 AM9/18/24
to ProjectChrono

Patrick,

 

A couple of options:

 

  1. If you only want to add viscous damping (and maybe also a linear rotational spring), you can activate the “ForceRz” on the revolute joint and set a spring coefficient and/or a damping coefficient. Something like:
        revolute->ForceRz().SetActive(true);
        revolute->ForceRz().SetSpringCoefficient(spring_coeff);
        revolute->ForceRz().SetDampingCoefficient(damping_coeff);
    See ChLinkLock.

  2. Alternatively, you can add a rotational spring damper actuator (ChLinkRSDA) for which you can specify the torque function through a user-provided callback. That way, you can implement whatever function you want, including one proportional to the current load. See demo_MBS_rot_spring for an example of defining a ChLinkRSDA torque callback.

 

--Radu

--
You received this message because you are subscribed to the Google Groups "ProjectChrono" group.
To unsubscribe from this group and stop receiving emails from it, send an email to projectchron...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/projectchrono/b647ef40-7b58-4744-b962-86126a740535n%40googlegroups.com.

Reply all
Reply to author
Forward
0 new messages