**Block Category:** Integration

**Input:** Real scalar.

•** x_{1}: **Derivative input signal.

•**U ( x_{2}):** Upper limit.

•**L ( x_{3}):** Lower limit.

**Description:** The limitedIntegrator block integrates
the derivative input signal and limits the internal state to specified upper and
lower limits. If the integral state reaches its limit, it backs off the limit as
soon as the derivative changes sign. You set the integration algorithm in the System Properties
dialog. You can reset the integrator block to 0 using the Reset States.

The limitedIntegrator block is used in the prevention of wind-up in PI and PID controllers in control applications. It is also used in kinematics, electrical circuits, process control, and fluid dynamics.

**Code Generation:** When generating code for C2000 or
ARM Cortex targets and you include one or more limitedIntegrator blocks in your
diagram and you activate **Check for Performance Issues** in the Code
Generation dialog, Embed warns you that large RAM blocks are not supported for
the target. You can continue with code generation; however, the generated code
may not fit in the target RAM and the code will run slower. In this case,
consider using the limitedIntegrator (Fixed Point)
block.

When generating code for Arduino or MSP430 targets, you cannot include limitedIntegrator blocks in your diagram. Embed halts code generation and issues a message to replace the block.

**Checkpoint State:** Contains the value of the
integrator state at the checkpoint. If you have not checkpointed your simulation
using the System
Properties dialog, the value is 0. You can enter a value in hexadecimal notation or as a
C expression.

**ID:** Represents an identification number for the
block, which holds the state number that Embed assigns to the integrator. The
number of states in any block diagram equals the number of integrators. The
default is 0.

**Initial Condition:** Indicates the initial value of
the integrator. The default is 0. You can enter a value in hexadecimal notation or as a C expression.

**Label:** Indicates a user-defined block label that appears when
**View > Block Labels** is activated.

**1. Integration with constant limits**

Consider a system whose dynamics are given by the differential equation:

Furthermore, assume that *x *must lie in the limits 5
≤ *x* ≤ 6 and that *x*(0) = 5. This system can be realized as shown
below.

During simulation, the limitedIntegrator block limits the output to be within the upper and lower limits, namely 6 and 5, respectively.

**2. Integration with time-varying limits**

Consider a system whose dynamics are given by the differential equation:

Furthermore, assume that *x *must lie in the limits
0.2*t* ≤ *x* ≤ 2*t* and that *x*(0) = 0. This system
can be realized as:

A ramp block is used to access simulation time, t; simulation time is then used to feed the sin block, and two gain blocks, set to 2 and 0.2, to generate the time-varying upper and lower limits. During simulation, the time-varying limits and the output of the limitedIntegrator block are displayed in the plot blocks.