Skip to content

Latest commit

 

History

History
104 lines (61 loc) · 4.14 KB

File metadata and controls

104 lines (61 loc) · 4.14 KB

Separator

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.

Degrees of Freedom

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.

Model Structure

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.

Ideal Separation

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.

Variables

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

Constraints

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)`:


pjFin, t, p, j = ∑pjϕ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

Separator Class

idaes.generic_models.unit_models.separator

Separator

SeparatorData Class

SeparatorData