Force: Joint Friction
Format
<Force_JointFriction
id = "integer"
[ label = "string" ]
joint_id = "integer"
mu_static = "real"
mu_dynamic = "real"
[ max_stiction_deform = "real" ]
[ bristle_stiffness = "real" ]
[ damping_effects = "real" ]
[ viscous_effects = "real" ]
[ stiction_trans_vel = "real"]
[ inactive = "None  Static" ]
[ effect = "AllStiction Sliding" ]
[ inputs = "4bit integer" ]
[ torque_preload = "real" ]
[ friction_arm = "real" ]
[ bending_reaction_arm = "real" ]
[ pin_radius = "real" ]
/>
<Force_JointFriction
id = "integer"
[ label = "string" ]
joint_id = "integer"
mu_static = "real"
mu_dynamic = "real"
[ max_stiction_deform = "real" ]
[ bristle_stiffness = "real" ]
[ damping_effects = "real" ]
[ viscous_effects = "real" ]
[ stiction_trans_vel = "real"]
[ inactive = "None Static" ]
[ effect = "All StictionSliding" ]
[ inputs = "4bit integer" ]
[ torque_preload = "real" ]
[ ball_radius = "real" ]
/>
<Force_JointFriction
id = "integer"
[ label = "string" ]
joint_id = "integer"
mu_static = "real"
mu_dynamic = "real"
[ max_stiction_deform = "real" ]
[ bristle_stiffness = "real" ]
[ damping_effects = "real" ]
[ viscous_effects = "real" ]
[ stiction_trans_vel = "real" ]
[ inactive = "NoneStatic"]
[ effect = "AllStictionSliding" ]
[ inputs = "4bit integer" ]
[ force_preload = "real" ]
[ reaction_arm = "real" ]
[ initial_overlap = "real" ]
[ overlap_delta = "ConstantIncreaseDecrease" ]
/>
<Force_JointFriction
id = "integer"
[ label = "string" ]
joint_id = "integer"
mu_static = "real"
mu_dynamic = "real"
[ max_stiction_deform = "real" ]
[ bristle_stiffness = "real" ]
[ damping_effects = "real" ]
[ viscous_effects = "real" ]
[ stiction_trans_vel = "real"]
[ inactive = "NoneStatic"]
[ effect = "AllStictionSliding" ]
[ inputs = "4bit integer" ]
[ force_preload = "real" ]
[ torque_preload = "real" ]
[ pin_radius = "real" ]
[ initial_overlap = "real" ]
[ overlap_delta = "ConstantIncreaseDecrease" ]
/>
<Force_JointFriction
id = "integer"
[ label = "string" ]
joint_id = "integer"
mu_static = "real"
mu_dynamic = "real"
[ max_stiction_deform = "real" ]
[ bristle_stiffness = "real"]
[ damping_effects = "real"]
[ viscous_effects = "real"]
[ stiction_trans_vel = "real"]
[ inactive = "NoneStatic"]
[ effect = "AllStictionSliding"]
[ inputs = "4bit integer" ]
[ torque_preload = "real" ]
[ friction_arm = "real" ]
[ bending_reaction_arm = "real" ]
[ pin_radius = "real" ]
[ yoke_choice = "i_yokej_yoke"]
/>
Attributes
 id
 Element identification number, (integer > 0). This number is unique among all Force_JointFriction elements.
 label
 A string containing the element description.
 joint_id
 Specifies the joint ID of the joint where the friction force is applied.
 mu_static
 Specifies the static friction coefficient (μ_{s}) in the joint.
 mu_dynamic
 Specifies the dynamic friction coefficient (μ_{d}) in the joint.
 max_stiction_deform
 Specifies the maximum deformation that can occur in a joint for static friction.
 stiction_trans_vel
 Real value of the absolute velocity below, which the friction transitions from dynamic friction to static friction.
 inactive
 Specify "STATIC" to disable joint friction during static analysis.
 effect
 Specifies the frictional effect. By default, both static and dynamic friction is considered. Stiction uses only static friction, sliding uses only dynamic friction.
 inputs
 A 4bit integer value specifies the input forces to the friction model. By default, all the preload and joint reaction forces are included. Valid values are 0 or 1 for each bit.
 force_preload
 Specifies the preload friction force for translational and cylindrical joints.
 torque_preload
 Specifies the preload friction torque for revolute, cylindrical, universal and spherical joints.
 friction_arm
 Specifies the moment arm used to compute axial friction torque in revolute, universal joints.
 reaction_arm
 Specifies the moment arm of the reaction torque about the translation joint axial axes.
 bending_reaction_arm
 Specifies the moment arm to compute the bending moment in revolute, hooke and universal joints.
 pin_radius
 Specifies the radius of the pin for revolute, cylindrical, hooke and universal joints.
 ball_radius
 Specifies the radius of the spherical joint.
 initial_overlap
 Specifies the initial overlap of the sliding parts in translation and cylindrical joints.
 overlap_delta
 Specifies friction characteristics in the sliding joint.
 INCREASE
 Overlap increases as the I marker translates in the positive direction of the zaxis of the J marker.
 DECREASE
 Overlap decreases in the positive direction of the J marker.
 yoke_choice
 Specifies the yoke choice for hooke and universal joints.
 bristle_stiffness
 Specifies the bristle stiffness in the LuGre model, σ_{0}. See Comments 14 for more information.
 damping_effects
 Defines the damping coefficient for the predisplacement (or stiction) regime. Its main role is to damp out bristle vibrations in the predisplacement regime. Represented as σ_{1} in this documents. See Comments 14 for more information.
 viscous_effects
 Specifies the coefficient for the viscous damping force that occurs when relative
