# Translational Hard Stop

Double-sided translational hard stop

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

## Description

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.

### Variables

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

Nominal values provide a way to specify the expected magnitude of a variable in a model.
Using system scaling based on nominal values increases the simulation robustness. Nominal
values can come from different sources, one of which is the **Nominal
Values** section in the block dialog box or Property Inspector. For more
information, see Modify Nominal Values for a Block Variable.

## Ports

### Conserving

## Parameters

## Model Examples

## Extended Capabilities

## Version History

**Introduced in R2007a**