Rate Limiter

Description of the Rate Limiter component in Schematic Editor which limits the rate of change of an input signal.

Component Icon

Figure 1. Rate Limiter icon

Description

If the slope of an input signal is within the limits determined by rising and falling rate limits, the output signal will follow the input signal.

If the slope of an input signal is steeper than falling rate limit, the output signal will have the slope determined by falling rate limit.

If the slope of an input signal is steeper than rising rate limit, the output signal will have the slope determined by rising rate limit.

Rising and falling rate limits can be fixed and specified using corresponding properties, or can be specified using signals from the model. If the Rising/Falling rate limit source is defined as external, an additional terminal is created on the component to connect the desired signal.

The Rate Limiter component can be represented by the equation below:

where Ts is the simulation step

ratefall is the falling rate limit

raterise is the rising rate limit

The behavior of the Rate Limiter component is illustrated in Figure 2, where x(t) is the input signal and y(t) is the output signal.

Figure 2. Example of Rate Limiter component response to a step input

Ports

  • in (in)
    • Original input signal.
      • Supported types: uint, int and real.
      • Vector support: yes.
  • rising _limit_in (in)
    • Value of the rising rate limit of the Rate Limiter block when Rising rate limit source is set as “external”.
      • Supported types: uint, int and real.
      • Vector support: yes.
      • Dynamically created when Rising rate limit source property is defined as “external”.
  • falling _limit_in (in)
    • Value of the falling rate limit of the Rate Limiter block when Falling rate limit source is set as “external”.
      • Supported types: uint, int and real.
      • Vector support: yes.
      • Dynamically created when Falling rate limit source property is defined as “external”.
  • out (out)
    • The output signal with the applied rate limitations.
      • Supported types: uint, int and real.
        • Output type is inherited from the input signal.
      • Vector support: yes.
        • Vector length is inherited from input signal.

Properties

  • Rising rate limit
    • Type in the value of the maximum positive slope of the signal to be applied on the input. If the property value is a vector, the input signal must be a vector of the same size. Each value element is applied to the corresponding input element.

      If the property is a scalar, and the input is a vector, the same limit will be applied to all input elements.

  • Rising rate limit source
    • Choose the source for the parameter Rising rate limit. It can be “internal” or “external”. This parameter defines whether the rising rate limit to be applied is set internally or externally. In case it is set externally, an additional input is displayed in the block.
  • Falling rate limit
    • Type in the value of the maximum negative slope of the signal to be applied on the input. If the property value is a vector, the input signal must be a vector of the same size. Each value element is applied to the corresponding input element.

      If the property is a scalar, and the input is a vector, the same limit will be applied to all input elements.

  • Falling rate limit source
    • Choose the source for the parameter Falling rate limit. It can be “internal” or “external”. This parameter defines whether the falling rate limit to be applied is set internally or externally. In case it is set externally, an additional input is displayed in the block.
  • Execution rate
    • Type in the desired signal processing execution rate. This value must be compatible with other signal processing components of the same circuit: the value must be a multiple of the fastest execution rate in the circuit. There can be up to four different execution rates, but they must all be multiple of the basic simulation timestep. To specify the execution rate, you can use either decimal (e.g. 0.001) or exponential values (e.g. 1e-3) in seconds. Alternatively, you can type in ‘inherit’ in which case the component will be assigned execution rate based on the execution rate of the components it is receiving input from.