sliding actually begins. Represented as σ_{2}
in this document. See Comments 14 for more information. In order to guarantee passivity
of the LuGre model (for example, it always dissipates energy) the following condition
must be met:$${\sigma}_{1}<\frac{{\sigma}_{2}{\mu}_{d}}{{\mu}_{s}{\mu}_{d}}$$
Default: 0.0004
Examples

The friction force id =1. 

Friction force associated with revolute joint 301001. 

Static friction coefficient (μ_{s}) is 0.5. 

Dynamic friction coefficient (μ_{d}) is 0.3. 

Friction is active for all analysis modes. 

Transition velocity from dynamic friction to stiction is 10 vel. units. 

Both stiction and dynamic friction effects are to be considered. 

The friction preload is zero. 

Moment arm (rn) to compute axial friction torque is 7 length units. 

Joint pin radius (rp) is 5 length units. 

Moment arm (rb) to compute bending moment is 5 length units. 

All preload and reaction forces are considered for friction force calculation. 
Pendulum with friction model  


Comments
 MotionSolve uses the LuGre
(LundtGrenoble) model for friction. This model may be summarized as follows: A bristle model is used to idealize friction. Friction is modeled as the average deflection force of elastic springs between two mating surfaces. When a tangential motion is applied, the bristles will deflect like springs. If the deflection is sufficiently large, the bristles start to slip. The slip velocity between the mating surfaces, v_{slip}, determines the average bristle deflection for a steady state motion. It is lower at low velocities, which implies that the steady state deflection decreases with increasing velocity. Figure 2 depicts the bristle model.
 The LuGre model is capable of representing several different
effects:
 The effect of the mating surfaces being pushed apart by lubricant.
 The Stribeck effect (at very low speed). When partial fluid lubrication exists, contact between the surfaces decreases and thus friction decreases exponentially from stiction.
 Rate dependent friction phenomena, such as varying breakaway force and frictional lag Static friction between two surfaces.
 The LuGre model, for friction in one dimension, is expressed as follows:
