*SetJointFriction() - single joint

Sets the friction properties for a joint.

Syntax

*SetJointFriction(varname, use_friction, mu_static, mu_dynamic, use_static,
                            transition_vel, max_deformation, effect, 
                            preload_input, reaction_force_input,
                            bending_moment_input, torsional_moment_input, 
                            f_preload, reaction_arm, initial_overlap, 
                            overlap_delta, rot_constraint, t_preload, pin_radius, 
                            friction_arm, bending_reaction_arm, ball_radius)

Arguments

varname
The variable name of the joint.
Data type: varname
use_friction
Specifies the joint friction state. \Valid values are: TRUE|FALSE.
Default: FALSE.
Data type: boolean
mu_static
The coefficient of friction when the slip velocity is less than transition_vel.
Default: 0.3
Data type: real
mu_dynamic
The coefficient of friction when the slip velocity is greater than transition_vel.
Default: 0.25
Data type: real
use_static
Specifies if the frictional forces are to be calculated during Static/Quasi-Static solution. Valid values are: ACTIVE_STATIC|INACTIVE_STATIC. See Comments below.
Default: ACTIVE_STATIC.
Data type: keyword
transition_vel
Specifies the velocity threshold for the transition from dynamic friction to static friction.
Default: 0.1
Data type: real
max_deformation
Specifies the maximum creep that can occur in a joint during the stiction regime. Only for SolverMode ADAMS.
Default: 0.01
Data type: real
effect
Specifies the frictional effect included in the friction model. Valid values are: STICTION_AND_SLIDING| STICTION_ONLY| SLIDING_ONLY. See Comments below.
Default: STICTION_AND_SLIDING
Data type: keyword
preload_input
Specifies if force preload is an input to the friction model. Valid values are: PRELOAD|NO_PRELOAD.
Default: PRELOAD
Data type: keyword
reaction_force_input
Specifies if joint reaction force is an input to the friction model. Valid values are: REACTION_FORCE|NO_REACTION_FORCE.
Default: REACTION_FORCE
Data type: keyword
bending_moment_input
Specifies if bending moment is an input to the friction model. Valid values are: BENDING_MOMENT|NO_BENDING_MOMENT. See Comments below.
Default: BENDING_MOMENT
Data type: keyword
torsional_moment_input
Specifies if torsional moment is an input to the friction model. Valid values are: TORSIONAL_MOMENT|NO_TORSIONAL_MOMENT. See Comments below.
Default: TORSIONAL_MOMENT
Data type: keyword
f_preload
Specifies the joint's preload friction force. See Comments below.
Default: 0.0
Data type: real
reaction_arm
Specifies the moment arm of the reaction torque. See Comments below.
Default: 1.0
Data type: real
initial_overlap
Specifies the initial overlap of the sliding bodies. See Comments below.
Default: 1000.0
Data type: real
overlap_delta
Specifies the change in overlap in the sliding bodies connected by the joint. Valid values are: CONSTANT|INCREASE|DECREASE. See Comments below.
Default: CONSTANT
Data type: keyword
rot_constraint
Specifies the rotational constraint in the universal joint on which the friction acts. Valid values are: I_YOKE|J_YOKE . See Comments below.
Default: I_YOKE
Data type: keyword
t_preload
Specifies the joint's preload friction torque. See Comments below.
Default: 0.0
Data type: real
pin_radius
Specifies the radius of the pin. See Comments below.
Default: 1.0
Data type: real
friction_arm
Specifies the moment arm used to compute axial friction torque. See Comments below.
Default: 1.0
Data type: real
bending_reaction_arm
Specifies the moment arm used to compute the contribution of bending moment on friction torque. See Comments below.
Default: 1.0
Data type: real
ball_radius
Specifies the radius of the ball joint. See Comments below.
Default: 1.0
Data type: real

Example

Example 1

In the following example, the translational joint friction is ON with "Preload" and "Torsional moment" inputs.
*BeginMDL( the_model, "Model" )

  *StandardInclude(FILE)
  *Point( p_block, "Block" )
  *Body( b_0, "Block", p_block, , , ,  )
  *SetBodyInertia( b_0,    1.0, 1000.0, 1000.0, 100.0, 0.0, 0.0, 0.0 )
  *Set( b_0.usecm, true )
  *TransJoint( j_0, "Translation", b_0, B_Ground, p_block, VECTOR, 
V_Global_X )
  *SetJointFriction( j_0, true, 0.30, 0.25, ACTIVE_STATIC, 0.1, 0.01, 
SLIDING_ONLY, PRELOAD, NO_REACTION_FORCE, NO_BENDING_MOMENT, 
TORSIONAL_MOMENT, 1000, 10, 30, INCREASE, , , , , , )
*EndMDL()

Example 2

