*SetJointFriction() - asymmetric joint pair
Sets the friction properties for an asymmetric joint pair.
Syntax
*SetJointFriction(varname, , use_friction_l, mu_static_l, mu_dynamic_l,
use_static_l, transition_vel_l, max_deformation_l,
effect_l, preload_input_l, reaction_force_input_l,
bending_moment_input_l, torsional_moment_input_l,
f_preload_l, reaction_arm_l, initial_overlap_l,
overlap_delta_l, rot_constraint_l, t_preload_l,
pin_radius_l, friction_arm_l, bending_reaction_arm_l,
ball_radius_l
, use_friction_r, mu_static_r, mu_dynamic_r,
use_static_r, transition_vel_r, max_deformation_r,
effect_r, preload_input_r, reaction_force_input_r,
bending_moment_input_r, torsional_moment_input_r,
f_preload_r, reaction_arm_r, initial_overlap_r,
overlap_delta_r, rot_constraint_r, t_preload_r,
pin_radius_r, friction_arm_r, bending_reaction_arm_r,
ball_radius_r)
Arguments
- varname
- The variable name of the joint.
- use_friction_l
- Specifies the joint friction state. Valid values are: TRUE|FALSE.
- mu_static_l
- The coefficient of friction when the slip velocity is less than transition_vel.
- mu_dynamic_l
- The coefficient of friction when the slip velocity is greater than transition_vel.
- use_static_l
- Specifies if the frictional forces are to be calculated during Static/Quasi-Static solution. Valid values are: ACTIVE_STATIC|INACTIVE_STATIC. See Comments below.
- transition_vel_l
- Specifies the velocity threshold for the transition from dynamic friction to static friction.
- max_deformation_l
- Specifies the maximum creep that can occur in a joint during the stiction regime.
- effect_l
- Specifies the frictional effect included in the friction model. Valid values are: STICTION_AND_SLIDING| STICTION_ONLY| SLIDING_ONLY. See Comments below.
- preload_input_l
- Specifies if force preload is an input to the friction model. Valid values are: PRELOAD|NO_PRELOAD.
- reaction_force_input_l
- Specifies if joint reaction force is an input to the friction model. Valid values are: REACTION_FORCE|NO_REACTION_FORCE.
- bending_moment_input_l
- Specifies if bending moment is an input to the friction model. Valid values are: BENDING_MOMENT|NO_BENDING_MOMENT. See Comments below.
- torsional_moment_input_l
- Specifies if torsional moment is an input to the friction model. Valid values are: TORSIONAL_MOMENT|NO_TORSIONAL_MOMENT. See Comments below.
- f_preload_l
- Specifies the joint's preload friction force. See Comments below.
- reaction_arm_l
- Specifies the moment arm of the reaction torque. See Comments below.
- initial_overlap_l
- Specifies the initial overlap of the sliding bodies. See Comments below.
- overlap_delta_l
- Specifies the change in overlap in the sliding bodies connected by the joint. Valid values are: CONSTANT|INCREASE|DECREASE. See Comments below.
- rot_constraint_l
- Specifies the rotational constraint in the universal joint on which the friction acts. Valid values are: I_YOKE|J_YOKE. See Comments below.
- t_preload_l
- Specifies the joint's preload friction torque. See Comments below.
- pin_radius_l
- Specifies the radius of the pin. See Comments below.
- friction_arm_l
- Specifies the moment arm used to compute axial friction torque. See Comments below.
- bending_reaction_arm_l
- Specifies the moment arm used to compute the contribution of bending moment on friction torque. See Comments below.
- ball_radius_l
- Specifies the radius of the ball joint. See Comments below.
The parameters for the right side joint are appended with "_r" in the *SetJointFriction() statement above. These parameters hold the same meaning as their left side counterparts, but are applicable to the right side joint.
Example
Example 1
In the following example, the universal joint pair friction is set to TRUE and properties
are
assigned:
*BeginMDL( the_model, "Model" )
*StandardInclude(FILE)
*PointPair( p_0, "Pivot" )
*BodyPair( b_pendu, "InputShaft", p_1, , , , b_pendu.cm )
*UJointPair( j_0, "Pivot", b_pendu, b_0, p_0, SHAFT, POINT, p_5, SHAFT, POINT, p_6 )
*PointPair( p_2, "Ground Shaft" )
*PointPair( p_3, "Body shaft" )
*PointPair( p_1, "Point 1" )
*BodyPair( b_0, "OutputShaft", p_4, , , , )
*PointPair( p_4, "Point 4" )
*InlineJointPair( j_1, "OutputShaftInlJt", b_0, B_Ground, p_5, ORIGIN, POINT, p_0 )
*PointPair( p_5, "Point 5" )
*PointPair( p_6, "Point 6" )
*RevJointPair( j_2, "InputShaftRevJt", b_pendu, B_Ground, p_6, POINT, p_0 )
*Set( b_pendu.usecm, true )
*Set( b_0.usecm, true )
*SetOrientation( b_pendu.cm, LEFT, TWOAXES, ZX, POINT, p_0, DXDYDZ, 1.0, 0.0, 0.0 )
*SetBodyInertia( b_pendu, LEFT, 1.0, 100000, 100000, 100000, 0.0, 0.0, 0.0 )
*SetBodyInertia( b_0, LEFT, 1, 100000, 100000, 100000 )
*SetPoint( p_0, LEFT, , -100 )
*SetPoint( p_2, LEFT, 10, -100, 0.0 )
*SetPoint( p_3, LEFT, -10, -100, -4 )
*SetPoint( p_1, LEFT, -25, -100, -10 )
*SetPoint( p_4, LEFT, 25, -100 )
*SetPoint( p_5, LEFT, 50, -100, 0 )
*SetPoint( p_6, LEFT, -50, -100, -20 )
*SetJointFriction( j_0, , true, 0.35, 0.26, ACTIVE_STATIC, 0.11, 0.012, STICTION_AND_SLIDING, PRELOAD, REACTION_FORCE, BENDING_MOMENT, , , , , ,
J_YOKE, 1000, 10, 10, 100,
, true, 0.36, 0.27, ACTIVE_STATIC, 0.1, 0.012, STICTION_AND_SLIDING, PRELOAD, REACTION_FORCE, BENDING_MOMENT, , , , , ,
I_YOKE, 1000, 10, 10, 100, )
*EndMDL()
Example 2
In the following example, the revolute joint pair friction properties are
set:
*BeginMDL( the_model, "Model" )
*StandardInclude(FILE)
*PointPair( p_0, "Pivot" )
*PointPair( p_1, "Point 1" )
*BodyPair( b_pendu, "Pendulum", p_1, , , , )
*RevJointPair( j_0, "Pivot", b_pendu, B_Ground, p_0, VECTOR, V_Global_Y )
*SetBodyInertia( b_pendu, LEFT, 1.0, 100.0, 100.0, 100.0, 0.0, 0.0, 0.0 )
*Set( b_pendu.usecm, true )
*SetPoint( p_1, LEFT, -100, -100.0, -75 )
*SetPoint( p_0, LEFT, , -100 )
*SetJointFriction( j_0, , true, 0.36, 0.28, INACTIVE_STATIC, 0.15, 0.01,
SLIDING_ONLY, NO_PRELOAD, REACTION_FORCE, BENDING_MOMENT, , , , , , , 1000,
10, 24, 60,
, true, 0.36, 0.28, INACTIVE_STATIC, 0.15, 0.01,
SLIDING_ONLY, NO_PRELOAD, REACTION_FORCE, BENDING_MOMENT, , , , , , , 2000,
12, 25, 65, )
*EndMDL()
Context
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.
The second field in the *SetJointFriction() is empty for an asymmetric
joint pair. Inserting the keyword "LEFT" or "RIGHT" will make this joint symmetric with
respect to left or right side respectively. In this case, the second set of data, if
specified are ignored.
- 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.
- reaction_arm
- Applicable for translational joint only.
- initial_overlap
- Applicable for translational and cylindrical joints only.
- overlap_delta
- Applicable for translational and cylindrical joints only.
- rot_constraint
- Applicable for universal joint only.
- t_preload
- Applicable for revolute, cylindrical, universal and ball joints only.
- pin_radius
- Applicable for revolute, cylindrical, and universal joints only.
- friction_arm
- Applicable for revolute and universal joints only.
- bending_reaction_arm
- Applicable for revolute and universal joints only.
- ball_radius
- Applicable for ball joint only.