MV-7007: Add Friction to Joints
In this tutorial, you will learn more about the MotionSolve joint friction model, how to model Joint friction in MotionView/MotionSolve, and how to review the friction results.
- When contacting surfaces are smoother and brought to closer proximity; molecular adhesive forces forms resistance to motion.
- When contact surfaces are highly rough to cause abrasion on sliding; surface roughness resists motion.
- When one surface in contact is relatively soft, plowing effect causes most of resistance.
- Surface contact geometry and topology
- Properties of the bulk and surface materials
- Displacement and relative velocity
- Lubrication
Friction is highly non-linear and dependents on system states like stiction regime, transition regime and sliding (or) dynamic regime.
- Dynamics of friction
- Friction-velocity relation or damping characteristics of friction will aid in dampening vibrations. There are other behaviors of friction such as pre-sliding and hydrodynamic effects of lubrications during dynamic simulations. Resistant forces from the above mentioned effects need consideration in design of drive systems and high-precision servo mechanisms. So, it’s important to model friction accurately to capture system dynamics.
- Joint friction
- Friction in joint depends on its geometry. MotionSolve uses an analytical model to represent friction for different joints based on geometry, preloads, torque and lubrication.
- Characterizing joint friction using LuGre friction model
- MotionSolve uses LuGre model for friction representation. LuGre model is a bristle model emerged for controls applications. LuGre model was presented by Canudas de Wit, Olsson, Åstro¨m, and Lischinsky. Stemming from a collaboration among researchers at the Lund Institute of Technology (Sweden) and in Grenoble France (Laboratoire d’Automatique de Grenoble), the LuGre model captures a variety of behaviors observed in experiments, from velocity and acceleration dependence of sliding friction, to hysteresis effects, to pre-slip displacement and lubrication.
LuGre model can model friction considering geometry of joint, preload, moment arm, force and torque. Friction is supported for a subset of joints namely Revolute, Spherical, Translational Joint, Cylindrical, and Universal Joint. Please refer to our MotionSolve online help for a detailed explanation of friction for each constraint.
This tutorial uses an experimental model of a “block sliding on a table” to demonstrate friction forces under stick-slip condition and frequency dependency of friction forces.
The leader and follower model constitutes two rigid bodies namely Leader and Follower respectively connected to the Ground body by translation joints and inter connected by a linear spring. In the following steps you will add friction and apply motions to study friction behavior of the translation joint.
Add Joint Friction
- From the Project Browser, browse to the Joints folder and select Follower Translation Joint.
- From the Joints panel, go to the Friction Properties tab.
-
From the Friction Properties tab, check the Use Friction
option to activate friction on joint.
Note: MotionView populates the panel with default properties that are appropriate with units N, mm, second. You will need to scale properties such as Stiction Transition Velocity, Force Preload, and Geometric properties (Initial Overlap, Reaction Arm) according to the units.
-
Change the following default settings: Dynamic friction coefficient to
0.1, Static friction coefficient to
0.15, and Stiction Transition Velocity to
1.0. Uncheck the Bending Moment and Torsion Moment
options to exclude joint reaction forces due to geometry misalignments. Modify
the Initial Overlap value to 10mm and leave the remaining
values at their default settings.
-
Select the LuGre Parameters tab to modify the Bristle properties. Modify the
Damping Coefficient value to 0.0316.
Note: Default properties of bristle are appropriate with units N, mm, second.
- Leave all the LuGre parameters at their default values.
Add Output Requests for Friction Force
In this step you will create an output to measure the friction forces on the Follower Translation Joint.
-
Right click the Output icon from General MDL Entity Tool bar.
The Add Output dialog is displayed.
- Change the Label to Friction_Force.
-
Change the Variable to o_friction.
- Click OK to add output request.
-
From the Properties tab, select the output type as
Expressions.
- Click in the F2 expression field.
-
Click on the button.
The Expression Builder dialog is displayed.
-
Populate the Expression Builder with the FRICTION function expression as:
`FRICTION({j_contact.id},1)`
.- Follower Translation Joint ID
= {j_contact.id},
- Fx component
= 1
- Click OK.
-
Repeat the process for F3, F4, F6, F7, and F8 by changing the second parameter
to 2, 3, 4, 5, and 6 accordingly.
The function FRICTION(ID, comp) computes the friction force component specified in the comp corresponding to the joint ID.
ID The ID of the Joint. comp The force component. Currently, a range of 1-18 is supported. 1 = Friction force FX along the x-axis of the J marker of the joint. 2 = Friction force FY along the y-axis of the J marker of the joint. 3 = Friction force FZ along the z-axis of the J marker of the joint. 4 = Friction torque TX along the x-axis of the J marker of the joint. 5 = Friction torque TY along the y-axis of the J marker of the joint. 6 = Friction torque TZ along the z-axis of the J marker of the joint.
Add Output Request for Sliding Velocity
Friction forces are characterized with respect to the relative velocity between bodies under contact. So, you will create an output request to measure Follower body velocity.
-
Right click the Outputs icon on the General MDL Entity toolbar.
The Add Output dialog is displayed.
- For Label, enter Follower_Velocity.
- For Variable, enter o_velocity.
- Click OK to add the output request.
-
From the Properties tab, select the output type as
Velocity.
-
Select Entity from the drop-down menu below
Velocity.
- Select entity type to be .
-
Leave to be Global Frame.
Add a Constant Velocity Motion to the Leader Translation Joint
In this next step we will add constant velocity to the Leader Body. Follower body connected by a linear spring will observe a stick-slip motion due to the friction forces.
-
Right click the Motion icon from the Constraint
toolbar.
The Add Motion or MotionPair dialog is displayed.
- For Label, enter Stick Slip.
- For Variable, enter mot_leader.
- Click OK to add motion.
-
From the Connectivity tab:
-
From the Properties tab:
Simulate the Model
- Click on the icon to check the model.
- Switch to the Run panel by clicking on the Run icon .
-
Under the Main tab, click on the icon
to specify the name and location of the MotionSolve
.xml file. Save the file with the name
Stick_Slip.xml in your working directory.
- Notice that after saving the file, the Run button to the right becomes active.
- Specify the End time as 25 sec. Modify the Print interval value to 0.001 and leave the remaining values at their default settings.
- Click on the Run button to run the simulation.
View Animation and Plots
Once the run is complete, the other buttons on the right side of the panel are activated.
-
Click on the Animate button to view the animation.
This invokes HyperView and loads the Stick_Slip.h3d animation file.
-
Next, click on the Plot button to view the plots.
This invokes HyperGraph and loads the Stick_Slip.abf results file.
- Click on the HyperGraph window to activate it.
-
Plot Follower velocity versus Time.
-
Plot Friction force versus Time.
- Select X-axis Data Type as Time.
- Select the following Y-axis data:
Option Description Y Type Expression Y Request Friction_Force Y Component F4 - To start the animation, click the Start/Pause Animation icon on the toolbar.
-
The Stick_Slip motion is clearly observed from the animation and plots.
The Leader body moving at a constant velocity elongates the spring increasing spring force linearly. The friction force counteracts the spring force, and there is a small displacement of Follower body when the applied force reaches the break-away force.
Break away force = mu static x Normal Load = 0.15x1x9.81 = 1.47 Newton.
Add Time Varying Velocity to Follower Translation Joint
In this step you will add “Time varying velocity” to Follower translation joint. Velocity is varied between 1.1 mm/sec to 3mm/sec at different frequencies (1 rad/sec, 10 rad/sec & 25rad/sec) to observe Hysteresis in friction.
-
Right-click the Motions icon on the Constraint toolbar.
The Add Motion or MotionPair dialog is displayed.
- For Label, enter Hysteresis.
-
For Variable, enter mot_freq_varying.
- Click OK to add motion.
-
From the Connectivity tab:
-
From the Properties tab:
- Deactivate motion on the Leader Translation Joint created in earlier steps.
Simulate the Model for Varying Velocities at Different Frequencies
- Click on the icon to check the model.
- Switch to the Run panel by clicking on the Run icon .
- Under the Main tab, click on the icon to specify the name and location of the MotionSolve .xml file. Save the file with the name Hysteresis_1radpersec.xml in your working directory.
-
Specify the End time as 3 seconds and the Print interval
value as 0.0001 seconds.
- Click on the Run button to run the simulation.
-
Modify the velocity expression of the Follower Translation Joint and run the
model with the file names and end times specified in the table below:
Frequency Expression File name End Time (sec) 10 rad/sec `1.1+1.9*ABS(sin(PI*(10*time)))`
Hysteresis_10radpersec.xml 0.3 25 rad/sec `1.1+1.9*ABS(sin(PI*(25*time)))`
Hysteresis_10radpersec.xml 0.12
Plot Hysteresis Curves
- Select HyperGraph by clicking in the window.
-
Load results for the 1 rad/sec frequency.
-
Plot Follower velocity versus Time.
-
Plot Friction force versus Time.
-
Plotting Friction Hysteresis curve (Friction Force versus Velocity).
There is an initial transition of friction force values, therefore you will plot hysteresis curve excluding first cycle data (in other words, 0 to 1 sec.).
-
Similarly, plot hysteresis curves for frequencies 10rad/sec
(Hysteresis_10radpersec.abf) and 25 rad/sec
(Hysteresis_10radpersec.abf) following Steps 3 -5
above.
The velocity variation with higher frequency will have widest hysteresis loop.