Package Modelica.​ComplexBlocks.​ComplexMath
Library of mathematical functions as input/output blocks

Information

This package contains basic mathematical operations, such as summation and multiplication, and basic mathematical functions, such as sqrt and sin, as input/output blocks. All blocks of this library can be either connected with continuous blocks or with sampled-data blocks.

Extends from Modelica.​Icons.​Package (Icon for standard packages).

Package Contents

NameDescription
AcosOutput the arc cosine of the input
AddOutput the sum of the two inputs
Add3Output the sum of the three inputs
AsinOutput the arc sine of the input
AtanOutput the arc tangent of the input
BodeCalculate quantities to plot Bode diagram
ComplexToPolarConverts complex to polar representation
ComplexToRealConverts complex to Cartesian representation
ConjOutput is equal to the conjugate complex input signal
CosOutput the cosine of the input
CoshOutput the hyperbolic cosine of the input
DivisionOutput first input divided by second input
ExpOutput the exponential (base e) of the input
FeedbackOutput difference between commanded input 1 and feedback input 2
GainOutput the product of a gain value with the input signal
LogOutput the natural (base e) logarithm of the input (input <> '0' required)
PolarToComplexConverts polar representation to complex
ProductOutput product of the two inputs
RealToComplexConverts Cartesian representation to complex
SinOutput the sine of the input
SinhOutput the hyperbolic sine of the input
SqrtOutput the square root of the input (= principal square root of complex number)
SumOutput the sum of the elements of the input vector
TanOutput the tangent of the input
TanhOutput the hyperbolic tangent of the input
TransferFunctionComplex Transfer Function

Block Modelica.​ComplexBlocks.​ComplexMath.​Conj
Output is equal to the conjugate complex input signal

Information

This block computes output y as conjugate complex input u.

    y = Modelica.ComplexMath.conj(u)

Extends from Modelica.​ComplexBlocks.​Interfaces.​ComplexSISO (Single Input Single Output continuous control block).

Parameters

TypeNameDefaultDescription
final BooleanuseConjugateInputtrueIf true, input is processed conjugate complex

Connectors

TypeNameDescription
input ComplexInputuConnector of Complex input signal
output ComplexOutputyConnector of Complex output signal

Block Modelica.​ComplexBlocks.​ComplexMath.​Gain
Output the product of a gain value with the input signal

Information

This block computes output y as product of gain k with the input u. Optionally, the input u can be processed conjugate complex, when parameter useConjugateInput is true. Depending on useConjugateInput either the original or the conjugate complex input signal are processed.

    y = k * (if useConjugateInput then Modelica.ComplexMath.conj(u) else u);

Example: If useConjugateInput = true and k = 2 the output signal y = 2 * Modelica.ComplexMath.conj(u).

Parameters

TypeNameDefaultDescription
Complexk Gain value multiplied with input signal
BooleanuseConjugateInputfalseIf true, input is processed conjugate complex

Connectors

TypeNameDescription
input ComplexInputuInput signal connector
output ComplexOutputyOutput signal connector

Block Modelica.​ComplexBlocks.​ComplexMath.​Sum
Output the sum of the elements of the input vector

Information

This blocks computes output y as sum of the elements of the input signal vector u:

    y = u[1] + u[2] + ...;

Example:

     parameter:   nin = 3;

  results in the following equations:

     y = u[1] + u[2] + u[3];

Extends from Modelica.​ComplexBlocks.​Interfaces.​ComplexMISO (Multiple Input Single Output continuous control block).

Parameters

TypeNameDefaultDescription
Integernin1Number of inputs
BooleanuseConjugateInput[nin]fill(false, nin)If true, inputs are processed conjugate complex
Complexk[nin]fill(Complex(1, 0), nin)Optional: sum coefficients

Connectors

TypeNameDescription
input ComplexInputu[nin]Connector of Complex input signals
output ComplexOutputyConnector of Complex output signal

