# Spatial Contact Force

Model contact between two geometries

**Library:**Simscape / Multibody / Forces and Torques

## Description

The Spatial Contact Force block models the contact between geometries associated with a pair of bodies. You can use the built-in penalty method or custom force laws to model a contact. The Spatial Contact Force block supports a variety of geometries, such as the geometries created directly by multibody blocks or geometries that are created by a third-party CAD software. Some geometries, such as the disk and point cloud, are not able to contact. For more details see the specific block reference pages.

The geometries exported from the File Solid block or Revolved Solid block are convex hull representations that do not accurately capture the shape of true geometries. For example, the image shows the true geometry and convex hull representation of a L-shape geometry exported by the File Solid block.

Note that, when modeling contacts, the File Solid block and Revolved Solid block use convex hull representations. However, when computing physical properties, such as mass and inertia, the File Solid block and Revolved Solid block use true geometries.

The image shows how the Spatial Contact Force block models a spatial contact problem. In this case, the contact is between a blue base geometry and a red follower geometry.

During the contact, each geometry has a contact frame. The two contact frames are always
coincident and located at the contact point. The *z*-direction of the
contact frame is an outward normal vector for the base geometry, but inward normal vector for
the follower geometry. During a continuous contact, the contact frame moves around the
geometry as the contact point moves.

The block applies contact forces to the geometries at the origin of the contact frame in conformance with Newton's Third Law:

The normal force, $${f}_{n}$$, which is aligned with the

*z*-axis of the contact frame. This force pushes the geometries apart in order to reduce penetration.The frictional force, $${f}_{f}$$, which lies in the contact plane. This force opposes the relative tangential velocities between the geometries.

To specify a normal contact force, in the **Normal Force** section, set
the **Method** parameter to `Smooth Spring-Damper`

or `Provided by Input`

. If you select ```
Smooth
Spring-Damper
```

, the normal force is:

$${f}_{n}=s(d)\cdot (k\cdot d+b\cdot {d}^{\text{'}})$$,

where:

$${f}_{n}$$ is the normal force applied in equal-and-opposite fashion to each contacting geometry.

$$d$$ is the penetration depth between two contacting geometries.

$${d}^{\text{'}}$$ is the first time derivative of the penetration depth.

$$k$$ is the normal-force stiffness specified in the block.

$$b$$ is the normal-force damping specified in the block.

$$s(d)$$ is the smoothing function.

The force law is smoothed near the onset of penetration. *w* is the
transition region width specified in the block. When *d* < *w*, *f*_{n} is scaled by a smoothing
function that increases continuously and monotonically over the interval [0,
*w*]. The function is 0 when *d* = 0, the function is 1 when *d* = *w*, and the function has zero derivative with respect to *d*
at the endpoints of the interval.

To better detect contacts when the value of the **Transition Region
Width** parameter is small, the Spatial Contact
Force block supports optional zero-crossing detection. The zero-crossing
events only occur when the separation distance changes from positive or zero to negative and
vice versa.

**Note**

The zero-crossing detection of the Spatial Contact Force
block is different than the zero-crossing detection of other Simulink^{®} blocks, such as From File and Integrator, because the force equation of the Spatial Contact
Force is continuous. For more information of the zero-crossing detection
in Simulink blocks, see Zero-Crossing Detection.

The Spatial Contact Force block clips the computed force to
be always nonnegative. If the force law gives a negative force, the block applies zero force
instead. This happens briefly as the geometries are separating and penetration is about to
end. At that point, *d* is approaching zero and
*d*^{'} is negative. This modification ensures that
the contact normal force is always repulsive and never attractive.

To specify a frictional force, in the **Frictional Force** section, set
the **Method** parameter to `Smooth Stick-Slip`

,
`Provided by Input`

, or `None`

. If you
select `Smooth Stick-Slip`

, the frictional force is always directly
opposed to the direction of the relative velocity at the contact point and is related to the
normal force through a coefficient of friction that varies depending on the magnitude of the
relative velocity:

$$\left|{f}_{f}\right|=\mu \cdot \left|{f}_{n}\right|$$,

where:

$${f}_{f}$$ is the frictional force.

$${f}_{n}$$ is the normal force.

$$\mu $$ is the effective coefficient of friction.

The effective coefficient of friction is a function of the values of the
**Coefficient of Static Friction**, **Coefficient of Dynamic
Friction**, and **Critical Velocity** parameters, and the
magnitude of the relative tangential velocity. At high relative velocities, the value of the
effective coefficient of friction is close to that of the coefficient of dynamic friction. At
the critical velocity, the effective coefficient of friction achieves a maximum value that is
equal to the coefficient of static friction. The graph shows the basic relationship in the
typical case where $${\mu}_{static}$$ > $${\mu}_{dynamic}$$. In this case, the model is able to approximate stiction with a higher
effective coefficient of friction near small tangential velocities.

## Ports

### Geometry

### Input

### Output

## Parameters

## Extended Capabilities

## Version History

**Introduced in R2019b**