$F=LuGre({\mu}_{s},{\mu}_{d},\sigma ,N,v,z)$ $F=N({\sigma}_{0}z+{\sigma}_{1}\frac{dz}{dt})+{\sigma}_{2}v$
$\sigma =\left[{\sigma}_{0}{\sigma}_{1}{\sigma}_{2}\right]$
$g(v)={\mu}_{d}+\left({\mu}_{s}{u}_{d}\right){e}^{{(\raisebox{1ex}{$v$}\!\left/ \!\raisebox{1ex}{$vs$}\right.)}^{2}}$
$\frac{dz}{dt}=v{\sigma}_{0}\frac{\leftv\rightz}{g(v)}$
States z = bristle deflection
Inputs
v = slip velocity
v_{s} = static > dynamic friction transition slip velocity
Parameters
s_{0} = bristle stiffness
s_{1} = damping coefficient
s_{2} = viscosity coefficient
v_{s} = stiction transition velocity
Outputs
F = friction force
 The LuGre function may be explained as follows: the function
g(v) defines the shape of the friction function.
As shown in Figure 3, g(v) can model Coulomb friction 2(a), Stiction 2(b), and the Stribeck effect (2c). From its definition: ${\mu}_{d}\le g(v)\le {\mu}_{s}$ .
At the microscopic level, two surfaces make contact at various asperities. These asperities are represented with bristles, and the bristles deflect like a spring when there is a relative velocity between the two surfaces. The deflection of the springs gives rise to the friction force. If the deflection is sufficiently large, then the bristles will slip in a highly random manner because of the irregular surfaces. Although the deflection of the bristles is random, the LuGre model only considers the average deflection. The average deflection of the bristles, z, is modeled by a firstorder differential equation that relates bristle deflection to slip velocity, coefficients of friction, and normal force. The parameter σ_{0} represents the bristle stiffness, and it models the stiffness resisting microdeformation in the friction element.
 The parameter σ_{1} represents the damping in the predisplacement (or stiction) regime. When the friction state is far away from this regime, its influence is negligible since $\dot{z}$ tends to zero on a faster timescale than the slip velocity,v, as the system leaves the predisplacement zone where the velocity v, is close to zero.
 The parameter σ_{2} represents viscous damping. This is primarily responsible for the increase in friction force with the increase in the slip velocity,v. The viscous effect dominates the damping when there is a slip velocity between the two surfaces.
 The LuGre model can capture hysteresis as shown in Figure 4.
 The LuGre model also captures frequency dependent hysteresis as
shown in Figure 5.
 The LuGre model can also be used to describe friction in N
Dimension as follows: Let the 3D space of relevance.
 Slip velocity ${v}_{r}={\left[{v}_{x}{v}_{y}{v}_{z}\right]}^{T}$ , ${v}_{m}=\Vert {v}_{r}\Vert $
 Bristle states ${Z}_{r}={\left[{Z}_{x}{Z}_{y}{Z}_{z}\right]}^{T}$ ,
Now define the following terms: $g({v}_{m})={\mu}_{d}+\left({\mu}_{s}{u}_{d}\right){e}^{{(\raisebox{1ex}{$v$}\!\left/ \!\raisebox{1ex}{$vs$}\right.)}^{2}}$
The 3D LuGre friction model is defined by the equations below: $\frac{d{z}_{i}}{dt}={v}_{i}{\sigma}_{0}\frac{\left{v}_{m}\right{z}_{i}}{g({v}_{m})}$
 ${F}_{x,y,z}=LuGre3d({\mu}_{s},{\mu}_{d},\sigma ,N,v,z)$ , ${F}_{i}=N({\sigma}_{0}{z}_{i}+{\sigma}_{1}\frac{d{z}_{i}}{dt})+{\sigma}_{2}{v}_{i}$
 i=x,y,z
 Friction Force Coupling.
The coupling effect leads to the familiar friction ellipse that defines the limiting forces when sliding is seen in x, y, z directions, as shown in Figure 6.
 Friction in a Revolute Joint.
