# Translational Hard Stop

Double-sided translational hard stop

**Libraries:**

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 slider connects to port **R** and the case connects to port
**C**. The block transmits force from port **R**
to port **C** when the gap is closed in the positive direction.

The block computes the slider position, *x*, from the slider
velocity, *v* = *v*_{R} -
*v*_{C}.

*L* is the slider length and *y* is the slider
position on the negative side, *L* = |*x* -
*y*|. The block assumes the slider length is 0 and does not model
*L* and *y*, but the schematic uses these symbols
to explain the basic design of the hard stop.

*g*_{p} is the initial gap on the positive side,
measured from *x*:

For the positive gap to be open,

*g*_{p}must be positive.A negative value of

*g*_{p}means that the slider is penetrating into the upper bound.The gap is closed when

*g*_{p}-*x*≤ 0.

*g*_{n} is the initial gap on the negative side,
measured from *y*:

For the negative gap to be open,

*g*_{n}must be negative.A positive value of

*g*_{n}means that the slider is penetrating into the lower bound.The gap is closed when

*y*-*g*_{n}≤ 0.

The block provides several modeling options:

Three options based on stiffness and damping. These models use similar underlying equations and differ in how stiffness and damping are applied at bounds.

A modeling option based on the coefficient of restitution. This model is different from the other three because it uses a mode chart to represent the hard stop behavior.

### Models Based on Stiffness and Damping

In hard stop models based on stiffness and damping, the impact interaction between
the slider and the stops is assumed to be elastic. This assumption means that the
block represents the stop as a spring that comes into contact with the slider as the
gap is cleared and opposes the slider penetration into the stop with a force
linearly proportional to this penetration. The block models this elasticity with the
**Contact stiffness at upper bound** and **Contact
stiffness at lower bound** parameters. To account for energy
dissipation and nonelastic effects, the block uses the **Contact damping at
upper bound** and **Contact damping at lower bound**
parameters.

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

, uses these 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 the 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 the contact stiffness at the upper bound.*K*_{n}is the contact stiffness at the lower bound.*D*_{p}is the damping coefficient at the upper bound.*D*_{n}is the damping coefficient at the lower bound.*v*is the slider velocity.*t*is time.

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

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

(*v*,0) and
`le`

(*v*,0). These terms ensure that the
block does not apply damping 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}$$

The relational functions `ge`

(greater than or equal) and
`le`

(less than or equal) do not generate zero crossings when
the velocity changes sign. For more information, see Enabling and Disabling Zero-Crossing Conditions in Simscape Language. However, the solver treats the
`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. When 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 block applies the full stiffness and
damping. On the rebound, the block smoothly decreases both stiffness and damping
forces to zero. These equations also use the `ge`

and
`le`

relational functions, which do not produce zero
crossings.

### Model Based on Coefficient of Restitution

Unlike the models based on stiffness and damping, this model does not allow penetration of slider into the hard stops. The hard stop behavior is represented by a mode chart with three regular modes and three instantaneous modes:

`FREE`

— There is no force transmission between the slider and case.`CONTACT_UPPER`

— The positive gap is closed.`CONTACT_LOWER`

— The negative gap is closed.`RELEASE_UPPER`

— The instantaneous mode needed to transition from`CONTACT_UPPER`

to`FREE`

.`RELEASE_LOWER`

— The instantaneous mode needed to transition from`CONTACT_LOWER`

to`FREE`

.`IMPACT`

— The instantaneous mode used when the slider bounces.

When the slider hits the case slowly, with speed less than the static contact
speed threshold, the slider and case stay in contact. Otherwise, the slider bounces.
When the slider bounces, it loses the speed due to the coefficient of restitution.
In either of the contact modes, slider speed *v* = 0. To transition
from a contact mode to free mode, a force greater than the static contact release
force threshold must be applied to the slider, and the transition must go through an
instantaneous release mode to set the initial speed.

This modeling option improves simulation performance because static contact mode does not require the block to keep computing hard stop force when the block is in contact mode.

### 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.

## Examples

## Ports

### Conserving

## Parameters

## Extended Capabilities

## Version History

**Introduced in R2007a**