Block Modelica.​ComplexBlocks.​ComplexMath.​Feedback
Output difference between commanded input 1 and feedback input 2

Information

This blocks computes output y as difference of the commanded input u1 and the feedback input u2. Optionally, either input u1 or u2 or both inputs can be processed conjugate complex, when parameters useConjugateInput1 and useConjugateInput2 are true, respectively.

  y = (if useConjugateInput1 then Modelica.ComplexMath.conj(u1) else u1)
    - (if useConjugateInput1 then Modelica.ComplexMath.conj(u2) else u2);

Example parameters:

result in the following equation:

     y = Modelica.ComplexMath.conj(u1) - u2

Parameters

TypeNameDefaultDescription
BooleanuseConjugateInput1falseIf true, input 1 is processed conjugate complex
BooleanuseConjugateInput2falseIf true, input 2 is processed conjugate complex

Connectors

TypeNameDescription
input ComplexInputu1 
input ComplexInputu2 
output ComplexOutputy 

Block Modelica.​ComplexBlocks.​ComplexMath.​Add
Output the sum of the two inputs

Information

This blocks computes output y as sum of the two input signals u1 and u2. Optionally, either input u1 or u2 or both inputs can be processed conjugate complex, when parameters useConjugateInput1 and useConjugateInput2 are true, respectively.

  y = k1*u1Internal + k2*u2Internal;

Example parameters:

result in the following equation:

     y = 2 * Modelica.ComplexMath.conj(u1) - 3 * u2

Extends from Modelica.​ComplexBlocks.​Interfaces.​ComplexSI2SO (2 Single Input / 1 Single Output continuous control block).

Parameters

TypeNameDefaultDescription
BooleanuseConjugateInput1falseIf true, input 1 is processed conjugate complex
BooleanuseConjugateInput2falseIf true, input 2 is processed conjugate complex
Complexk1Complex(1, 0)Gain of input 1
Complexk2Complex(1, 0)Gain of input 2

Connectors

TypeNameDescription
input ComplexInputu1Connector of Complex input signal 1
input ComplexInputu2Connector of Complex input signal 2
output ComplexOutputyConnector of Complex output signal

Block Modelica.​ComplexBlocks.​ComplexMath.​Add3
Output the sum of the three inputs

Information

This blocks computes output y as sum of the three input signals u1, u2 and u3. Optionally, inputs u1 and u2 and u3 can be processed conjugate complex, when parameters useConjugateInput1 and useConjugateInput2 and useConjugateInput3 are true, respectively.

  y = k1*(if useConjugateInput1 then Modelica.ComplexMath.conj(u1) else u1)
    + k2*(if useConjugateInput2 then Modelica.ComplexMath.conj(u2) else u2)
    + k3*(if useConjugateInput3 then Modelica.ComplexMath.conj(u3) else u3);

Example parameters:

result in the following equation:

     y = 2 * Modelica.ComplexMath.conj(u1) - 3 * u2 + u3;

Extends from Modelica.​Blocks.​Icons.​Block (Basic graphical layout of input/output block).

Parameters

TypeNameDefaultDescription
Complexk1Complex(1, 0)Gain of upper input
BooleanuseConjugateInput1falseIf true, input 1 is processed conjugate complex
Complexk2Complex(1, 0)Gain of middle input
BooleanuseConjugateInput2falseIf true, input 2 is processed conjugate complex
Complexk3Complex(1, 0)Gain of lower input
BooleanuseConjugateInput3falseIf true, input 3 is processed conjugate complex

Connectors

TypeNameDescription
input ComplexInputu1Connector 1 of Complex input signals
input ComplexInputu2Connector 2 of Complex input signals
input ComplexInputu3Connector 3 of Complex input signals
output ComplexOutputyConnector of Complex output signals

Block Modelica.​ComplexBlocks.​ComplexMath.​Product
Output product of the two inputs

Information