Figure 7 below describes the geometry of a Revolute joint. A circular pin, shown in grey, holds two bodies (labeled 1 and 2) so that they are able to rotate about the zaxis, which is normal to the plane of the picture. The inset shows a yz section of the joint cutting through the pin.
The following geometrical properties are important for friction calculations: The radius of the pin, denoted as r_{p}.
 The bending reaction arm, r_{b}. The width of the inside part, Part1, is 2*r_{b}.
 The friction arm, r_{n}. This is the effective radius at which the axial force acts.
In a multibody simulation, a joint can be loaded in several ways, thus generating reactions forces and torques. Each of these contributes to the interface dynamics by means of friction forces. For a revolute joint, there are four contributing effects: Friction on the cylindrical surface of the pin, caused by the normal force in the xy plane, Nxy.
 Friction on the endcaps of the pin, caused by the axial force, Nz.
 Friction caused by the force couple equivalent to the moment arm in the xy plane, Nrxy.
 Friction caused by the assembly preload in the joint.
The calculation of each of these effects is explained next. Friction on the cylindrical surface of the pin, caused by the normal force in the xy plane, N_{xy}

Figure 8(a) describes the contribution coming from the loading in the xy plane. The contact surface is at the pin and hence the slip velocity depends on the pin radius and joint relative angular velocity ω_{r}.
The slip velocity in the xy plane is = v_{slip1}=ω_{r}r_{p}.
The force normal to the pin surface, ${N}_{xy}=\sqrt{\left({N}_{x}^{2}+{N}_{v}^{2}\right)}$ .
The friction force is: ${F}_{xy1}=LuGre({\mu}_{s},{\mu}_{d},\sigma ,{N}_{xy},{v}_{slip1},z)$ .
The torque generated by this friction force will be: T_{z1}=F_{x1}r_{p}.  Friction on the endcaps of the pin, caused by the axial force, N_{z}

From Figure 8(b) we see that friction due to axial loading leads to an annular disclike contact surface with an effective radius of r_{n}. The slip velocity in the axial direction is therefore: v_{slip1}=ω_{r}r_{n}. The force normal to the pin surface is N_{z}.
The friction force magnitude to axial loading is ${F}_{xy2}=LuGre({\mu}_{s},{\mu}_{d},\sigma ,{N}_{z},{v}_{slip2},z)$ .
The friction torque due to axial loading is T_{z2}=F_{xy2}r_{n}.
 Friction caused by the force couple equivalent to the moment arm in the xy plane, N_{rxy}
 The reaction moments can introduce additional frictional torque. This is shown
in Figure 9.
In this case, we need to first identify the individual reactions obtained from the reaction torques. Based on Figure 7, it is seen that since the moment arm of the reaction moment is r_{b}, the equivalent force in the couple would be:
${N}_{rxy}=\frac{\sqrt{\left({N}_{rx}^{2}+{N}_{ry}^{2}\right)}}{{r}_{b}};{N}_{rxy}$ is the reaction force acting on the contact surface.
The normal force acts at a radius r_{p}. Hence, the friction force can be expressed as:
${F}_{rxy}=LuGre({\mu}_{s},{\mu}_{d},\sigma ,{N}_{rxy},{\omega}_{p}{r}_{p},z)$ .
The frictional torque caused by this friction force is T_{z3}=F_{rxy}r_{p}.
 Friction caused by the assembly preload in the joint.

The torque preload is divided by μ_{s} to calculate an equivalent force normal to the cylindrical surface of the pin. Friction forces on the surface are calculated next, using the LuGre function. Finally, frictional forces on the cylindrical surface are calculated by computing the moment of the frictional forces.
$N{}_{preload}={F}_{preload}/\left({\mu}_{s}{r}_{p}\right)$
${F}_{preload}=LuGre({\mu}_{s},{\mu}_{d},\sigma ,{N}_{preload},{\omega}_{p}{r}_{p},z)$
T_{z4}=F_{preload}r_{p}
The friction force due to preload is T_{z4}.
The total frictional torque in the revolute joint is T_{Jfric}=T_{z1}+T_{z2}+T_{z3}+T_{z4}.
 Friction in a Translational Joint.
