Note: This page has been translated by MathWorks. Click here to see

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

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

Double-sided translational hard stop

**Library:**Simscape / Foundation Library / Mechanical / Translational Elements

The Translational Hard Stop block represents a double-sided mechanical translational hard stop that restricts motion of a body between upper and lower bounds. The impact interaction between the slider and the stops is assumed to be elastic. This means that the stop is represented as a spring that comes into contact with the slider as the gap is cleared and opposes slider penetration into the stop with the force linearly proportional to this penetration. To account for energy dissipation and nonelastic effects, damping is introduced as the block’s parameter, thus making it possible to account for energy loss. The schematic shows the idealization of the mechanical translational hard stop adopted in the block.

The basic hard stop model, ```
Full stiffness and damping applied at bounds,
damped rebound
```

, is described with the following equations:

$$F=\{\begin{array}{ll}{K}_{p}\cdot \left(x-{g}_{p}\right)+{D}_{p}\cdot v\hfill & \text{for}x\ge {g}_{p}\hfill \\ 0\hfill & \text{for}{g}_{n}x{g}_{p}\hfill \\ {K}_{n}\cdot \left(x-{g}_{n}\right)+{D}_{n}\cdot v\hfill & \text{for}x\le {g}_{n}\hfill \end{array}$$

$$v=\frac{dx}{dt}$$

where

*F*is interaction force between the slider and the case.*g*_{p}is the initial gap between the slider and upper bound.*g*_{n}is the initial gap between the slider and lower bound.*x*is the slider position.*K*_{p}is contact stiffness at upper bound.*K*_{n}is contact stiffness at lower bound.*D*_{p}is damping coefficient at upper bound.*D*_{n}is damping coefficient at lower bound.*v*is the slider velocity.*t*is time.

In the ```
Full stiffness and damping applied at bounds, undamped
rebound
```

hard stop model, equations contain additional terms,
`ge`

(*v*,0) and
`le`

(*v*,0). These terms ensure that damping is
not applied on the rebound.

$$F=\{\begin{array}{ll}{K}_{p}\cdot \left(x-{g}_{p}\right)+{D}_{p}\cdot v\cdot ge\left(v,0\right)\hfill & \text{for}x\ge {g}_{p}\hfill \\ 0\hfill & \text{for}{g}_{n}x{g}_{p}\hfill \\ {K}_{n}\cdot \left(x-{g}_{n}\right)+{D}_{n}\cdot v\cdot le\left(v,0\right)\hfill & \text{for}x\le {g}_{n}\hfill \end{array}$$

Relational functions `ge`

(greater or equal) and
`le`

(less or equal) do not generate zero crossings when velocity
changes sign. For more information, see Enabling and Disabling Zero-Crossing Conditions in Simscape Language.
However, the solver treats `ge`

and `le`

functions
as nonlinear. Therefore, if `simscape.findNonlinearBlocks`

indicates
that the rest of your network is linear or switched linear, use the ```
Full
stiffness and damping applied at bounds, damped rebound
```

model to
improve performance.

The default hard stop model, ```
Stiffness and damping applied smoothly
through transition region, damped rebound
```

, adds two transitional
regions to the equations, one at each bound. While the slider travels through a
transition region, the block smoothly ramps up the force from zero to the full value. At
the end of the transition region, the full stiffness and damping are applied. On the
rebound, both stiffness and damping forces are smoothly decreased back to zero. These
equations also use the `ge`

and `le`

relational
functions, which do not produce zero crossings.

The block is oriented from R to C. This means that the block transmits force from port R to port C when the gap is closed in the positive direction.

To set the priority and initial target values for the block variables prior to simulation, use
the **Variables** tab in the block dialog box (or the
**Variables** section in the block Property Inspector). For more
information, see Set Priority and Initial Target for Block Variables.

Was this topic helpful?