Coulomb and Viscous Friction

Model discontinuity at zero, with linear gain elsewhere

  • Library:
  • Simulink / Discontinuities

    HDL Coder / Discontinuities

Description

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.

Ports

Input

expand all

The input signal to the model of Coulomb and viscous friction.

Data Types: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fixed point

Output

expand all

The output signal calculated by applying the friction models to the input.

Data Types: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fixed point

Parameters

expand all

To edit the parameters for the Coulomb and Viscous Friction block, double-click the block icon.

Specify the offset that applies to all input values.

Programmatic Use

Block Parameter: offset
Type: character vector
Value: real values
Default: '[1 3 2 0]'

Specify the signal gain for nonzero input values.

Programmatic Use

Block Parameter: gain
Type: character vector
Value: real values
Default: '1'

Block Characteristics

Data Types

double | fixed point | integer | single

Direct Feedthrough

no

Multidimensional Signals

no

Variable-Size Signals

no

Zero-Crossing Detection

no

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

PLC Code Generation
Generate Structured Text code using Simulink® PLC Coder™.

Fixed-Point Conversion
Design and simulate fixed-point systems using Fixed-Point Designer™.

Introduced before R2006a