Forward Osmosis

from watertap_contrib.reflo.unit_models import ForwardOsmosisZO

This Forward Osmosis (FO) unit model

  • supports steady-state only

  • is a assumed-performance zero-order model

  • is verified against the Trevi’s operational data and modeling results

../../_images/fo_unit_model.png

Figure 1. Diagram of the FO unit model

This FO model is constructed based on the Trevi System’s FO pilot plant configuration. The extraction of water from the feed flow relies on a bi-phasic synthetic polymer draw agent that is either a hydrophilic liquid or a hydrophobic liquid depending on temperature. In its hydrophilic state, this agent draws water across a semi-permeable membrane by osmotic pressure. Once the draw has been diluted by the fresh water crossing the FO membrane, the draw mixture is heated, causing it to become hydrophobic and release water. The water and draw polymer are separated in a traditional “oil/water” coalescer (separator), and a polishing nano-filtration (NF) membrane further purifies the product stream by removing stray polymer. The associated draw solution package is used to simulate the mass and thermal energy transfer within the process.

At the technical heart of the Trevi System, two counter-flow heat exchangers recover process heat from both the draw and purified water streams, transferring heat directly to the dilute draw as it exits the osmosis membrane cartridges. The full configuration is constructed in an example flowsheet.

Degrees of Freedom

The FO model has 6 degrees of freedom that should be fixed for the unit to be fully specified.

Typically, the following variables are fixed, including the state variables at the inlet and other configurations of the system.

State Variables

Variable name

Symbol

Units

Feed salinity

feed_props.conc_mass_phase_comp['Liq', 'TDS']

\(s_{feed}\)

\(\text{g/}\text{L}\)

Feed temperature

feed_props.temperature

\(T_{f}\)

\(^o\text{C}\)

Feed volume flow rate

feed_props.flow_vol_phase['Liq']

\(q_{feed}\)

\(\text{m}^3 / \text{s}\)

Strong draw solution (A) mass fraction

strong_draw_props.mass_frac_phase_comp['Liq', 'DrawSolution']

\(x_{A}\)

\(\text{dimensionless}\)

Strong draw solution temperature entering FO

strong_draw_props.temperature

\(T_{A}\)

\(\text{°C}\)

Draw solution mass fraction in product water (P)

product_props.mass_frac_phase_comp['Liq', 'DrawSolution']

\(x_{P}\)

\(\text{dimensionless}\)

Model Structure

This FO model consists of 6 StateBlocks (as 6 Ports in parenthesis below).

  • Feed flow (feed)

  • Product water (product)

  • Brine flow (brine)

  • Strong draw solution (strong_draw)

  • Weak draw solution (weak_draw)

  • Regenerated draw solution (reg_draw)

Feed and brine stateblocks are associated with seawater property package, while the other 4 stateblocks use the specific draw solution package.

Variables

The system configuration variables can be fixed with the default values:

System Configurations

Variable Name

Symbol

Units

Heat of mixing in membrane (per m3 of product water)

heat_mixing

\(\Delta H_{mixing}\)

\(\text{MJ/}\text{m}^3\)

Separation temperature of the draw solution

regeneration_temp

\(T_{separation}\)

\(\text{°C}\)

Temperature loss in the separator

separator_temp_loss

\(\Delta T_{separator}\)

\(\text{°C}\)

Required pressure over brine osmotic pressure

dp_brine

\(\Delta P_{brine}\)

\(\text{Pa}\)

FO recovery ratio

recovery_ratio

\(RR_{FO}\)

None

NF recovery ratio

nanofiltration_recovery_ratio

\(RR_{NF}\)

None

The following variables are calculated by fixing the default degree of freedoms above.

Description

Symbol

Variable Name

Units

Heat of mixing transferred to brine (per m3 of product water)

\(\Delta H_{mix-to-brine}\)

heat_transfer_to_brine

\(\text{MJ/}\text{m}^3\)

Heat of mixing transferred to the weak draw (per m3 of product water)

\(\Delta H_{mix-to-weak}\)

heat_transfer_to_weak

\(\text{MJ/}\text{m}^3\)

Temperature difference between membrane and outlet flows due to the released heat of mixing

\(\Delta T_{mem}\)

delta_temp_membrane

\(\text{°C}\)

FO Membrane temperature

\(T_{mem}\)

membrane_temp

\(\text{°C}\)

Equations

Description

Equation

Brine volumetric flow rate

\(q_{brine} = q_{feed} \times (1 - \frac{RR_{FO}}{RR_{NF}})\)

Brine salinity

\(s_{brine} = \frac{s_{feed}}{1 - \frac{RR_{FO}}{RR_{NF}}}\)

Brine temperature

\(T_{brine} = T_{mem} + \Delta T_{mem}\)

Product water volumetric flow rate

\(q_{product} = q_{feed} \times \frac{RR_{FO}}{RR_{NF}}\)

Weak draw solution (B) temperature (same as brine temp)

\(T_{B} = T_{mem} + \Delta T_{mem}\)

Heat of mixing transferring to brine and weak draw

\(\Delta H_{mixing} = \Delta H_{mix-to-brine} + \Delta H_{mix-to-weak}\)

Heat of mixing transferring to brine

\(\Delta H_{mix-to-brine} = \Delta T_{mem} \times \rho_{brine} \times q_{brine} \times c_{p,brine}\)

Heat of mixing transferring to weak draw

\(\Delta H_{mix-to-weak} = \Delta T_{mem} \times \rho_{B} \times q_B \times c_{p,B}\)

Membrane temperature

\(T_{mem} = \frac{\rho_{A} q_A c_{p,A} T_{A} + \rho_{feed} q_{feed} c_{p,feed} T_{feed}}{\rho_{A} q_A c_{p,A} + \rho_{feed} q_{feed} c_{p,feed}}\)

Required osmotic pressure of weak draw

\(P_{osm-B} = P_{osm-brine} + \Delta P_{brine}\)

Regenerated draw solution temperature

\(T_{reg} = T_{separation} - \Delta T_{separator}\)

References

This model was developed with documentation, data, and an Excel model provided by Trevi System.