In the following example, the cylindrical joint friction is ON. Frictional effect is set to static only by using the keyword "STICTION_ONLY".
*BeginMDL( the_model, "Model" )

  *StandardInclude(FILE)
  *Point( p_0, "Pivot" )
  *Point( p_1, "Point 1" )
  *Body( b_pendu, "Pendulum", p_1, , , ,  )
  *CylJoint( j_0, "Pivot", b_pendu, b_0, p_0, VECTOR, V_Global_Y )
  *Body( b_0, "Swing", p_0, , , ,  )
  *TransJoint( j_1, "SwingTrans", b_0, B_Ground, p_0, VECTOR, V_Global_Y )
  *SetBodyInertia( b_pendu, 1.0, 100.0, 100.0, 100.0, 0.0, 0.0, 0.0 )
  *Set( b_pendu.usecm, true )
  *SetPoint( p_1,       -100, 0.0, -75 )
  *SetBodyInertia( b_0,     0.01, 100, 100, 100 )
  *Set( b_0.usecm, true )
  *SetJointFriction( j_0,  true, 0.3, 0.2, ACTIVE_STATIC, 0.15, 0.01, 
STICTION_ONLY, PRELOAD, REACTION_FORCE, BENDING_MOMENT, , 100.0, , 50.0, 
CONSTANT, , 2000, 3, , , )
*EndMDL()

Example 3

In the following example, ball joint friction is activated. INACTIVE_STATIC keyword will deactivate friction during a Static/Quasi-Static solution.
*BeginMDL( the_model, "Model" )

  *StandardInclude(FILE)
  *System( sys_0, "Pendulum", def_sys_0 )
  *DefineSystem( def_sys_0 )
    *BallJoint( j_0, "Pivot", b_pendu, B_Ground, p_0 )
    *Point( p_0, "Pivot" )
    *Point( p_1, "Point 1" )
    *SetPoint( p_1, -100, 0.0, -75 )
    *Body( b_pendu, "Pendulum", p_1, , , , b_pendu.cm )
    *SetBodyInertia( b_pendu, 1.0, 100.0, 100.0, 100.0, 0.0, 0.0, 0.0 )
    *Set( b_pendu.usecm, true )
  *EndDefine()
  *BeginContext( sys_0 )
    *SetJointFriction( j_0, TRUE, 0.30, 0.26, INACTIVE_STATIC, 0.15, , , 
PRELOAD, REACTION_FORCE, , , , , , , , 1000, , , , 10 )
  *EndContext()
*EndMDL()

Context

*BeginMdl()

*DefineSystem()

*DefineAssembly()

*BeginContext()

Comments

This statement is used to set the friction properties of a joint in "Non-Compliant" mode. Five types of joints can be assigned frictional properties: Ball joint, Cylindrical joint, Revolute joint, Translational joint, and Universal joint.
use_static
ACTIVE_STATIC
Frictional forces will also be calculated during a Static/Quasi-Static solution.
INACTIVE_STATIC
Frictional forces will be calculated only during a Dynamic solution.
effect
Specifies the frictional effects included in the friction model.
STICTION_AND_SLIDING
Both static and dynamic friction effects are included.
STICTION_ONLY
Only static friction effect is included.
SLIDING_ONLY
Only dynamic friction effect is included.
bending_moment_input
This field is applicable to revolute, translational, cylindrical and universal joints.
torsional_moment_input
This field is applicable to translational joint only.
f_preload
Applicable for translational and cylindrical joints only.
This replicates the preload caused by interference in the mating parts (represented by bodies in MotionView, connected by the joint).
reaction_arm
Applicable for translational joint only.
Defines the effective moment arm of the joint reaction torque about the joint's axial axis. Contribution of torsional moment to frictional forces is evaluated using this arm.
initial_overlap
Applicable for translational and cylindrical joints only.
Defines the initial overlap of the sliding bodies connected by the joint in modeled condition. Contribution of bending moment to frictional forces is evaluated using this arm.
overlap_delta
Applicable for translational and cylindrical joints only.
Defines the change in the overlap. Frictional force in a sliding joint (translational or cylindrical) is characterized by the overlap in the joint, which can increase, decrease or remain constant.
CONSTANT
Overlap remains constant.
INCREASE
Overlap increases as the I-Marker translates along the positive Z-axis of the J-Marker.
DECREASE
Overlap decreases in the positive direction of the J marker.
rot_constraint
Applicable for universal joint only.
Defines the rotational constraint on which the friction acts.
I_YOKE
I-Marker's rotational constraint.
J_YOKE
J-Marker's rotational constraint.
t_preload
Applicable for revolute, cylindrical, universal and ball joints only.
Defines the preload friction torque in the joint.
pin_radius
Applicable for revolute, cylindrical and universal joints only.
Specifies the radius of the pin of the joint.
friction_arm
Applicable for revolute and universal joints only.
Specifies the moment arm used to compute axial friction torque in revolute and universal joints.
bending_reaction_arm
Applicable for revolute and universal joints only.
Specifies the moment arm used to compute the contribution of bending moment on friction torque.
ball_radius
Applicable for ball joint only.
Specifies the radius of the ball joint used for the evaluation of friction force and torque.