This blocks computes the output y (element-wise) as product of the corresponding elements of the two inputs u1 and u2. Optionally, either input u1 or u2 or both inputs can be processed conjugate complex, when parameters useConjugateInput1 and useConjugateInput2 are true, respectively. Depending on useConjugateInput1 and useConjugateInput2 the internal signals represent either the original or the conjugate complex input signal.

  y = u1Inernal * u2Internal;

Example: If useConjugateInput1 = true and useConjugateInput2 = false the output signal y = Modelica.ComplexMath.conj(u1) * u2.

Extends from Modelica.​ComplexBlocks.​Interfaces.​ComplexSI2SO (2 Single Input / 1 Single Output continuous control block).

Parameters

TypeNameDefaultDescription
BooleanuseConjugateInput1falseIf true, input 1 is processed conjugate complex
BooleanuseConjugateInput2falseIf true, input 2 is processed conjugate complex

Connectors

TypeNameDescription
input ComplexInputu1Connector of Complex input signal 1
input ComplexInputu2Connector of Complex input signal 2
output ComplexOutputyConnector of Complex output signal

Block Modelica.​ComplexBlocks.​ComplexMath.​Division
Output first input divided by second input

Information

This block computes the output y (element-wise) by dividing the corresponding elements of the two inputs u1 and u2. Optionally, either input u1 or u2 or both inputs can be processed conjugate complex, when parameters useConjugateInput1 and useConjugateInput2 are true, respectively. Depending on useConjugateInput1 and useConjugateInput2 the internal signals represent either the original or the conjugate complex input signal.

    y = u1Internal / u2Internal;

Example: If useConjugateInput1 = true and useConjugateInput2 = false the output signal y = Modelica.ComplexMath.conj(u1) / u2.

Extends from Modelica.​ComplexBlocks.​Interfaces.​ComplexSI2SO (2 Single Input / 1 Single Output continuous control block).

Parameters

TypeNameDefaultDescription
BooleanuseConjugateInput1falseIf true, input 1 is processed conjugate complex
BooleanuseConjugateInput2falseIf true, input 2 is processed conjugate complex

Connectors

TypeNameDescription
input ComplexInputu1Connector of Complex input signal 1
input ComplexInputu2Connector of Complex input signal 2
output ComplexOutputyConnector of Complex output signal

Block Modelica.​ComplexBlocks.​ComplexMath.​Sqrt
Output the square root of the input (= principal square root of complex number)

Information

This blocks computes the output y as square root of the input u (= principal square root of the complex input). Optionally, the input u can be processed conjugate complex, when parameter useConjugateInput is true. Depending on useConjugateInput the internal signal uInternal represents either the original or the conjugate complex input signal.

    y = sqrt(uInternal);

Extends from Modelica.​ComplexBlocks.​Interfaces.​ComplexSISO (Single Input Single Output continuous control block).

Parameters

TypeNameDefaultDescription
BooleanuseConjugateInputfalseIf true, input is processed conjugate complex

Connectors

TypeNameDescription
input ComplexInputuConnector of Complex input signal
output ComplexOutputyConnector of Complex output signal

Block Modelica.​ComplexBlocks.​ComplexMath.​Sin
Output the sine of the input

Information

This blocks computes the output y as sine of the input u. Optionally, the input u can be processed conjugate complex, when parameter useConjugateInput is true. Depending on useConjugateInput the internal signal uInternal represents either the original or the conjugate complex input signal.

    y = sin(uInternal);

sin.png

Extends from Modelica.​ComplexBlocks.​Interfaces.​ComplexSISO (Single Input Single Output continuous control block).

Parameters

TypeNameDefaultDescription
BooleanuseConjugateInputfalseIf true, input is processed conjugate complex

Connectors

TypeNameDescription
input ComplexInputuConnector of Complex input signal
output ComplexOutputyConnector of Complex output signal