Figure 10 describes the geometry of a translational joint. A slider with a rectangular slot, shown in brick red, slides on a rectangular body, shown in green. The zaxis of marker, J, on the green body, defines the axis of translation. The inset shows an xy section of the joint cutting through the slider.
The following geometrical properties are important for friction calculations: The reaction arm, denoted as r_{n}.
 The size of the slider, along the axis of translation, is denoted as x_{s0}.
The translational joint can be loaded in several ways, each of which generates a friction force. The total friction force is a sum of each of these effects. For a translational joint, there are four contributing effects: Friction in the xy plane, caused by the rubbing of the block on the slider, Figure 11(a).
 Friction in the xy plane, caused by the torsion of the block on the slider, Figure 11(b).
 Friction in the yz plane, caused by the bending of the slider, Figure 11(c).
 Friction caused by the assembly preload in the joint.
 Friction in the xy plane, caused by the rubbing of the block on the slider
 The normal force acting in the xy plane is shown in Figure 10(a). N_{x} and N_{y} are the constraint forces preventing relative motion between block and slider in the x and ydirections respectively.
 Friction in the xy plane, caused by the torsion of the block on the slider.
 Referring to Figure 10(b), the torsional moment between the block and the slider causes contact at two of the corners of the block. Assuming that the distance between the contact points is the constant r_{n}, the torsional moment N_{rz} can be replaced by a couple of equal and opposite forces N_{xy} acting at each of the contact points.
 Friction in the xz and yz planes, caused by the bending of the slider.
 Referring to Figure 10(c),
the bending moment tends to bend the block relative to the slider. Contact occurs at
two points separated by a distance that is a function of
initial_overlap and overlap_delta. Let the
distance between the contacts be denoted as x_{s}. Replacing the bending
moment by a couple with a moment arm x_{s} gives:$${N}_{xy3}=\frac{\sqrt{\left({N}_{rx}^{2}+{N}_{ry}^{2}\right)}}{{x}_{s}}$$
 Friction caused by the assembly preload in the joint.
 The force preload is divided by μ_{s}
to calculate an equivalent force normal to the contact surface if the joint.
Friction forces on the surface are calculated next, using the LuGre function.
Thus:$${N}_{preload}=\raisebox{1ex}{${T}_{preload}$}\!\left/ \!\raisebox{1ex}{${\mu}_{s}$}\right.$$
The friction force due to preload is: $={F}_{z4}=LuGre({\mu}_{s},{\mu}_{d},\sigma ,{N}_{preload},{v}_{z},z)$ .
The total frictional force in the translational joint is: F_{Jfric}=F_{z1}+F_{z2}+F_{z3}+F_{z4}.
 Friction in a Cylindrical Joint.
Figure 12 describes the geometry of a cylindrical joint. A slider with a circular slot, shown in brick red, slides on a circular shaft, shown in green. The zaxis of Marker J on the green shaft defines the axis of translation and rotation. The inset shows an xy section of the joint cutting through the slider.
The following geometrical properties are important for friction calculations: The pin radius, denoted as r_{p}.
 The bending moment arm, along the axis of translation, is denoted as, x_{0}.
The cylindrical joint can be loaded in several ways, each of which generates a friction force. The total friction force is a sum of each of these effects. For a cylindrical joint, there are three contributing effects: Friction Force/Torque, caused by the radial load
 The normal force acting in the xy plane is shown in Figure 13(a). N_{x} and N_{y} are the constraint forces preventing relative motion between block and slider in the x and ydirections respectively
 Friction Force/Torque caused by the bending of the slider.
 Referring to Figure 11(b),
