Model Element |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Class NameFriction Description |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The Friction element is used to specify joint friction in a specific joint in your model. Friction is supported only in the following types of joints: revolute, spherical, translational, cylindrical and universal. MotionSolve uses the LuGre (Lundt-Grenoble) model for friction. The LuGre model is capable of representing several different effects:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Attribute SummaryInputs = "PRELOAD NONE ALL REACTION_FORCE BENDING_MOMENT TORSIONAL_MOMENT" Effect = "ALL STICTION SLIDING" Overlaps = "INCREASE DECREASE CONSTANT"
Usage |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Friction ( joint=objJoint, optional_arguments) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Attribute Description |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Attributes Common For All Joints |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
id |
Integer Specifies the element identification number for the friction object. This number must be unique among all the Friction objects in the model. This attribute is optional. MotionSolve will automatically create an ID when one is not specified. Range of values: id > 0 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
label |
String Specifies the name of the Friction object. This attribute is optional. When not specified, MotionSolve will create a label for you. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
joint |
Reference to an existing Joint in the model This specifies the joint on which the friction is to act on. The joint attribute is mandatory |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mu_static |
Double Specifies the static friction coefficient in the joint. mu_static is a property of the two mating surfaces. It is dependent on factors such as surface finish, surface texture and lubrication. The attribute mu_static is optional. When not specified, mu_static =0.3. When specified:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mu_dynamic |
Double Specifies the dynamic friction coefficient in the joint. This is the friction coefficient when the two mating surfaces are sliding with respect to each other. The attribute mu_dynamic is optional. When not specified, mu_dynamic =0.2. When specified:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
max_stiction_deformation |
Double Specifies the maximum deformation that can occur in a joint for static friction. If specified to be non-zero, a finite static friction force is applied even if the relative velocity is zero. This attribute is optional. When not specified, max_stiction_deformation=0.01 length units. When specified, max_stiction_deformation > 0 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
stiction_transition_velocity |
Double The absolute velocity below, which the friction transitions from dynamic friction to static friction. This attribute is optional. When not specified, stiction_transition_velocity = 0.1 length_units/time. When specified, stiction_transition_velocity > 0 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
effect |
String Specifies the frictional effects to be considered for this joint. Select one from:
The attribute effect is optional. When not specified, it defaults to “ALL”. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
inputs |
List of strings Specifies the input forces/torques to consider for modeling the friction. Select one from:
The options available per joint type are defined below:
The attribute inputs is optional. When not specified, inputs = ”ALL”. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
inactive |
String Specify “STATIC” to disable joint friction during static analysis. The attribute inactive is optional. When not specified, inactive = ”NONE”. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bristle_stiffness |
Double Specifies the bristle stiffness in the LuGre model. See the MotionSolve Reference Manual for more detailed information about this attribute. The attribute bristle_stiffness is optional. When not specified, bristle_stiffness = 100 Force Units / Length unit |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
damping_effects |
Double Defines the damping coefficient for the pre-displacement (or stiction) regime. Its main role is to damp out bristle vibrations in the pre-displacement regime. The attribute damping_effects is optional. When not specified, damping_effects = 0.316 Force Units / Velocity unit |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
viscous_effects |
Double Specifies the coefficient for the viscous damping force that occurs when relative sliding actually begins. The attribute viscous_effects is optional. When not specified, viscous_effects = 0.0004 Force Units / Velocity unit |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Attributes specific to a Revolute Joint |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
friction_torque_preload |
Double Specifies the preload friction torque in the joint. The attribute friction_torque_preload is optional. When not specified, friction_torque_preload = 0 See the MotionSolve Reference Manual for more detailed information about this attribute. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
friction_arm |
Double Specifies the moment arm used to compute axial friction torque in the joint. The attribute friction_arm is optional. When not specified, friction_arm = 1.0 length units See the MotionSolve Reference Manual for more detailed information about this attribute. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pin_radius |
Double Specifies the radius of the pin. The attribute pin_radius is optional. When not specified, pin_radius = 1.0 length units See the MotionSolve Reference Manual for more detailed information about this attribute. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bending_reaction_arm |
Double Specifies the moment arm to compute the bending moment. The attribute bending_reaction_arm is optional. When not specified, bending_reaction_arm = 1.0 length units See the MotionSolve Reference Manual for more detailed information about this attribute. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Attributes specific to a Spherical Joint |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
friction_torque_preload |
Double Specifies the preload friction torque in the joint. The attribute friction_torque_preload is optional. When not specified, friction_torque_preload = 0 See the MotionSolve Reference Manual for more detailed information about this attribute. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ball_radius |
Double Specifies the radius of the ball in the Spherical joint. The attribute ball_radius is optional. When not specified, ball_radius = 1.0 length units See the MotionSolve Reference Manual for more detailed information about this attribute.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Attributes specific to a Translational Joint |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
friction_force_preload |
Double Specifies the preload friction force in the joint. The attribute friction_force_preload is optional. When not specified, friction_force_preload = 0 See the MotionSolve Reference Manual for more detailed information about this attribute. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reaction_arm |
Double Specifies the moment arm to compute the reaction torque about the joint axial direction. The attribute reaction_arm is optional. When not specified, reaction_arm = 1.0 length units See the MotionSolve Reference Manual for more detailed information about this attribute. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
initial_overlap |
Double Specifies the initial overlap of the sliding parts in the joint. The attribute initial_overlap is optional. When not specified, initial_overlap = 1000 length units See the MotionSolve Reference Manual for more detailed information about this attribute. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
overlap_delta |
String Specifies friction characteristics in the sliding joint. Select one from:
The attribute overlap_delta is optional. When not specified, overlap_delta = “CONSTANT” See the MotionSolve Reference Manual for more detailed information about this attribute. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Attributes specific to a Cylindrical Joint |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
friction_force_preload |
Double Specifies the preload friction force in the joint. The attribute friction_force_preload is optional. When not specified, friction_force_preload = 0 See the MotionSolve Reference Manual for more detailed information about this attribute. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
friction_torque_preload |
Double Specifies the preload friction torque in the joint. The attribute friction_torque_preload is optional. When not specified, friction_torque_preload = 0 See the MotionSolve Reference Manual for more detailed information about this attribute. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pin_radius |
Double Specifies the radius of the pin. The attribute pin_radius is optional. When not specified, pin_radius = 1.0 length units See the MotionSolve Reference Manual for more detailed information about this attribute. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
initial_overlap |
Double Specifies the initial overlap of the sliding parts in the joint. The attribute initial_overlap is optional. When not specified, initial_overlap = 1000 length units See the MotionSolve Reference Manual for more detailed information about this attribute. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
overlap_delta |
String Specifies friction characteristics in the sliding joint. Select one from:
The attribute overlap_delta is optional. When not specified, overlap_delta = “CONSTANT” See the MotionSolve Reference Manual for more detailed information about this attribute. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Attributes specific to a Universal/Hooke Joint |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
friction_torque_preload |
Double Specifies the preload friction torque in the joint. The attribute friction_torque_preload is optional. When not specified, friction_torque_preload = 0 See the MotionSolve Reference Manual for more detailed information about this attribute. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
friction_arm |
Double Specifies the moment arm used to compute axial friction torque in the joint. The attribute friction_arm is optional. When not specified, friction_arm = 1.0 length units See the MotionSolve Reference Manual for more detailed information about this attribute. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bending_reaction_arm |
Double Specifies the moment arm to compute the bending moment. The attribute bending_reaction_arm is optional. When not specified, bending_reaction_arm = 1.0 length units See the MotionSolve Reference Manual for more detailed information about this attribute. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pin_radius |
Double Specifies the radius of the pin. The attribute pin_radius is optional. When not specified, pin_radius = 1.0 length units See the MotionSolve Reference Manual for more detailed information about this attribute. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
yoke |
String Specifies the yoke choice for Hooke and Universal joints on which the frictional force is to be applied. Select one from:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comments
Examples
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
jfric = Friction (joint=revjt) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Model |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
from msolve import *
def PendulumWithFriction():
m = Model () Units (mass="KILOGRAM", length="MILLIMETER", time="SECOND", force="NEWTON") Accgrav (jgrav=-9800) Integrator (error=1e-5) Output (reqsave=True)
length = Dv (label="Link Length", b=600)
pivot = Point (0,0,0) pz = pivot + Vector (0,0,1) # along global Z px = pivot + Vector (1,0,0) # along global X
midpt = Point (length/2,0,0) mz = midpt + Vector (1,0,0) # along global X mx = midpt + Vector (0,1,0) # along global Y
ground = Part (ground=True)
# Pendulum Link pend = Part (mass=1.4702, ip=[44144.717,44144.717,73.5132,0,0,0]) pend.cm = Marker (part=pend, qp=midpt, zp=mz, xp=mx)
# Joint w/ rotation axis = global Z axis jim = Marker (part=pend, qp=pivot, zp=pz, xp=px) jjm = Marker (part=ground, qp=pivot, zp=pz, xp=px) rev = Joint (type="REVOLUTE", i=jim, j=jjm)
# Joint friction jfric = Friction (joint=rev, mu_static=0.6, mu_dynamic=0.2, effect="ALL", friction_torque_preload=20)
# Requests m.r1 = Request (type="DISPLACEMENT", i=pend.cm, j=jjm, comment="Pend CM Displacement") m.r2 = Request (type="VELOCITY", i=pend.cm, j=jjm, comment="Pend CM Velocity") m.r3 = Request (type="ACCELERATION", i=pend.cm, j=jjm, comment="Pend CM Acceleration") m.r4 = Request (type="FORCE", i=jim, j=jjm, comment="Reaction forces in Joint")
return m
############################################################################### ## Entry Point ################################################################ ############################################################################### if __name__ == "__main__": model = PendulumWithFriction() model.simulate (type="DYNAMICS", end=4, dtout=.01) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Results |