MultiConverter

Model interface of MultiConverter

This component models conversion between different fluxes.

IO MultiConverter

Fig. 57 I/O MultiConverter

The number of input fluxes NbInputFlux and output fluxes NbOutputFlux are model parameters. Be careful to set the number of ports consistently with NbInputFlux and NbOutputFlux.

Flows are of two types:

  • Input flux : unit system = [Power or Flowrate, Energy or Mass], with type Electrical, Thermal or Fluid, named INPUTFluxI where I is between 1 and NbInputFlux.

  • Output flux : unit system = [Power or Flowrate, Energy or Mass], with type Electrical, Thermal or Fluid, named OUTPUTFluxJ where J is between 1 and NbOutputFlux.

INPUTFluxI and OUTPUTFluxJ are linked by the matrices \(A\) and \(B\), defined as \(A [X\ Y]^T = B\), where:

  • \(X\) is the vector of input fluxes (size NbInputFlux)

  • \(Y\) is the vector of output fluxes (size NbOutputFlux)

  • \(A\) is a block matrix \([A_1\ A_2;\ A_3\ A_4]\)

  • \(B = [B_1\ B_2]^T\) is an offset vector

This defines the system:

\[A_1 X + A_2 Y = B_1 \qquad (\text{NbInputFlux equations})\]
\[A_3 X + A_4 Y = B_2 \qquad (\text{NbOutputFlux equations})\]

The option Inequality Constraint allows defining the additional system \(C [X\ Y]^T \le D\) using the same structure.

Sizing is done relative to the first output OUTPUTFlux1 for MaxPower and Capex.

Upper Bounds on Inputs and Outputs

Upper limits for inputs and outputs can be specified using the parameter UpperBoundsFile (CSV format).

The File must contain a single column with exactly NbInputFlux + NbOutputFlux values and no header, following the same structure as the Matrix-B CSV File (see below: points 1 and 2).

If all bounds are identical, a single value may be provided. This value is then expanded to a vector of size NbInputFlux + NbOutputFlux.

Each bound is interpreted as a relative limit and the actual upper bound is: \(\text{MaxPower} \times \text{givenLimit}\) for every input and output flux.

If no CSV File is provided, an upper limit \(\text{MaxPower} \times \text{weight}\) is applied only on the first output. No upper limits are applied to the other outputs or to any input.

Format and Size of Matrix A (and Matrix C)

The conversion matrix \(A\) (or \(C\) when inequality constraints are used) must be a square matrix of size:

\[(\text{NbInputFlux + NbOutputFlux}) \times (\text{NbInputFlux + NbOutputFlux})\]

The CSV File must therefore contain exactly:

  • NbInputFlux + NbOutputFlux rows

  • NbInputFlux + NbOutputFlux columns

  • numeric values separated by ;

Additional validity rule:

  • The column corresponding to OUTPUTFlux1 (i.e. column index NbInputFlux) must contain at least one non-zero value, ensuring that the first output flux participates in the conversion.

Format and Size of Vector B (and Vector D)

The vector \(B\) (or \(D\) for inequality constraints) is a column vector of size:

\[\text{NbInputFlux + NbOutputFlux}\]

Accepted CSV formats:

  1. Full vector: a single column with exactly NbInputFlux + NbOutputFlux numeric values.

  2. Single-value shortcut: if the File contains only one cell [k], it is expanded to a vector:

    \[[k,\ k,\ \dots,\ k]^T \quad \text{(size NbInputFlux + NbOutputFlux)}\]
  3. Missing File: if the File does not exist, a warning is issued and a zero vector of the correct size is used.

Any other dimension (e.g., multiple columns or an incorrect number of rows) results in an exception.