Block Modelica.​ComplexBlocks.​ComplexMath.​Cos
Output the cosine of the input

Information

This blocks computes the output y as cos of the input u. Optionally, the input u can be processed conjugate complex, when parameter useConjugateInput is true. Depending on useConjugateInput the internal signal uInternal represents either the original or the conjugate complex input signal.

    y = cos(uInternal);

cos.png

Extends from Modelica.​ComplexBlocks.​Interfaces.​ComplexSISO (Single Input Single Output continuous control block).

Parameters

TypeNameDefaultDescription
BooleanuseConjugateInputfalseIf true, input is processed conjugate complex

Connectors

TypeNameDescription
input ComplexInputuConnector of Complex input signal
output ComplexOutputyConnector of Complex output signal

Block Modelica.​ComplexBlocks.​ComplexMath.​Tan
Output the tangent of the input

Information

This blocks computes the output y as tan of the input u. Optionally, the input u can be processed conjugate complex, when parameter useConjugateInput is true. Depending on useConjugateInput the internal signal uInternal represents either the original or the conjugate complex input signal.

    y = tan(uInternal);

tan.png

Extends from Modelica.​ComplexBlocks.​Interfaces.​ComplexSISO (Single Input Single Output continuous control block).

Parameters

TypeNameDefaultDescription
BooleanuseConjugateInputfalseIf true, input is processed conjugate complex

Connectors

TypeNameDescription
input ComplexInputuConnector of Complex input signal
output ComplexOutputyConnector of Complex output signal

Block Modelica.​ComplexBlocks.​ComplexMath.​Asin
Output the arc sine of the input

Information

This blocks computes the output y as the sine-inverse of the input u. Optionally, the input u can be processed conjugate complex, when parameter useConjugateInput is true. Depending on useConjugateInput the internal signal uInternal represents either the original or the conjugate complex input signal.

    y = asin(uInternal);

asin.png

Extends from Modelica.​ComplexBlocks.​Interfaces.​ComplexSISO (Single Input Single Output continuous control block).

Parameters

TypeNameDefaultDescription
BooleanuseConjugateInputfalseIf true, input is processed conjugate complex

Connectors

TypeNameDescription
input ComplexInputuConnector of Complex input signal
output ComplexOutputyConnector of Complex output signal

Block Modelica.​ComplexBlocks.​ComplexMath.​Acos
Output the arc cosine of the input

Information

This blocks computes the output y as the cosine-inverse of the input u. Optionally, the input u can be processed conjugate complex, when parameter useConjugateInput is true. Depending on useConjugateInput the internal signal uInternal represents either the original or the conjugate complex input signal.

    y = acos(uInternal);

acos.png

Extends from Modelica.​ComplexBlocks.​Interfaces.​ComplexSISO (Single Input Single Output continuous control block).

Parameters

TypeNameDefaultDescription
BooleanuseConjugateInputfalseIf true, input is processed conjugate complex

Connectors

TypeNameDescription
input ComplexInputuConnector of Complex input signal
output ComplexOutputyConnector of Complex output signal

Block Modelica.​ComplexBlocks.​ComplexMath.​Atan
Output the arc tangent of the input

Information

This blocks computes the output y as the tangent-inverse of the input u. Optionally, the input u can be processed conjugate complex, when parameter useConjugateInput is true. Depending on useConjugateInput the internal signal uInternal represents either the original or the conjugate complex input signal.

    y= atan(uInternal);

atan.png

Extends from Modelica.​ComplexBlocks.​Interfaces.​ComplexSISO (Single Input Single Output continuous control block).

Parameters

TypeNameDefaultDescription
BooleanuseConjugateInputfalseIf true, input is processed conjugate complex

Connectors

TypeNameDescription
input ComplexInputuConnector of Complex input signal
output ComplexOutputyConnector of Complex output signal

Block Modelica.​ComplexBlocks.​ComplexMath.​Sinh
Output the hyperbolic sine of the input

Information

