Rate limiter

Limits how fast a signal may change.

  • signal
  • Gradara equations
  • 2 ports
  • 2 parameters
BlockRate limiterKindrateLimiterLibraryNonlinear

Description

Limits how fast its output can rise or fall. The output tracks the input, moving no faster than Rising limit upward and Falling limit downward.

Near the input the output follows it with a first-order lag of 1 ms, so it settles on the input rather than hitting it exactly.

Example

Nonlinearities Saturation, dead zone, relay, and rate limiter acting on the same sine.

Sine, amplitude 2Saturation ±1Dead zone ±0.5RelayRate limit 2/s
In Gradara, select a Rate limiter block and press F1, then choose Open example. It opens as a new model in My models, ready to run.

Also in this example:SaturationSine waveDead zoneRelay

Ports

Inputs 1

  • u

    Input signal.

Outputs 1

  • y

    Rate-limited output.

Parameters

  • Rising limitrising10 1/s

    ≥ 0

    Largest upward rate, in units per second. 0 or more; 0 stops the output from rising.

  • Falling limitfalling10 1/s

    ≥ 0

    Largest downward rate, in units per second, as a positive number. 0 or more; 0 stops the output from falling.

Equations

Modelica
dy/dt = min(rising, 1000 · (u − y)) if u > y
dy/dt = max(−falling, 1000 · (u − y)) otherwise
y = 0 at time 0

Implementation

The block’s Modelica model
Real x(start=0, fixed=true);
der(x) = if u > x then min(rising, (u - x)*1000) else max(-falling, (u - x)*1000);
y = x;

Assumptions and limitations

  • The output starts at 0, not at the input, so a nonzero input at time 0 is approached at the rate limit.
  • Tracking uses a fixed 1 ms time constant; signals faster than that are also smoothed.

See also

Select a block in Gradara and press F1 to open its page offline.