Joint static and kinetic friction
The Joint Stiction Actuator block applies Coulomb kinetic and static friction to a prismatic or revolute joint primitive. The stiction is regulated by a friction model whose parameters you specify. (See Stiction Theory and Implementation following.) The Joint Stiction Actuator applies stiction to the joint primitive as a relative force/torque between the joint's connected Bodies. The bodies can experience additional forces independent of the applied stiction.
The inports are Simulink® signals. The output is a connector port. You cannot connect a Joint Stiction Actuator to a Spherical block or spherical primitive. Restrictions on simultaneous actuators and sensors include:
You cannot actuate a joint primitive simultaneously with a Joint Stiction Actuator and a Joint Actuator. But with the Joint Stiction Actuator inport External Actuation, you can apply to the joint primitive an external (nonfrictional) force/torque actuation signal equivalent to applying a Joint Actuator.
You can simultaneously actuate a joint primitive with a Joint Stiction Actuator and a Joint Initial Condition Actuator.
You can also simultaneously actuate a joint primitive with a Joint Stiction Actuator and measure the force/torque along/around the joint primitive with a Joint Sensor.
The dialog has one active area, Actuation. The block parameters are not displayed unless you connect it to a specific Joint block.
In the pull-down menu, choose the joint primitive within the Joint that you want to actuate with the Joint Stiction Actuator. A primitive Joint block has only one joint primitive.
You cannot connect a Joint Stiction Actuator to a spherical primitive.
If the Joint Stiction Actuator is not connected to a Joint block, this menu displays Unknown.
In the pull-down menu, choose units for the external nonfrictional force/torque Fext. The default is N (newtons) if connected to a prismatic primitive and N*m (newton-meters) if connected to a revolute primitive.
In the pull-down menu, choose units for the kinetic friction force/torque FK. The default is N (newtons) if connected to a prismatic primitive and N*m (newton-meters) if connected to a revolute primitive.
Enter the positive relative speed vth of the joint primitive below which the joint locks by static friction. Above that speed, the joint is unlocked.
The units must be MKS or SI: for a prismatic primitive, meters/second; for a revolute primitive, radians/second.
Warning The velocity threshold vth must be set greater than the Absolute tolerance in the Solver node of your model's Configuration Parameters dialog to avoid a meaningless threshold value.
Never set Absolute tolerance to auto if stiction actuators are present in a model. A recommended setting is to make vth at least 10 times the Absolute tolerance value.
See Configuring Methods of Solution for more about setting simulation parameters.
All the Simulink inports are one-component signals. Here is an example of a prismatic joint connected between two bodies and actuated with stiction:
Joint Stiction Actuator Simulink Inport Signals
|Simulink Inport||Friction Model||Description|
|External Actuation||Fext||External nonfrictional force/torque|
|Kinetic Friction||FK||Kinetic friction|
|Forward Stiction Limit||FSf < 0||Static friction lower limit|
|Static Test Friction||Ftest||Static test friction|
|Reverse Stiction Limit||FSr > 0||Static friction upper limit|
You specify units in the dialog only for the external nonfrictional and kinetic friction forces/torques, Fext and FK. These two friction signals are used to integrate the motion of the joint and have physical significance in the model. Thus units are necessary for Fext and FK.
The other three signals are compared only to one another in the locking condition FSf < Ftest < FSr. These friction signals are not used to integrate motion and thus do not have units set in the dialog. But they must have the same implicit units for a valid comparison.
The mech_dpen_stickymech_dpen_sticky model in the Demos library has two revolute joints actuated with stiction. See Joint Stiction Actuator Example: Mixed Static and Kinetic Friction.
v and a are the velocity and acceleration along or around a joint primitive axis. These quantities are relative between the two bodies at the joint ends and signed ± to indicate forward or reverse. The joint directionality is set by the base (B)-to-follower (F) Body sequence of Bodies attached to the joint primitive being actuated.
A joint subject to stiction, if unlocked, moves in continuous motion. During this motion, you can apply two forces/torques at the joint primitive:
A kinetic friction force/torque FK:
FK < 0 retards forward motion
FK > 0 retards reverse motion
An external, nonfrictional force/torque Fext
A joint primitive actuated by stiction has potentially three discrete motion modes. The Joint Stiction Actuator switches the primitive among the three modes.
In the unlocked mode, the joint primitive moves with the kinetic friction and external nonfrictional forces/torques applied.
In the locked mode, the joint primitive locks rigidly and cannot move.
In the wait mode, between locked and unlocked, the joint primitive is in a virtual motion state, awaiting determination of unlocking. The wait mode prevents infinite cycling between locked and unlocked modes, although it can noticeably slow down the simulation. The mode search uses a nonphysical algebraic loop.
Caution The Joint Stiction Actuator uses a specialized type of zero-crossing detection (ZCD) to solve the joint locking and unlocking conditions. To avoid infinite loops and zero-crossing conflicts, disable any other ZCD conditions applied to a stiction-actuated joint by normal Simulink blocks connected directly or indirectly to it.
Joint Stiction Modes and Transition Conditions
You define the unlocking criteria by a two-condition threshold, constructed from four inputs that you specify.
Joint unlocking threshold velocity vth > 0 via the block dialog.
Static friction limits FSf< 0 and FSr > 0 for forward and reverse motion, and a static test friction Ftest, all three specified via Simulink signals. The static test friction Ftest and forward/reverse limits FSf and FSr can be functions of the machine state and/or time.
The static test and kinetic frictions Ftest and FK can be discontinuous, but should be physically sensible.
You specify the locking criterion with the velocity threshold alone.
Joint locking threshold velocity vth > 0 via the block dialog.
In this mode, v and a of the joint are zero. The static computed force/torque FS at the joint is internally computed to maintain this mode: Fext + FS + FF - FB = 0. The forces/torques FB, FF are the forces/torques on the base and follower Bodies apart from those forces/torques acting at the joint.
The joint remains locked as long as FSf < Ftest < FSr.
In most realistic friction models, you would set Ftest equal to the computed FS.
If the static test friction Ftest leaves the static friction range [FSf, FSr], the joint has passed the first condition for unlocking, and the simulation enters wait mode, suspending the mechanical motion.
A search begins for a consistent state of all stiction-actuated joints in your model.
The potential direction of motion after unlocking is determined by all the nonfrictional forces on the bodies.
During the search, the net force/torque F = Fext + FK at the joint primitive is computed, where FK is the kinetic friction, and a is determined.
For potential motion in the forward (reverse) direction, if a < 0 (a > 0), the search returns to the locked mode.
Once a consistent state for all stiction-actuated joints are found, mechanical motion restarts. The simulation integrates a to obtain v. When |v| exceeds vth, the second condition, the joint unlocks.
In the unlocked mode, the joint primitive moves, actuated by the sum of the external, nonfrictional force/torque Fext and the kinetic friction FK.
The joint returns to the locked mode if v falls into the range -vth < v < +vth. If the simulation steps in time over this velocity range, it instead catches the zero of velocity with Simulink zero-crossing detection.
Static and Kinetic Friction and Relative Velocity
 Moler, C. B., Numerical Computing with MATLAB, Philadelphia, Society for Industrial and Applied Mathematics, 2004, Chapter 7.