This blocks computes the output y as the hyperbolic sine of the input u. Optionally, the input u can be processed conjugate complex, when parameter useConjugateInput is true. Depending on useConjugateInput the internal signal uInternal represents either the original or the conjugate complex input signal.

    y = sinh(uInternal);

sinh.png

Extends from Modelica.​ComplexBlocks.​Interfaces.​ComplexSISO (Single Input Single Output continuous control block).

Parameters

TypeNameDefaultDescription
BooleanuseConjugateInputfalseIf true, input is processed conjugate complex

Connectors

TypeNameDescription
input ComplexInputuConnector of Complex input signal
output ComplexOutputyConnector of Complex output signal

Block Modelica.​ComplexBlocks.​ComplexMath.​Cosh
Output the hyperbolic cosine of the input

Information

This blocks computes the output y as the hyperbolic cosine of the input u. Optionally, the input u can be processed conjugate complex, when parameter useConjugateInput is true. Depending on useConjugateInput the internal signal uInternal represents either the original or the conjugate complex input signal.

    y = cosh(uInternal);

cosh.png

Extends from Modelica.​ComplexBlocks.​Interfaces.​ComplexSISO (Single Input Single Output continuous control block).

Parameters

TypeNameDefaultDescription
BooleanuseConjugateInputfalseIf true, input is processed conjugate complex

Connectors

TypeNameDescription
input ComplexInputuConnector of Complex input signal
output ComplexOutputyConnector of Complex output signal

Block Modelica.​ComplexBlocks.​ComplexMath.​Tanh
Output the hyperbolic tangent of the input

Information

This blocks computes the output y as the hyperbolic tangent of the input u. Optionally, the input u can be processed conjugate complex, when parameter useConjugateInput is true. Depending on useConjugateInput the internal signal uInternal represents either the original or the conjugate complex input signal.

    y = tanh(uInternal);

tanh.png

Extends from Modelica.​ComplexBlocks.​Interfaces.​ComplexSISO (Single Input Single Output continuous control block).

Parameters

TypeNameDefaultDescription
BooleanuseConjugateInputfalseIf true, input is processed conjugate complex

Connectors

TypeNameDescription
input ComplexInputuConnector of Complex input signal
output ComplexOutputyConnector of Complex output signal

Block Modelica.​ComplexBlocks.​ComplexMath.​Exp
Output the exponential (base e) of the input

Information

This blocks computes the output y as the exponential (of base e) of the input u. Optionally, the input u can be processed conjugate complex, when parameter useConjugateInput is true. Depending on useConjugateInput the internal signal uInternal represents either the original or the conjugate complex input signal.

    y = exp(uInternal);

exp.png

Extends from Modelica.​ComplexBlocks.​Interfaces.​ComplexSISO (Single Input Single Output continuous control block).

Parameters

TypeNameDefaultDescription
BooleanuseConjugateInputfalseIf true, input is processed conjugate complex

Connectors

TypeNameDescription
input ComplexInputuConnector of Complex input signal
output ComplexOutputyConnector of Complex output signal

Block Modelica.​ComplexBlocks.​ComplexMath.​Log
Output the natural (base e) logarithm of the input (input <> '0' required)

Information

This blocks computes the output y as the natural (base e) logarithm of the input u. Optionally, the input u can be processed conjugate complex, when parameter useConjugateInput is true. Depending on useConjugateInput the internal signal uInternal represents either the original or the conjugate complex input signal.

    y = log(uInternal);

An error occurs if the elements of the input u is zero.

log.png

Extends from Modelica.​ComplexBlocks.​Interfaces.​ComplexSISO (Single Input Single Output continuous control block).

Parameters

TypeNameDefaultDescription
BooleanuseConjugateInputfalseIf true, input is processed conjugate complex

Connectors

TypeNameDescription
input ComplexInputuConnector of Complex input signal
output ComplexOutputyConnector of Complex output signal

