The IDAES Separator unit model represents operations where a single stream is split into multiple flows. The Separator model supports separation using split fractions, or by ideal separation of flows. The Separator class can be used to create either a stand-alone separator unit, or as part of a unit model where a flow needs to be separated.
Separator units have a number of degrees of freedom based on the separation type chosen.
- If split_basis = 'phaseFlow', degrees of freedom are generally (no.outlets − 1) × no.phases
- If split_basis = 'componentFlow', degrees of freedom are generally (no.outlets − 1) × no.components
- If split_basis = 'phaseComponentFlow', degrees of freedom are generally (no.outlets − 1) × no.phases × no.components
- If split_basis = 'totalFlow', degrees of freedom are generally (no.outlets − 1) × no.phases × no.components
Typical fixed variables are:
- split fractions.
The IDAES Separator unit model does not use ControlVolumes, and instead writes a set of material, energy and momentum balances to split the inlet stream into a number of outlet streams. Separator models have a single inlet Port (named inlet) and a user-defined number of outlet Ports (by default named outlet_1, outlet_2, etc.).
Mixed State Block
If a mixed state block is provided in the construction arguments, the Mixer model will use this as the StateBlock for the mixed stream in the resulting balance equations. This allows a Mixer unit to be used as part of a larger unit operation by linking to an existing StateBlock.
The IDAES Separator model supports ideal separations, where all of a given subset of the mixed stream is sent to a single outlet (i.e. split fractions are equal to zero or one). In these cases, no Constraints are necessary for performing the separation, as the mixed stream states can be directly partitioned to the outlets.
Ideal separations will not work for all choices of state variables, and thus will not work for all property packages. To use ideal separations, the user must provide a map of what part of the mixed flow should be partitioned to each outlet. The ideal_split_map should be a dict-like object with keys as tuples matching the split_basis argument and values indicating which outlet this subset should be partitioned to.
Separator units have the following variables (o indicates index by outlet):
Variable Name | Symbol | Notes |
---|---|---|
split_fraction | ϕt, o, * | Indexing sets depend upon split_basis |
Separator units have the following Constraints, unless ideal_separation is True.
- If material_balance_type is `componentPhase`:
`material_splitting_eqn(t, o, p, j)`:
Fin, t, p, j = ϕt, p, * × Ft, o, p, j
- If material_balance_type is `componentTotal`:
`material_splitting_eqn(t, o, j)`:
∑pFin, t, p, j = ∑pϕt, p, * × Ft, o, p, j
- If material_balance_type is `total`:
`material_splitting_eqn(t, o)`:
∑p∑jFin, t, p, j = ∑p∑jϕt, p, * × Ft, o, p, j
If energy_split_basis is `equal_temperature`:
`temperature_equality_eqn(t, o)`:
Tin, t = Tt, o
If energy_split_basis is `equal_molar_enthalpy`:
`molar_enthalpy_equality_eqn(t, o)`:
hin, t = ht, o
If energy_split_basis is `enthalpy_split`:
`molar_enthalpy_splitting_eqn(t, o)`:
sumphin, t, p * sft, o, p = sumpht, o, p
`pressure_equality_eqn(t, o)`:
Pin, t = Pt, o
idaes.models.unit_models.separator
Separator
SeparatorData