# Cable

**Libraries:**

Simscape /
Driveline /
Couplings & Drives

## Description

The Cable block represents an element that transfers tension
between two contact points. You can treat the block as an arbitrary tension transfer
device to simulate a variety of situations, including pulley networks, cable drives, and
serpentine belts. You can choose whether the cable exhibits slack upon loss of tension.
The block has a base port, **B**, and a follower port,
**F**. The cable stretches in tension when the base port leads the
follower port.

The block considers only the longitudinal translational motion and force of the cable ends. The first figure shows a Translational Spring and Translational Damper block in parallel, which is functionally equivalent to the Cable block with zero mass. The second figure shows the same spring and damper blocks but with an additional Mass block on either side, which is functionally equivalent to the Cable block with a nonzero mass.

These figures only apply when the cable is in tension.

**Tip**

Confirm that your model operates as expected before you select the **Model
slack** and **Model mass** parameters. Verify that
the **B** and **F** ports are oriented properly by
viewing the tension plots of each cable in the **Simscape Results
Viewer** and looking for unexpected negative values.

The Cable block can act as a rope, belt, cable, or any other
device that has tensile strength and transmits tension between two contact points. A
contact point can be a pulley, a drum, or an ideal source. You can use the
**Cable parameterization** parameter to control whether the block
acts as a constant or tabulated connection.

You can use this block to model stationary or travelling pulley networks. You can drive the Cable block with sources like the Ideal Translational Velocity Source block, or a Rope Drum block attached to an Ideal Force Source block.

For greater fidelity or numerical stability, you can choose to model the effect of mass on
the system. When you select **Model mass**, the block distributes
half of the total mass to either end of the cable. Adding a small amount of mass can
improve the initialization of your model. You can also specify the initial conditions of
the cable. If you choose to simulate slack, the block does not apply stiffness and
damping when the cable is in slack.

### Equations

The block equations refer to these quantities:

*F*is the tension force, where $$F={F}_{B}=-{F}_{F}.$$*K*is the spring stiffness coefficient. $$K({x}_{s})=0$$ when you select**Model slack**and $${x}_{s}<0$$.*D*is the damping coefficient.*m*is the total mass, which you specify by using the**Mass**parameter. The block distributes half of the total mass to each end.*x*is the position of the base node._{B}*x*is the position of the follower node._{F}*x*is the deformation due to stretching, which you specify by using the_{s}**Stretch**variable.*ẋ*is the stretch velocity._{s}

The Cable block characterizes the external load at the port
**B** as

$${F}_{B}({x}_{s}(t),t)=\frac{m}{2}{\ddot{x}}_{B}(t)+D({x}_{s}(t)){\dot{x}}_{s}(t)+K({x}_{s}(t)){x}_{s}(t),$$

and port **F** as,

$${F}_{F}({x}_{s}(t),t)=\frac{m}{2}{\ddot{x}}_{F}(t)-D({x}_{s}(t)){\dot{x}}_{s}(t)-K({x}_{s}(t)){x}_{s}(t),$$

where $${x}_{s}(t)={x}_{B}(t)-{x}_{F}(t)$$. The forces vary as functions of time and the stretch deformation,
*x _{s}*.

*K*and

*B*are functions of

*x*, such that $$K({x}_{s})=K$$ when there is no slack or you are not simulating slack. Otherwise, $$K({x}_{s})=0$$ when slack occurs at $${x}_{s}<0$$. The same logic applies for

_{s}*B*. The terms that involve mass only apply when you select the

**Model mass**parameter.

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

## Extended Capabilities

## Version History

**Introduced in R2021a**