# Planar Contact Force

Model planar contact between two geometries

Since R2023b

Libraries:
Simscape / Multibody / Forces and Torques

## Description

The Planar Contact Force block models the planar contact between these geometry pairs:

• Disk and disk

• Disk and line segment

• Disk and point

• Disk and 2-D point cloud

When modeling planar contacts, the two geometries must be coplanar and the z-axes of the base and follower geometries must be aligned and point to the same direction.

### Contacts

You can use the built-in penalty method or provide custom normal and friction force laws to model a contact. The Planar Contact Force block uses the same penalty method as the Spatial Contact Force block, but with the normal force along the y-axis of the contact frame and the friction force along the x-axis of the contact frame. For more information about the penalty model, see Contact Forces.

When modeling contacts between two disks or a disk and a line segment, there is a single contact point located at the center of the penetration depth. Each geometry has one contact frame. The two frames are always coincident and located at the contact point. The positive y-axis of the contact frame is aligned with the contact normal direction pointing from the base geometry to the follower geometry, and the z-axis is aligned with the z-axis of the base frame. The image shows the contact between two disks. The B, F, and C frames are the base, follower, and contact frames, respectively.

This image shows two scenarios that show contact between a disk and a line segment.

When modeling contacts between a disk and a point, there is a single contact point that is coincident with the point.

When modeling contacts between a disk and a 2-D point cloud, there is a contact point for each point that is in contact with the disk. The Planar Contact Force block computes the contact quantities for each point and the output signals have the same order as the points specified in the Point Could block. For the points that are not in contact with the disk, the measured values are zero. When using input forces, the size and order of the input signals must match the size and order of the points specified in the Point Could block.

## Ports

### Geometry

expand all

Geometry port associated with the base geometry.

Geometry port associated with the follower geometry.

### Input

expand all

Physical signal input port that accepts the normal contact force magnitude between the two geometries. The block clips negative values to zero.

When modeling contacts that involve a point cloud, the input signal must be a 1-by-N array, where N equals the number of points. Each column of the array specifies the normal contact force on one of the points. The size and order of the input signals must match the size and order of the points specified in the Point Could block. The force is resolved in the contact frame of the point.

When modeling contacts between other types of geometries, the input signal must be a scalar that specifies the normal contact force.

#### Dependencies

To enable this port, in the Normal Force section, set Method to ```Provided by Input```.

Physical signal input port that accepts the frictional force between the two geometries.

When modeling contacts that involve a point cloud, the input signal must be a 1-by-N array, where N equals the number of points. Each column of the array specifies the x-component of the applied frictional force on one of the points. The size and order of the input signals must match the size and order of the points specified in the Point Could block. The force is resolved in the contact frame of the point.

When modeling contacts between other types of geometries, the input signal must be a scalar that specifies the x-component of the applied frictional force resolved in the contact frame.

#### Dependencies

To enable this port, in the Frictional Force section, set Method to ```Provided by Input```.

### Output

expand all

Physical signal output port that outputs the contact status of the two geometries.

When modeling contacts that involve a point cloud, the output is a 1-by-N array, where N equals the number of points. Each column of the array indicates the status of the corresponding point. The point contacts the other geometry if the output is 1. Otherwise, the output is 0.

When modeling contacts between other types of geometries, the output is a scalar that indicates whether the geometries are in contact. The geometries are in contact if the output is 1 or separated if the output is 0.

#### Dependencies

To enable this port, in the Sensing section, select Contact Signal.

Physical signal output port that outputs the penetration depth between the two geometries.

When modeling contacts that involve a point cloud, the output is a 1-by-N array, where N equals the number of points. Each column of the array indicates the status of the corresponding point. If the point is penetrating the other geometry, the output is positive and equals the penetration depth. Otherwise, the output is 0.

When modeling contacts between other types of geometries, the output is a scalar that indicates whether the geometries are penetrating each other. If they are penetrating each other, the output is positive and equals the penetration depth. Otherwise, the output is 0.

#### Dependencies

To enable this port, in the Sensing section, select Penetration Depth.

Physical signal output port that outputs the magnitude of the normal contact force between the two geometries. The output is always nonnegative.

When modeling contacts that involve a point cloud, the output is a 1-by-N array, where N equals the number of points. Each column of the array equals the magnitude of the normal contact force on the corresponding point.

When modeling contacts between other types of geometries, the output is a scalar that equals the magnitude of the normal contact force.

#### Dependencies

To enable this port, in the Sensing section, select Normal Force Magnitude.

Physical signal output port that outputs the magnitude of the frictional contact force between the two geometries.

When modeling contacts that involve a point cloud, the output is a 1-by-N array, where N equals the number of points. Each column of the array equals the magnitude of the frictional force on the corresponding point.

When modeling contacts between other types of geometries, the output is a scalar that equals the magnitude of the frictional force.

#### Dependencies

To enable this port, in the Sensing section, select Frictional Force Magnitude.

Physical signal output port that outputs the relative normal velocity between the contact points of the base and follower geometries.

When modeling contacts that involve a point cloud, the output is a 1-by-N array, where N equals the number of points. Each column of the array equals the y-component of the relative velocity between the corresponding point and the contact point on the other geometry. The relative velocity is resolved in the corresponding contact frame.

When modeling contacts between other types of geometries, the output is a scalar that equals the y-component of the relative velocity between the contact points of the two geometries. The output is resolved in the contact frame.

#### Dependencies

To enable this port, in the Sensing section, select Relative Normal Velocity.

Physical signal output port that outputs the relative tangential velocity between the contact points of the base and follower geometries.

