This package contains **discontinuous** and
**non-differentiable, algebraic** input/output blocks.

Name | Description |
---|---|

Limiter | Limit the range of a signal |

VariableLimiter | Limit the range of a signal with variable limits |

SlewRateLimiter | Limits the slew rate of a signal |

DeadZone | Provide a region of zero output |

FixedDelay | Delay block with fixed DelayTime |

PadeDelay | Pade approximation of delay block with fixed DelayTime |

VariableDelay | Delay block with variable DelayTime |

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).

Name | Description |
---|---|

uMax | Upper limits of input signals |

uMin | Lower limits of input signals |

Advanced | |

strict | = true, if strict limits with noEvent(..) |

limitsAtInit | = false, if limits are ignored during initialization (i.e., y=u) |

Name | Description |
---|---|

u | Connector of Real input signal |

y | Connector of Real output signal |

The Limiter block passes its input signal as output signal as long as the input is within the upper and lower limits specified by the two additional inputs limit1 and limit2. If this is not the case, the corresponding limit is passed as output.

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

Name | Description |
---|---|

strict | = true, if strict limits with noEvent(..) |

limitsAtInit | = false, if limits are ignored during initialization (i.e., y=u) |

Name | Description |
---|---|

u | Connector of Real input signal |

y | Connector of Real output signal |

limit1 | Connector of Real input signal used as maximum of input u |

limit2 | Connector of Real input signal used as minimum of input u |

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.*

Name | Description |
---|---|

Rising | Maximum rising slew rate [+small..+inf) [s-1] |

Falling | Maximum falling slew rate (-inf..-small] [s-1] |

Td | Derivative time constant [s] |

Advanced | |

strict | = true, if strict limits with noEvent(..) |

Name | Description |
---|---|

u | Connector of Real input signal |

y | Connector of Real output signal |

The DeadZone block defines a region of zero output.

If the input is within uMin ... uMax, the output is zero. Outside of this zone, the output is a linear function of the input with a slope of 1.

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

Name | Description |
---|---|

uMax | Upper limits of dead zones |

uMin | Lower limits of dead zones |

deadZoneAtInit | = false, if dead zone is ignored during initialization (i.e., y=u) |

Name | Description |
---|---|

u | Connector of Real input signal |

y | Connector of Real output signal |

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 + delayTimeExtends from Modelica.Blocks.Interfaces.SISO (Single Input Single Output continuous control block).

Name | Description |
---|---|

delayTime | Delay time of output with respect to input signal [s] |

Name | Description |
---|---|

u | Connector of Real input signal |

y | Connector of Real output signal |

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

The delay is approximated by a Pade approximation, i.e., by a transfer function

b[1]*s^m + b[2]*s^[m-1] + ... + b[m+1] y(s) = --------------------------------------------- * u(s) a[1]*s^n + a[2]*s^[n-1] + ... + a[n+1]

where the coefficients b[:] and a[:] are calculated such that the coefficients of the Taylor expansion of the delay exp(-T*s) around s=0 are identical upto order n+m.

The main advantage of this approach is that the delay is approximated by a linear differential equation system, which is continuous and continuously differentiable. For example, it is uncritical to linearize a system containing a Pade-approximated delay.

The standard text book version uses order "m=n", which is also the default setting of this block. The setting "m=n-1" may yield a better approximation in certain cases.

Otto Foellinger: Regelungstechnik, 8. Auflage, chapter 11.9, page 412-414, Huethig Verlag Heidelberg, 1994

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

Name | Description |
---|---|

delayTime | Delay time of output with respect to input signal [s] |

n | Order of Pade approximation |

m | Order of numerator |

Name | Description |
---|---|

u | Connector of Real input signal |

y | Connector of Real output signal |

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

where delayTime is an additional input signal which must follow the following relationship:

0 ≤ delayTime ≤ delayMaxExtends from Modelica.Blocks.Interfaces.SISO (Single Input Single Output continuous control block).

Name | Description |
---|---|

delayMax | maximum delay time |

Name | Description |
---|---|

u | Connector of Real input signal |

y | Connector of Real output signal |

delayTime |