Block Modelica.​ComplexBlocks.​ComplexMath.​RealToComplex
Converts Cartesian representation to complex

Information

Converts the Real inputs re (real part) and im (imaginary part) to the Complex output y.

Extends from Modelica.​ComplexBlocks.​Interfaces.​ComplexSO (Single Output continuous control block).

Connectors

TypeNameDescription
output ComplexOutputyConnector of Complex output signal
input RealInputre 
input RealInputim 

Block Modelica.​ComplexBlocks.​ComplexMath.​PolarToComplex
Converts polar representation to complex

Information

Converts the Real inputs len (length, absolute) and phi (angle, argument) to the Complex output y.

Extends from Modelica.​ComplexBlocks.​Interfaces.​ComplexSO (Single Output continuous control block).

Connectors

TypeNameDescription
output ComplexOutputyConnector of Complex output signal
input RealInputlen 
input RealInputphi 

Block Modelica.​ComplexBlocks.​ComplexMath.​ComplexToReal
Converts complex to Cartesian representation

Information

Converts the Complex input u to the Real outputs re (real part) and im (imaginary part).

Extends from Modelica.​Blocks.​Icons.​Block (Basic graphical layout of input/output block).

Parameters

TypeNameDefaultDescription
BooleanuseConjugateInputfalseIf true, input is processed conjugate complex

Connectors

TypeNameDescription
output RealOutputre 
output RealOutputim 
input ComplexInputu 

Block Modelica.​ComplexBlocks.​ComplexMath.​ComplexToPolar
Converts complex to polar representation

Information

Converts the Complex input u to the Real outputs len (length, absolute) and phi (angle, argument).

Extends from Modelica.​Blocks.​Icons.​Block (Basic graphical layout of input/output block).

Parameters

TypeNameDefaultDescription
BooleanuseConjugateInputfalseIf true, input is processed conjugate complex

Connectors

TypeNameDescription
output RealOutputlen 
output RealOutputphi 
input ComplexInputu 

Block Modelica.​ComplexBlocks.​ComplexMath.​Bode
Calculate quantities to plot Bode diagram

Information

This complex block is used to determine variables of a Bode diagram for the output y. The output y is calculated by u / divisor if useDivisor == true. Otherwise the output y = u.

Parameters

TypeNameDefaultDescription
BooleanuseDivisortrueUse divisor input, if true

Connectors

TypeNameDescription
input ComplexInputuDividend if useDivisor == true
input ComplexInputdivisorDivisor
output RealOutputabs_yAbsolute value of ratio u / divisor
output RealOutputarg_yAngle of ratio u / divisor
output ComplexOutputyQuotient y = u / divisor
output RealOutputdB_yLog10 of absolute value of ratio u / divisor in dB

Block Modelica.​ComplexBlocks.​ComplexMath.​TransferFunction
Complex Transfer Function

Information

The complex input u is multiplied by the complex transfer function (depending on frequency input w) to obtain the complex output y (nb = dimension of b, na = dimension of a):

           b[1]*(jw)^[nb-1] + b[2]*(jw)^[nb-2] + ... + b[nb]
   y(jw) = ------------------------------------------------- * u(jw)
           a[1]*(jw)^[na-1] + a[2]*(jw)^[na-2] + ... + a[na]

Extends from Modelica.​ComplexBlocks.​Interfaces.​ComplexSISO (Single Input Single Output continuous control block).

Parameters

TypeNameDefaultDescription
BooleanuseConjugateInputfalseIf true, input is processed conjugate complex
Realb[:]{1}Numerator coefficients of transfer function (e.g., 2*s+3 is specified as {2,3})
Reala[:]{1}Denominator coefficients of transfer function (e.g., 5*s+6 is specified as {5,6})

Connectors

TypeNameDescription
input ComplexInputuConnector of Complex input signal
output ComplexOutputyConnector of Complex output signal
input RealInputwFrequency input