the bending moment tends to bend the block relative to the slider. Contact occurs at
two points separated by a distance that is a function of
initial_overlap and overlap_delta. Let the
distance between the contacts be denoted as x_{s}. Replacing the bending
moment by a couple with a moment arm x_{s} gives:$${N}_{xy2}=\frac{\sqrt{\left({N}_{rx}^{2}+{N}_{ry}^{2}\right)}}{{x}_{s}}$$
 Friction Force/Torque caused by the assembly preload in the joint.
 The force preload is divided by μ_{s}
to calculate an equivalent force normal to the contact surface if the joint.
Friction forces on the surface are calculated next, using the LuGre function.
Thus:$${N}_{preload}=\raisebox{1ex}{${F}_{preload}$}\!\left/ \!\raisebox{1ex}{${\mu}_{s}$}\right.$$
 Friction in a Universal Joint.
A universal joint can be conceptually thought of as being composed of two revolute joints. The axis of one revolute joint is along the IYoke, and the axis of the second revolute joint is along the JYoke. Friction on each of the yokes is modeled as for a revolute joint. For more information on modeling friction in the revolute joint, see Comment 8.
 Friction in a Spherical Joint.A spherical joint allows rotations about all the three axes and arrests all translational degrees of freedom. Hence, dynamics around a spherical joint can be cast in terms of relative motion on the spherical surface of the ball. A typical loading scenario for a spherical joint is described in Figure 13. In this case, referring to Figure 14below, the following geometrical properties are important for friction calculations:
 The ball radius, denoted as r_{b}.
The spherical joint can be loaded because of the constraint force between the ball and the socket and the joint assembly preload. The total friction force is a sum of each of these effects. For the sake of simplicity, we define the normal reaction as the sum of the joint reaction force and the preload force. This is represented as $\overrightarrow{N}$ in the figure below.
Let $N=\Vert \overrightarrow{N}\Vert $
The angular velocity of the ball with respect to the socket be ${\omega}_{r}=\left[{\omega}_{x}{\omega}_{y}{\omega}_{z}\right]$ .The components of the slip velocity can be computed in the global coordinate system as follows:
Slip velocity ${v}_{r}={\left[{r}_{b}{\omega}_{x}{r}_{b}{\omega}_{y}{r}_{b}{\omega}_{z}\right]}^{T}$ , ${v}_{m}=\Vert {v}_{r}\Vert $ Bristle states $Z={\left[{Z}_{x}{Z}_{y}{Z}_{z}\right]}^{T}$ .
The frictional force in the spherical joint, following the conventions described in Comment 6, is .
And the frictional torque is therefore .
 The ball radius, denoted as r_{b}.
 Friction in a Hook Joint.
A hook joint can be conceptually thought of as being composed of two revolute joints. The axis of one revolute joint is along the IYoke, and the axis of the second revolute joint is along the JYoke. Friction on each of the yokes is modeled as for a revolute joint. For more information on modeling friction in the revolute joint, see Comment 8.
 References:
 C. Canudas de Wit, H. Olsson, K. J. Aström, and P. Lischinsky,A New Model for Control of Systems with Friction. IEEE Transactions on Automatic Control, March 1995, vol.40, No.3, pp.419425.
 Velenis E., Tsiotras P., CanudasdeWit C.(2005), "Extension of the LuGre Dynamic Tire Friction Model to 2D Motion", Vehicle System Dynamics, 2005.
 Bliman, P. A. Sorine, M., "Friction modeling by hysteresis operators. Application to Dahl, sticktion and Stribeck effects", Pitman Research Notes in Mathematics Series, 1993, Issue 286, pages 10
 Olsson, H. Aström, K. J. Canudas De Wit, C. Gaefvert, M. Lischinsky, P., "Friction Models and Friction Compensation", European Journal of Control, 1998, Vol. 4; Number 3, pages 176195
 J. C. Trinkle, J.S. Pang, S. Sudarsky, G. Lo, "On Dynamic MultiRigidBody Contact Problems with Coulomb Friction", ZAMM  Journal of Applied Mathematics and Mechanics / Zeitschrift für Angewandte Mathematik und Mechanik, Volume 77, Issue 4, pp. 267279, 1997