When modeling contacts that involve a point cloud, the output is a 1-by-N matrix, where N equals the number of points. Each column of the array equals the x-component of the relative velocity between the corresponding point and the contact point on the other geometry. The relative velocity is resolved in the corresponding contact frame.

When modeling contacts between other types of geometries, the output is a scalar that equals the x-component of the relative velocity between the contact points of the two geometries. The output is resolved in the contact frame.

#### Dependencies

To enable this port, in the Sensing section, select Relative Tangential Velocity.

Contact Frame

Physical signal port that outputs a 3-by-3 rotation matrix that maps the vectors in the contact frame to vectors in the reference frame of the base geometry. The output signal is resolved in the reference frame associated with the base geometry.

When one of the geometries is a point cloud, the Planar Contact Force block cannot output signals from this port.

#### Dependencies

To enable this port, in the Sensing > Contact Frame section, select Base Rotation.

Physical signal port that outputs the location of the contact points with respect to the reference frame of the base geometry.

When modeling contacts that involve a point cloud, the output is a 3-by-N array, where N equals the number of points. Each column of the array indicates the coordinates of a point with respect to the reference frame of the base geometry. If a point is not in contact with the other geometry, the coordinates are `[0 0 0]`.

When modeling contacts between other types of geometries, the output is a 3-by-1 array that contains the coordinates of the contact point with respect to the reference frame of the base geometry.

#### Dependencies

To enable this port, in the Sensing > Contact Frame section, select Base Translation.

Physical signal port that outputs a 3-by-3 rotation matrix that maps vectors in the contact frame to vectors in the reference frame of the follower geometry. The output signal is resolved in the reference frame associated with the follower geometry.

When one of the geometries is a point cloud, the Planar Contact Force block cannot output signals from this port.

#### Dependencies

To enable this port, in the Sensing > Contact Frame section, select Follower Rotation.

Physical signal port that outputs the location of the contact points with respect to the reference frame of the follower geometry.

When modeling contacts that involve a point cloud, the output is a 3-by-N array, where N equals the number of points. Each column of the array indicates the coordinates of a point with respect to the reference frame of the follower geometry. If a point is not in contact with the other geometry, the coordinates are `[0 0 0]`.

When modeling contacts between other types of geometries, the output is a 3-by-1 array that contains the coordinates of the contact point with respect to the reference frame of the follower geometry.

#### Dependencies

To enable this port, in the Sensing > Contact Frame section, select Follower Translation.

## Parameters

expand all

### Normal Force

Method to specify the normal contact force, specified as either `Smooth Spring-Damper` or ```Provided by Input```.

Select `Smooth Spring-Damper` to use the modified spring-damper method to model the normal contact force, or select `Provided by Input` to input a custom force as the normal contact force.

Resistance of the contact spring to geometric penetration, specified as a scalar. The spring stiffness is a constant during the contact. The larger the value of the spring stiffness, the harder the contact between the geometries.

#### Dependencies

To enable this parameter, in the Normal Force section, set Method to ```Smooth Spring-Damper```.

Resistance of the contact damper to motion while the geometries are penetrating, specified as a scalar. The damping coefficient is a constant value that represents the lost energy from colliding geometries. The larger the value of the damping coefficient, the more energy is lost when geometries collide and the faster the contact vibrations are dampened. Use a value of zero to model perfectly elastic collisions, which conserve energy.

#### Dependencies

To enable this parameter, in the Normal Force section, set Method to ```Smooth Spring-Damper```.

Region over which the spring-damper force raises to its full value, specified as a scalar. The smaller the region, the sharper the onset of contact and the smaller the time step required for the solver. Reducing the transition region improves model accuracy while expanding the transition region improves simulation speed.

#### Dependencies

To enable this parameter, in the Normal Force section, set Method to ```Smooth Spring-Damper```.

### Frictional Force

Method to specify the frictional force, specified as ```Smooth Stick-Slip```, `None`, or ```Provided by Input```.

Select `None` to omit friction, ```Smooth Stick-Slip``` to use the modified stick-slip method to compute the frictional force, or `Provided by Input` to input a custom frictional force.

Ratio of the magnitude of the frictional force to the magnitude of the normal force when the tangential velocity is close to zero, specified as a positive scalar.

This value is determined by the material properties of the contacting geometries. The value of this parameter is often less than one, although values greater than one are possible for high-friction materials. In most cases, this value should be higher than the coefficient of dynamic friction.

#### Dependencies

To enable this parameter, in the Frictional Force section, set Method to ```Smooth Stick-Slip```.

Ratio of the magnitude of the frictional force to the magnitude of the normal force when the tangential velocity is large, specified as a nonnegative scalar.

This value is determined by the material properties of the contacting geometries. The value of this parameter is often less than one, although values greater than one are possible for high-friction materials. In most cases, this value should be less than the coefficient of static friction.

#### Dependencies

To enable this parameter, in the Frictional Force section, set Method to ```Smooth Stick-Slip```.

Velocity that determines the blending between the static and dynamic coefficients of friction, specified as a scalar.

When the critical velocity is equal to the magnitude of the tangential velocity, the effective coefficient of friction is equal to the value of the Coefficient of Static Friction parameter. As the magnitude of the tangential velocity increases beyond the specified critical velocity, the effective coefficient of friction asymptotically approaches the value of the Coefficient of Dynamic Friction parameter.

#### Dependencies

To enable this parameter, in the Frictional Force section, set Method to ```Smooth Stick-Slip```.

### Zero-Crossings

Select to detect the start and end of each contact as zero-crossing events. The zero-crossing events occur when the separation distance changes from positive or zero to negative and vice versa.

## Version History

Introduced in R2023b