Modelica.Blocks.Nonlinear.SlewRateLimiter Modelica.Blocks.Nonlinear.SlewRateLimiter

Limits the slew rate of a signal

Modelica.Blocks.Nonlinear.SlewRateLimiter

Information

The SlewRateLimiter block limits the slew rate of its input signal in the range of [Falling, Rising].

To ensure this for arbitrary inputs and in order to produce a differential output, the input is numerically differentiated with derivative time constant Td. Smaller time constant Td means nearer ideal derivative.

Note: The user has to choose the derivative time constant according to the nature of the input signal.

Extends from Modelica.Blocks.Interfaces.SISO (Single Input Single Output continuous control block).

Parameters

TypeNameDefaultDescription
DampingCoefficientRising1Maximum rising slew rate [+small..+inf) [s-1]
DampingCoefficientFalling-RisingMaximum falling slew rate (-inf..-small] [s-1]
TimeTd0.001Derivative time constant [s]
Advanced
Booleanstrictfalse= true, if strict limits with noEvent(..)

Connectors

TypeNameDescription
input RealInputuConnector of Real input signal
output RealOutputyConnector of Real output signal

Modelica definition

block SlewRateLimiter "Limits the slew rate of a signal" extends Modelica.Blocks.Interfaces.SISO; import Modelica.Constants.small; parameter Modelica.SIunits.DampingCoefficient Rising( min= small) = 1 "Maximum rising slew rate [+small..+inf)"; parameter Modelica.SIunits.DampingCoefficient Falling(max=-small) = -Rising "Maximum falling slew rate (-inf..-small]"; parameter Modelica.SIunits.Time Td(min=small) = 0.001 "Derivative time constant"; parameter Boolean strict=false "= true, if strict limits with noEvent(..)"; protected Real val=(u-y)/Td; initial equation y = u; equation if strict then der(y) = smooth(1,noEvent(if val<Falling then Falling else if val>Rising then Rising else val)); else der(y) = if val<Falling then Falling else if val>Rising then Rising else val; end if; end SlewRateLimiter;

Modelica.Blocks.Nonlinear.Limiter Modelica.Blocks.Nonlinear.Limiter

Limit the range of a signal

Modelica.Blocks.Nonlinear.Limiter

Information

The Limiter block passes its input signal as output signal as long as the input is within the specified upper and lower limits. If this is not the case, the corresponding limits are passed as output.

Extends from Interfaces.SISO (Single Input Single Output continuous control block).

Parameters

TypeNameDefaultDescription
RealuMax Upper limits of input signals
RealuMin-uMaxLower limits of input signals
Advanced
Booleanstrictfalse= true, if strict limits with noEvent(..)
Dummy
BooleanlimitsAtInittrueHas no longer an effect and is only kept for backwards compatibility (the implementation uses now the homotopy operator)

Connectors

TypeNameDescription
input RealInputuConnector of Real input signal
output RealOutputyConnector of Real output signal

Modelica definition

block Limiter "Limit the range of a signal" parameter Real uMax(start=1) "Upper limits of input signals"; parameter Real uMin= -uMax "Lower limits of input signals"; parameter Boolean strict=false "= true, if strict limits with noEvent(..)"; parameter Boolean limitsAtInit=true "Has no longer an effect and is only kept for backwards compatibility (the implementation uses now the homotopy operator)"; extends Interfaces.SISO; equation assert(uMax >= uMin, "Limiter: Limits must be consistent. However, uMax (=" + String(uMax) + ") < uMin (=" + String(uMin) + ")"); if strict then y = homotopy(actual = smooth(0, noEvent(if u > uMax then uMax else if u < uMin then uMin else u)), simplified=u); else y = homotopy(actual = smooth(0,if u > uMax then uMax else if u < uMin then uMin else u), simplified=u); end if; end Limiter;

Modelica.Blocks.Nonlinear.FixedDelay Modelica.Blocks.Nonlinear.FixedDelay

Delay block with fixed DelayTime

Modelica.Blocks.Nonlinear.FixedDelay

Information

The Input signal is delayed by a given time instant, or more precisely:

   y = u(time - delayTime) for time > time.start + delayTime
     = u(time.start)       for time ≤ time.start + delayTime

Extends from Modelica.Blocks.Interfaces.SISO (Single Input Single Output continuous control block).

Parameters

TypeNameDefaultDescription
TimedelayTime Delay time of output with respect to input signal [s]

Connectors

TypeNameDescription
input RealInputuConnector of Real input signal
output RealOutputyConnector of Real output signal

Modelica definition

block FixedDelay "Delay block with fixed DelayTime" extends Modelica.Blocks.Interfaces.SISO; parameter SI.Time delayTime(start=1) "Delay time of output with respect to input signal"; equation y = delay(u, delayTime); end FixedDelay;

Automatically generated Mon Sep 11 16:11:53 2017.