Note: This page has been translated by MathWorks. Please click here

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

Model discontinuity at zero, with linear gain elsewhere

Discontinuities

The Coulomb and Viscous Friction block models Coulomb (static) and viscous (dynamic) friction. The block models a discontinuity at zero and a linear gain otherwise.

The block output matches the MATLAB^{®} result for:

y = sign(x) .* (Gain .* abs(x) + Offset)

where `y`

is the output, `x`

is
the input, `Gain`

is the signal gain for nonzero
input values, and `Offset`

is the Coulomb friction.

The block accepts one input and generates one output. The input can be a scalar, vector, or matrix with real and complex elements.

For a scalar input,

`Gain`

and`Offset`

can have dimensions that differ from the input. The output is a scalar, vector, or matrix depending on the dimensions of`Gain`

and`Offset`

.For a vector or matrix input,

`Gain`

and`Offset`

must be scalar or have the same dimensions as the input. The output is a vector or matrix of the same dimensions as the input.

The Coulomb and Viscous Friction block supports real inputs of the following data types:

Floating point

Built-in integer

Fixed point

The block supports complex inputs only for floating-point data
types, `double`

and `single`

. The
output uses the same data type as the input.

For more information, see Data Types Supported by Simulink in
the Simulink^{®} documentation.

**Coulomb friction value**Specify the offset that applies to all input values.

**Coefficient of viscous friction**Specify the signal gain for nonzero input values.

Suppose that you have the following model:

In this model, the block input `x`

(`-5`

)
and `Gain`

(`2`

) are scalar values,
but `Offset`

is the vector `[1 3 2 0]`

.
Therefore, the block uses element-wise scalar expansion to compute
the output.

For example, for the first offset, `1`

, the
output is calculated using the formula ```
y = sign(x) .* (Gain
.* abs(x) + Offset)
```

as follows:

y = - * (2 * 5) + 1 y = -11

Suppose that you have the following model:

In this model, vector dimensions for block input `x`

and `Offset`

are
the same.

Suppose that you have the following model:

In this model, matrix dimensions for block input `x`

and `Offset`

are
the same.

Data Types | Double | Single | Base Integer | Fixed-Point |

Sample Time | Inherited from driving block |

Direct Feedthrough | Yes |

Multidimensional Signals | No |

Variable-Size Signals | No |

Zero-Crossing Detection | Yes |

Code Generation | Yes |

Was this topic helpful?