| Name | Description |
|---|---|
| Show Integer value from numberPort or from number input field in diagram layer dynamically | |
| Sum of Integers: y = k[1]*u[1] + k[2]*u[2] + ... + k[n]*u[n] | |
| Product of Integer: y = u[1]*u[2]* ... *u[n] | |
| Set Integer expression that is associated with the first active input signal | |
| Add input to previous value of output, if rising edge of trigger port |
Modelica_StateGraph2.Blocks.MathInteger.ShowValue
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | use_numberPort | true | = true, if numberPort enabled |
| Integer | number | 0 | Number to visualize if use_numberPort=false (time varying) |
| Type | Name | Description |
|---|---|---|
| input IntegerInput | numberPort | Number to be shown in diagram layer if use_numberPort = true |
| output IntegerOutput | number2 |
block ShowValue
"Show Integer value from numberPort or from number input field in diagram layer dynamically"
parameter Boolean use_numberPort = true "= true, if numberPort enabled";
input Integer number=0
"Number to visualize if use_numberPort=false (time varying)";
Modelica.Blocks.Interfaces.IntegerInput numberPort if use_numberPort
"Number to be shown in diagram layer if use_numberPort = true";
Modelica.Blocks.Interfaces.IntegerOutput number2;
equation
if use_numberPort then
connect(numberPort, number2);
else
number2 = number;
end if;
end ShowValue;
Modelica_StateGraph2.Blocks.MathInteger.Sum
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | k[nu] | fill(1, nu) | Input gains |
| Type | Name | Description |
|---|---|---|
| input IntegerVectorInput | u[nu] | |
| output IntegerOutput | y |
block Sum "Sum of Integers: y = k[1]*u[1] + k[2]*u[2] + ... + k[n]*u[n]" extends Modelica_StateGraph2.Blocks.Interfaces.PartialIntegerMISO; parameter Integer k[nu] = fill(1,nu) "Input gains"; equation y = k*u;end Sum;
Modelica_StateGraph2.Blocks.MathInteger.Product
| Type | Name | Description |
|---|---|---|
| input IntegerVectorInput | u[nu] | |
| output IntegerOutput | y |
block Product "Product of Integer: y = u[1]*u[2]* ... *u[n]" extends Modelica_StateGraph2.Blocks.Interfaces.PartialIntegerMISO; equation y = product(u);end Product;
Modelica_StateGraph2.Blocks.MathInteger.MultiSwitch
The block has a vector of Boolean input signals u[nu] and a vector of (time varying) Integer expressions expr[:]. 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 to pre(y) depending on the parameter use_pre_as_default:
// 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];
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | expr[nu] | fill(0, nu) | y = if u[i] then expr[i] elseif use_pre_as_default then pre(y) else y_default |
| Integer | y_default | 0 | Default value of output y if use_pre_as_default=false, as well as pre(y) at initial time |
| Boolean | use_pre_as_default | true | = true, y holds its last value if all u[i]=false, otherwise y=y_default |
| Type | Name | Description |
|---|---|---|
| input BooleanVectorInput | u[nu] | Set y = expr[i], if u[i] = true |
| output IntegerOutput | y | Output depending on expression |
block MultiSwitch
"Set Integer expression that is associated with the first active input signal"
input Integer expr[nu]=fill(0, nu)
"y = if u[i] then expr[i] elseif use_pre_as_default then pre(y) else y_default";
parameter Integer y_default=0
"Default value of output y if use_pre_as_default=false, as well as pre(y) at initial time";
parameter Boolean use_pre_as_default=true
"= true, y holds its last value if all u[i]=false, otherwise y=y_default";
parameter Integer nu(min=0) = 0 "Number of input connections";
Modelica_StateGraph2.Blocks.Interfaces.BooleanVectorInput u[nu]
"Set y = expr[i], if u[i] = true";
Modelica.Blocks.Interfaces.IntegerOutput y "Output depending on expression";
protected
Integer firstActiveIndex;
initial equation
pre(y) = y_default;
equation
firstActiveIndex = BooleanFunctions.firstTrueIndex(u);
y = if firstActiveIndex > 0 then expr[firstActiveIndex] else
if use_pre_as_default then pre(y) else y_default;
end MultiSwitch;
Modelica_StateGraph2.Blocks.MathInteger.TriggeredAdd
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | use_reset | false | =true, if reset port enabled |
| Boolean | use_set | false | =true, if set port enabled and used as default value when reset |
| Integer | y_start | 0 | Initial and reset value of y if set port is not used |
| Type | Name | Description |
|---|---|---|
| output IntegerOutput | y | |
| input IntegerInput | u | |
| input BooleanInput | trigger | |
| input BooleanInput | reset | |
| input IntegerInput | set |
block TriggeredAdd
"Add input to previous value of output, if rising edge of trigger port"
extends Interfaces.PartialIntegerSISO;
parameter Boolean use_reset = false "=true, if reset port enabled";
parameter Boolean use_set = false
"=true, if set port enabled and used as default value when reset";
parameter Integer y_start = 0
"Initial and reset value of y if set port is not used";
Modelica.Blocks.Interfaces.BooleanInput trigger;
Modelica.Blocks.Interfaces.BooleanInput reset if use_reset;
Modelica.Blocks.Interfaces.IntegerInput set if use_set;
protected
Modelica.Blocks.Interfaces.BooleanOutput local_reset;
Modelica.Blocks.Interfaces.IntegerOutput local_set;
initial equation
pre(y) = y_start;
equation
if use_reset then
connect(reset, local_reset);
if use_set then
connect(set, local_set);
else
local_set = y_start;
end if;
else
local_reset = false;
local_set = 0;
end if;
when {trigger, local_reset} then
y = if local_reset then local_set else pre(y) + u;
end when;
end TriggeredAdd;