MultiSwitchSet Integer expression that is associated with the first active input signal |
This information is part of the Modelica Standard Library maintained by the Modelica Association.
This block has a vector of Boolean input signals u[nu] and a vector of (time varying) Integer expressions expr[nu]. The output signal y is set to expr[i], if i is the first element in the input vector u that is true. If all input signals are false, y is set to parameter "y_default" or the last value is kept, if use_pre_as_default = true.
// Conceptual equation (not valid Modelica) i = 'first element of u[:] that is true'; y = if i==0 then (if use_pre_as_default then pre(y) else y_default) else expr[i];
The input connector is a vector of Boolean input signals. When a connection line is drawn, the dimension of the input vector is enlarged by one and the connection is automatically connected to this new free index (thanks to the connectorSizing annotation).
The usage is demonstrated, e.g., in example Modelica.Blocks.Examples.IntegerNetwork1.
y_default |
Value: 0 Type: Integer Description: Default value of output y if use_pre_as_default=false, as well as pre(y) at initial time |
---|---|
use_pre_as_default |
Value: true Type: Boolean Description: = true, y holds its last value if all u[i]=false, otherwise y=y_default |
nu |
Value: 0 Type: Integer Description: Number of input connections |
expr |
Default Value: fill(0, nu) Type: Integer[nu] Description: y = if u[i] then expr[i] elseif use_pre_as_default then pre(y) else y_default |
---|
u |
Type: BooleanVectorInput[nu] Description: Set y = expr[i], if u[i] = true |
|
---|---|---|
y |
Type: IntegerOutput Description: Output depending on expression |
Modelica.Blocks.Examples Demonstrates the usage of blocks from Modelica.Blocks.MathInteger |