Download as pdf or txt
Download as pdf or txt
You are on page 1of 91

COMPUTATIONAL MODELING AND EVALUATION OF REVERSE OSMOSIS

AND FORWARD OSMOSIS WATER TREATMENT TECHNOLOGIES


INTEGRATED WITH CCHP WASTE HEAT

A THESIS SUBMITTED TO THE CIVIL AND ENVIRONMENTAL ENGINEERING


DEPARTMENT SUSTAINABLE DESIGN AND CONSTRUCTION PROGRAM
AND THE COMMITTEE ON GRADUATE STUDIES
OF STANFORD UNIVERSITY
IN PARTIAL FULLFILLMENT OF THE REQUIREMENTS
FOR THE DEGREE OF
ENGINEER

JIN ZHANG

MARCH 2015
© 2015 by Jin Zhang. All Rights Reserved.
Re-distributed by Stanford University under license with the author.

This work is licensed under a Creative Commons Attribution-


Noncommercial 3.0 United States License.
http://creativecommons.org/licenses/by-nc/3.0/us/

This dissertation is online at: http://purl.stanford.edu/db043tt4638

ii
Approved for the department.

Michael Lepech, Adviser

Approved for the Stanford University Committee on Graduate Studies.

Patricia J. Gumport, Vice Provost Graduate Education

This signature page was generated electronically upon submission of this thesis in electronic
format. An original signed hard copy of the signature page is on file in University Archives.

iii
  iv  
ABSTRACT

By providing waste heat of a CCHP plant to water treatment units using


membrane technology, both the energy efficiency and environmental impacts of the
CCHP plant and the water treatment facility could be benefited. Seawater reverse
osmosis (RO), Forward Osmosis (FO) and the FO/RO hybrid process have received
increased attention in recent years, due to their potential renew water resources. There are
at least three application scenarios that may provide potential benefits. The first scenario
is reverse osmosis desalination with preheating technology. The second scenario adds
gray water separation on site into the water infrastructure system. The third scenario
integrates reverse osmosis desalination with forward osmosis, so that not only gray water
can be concentrated, but also desalination concentrate can be diluted and disposed.
In order to compare these existing hypothetical integrated infrastructure systems,
simulation and modeling need to be performed to explore the possible economic benefits
of incorporating CCHP waste heat with Reverse Osmosis and Forward Osmosis
processes, taking all possible system parameters into consideration. In this study, a
simulation approach for RO and FO water treatment processes is presented. The design
space of a preheated RO system is explored, using MATLAB and ModelCenter. The
optimization objective is to maximize the amount of water produced per unit cost. The
optimization results show that typical optimal designs have 70~90°C operating
temperature, 0.3~0.5 recovery goal, 50~60 bar operating pressure, lower seawater
concentration, and large water demand (service area). This study found that incorporating
CCHP waste heat (raising the temperature) will increase the economic efficiency of an
RO system. It also identified the process parameters for cost and environmental analysis
to compare hypothetical integrated infrastructure.

  v  
TABLE OF CONTENTS
Chapter 1 Introduction ............................................................................................ 1
1.1 Background ................................................................................................................... 1
1.2 Objectives ...................................................................................................................... 2
Chapter 2 Literature Review ................................................................................... 4
2.1 Reverse Osmosis ........................................................................................................... 4
2.1.1 Mechanism ................................................................................................................. 4
2.1.2 Theory ........................................................................................................................ 5
2.1.3 Temperature Effects ................................................................................................... 8
2.1.4 Module ..................................................................................................................... 11
2.1.5 System ...................................................................................................................... 14
2.2 Forward Osmosis......................................................................................................... 15
2.2.1 Mechanism ............................................................................................................... 15
2.2.2 Theory ...................................................................................................................... 17
2.2.3 Temperature Effects ................................................................................................. 18
2.3 Sustainability Analysis ................................................................................................ 20
Chapter 3 RO Model ............................................................................................. 22
3.1 Temperature Effects .................................................................................................... 22
3.1.1 Approach .................................................................................................................. 22
3.1.2 Results ...................................................................................................................... 23
3.2 Module Model ............................................................................................................. 25
3.2.1 Approach .................................................................................................................. 25
3.2.2 Results ...................................................................................................................... 25
3.3 System Model .............................................................................................................. 28
3.3.1 Approach .................................................................................................................. 28
3.3.2 Results ...................................................................................................................... 29
Chapter 4 FO Model ............................................................................................. 33
4.1 Temperature Effects .................................................................................................... 33
4.2 System Model .............................................................................................................. 34
Chapter 5 Design Optimization ............................................................................ 37
Chapter 6 Conclusions .......................................................................................... 41
Chapter 7 Future Work ......................................................................................... 42

  vi  
Reference .............................................................................................................. 44
Appendices............................................................................................................ 49
Appendix A: MATLAB Script for RO Temperature Effects Model ................................ 49
Appendix B: MATLAB Script for RO Module Model ..................................................... 51
Appendix C: MATLAB Script for RO Module Temperature Effects Model ................... 53
Appendix D: MATLAB Script for Sensitivity Analysis of RO Module Model with T Effects
........................................................................................................................................... 58
Appendix E: MATLAB Script for RO Module Temperature Effects Model ................... 61
Appendix G: MATLAB Script for FO Temperature Effects Model................................. 72
Appendix I: Efficiency Model .......................................................................................... 80

  vii  
LIST OF ILLUSTRATIONS
Figure 1 System Performance Characteristics Plotted Against Temperature ....... 24
Figure 2 System Parameters Plotted Against Increment Stage and Temperature for
SWRO Module...................................................................................................... 27
Figure 3 Sensitivity Analysis ................................................................................ 28
Figure 4 Simplified Model of Spiral Wound Reverse Osmosis System............... 29
Figure 5 System Parameters Plotted Against Increment Stage and Temperature for
SWRO System ...................................................................................................... 31
Figure 6 Sensitivity Analysis ................................................................................ 32
Figure 7 PRO Mode Simulation Results and Experimental Results for Validation33
Figure 8 FO Mode Simulation Results and Experimental Results for Validation 34
Figure 9 Simplified Model of Plate-and-frame Forward Osmosis System........... 34
Figure 10 System Parameters Plotted Against Increment Stage and Temperature for FO
System ................................................................................................................... 36
Figure 11 Membrane Area Plotted Against Temperature for FO Model.............. 37
Figure 12 Design Optimization Results for Method 1 .......................................... 40
Figure 13 Design Optimization Results for Method 2 .......................................... 40

  viii  
Chapter 1 Introduction
1.1 Background
Development efforts that disregard environmental issues result in fatal impacts on
our future. Decisions with environmental risks exist throughout the development life
cycle of infrastructure from pre-planning through construction closeout, and into the
operational phase. However, decisions during the planning phases have much larger
effects on the final result. Sustainable design is to “eliminate negative environmental
impact completely through skillful, sensitive design” (McLennan, 2004).
Infrastructure systems rely on integrated built and natural systems to provide
fundamental needs of society (CEE UI, 2011). The environmental impacts of
infrastructure systems are the baseline for the impact of almost all kinds of human
activities. Many efforts have been engaged into eliminating negative environmental
impact associated with infrastructure systems.
Energy infrastructure is one critical type of infrastructure element. There are
many energy generation technologies, such as fossil fuels, solar thermal, solar
photovoltaic, and geothermal (Kukreja, 2015). All thermal power plants can emit and
release heat during electricity generation, offering vast opportunities for energy
utilization from waste heat. Combined cooling heating and power (CCHP) refers to
simultaneous generation of electricity and useful heating and cooling from the
combustion of a fuel. The use of waste heat from combustion for local heating and
cooling can result in an overall use of the primary fuel supply as great as 80% efficiency.
CCHP is advantageous for being market-ready, flexible and providing substantial
financial and environmental benefits. However, there can still be a lot of waste heat when
the constantly changing needs for electricity and heat are unbalanced (Kong et al., 2005).
Water infrastructure is another critical type of infrastructure. Membrane
technology plays an important role in water infrastructure systems. For example,
seawater reverse osmosis (RO) is the most widely used technology among all
desalination technologies (Lee, Arnot, & Mattia, 2011). Because RO process has been
suggested to be the most economic, land-saving, and environmentally friendly technology
for large-scale seawater desalination in the near future (Kim et al., 2009). However, the
  1  
disadvantage of RO process is its large energy consumption. Current research focuses on
how to further reduce the process energy consumption (Avlonitis et al., 2003). Membrane
technology is also becoming increasingly important in waste water treatment. Forward
Osmosis (FO), an osmotically driven membrane process, has received increased
attention, due to its low cost, high rejection and slow fouling. It has been shown that
combining FO and RO together gives an FO/RO hybrid process, where FO serves as
pretreatment process for RO. This process can treat wastewater to a very high standard.
(T. Y. Cath et al., 2005)
Scientific results have shown that the performance of membrane technology used
to purify water can be greatly improved by increasing inflow temperature, due to the
decrease of water viscosity and other effects caused by raising temperature, which
indicates a potential integration of water and energy infrastructure systems (Zhao & Zou,
2011; Goosen et al., 2002). By providing waste heat of a CCHP plant to water treatment
units using membrane technology, both the energy efficiency and environmental benefits
of the CCHP plant and the water treatment facility could possibly be further increased.

1.2 Objectives
The global population and the development of industries are increasing rapidly,
creating high demands for freshwater, while water pollution and the water resource crisis
is a serious issue. There are growing problems of providing adequate freshwater and
properly disposing of used water.
Seawater desalination, water reclamation, and other water sources, are becoming
increasingly attractive to produce high quality water. About 97.5 percent of the earth’s
water is in the oceans, and about 75 percent of the world’s population live in coastal
areas, which indicates the strong future for seawater desalination (Bindra & Abosh,
2001). Among domestic wastewater, gray water, generated from hand wash basins,
showers and baths, which is nearly as clean as potable water, takes up about 80% of the
volume (Al-Jayyousi, 2003). However, gray water is mixed with sewage and sent to
wastewater treatment plant to get treated, instead of being recycled for local use.

  2  
As a result, many researchers are engaged in developing desalination and water
reclamation technologies. Membrane technology has become economically attractive for
desalination and water reclamation. As mentioned above, seawater reverse osmosis (RO)
is the most widely used technology among all desalination technologies, and forward
osmosis (FO) has been shown to have the potential to recycle gray water by serving as a
pretreatment process for RO due to its low fouling property. The performance of RO and
FO can be greatly improved by increasing inflow temperature, showing strong potential
of utilizing waste heat from CCHP plant.
Based on the above information, there are at least three application scenarios for
RO and FO, that have potential benefits. The first scenario is reverse osmosis
desalination with preheating technology. The second scenario adds gray water separation
on site into the water infrastructure system. The third scenario is to integrate reverse
osmosis desalination with forward osmosis, so that not only gray water can be
concentrated, but also desalination concentrate can be diluted and disposed. Prior to
implementing these scenarios, there are a number of research questions, that must be
considered.
• Does preheating feed water in RO desalination bring overall benefits both
economically and environmentally, compared to RO desalination at room
temperature? If so, what are the condition ranges that bring overall benefits?
• Does adding gray water separation on site into the water infrastructure system
bring overall benefits both economically and environmentally, compared to the
conventional water infrastructure system? If so, what are the condition ranges that
bring overall benefits?
• Does integrating reverse osmosis desalination with forward osmosis bring overall
benefits both economically and environmentally, compared to RO desalination at
room temperature? If so, what are the condition ranges that bring overall benefits?
• Does integrating the above scenarios improve the efficiency of a CCHP plant? If
so, what are the conditions that bring the highest efficiency of CCHP? What are the
conditions that bring the highest overall benefits?

  3  
To answer these questions, a simulation and modeling approach is used. The
purpose of this study is to simulate RO desalination and gray water separation processes
considering a range of system operating conditions.

Chapter 2 Literature Review


2.1 Reverse Osmosis
2.1.1 Mechanism
Reverse Osmosis is a membrane treatment process used to separate dissolved
solutes from water. Reverse Osmosis is the reverse of osmosis. In an osmosis process, a
semi-permeable membrane, which is only permeable to water, separates diluted and
concentrated solution on two sides, and water permeates from the diluted side to the
concentrated side through the membrane to equalize concentration, under the
concentration gradient. An RO membrane is made of synthetic semipermeable material.
In an RO process, water is pumped at high pressure across the surface of the membrane,
causing an opposing hydrodynamic pressure, which exceeds the osmotic pressure. The
water flow is reversed, flowing from the concentrated side to the dilute side. (Greenlee et
al., 2009)
The most common application of Reverse Osmosis is to remove salt from water to
obtain potable water (Amjad, 1993). Reverse Osmosis is capable of rejecting nearly all
colloidal or dissolved matter from an aqueous solution, producing a concentrate brine and
a permeate which consists of almost pure water. (Malaeb & Ayoub, 2011)
Reverse Osmosis is a pressure driven process. The requirement for high pressure
leads to high energy consumption as well as high operational cost due to the requirement
for high strength equipment to withstand the high pressure. This makes RO significantly
more expensive than conventional water treatment technologies (Fritzmann, Löwenberg,
Wintgens, & Melin, 2007). Another drawback of RO is limited recovery. As the
feedwater gets more and more concentrated, hydrodynamic pressure will finally be no
longer able to overcome the osmotic pressure. Precipitated salts and undissolved matters
in the concentrated feedwater also cause the membrane to be fouled fast and severly.

  4  
Therefore, there is a limitation to the fraction of water recovered. To achieve higher water
recovery, the applied pressure can be increased. (Song et al., 2002)

2.1.2 Theory
Models that describe the performance of RO membranes are very important for
the design of RO processes. There are many mechanistic and mathematical reverse
osmosis models, which can be divided into three types: irreversible thermodynamics
models (such as Kedem-Katchalsky and Spiegler-Kedem models), nonporous or
homogeneous models (such as the solution-diffusion, solution-diffusion-imperfection,
and extended solution-diffusion models), and pore models (such as the finely-porous,
preferential sorption-capillary flow, and surface force-pore flow models).
Irreversible thermodynamics models can describe RO membrane transport, but
provide no insight into the transport mechanisms of the membrane. The homogeneous
models only need two or three parameters to characterize the membrane system. As a
result, they have been widely applied to various systems. The pore models can provide
insight into parameters such as pore size, solute-membrane interaction, and solute
distribution coefficient. All these models have had some success in predicting RO
separations. The homogeneous and porous models have a fundamental difference in the
assumptions, which remains debatable. (Williams, 2003)
The solution-diffusion model is the most widely accepted model of transport in
RO, dialysis, gas permeation and pervaporation. The SD model assumes that permeation
is not governed by the permeant sizes. Instead, it is controlled by the motion of the
polymer chains. Permeants dissolve in the membrane material and diffuse through the
membrane. The separation is due to the differences in the amount of material that
dissolves and the rate at which the material diffuses. (Wijmans & Baker, 1995)
According to the SD model, the flux of a component i, 𝐽! , is proportional to the
chemical potential gradient of component i, 𝑑𝜇! 𝑑𝑥, as follows:
!!!
𝐽! = −𝐿! !"
(1)

where, 𝐿! is the coefficient of proportionality of component i (not necessarily


constant). The chemical potential of component i, 𝜇! , is described by:

  5  
𝑑𝜇! = 𝑅𝑇𝑑𝑙𝑛 𝛾! 𝑐! + 𝑣! 𝑑𝑝 (2)
where, R is the universal gas constant; T is the temperature; 𝛾! is the activity
coefficient linking concentration with activity of component i; 𝑐! is the molar
concentration (mol/L) of component i; 𝑣! is the molar volume of component i; 𝑝 is the
applied pressure.
The solution-diffusion model assumes constant pressure within a membrane.
Substitute Equation 2 into Equation 1 and rearrange, the flux of component i, 𝐽! :
!! !! !!" !! ∆!!∆!
𝐽! = !"#
(3)

where, 𝐷! = 𝑅𝑇𝐿 𝑐! , the Fick’s law diffusion coefficient of component i, R is the


universal gas constant, T is the temperature, 𝐾! = 𝛾!" 𝛾!"(!) , the liquid phase/membrane
phase sorption coefficient of component i, 𝛾!" i, the activity coefficient of component i on
the feed side (point o), 𝛾!"(!) is the activity coefficient of component i in the membrane
at the feed side (point o), 𝑐!" is the molar concentration of component I at the feed side
(point o), 𝑣! is the molar volume of component i, ∆𝑝 is the hydrodynamic pressure
difference across a semi-permeable membrane, ∆𝜋 is the osmotic pressure difference
across a semi-permeable membrane, and l is the membrane thickness. (Lonsdale et al.,
1965)
Applied to reverse osmosis, the solvent (water) permeation flux, 𝐽! (unit:
𝐿/𝑚! ∙ ℎ), is proportional to the difference between the applied hydraulic pressure, 𝑝! ,
and the transmembrane osmotic pressure, 𝜋! , described by:
𝐽! = 𝐴! ∆𝑃! − ∆𝜋! = 𝐴! [ 𝑃! − 𝑃! − (𝜋! − 𝜋! )] (4)
where, 𝑃! is the pressure in feed concentrate (unit: bar), 𝑃! is the permeate
pressure (unit: bar), 𝜋! is the osmotic pressure of feed concentrate at the membrane
surface, 𝜋! is the osmotic pressure of permeate, and 𝐴! is the membrane permeability
(unit: 𝐿/𝑚! ∙ ℎ). Osmotic pressure is described by:
𝜋 = 𝑖∅𝐶𝑅𝑇 (5)
where, i is the number of ions produced during dissociation of solute, and ∅ is the
osmotic coefficient.

  6  
The solute permeation flux (unit: 𝑚𝑔/𝑚! ∙ ℎ), is proportional to its driving force,
the solute concentration difference between concentrate solute concentration, 𝑐! , and the
permeate solute concentration, 𝑐! (unit: mg/L):
𝐽! = 𝐽! 𝑐! = 𝐵! (𝑐! − 𝑐! ) (6)
Solute flux calculations are complicated by the presence of multiple solutes,
which may have different values for the mass transfer coefficient.
The solution-diffusion model indicates that the water flux increases with the
difference between applied hydrodynamic pressure and the osmotic pressure, while the
salt flux is independent of pressure.
Water and solute flux are also affected by concentration polarization. Some
impurities tend to accumulate near the membrane surface, which increases the osmotic
pressure, thus reducing driving force, and leading to flux declination. In such cases, the
feed concentration at the membrane is described as the feed bulk concentration multiplied
by the concentration polarization factor:
𝑐! = 𝛽𝑐! (7)
The concentration polarization factor, 𝛽, can be described by:
𝛽 = 𝑅𝑒𝑗 𝑒 !!! /!!! + 1 − 𝑅𝑒𝑗 (8)
where, 𝑘!" is the mass transfer coefficient, given by:
𝑘!" = 0.023𝐷! 𝑅𝑒 !.!" 𝑆𝑐 !.!! /𝑑! (9)
where 𝑅𝑒 is Reynolds number, 𝑆𝑐 is Schmidt number, 𝑑! is the crossflow channel
hydrodynamic diameter, and 𝐿 is channel length.
𝑅𝑒 = 𝑢𝑑! 𝑣 (10)
𝑆𝑐 = 𝑣/𝐷 (11)
𝑑! = 𝐻𝑊/(2𝐻 + 2𝑊) (12)
𝑢 = 𝑄! 𝐻𝑊 (13)
where 𝑢 is the crossflow velocity (unit: m/s), 𝑣 is the solution kinematic viscosity
(unit: m2/s), 𝐻 is the channel height (unit: m), 𝑊 is the channel width (unit: m), 𝑄! is the
feed water flow rate (m3/s).
For laminar flow in a thin rectangular channel, the Sherwood number (Sh):

  7  
!! !! !/!
𝑆ℎ = 𝑘!" !
= 1.85 𝑅𝑒𝑆𝑐 !
(14)

Thus, the mass transfer coefficient used to describe concentration polarization is


also described by:
!/!
!! ! !
𝑘!" = 0.808 !
(15)

𝛾! = 6𝑢 𝐻 (16)
where 𝛾! is the wall shear rate. (Jin et al., 2009)
Membrane fouling is an important phenomenon that affects the separation result
of reverse osmosis. It happens because of the deposition of suspended or dissolved
substances on the membrane surface or within membrane pores, which can decrease the
performance of a membrane by declining flux and affecting the quality of the product
water.
There are a number of mechanisms that attribute to membrane fouling, such as
microorganisms, microbial products, pore blocking by solutes, and a cake layer from
retentate solute by precipitation at the membrane solution interface (Flemming, 1997).
However, interactions between foulants and the membrane are poorly understood. Feed
water pretreatment is required in virtually all RO systems to avoid scaling and fouling, by
pH adjustment, anti-scalant addition, removing specific ions or microbes, maintaining
proper operating conditions, and flushing membrane elements properly when not in use.
One way to describe the fouling phenomenon is:
𝑅!"!#$ = 𝑅! + 𝑅! + 𝑅!" + 𝑅! (17)
where, 𝑅! is the membrane resistance, 𝑅! is the bio-fouling resistance, 𝑅!" is the
pore blocking resistance, 𝑅! is the cake layer resistance. (Baker, 2004)

2.1.3 Temperature Effects


It has been noted by many researchers that temperature has significant effects on
RO permeation fluxes, but only has moderate effects on separation. This is due to the
decrease of water viscosity and other effects caused by raising temperature. (Taylor,
Mehdizadeh, & Dickson, 1991)

  8  
Most transport models available in the literature are isothermal models.
Temperature effect models can be divided into two groups, (1) models that use an
Arrhenius-type equation, a phenomenological expression of material transport through a
membrane, and (2) models that correlate each parameter with temperature using
experimental data. (Taylor et al., 1991)
Agrawal and Sourirajan (1969) determined the parameters of Kimura-Sourirajan
analysis as functions of temperature for cellulose acetate membranes at 5-36°C using 0.5-
2.0M sodium chloride solution. Connell and Dickson (1988) empirically determined the
temperature dependencies of model parameters for the finely-porous model based on
Arrhenius equations for separation of toluene from water using cellulose acetate
membranes. Mehdizadeh et al. (1991, 1989, 2000) empirically determined the
temperature dependencies of all the model parameters and the physical properties of the
system and incorporated temperature effects directly into an appropriate model called the
modified surface force-pore flow(MD-SF-PF) model.
Jin et al. (2009) correlated model parameters of solution-diffusion model with
physical properties whose temperature dependencies can be found in literature.
According to the solution-diffusion model, the solvent (water) permeation flux, 𝐽! , is
described by:
𝐽! = 𝐴! (∆𝑝! − ∆𝜋! ) (18)
where 𝐴! is the solvent permeability of the membrane, defined as:
!!,! !!,! !!
𝐴! = !! !"
(19)

where 𝐷!,! is the water diffusivity in the membrane,𝐶!,! is water concentration


in the membrane, 𝑉! is water molar volume, and 𝛿! is effective membrane thickness.
Among these parameters, diffusivity is correlated with temperature, T, and
viscosity, 𝜇, as follows:
!
𝐷∝! (20)

The water permeability coefficient is only correlated with water viscosity and a
coefficient defined as membrane intrinsic hydraulic resistance, 𝑅! .
! !
𝐴! = ! ∝! (21)
! !! !

  9  
Solute permeation flux is described by:
𝐽! = 𝐽! 𝑐! = 𝐵! (𝑐! − 𝑐! ) (22)
where 𝐵! is the solute permeability, defined as:
!!,! !!,! !
𝐵! = !!
∝ 𝐷!,! ∝ ! (23)
!"

where 𝐷!,! is the diffusivity of solute in the membrane, 𝐾!,! is the solubility of
solute in the membrane, and 𝜇!" , is the seawater viscosity.
The mass transfer coefficient used to describe concentration polarization is also
described by:
!/!
!! ! !
𝑘!" = 0.808 !
∝ 𝐷!/! (24)

Based on the above knowledge,


!!" !
𝐷! = 𝐷!" !! !"#.!"
(25)
!!"
𝐴 ! = 𝐴!" !!
(26)
!
𝐵! = 𝐵!" ! ! (27)
!"

!! !/!
𝑘 ! = 𝑘!" !!"
(28)

Given viscosity (𝜇), diffusion coefficient at 25°C (𝐷!" ), water permeability


coefficient at 25°C (𝐴!" ), solute permeability at 25°C (𝐵!" ), and mass transfer coefficient
at 25°C (𝑘!" ), we can calculate these parameters at any temperature.
Water viscosity, µμ! , can be predicted using the following equation in 𝑘𝑔/(𝑚 ∙ 𝑠):
(Sharqawy, V, & Zubair, 2010)
𝜇! = 4.2844×10!! + 0.157 𝑡 + 64.993 !
− 91.296 !!
  (29)
0 ≤ 𝑡 ≤ 180℃
Seawater viscosity, 𝜇!" , is predicted by:
𝜇!" =   𝜇! (1 + 𝐴𝑆 + 𝐵𝑆 ! ) (30)
𝐴 = 1.541 + 1.998×10!! 𝑡 − 9.52×10!! 𝑡 ! (31)
𝐵 = 7.974 − 7.561×10!! 𝑡 + 4.724×10!! 𝑡 ! (32)
0 ≤ 𝑡 ≤ 180℃, 0 < 𝑆 < 0.15𝑘𝑔/𝑘𝑔

  10  
Membrane properties also change with feed water temperature, but the changes
are not predictable. Thus, an empirical equation is used:
! !
𝐴 = 𝐴!" 𝑒𝑥𝑝 𝐾!" × (!"#.!"!!)
− !"#.!" (33)
! !
𝐵 = 𝐵!" 𝑒𝑥𝑝 𝐾!" × (!"#.!"!!)
− !"#.!" (34)

where 𝐴!" is the water permeability coefficient at 25°C, 𝐵!" is the solute
permeability coefficient at 25°C, 𝐾!" is the temperature coefficient for water transport,
obtained by regression analysis of experimental data, and 𝐾!" is the temperature
coefficient for solute transport, obtained by regression analysis of experimental data.
The concentration polarization factor, CP is described by:
!! !
𝐶𝑃 = !!
= 1 − 𝑋! + 𝑋! ∙ exp  (! ! ) (35)
!"

!"∙!! !!
𝑋! = 1 − 𝑐! 𝑐! = 1 − !!
(36)

where 𝑋! is the observed salt rejection, 𝑐! is the bulk salt concentration, 𝑐! is the
membrane salt concentration, 𝑐! is the permeate salt concentration, and 𝑟! is the intrinsic
or real solute rejection of the membrane, described by:
! !
 𝑟! = 1 − ! ! = ! !!
!
(37)
! ! !

Substitute Equation 37 into Equation 35 and 36. Since all the other variables are
already calculated using the above correlations, solving these two equations can give CP
and 𝑋! .
The applied pressure is predicted from:
!! !
∆𝑝! = 2𝑅𝑇 ∙ 𝐶𝑃 !! !!!
𝑐! + !! (38)
!

2.1.4 Module
The smallest physical unit of production capacity in a RO system is called a
membrane element. Four types of RO membrane elements (modules) are available in the
market: plate and frame, tubular, spiral-wound and hollow-fiber. The most common type
of membrane element in use is the spiral-wound element (Lee et al., 2011).
A hollow-fiber module contains a large number of membrane fibers housed in a
module shell. The feed is introduced on either the fiber or the shell side. The permeate is
  11  
withdrawn in a co-current or counter-current manner. The latter is more effective. There
are two flow patterns: Parallel-flow meaning that feed is introduced on the fiber side, and
Radial-flow meaning that feed is introduced into the shell side using a central porous tube.
(Soltanieh & Gill, 1984)
A spiral-wound module is made from flat membrane envelopes wrapped around a
central tube. The envelope is formed by sealing two sheets of flat-sheet membrane
material along three sides, whose open ends are attached to the central tube known as a
permeate collection tube. To prevent layers of membranes from touching each other,
spacers are placed between layers to provide a flow path. As feed passes along the length
of the module, permeate passes through the membrane into a membrane envelope due to
a pressure differential between the feed and permeate sides of the membrane, and then
flows out via the central tube. The feed flows axially along the pressure vessel and the
permeate flows spirally toward the center. As water passes through the membrane,
solutes are rejected and the feed stream becomes more concentrated. Modern modules
tend to contain multiple membranes attached to the same central tube. (Marriott &
Sørensen, 2003)
Historically cellulose acetate membranes are used in hollow fiber module
configuration. The elements were about 10 centimeters in diameter. With flow rates of
approximately 250 L/h, the sodium chloride rejection was about 98.5 percent. Presently,
thin film composite polyamide flat-sheet membranes are used in a spiral wound
configuration. The elements are 16-inch in diameter, with 15-30 times more permeate
(4000-8000 L/h), five to eight times less salt passage, and a 99.7 percent or higher
rejection rate. (Johnson, Jon & Busch, 2009) The spiral-wound module takes up the
largest market share, for its relative ease of cleaning, fabrication technology and very
large surface area per unit volume. (Senthilmurugan, Ahluwalia, & Gupta, 2005)
To design an RO system, the determination of the quantity and quality of water
produced by each membrane element is important. As described earlier, the flow rate,
concentration and pressure continuously change along the element, as the feed water
flows through the element and some pure water passes through the membrane. The
common modeling approach is to unwrap the element into a flat plate, and then

  12  
differentiate the element into slices, where the solution is assumed completely mixed, and
the concentration is the same everywhere in the slice. The fluxes of water and solute are
described by:
𝐽! = 𝐴! (∆𝑝! − ∆𝜋! ) (39)
𝐽! = 𝐽! 𝑐! = 𝐵! (𝑐! − 𝑐! ) (40)
The cumulative transfer of water and solute across the membrane is determined
by integrating the flow between the feed end and the position z within the pressure vessel,
as follows:
!
𝑄!,! = 𝐽 𝑤𝑑𝑧
! !,!
(41)
!
𝑀!,! = 𝐽 𝑤𝑑𝑧
! !,!
(42)
Given the original condition of water flow and concentration, the module flow
and mass balance principles can be used to calculate water flows and concentrations at
any position:
𝑄! = 𝑄! + 𝑄! (43)
𝐶! 𝑄! = 𝐶! 𝑄! + 𝐶! 𝑄! (44)
where, 𝑄! is the feed flow rate, 𝑄! is the permeate flow rate, 𝑄! is the concentrate
flow rate, 𝐶! is the feed water concentration, 𝐶! is the permeate concentration, 𝐶! is the
concentration of concentrate flow.
Pressure in the feed channel drops due to the head loss, ℎ! (unit: bar), which is not
constant across the length of the membrane element and is proportional to the square of
the velocity, u (unit: m/s), and the first power of length, L (unit: m), as shown in the
following:
ℎ! = 𝛿!" 𝑢! 𝐿 (45)
Where, 𝛿!" (unit: 𝑏𝑎𝑟 ∙ 𝑠 ! /𝑚! ) is the head loss coefficient, given in the following
expression: (Crittenden, 2005)
!
𝛿!" = ! !!! (46)

  13  
2.1.5 System
The RO system includes a set of RO membrane elements housed in pressure
vessels mounted on skids, which have piping connections for feed, permeate, and
concentrate streams. Inside the pressure vessel, the elements are connected sequentially
in series with up to eight elements per pressure vessel. A group of pressure vessels
operated in parallel is called a stage. A high-pressure pump is used to feed the pressure
vessels.
The permeate from one stage can be fed to a second stage to increase solute
removal, which is called a two-pass system. The concentrate from one stage can also be
fed to a subsequent stage to increase water recovery, which is called a multistage system.
Usually, a single-stage system can achieve a water recovery ratio less than 50%, while a
two-stage system can achieve less than 75-80% and a three-stage system can achieve less
than 85-90%. As permeate is extracted from the feed water stream, the velocity in the
feed channel is decreased gradually. In order to maintain sufficient velocity and reduce
concentration polarization, the number of pressure vessels decreases in each succeeding
stage in a multistage system. In a typical two-stage system, the ratio of vessel number is
2:1(upstream: downstream). In the case when the feed temperature greatly differs, the
feed pressure should be changed to keep the permeate constant and part of the permeate
should be recycled to prevent the instability of permeate quality. (Djebedjian et al., 2008)
Feed water quality is important for pretreatment design and RO membrane
element selection. Permeate typically requires post-treatment, which consists of removal
of dissolved gases and alkalinity and pH adjustment. The concentrate stream leaving the
final element is under high pressure. Some RO systems utilize energy recovery
equipment to minimize the energy lost. The disposal of the concentrate stream is a
significant issue, and the concentrate may require treatment before disposal. (El-
Manharawy & Hafez, 2001)
The RO element arrangement indicates the numbers per vessel, vessel numbers
per stage and stage numbers per pass. Industrial design of RO system is usually well
supported by empirical data from manufacture’s design manuals. If there is no applicable
empirical data, several calculations should be done and these results should be compared

  14  
to make arrangement decisions. Changing the arrangement will affect almost all RO
design parameters or variables, such as velocity, flux, rejection, flow rate, concentration,
pressure and recovery. (LANXESS, 2012)

2.2 Forward Osmosis


2.2.1 Mechanism
Forward Osmosis, also called Direct Osmosis, is a spontaneous membrane-based
separation process without applied high hydraulic pressure, which takes advantage of the
osmotic pressure difference as the driving force to produce water. In a typical FO process,
there is a semi-permeable membrane, which separates two solutions with different
osmotic pressure. The solution with lower osmotic pressure is called feed solution, while
the other one is called draw solution (osmotic agent). Water will diffuse from the feed
solution into the draw solution. After the FO process, other water generation methods are
needed to produce freshwater from the diluted draw solution. Therefore, the draw solute
should be carefully chosen with respect to non-toxicity and easy recovery (Gu et al.,
2011).
An advantage of the FO process is low hydraulic pressure leading to low energy
consumption and low membrane fouling, thus reducing membrane cleaning. Another
advantage is high water flux and feed water recovery, due to high osmotic driving force.
FO membranes also have high selectivity, which ensures good water treatment quality.
Currently FO is an emerging technology and has been investigated in many applications,
such as power generation, desalination, wastewater treatment and food dehydration.
However, FO still faces several critical challenges, such as internal concentration
polarization (ICP), membrane fouling, reverse solute diffusion and the need for
membrane development and draw solute. (Garcia-Castello et al., 2009)
Concentration polarization is a common and inevitable phenomenon in both
pressure driven and osmotically driven membrane processes. In the FO process, the
membrane is asymmetric, leading to both external concentration polarization (ECP) and
internal concentration polarization (ICP). ECP occurs at the surface of the dense active
layer of the membrane, which can be mitigated by altering hydrodynamic conditions. ICP

  15  
occurs within the porous support layer of the membrane, which cannot be mitigated by
altering hydrodynamic conditions.
Depending on the membrane orientation, both ECP and ICP can be divided into
dilutive and concentrative concentration polarization. When the draw solution is placed
against the membrane support layer, dilutive ICP and concentrative ECP will occur due
to the dilution effect of the draw solution in the support layer and the concentration effect
of the feed solution at the membrane surface, and vice versa. In pressure-driven
membrane processes, only concentrative ECP can take place. (Mulder, 1996)
Membrane fouling in osmotically driven membrane processes has been
demonstrated to be lower, and can be removed more easily compared to that in pressure-
driven membrane processes (Petrotos, Quantick, & Petropakis, 1999). Membrane fouling
becomes obvious only after long-term operation, and backwashing can recover about
90% of the initial flux. It has also been reported that FO fouling can be significantly
minimized by increasing the cross flow velocity (Mi & Elimelech, 2008). This advantage
indicates great potential for wastewater membrane treatment where membrane fouling is
one of the biggest issues.
Reverse solute diffusion refers to the phenomenon that the draw solute may
diffuse back into to feed solution due to the high concentration of the draw solution,
which will reduce the effective osmotic driving force. (Garcia-Castello et al., 2009)
Among the many factors that affect FO performance, temperature plays an
important role. It has been demonstrated that the water flux increases by up to 1.2% for
every degree rise in temperature from 25°C to 35°C. An FO process operated at
isothermal conditions performs better than when provided a temperature difference by
elevating only the feed or draw solution temperature. (Phuntsho et al., 2012)
Cath et al. used seawater as a draw solution in an FO process, and used an RO
process to exact pure water after the FO process. This hybrid FO-RO process is proposed
for water purification on spaceships (T. Cath, Childress, & Elimelech, 2006). An FO
process potentially could be used as an alternative to traditional disposal technologies for
treating the byproduct of reverse osmosis, and many other desalination technologies due
to its lower energy requirement.

  16  
2.2.2 Theory
Water transport in FO can be expressed by the same general equation as that for
RO process:
𝐽! = 𝐴(𝜎∆𝜋 − ∆𝑃) (47)
where, A is the water permeability coefficient of the membrane, 𝜎 is the reflection
coefficient, ∆𝜋 is the osmotic pressure difference across the membrane, and ∆𝑃 is the
applied hydraulic pressure. In FO, the driving force comes from the osmotic pressure, so
the water flux is expressed by:
𝐽! = 𝐴(𝜋!"#$ − 𝜋!""# ) (48)
Similarly, solute flux in FO can be described by:
𝐽! = 𝐵(𝐶!"#$ − 𝐶!""# ) (49)
where, B is the solute permeability coefficient. The general equation for
concentration polarization in pressure driven membrane processes is as follows:
!! !
!!
= exp  ( !! ) (50)

where, 𝐽! is the water flux, k is the mass transfer coefficient, 𝑐! is the feed
concentration at the membrane surface, and 𝑐! is the feed concentration in the bulk
solution.
In an FO process, the feed solution is relatively low, so the concentrations in the
above equation can be replaced by the osmotic pressure. The concentrative ECP can be
described by:
!!!!""# !!
!!!!""#
= exp  (! ) (51)
!""#

Similarly, the dilutive ECP is described by:


!!!!"#$ !!
!!!!"#$
= exp  (− ! ) (52)
!"#$

ICP is one of the most important phenomena in osmotically driven membrane


processes because it could reduce the water flux by more than 80%. Dilutive ICP can be
described by:
! !!!"#$ !!
𝐽! = ! 𝑙𝑛 !! (53)
!""# !!!!!

  17  
Concentrative ICP is expressed as:
! !!!"#$ !!!!!
𝐽! = ! 𝑙𝑛 !!!""# !!
(54)

where, B is the solute permeability coefficient of the membrane, and K is the


solute resistivity, used to measure the ability to diffuse into or out of the membrane.
(Mccutcheon & Elimelech, 2007)
When the draw solution is placed against the membrane support layer (FO mode),
dilutive ICP and concentrative ECP occur simultaneously. Thus, the water flux and solute
flux considering both dilutive ICP and concentrative ECP can be expressed as:
!!
𝐽! = 𝐴[𝜋!"#$ exp −𝐽! 𝐾 − 𝜋!""# exp !
] (55)
!!
𝐽! = 𝐵[𝐶!"#$ exp −𝐽! 𝐾 − 𝐶!""# exp !
] (56)

When the feed solution is placed against the membrane support layer (PRO mode),
dilutive ECP and concentrative ICP occur simultaneously. Thus, the water flux and solute
flux considering both dilutive ECP and concentrative ICP can be expressed as:
(McCutcheon & Elimelech, 2006)
!!
𝐽! = 𝐴[𝜋!"#$ exp − !
− 𝜋!""# exp 𝐽! 𝐾 ] (57)
!!
𝐽! = 𝐵[𝐶!"#$ exp − !
− 𝐶!""# exp 𝐽! 𝐾 ] (58)

2.2.3 Temperature Effects


The effect of temperature is similar to that of an RO process, which has been
described in detail in Section 2.1.2. An extra parameter that is unique to an FO process is
the solute resistivity, K. Smaller K values mean less ICP and higher water flux. K is
defined by:
!" ! !
𝐾 = !" = ! ∝ ! (59)
So, K at any temperature can be predicted by:
!!"
𝐾! = 𝐾!" !!
(60)

where, 𝑡 is the membrane thickness, 𝜏 is the membrane tortuosity, 𝜀 is the


membrane porosity, S is the structural parameter, obtained from fitting FO test results, D
is the diffusion coefficient of the solute. (Yip et al., 2010)
  18  
McCutcheon (2006) collected water flux data at 20°C, 30°C and 40°C in order to
determine the effect of temperature on water flux. Increasing the temperature increases
the water flux due to the decreased viscosity of water. The impact of ECP is also reduced
by the increase of the mass transfer coefficient, which is due to the increase of diffusion
coefficient. The increased diffusion coefficient also reduces solute resistivity, which
reduces the impact of ICP. However, the ECP and ICP moduli are exponential functions
of the permeate water flux, which is increased by higher temperature. Increased
temperature was found to improve flux performance, but the increase is limited to the
severity of internal and external concentration polarization. McCutcheon also
demonstrated that the flux can be predicted accurately using a flux model accounting for
both internal and external concentration polarization. (McCutcheon & Elimelech, 2006)

2.2.4 Design
There are two possible types of membrane modules that can be applied to an FO
module; flat sheet membranes and tubular membranes. Although the tubular type has a
higher packing density, it is not as common as flat sheet membrane in the market because
of excessive fouling issues. Possible types of flat sheet membranes are the plate-and-
frame and the spiral-wound modules, which must be modified to allow two inlet streams
for the FO process. To modify the spiral-wound module, there should be blocking in the
middle of the central pipe and an additional glue line at the centerline of the draw flow
channel, as described in the following paragraph:
A plate-and-frame module consists of flat sheet membranes and spacers
alternately staked into a metal frame. There are three possible operating modes for the
plate-and-frame module according to the directions of the feed and draw solutions,
namely, co-current flow, counter-current flow and cross-current flow, shown in the
following picture (Gu et al., 2011). Generally speaking, the FO process is not market-
ready. Membrane development and system design are still undergoing research and
development.

  19  
2.3 Sustainability Analysis
The concept of sustainable development is very complex, because there are large
numbers of interacting elements. The definition of sustainable development is often
quoted from the World Commission on Environment and Development (1987):
‘development that meets the needs of the present generation without compromising the
ability of future generations to meet their own needs’. A major challenge with
sustainability is development of a practical paradigm for everyday planning and
management. Some methodologies try to capture sustainability in a single indicator, such
as exergy analysis or economic analysis. Other frequently used methodologies include
multiple indicators, such as life cycle assessment (LCA) and system analysis. (Balkema,
Preisig, Otterpohl, & Lambert, 2002) Exergy analysis bases the entire comparison on a
single unambiguously quantifiable indicator, namely exergy. However, insight is only
gained into the efficiency of the processes instead of different environmental impacts.
Economic analysis, which is often the first step in a project, expresses sustainability in
terms of money, using tools such as cost-benefit analysis, life cycle costing, and total cost
assessment, which provide insight into ‘real’ cost but faces the challenge that most social
and environmental costs are difficult to quantify (Hepbasli, 2008). LCA is a structured
methodology used to assess various environmental impacts throughout a product’s
lifetime, which is based on mass and energy balances. LCA requires significant research
and a large quantity of data. General system analysis is based on mass and energy
balances, and provides an indication of material use and emissions, including a wide
range of aspects, for instance exergy, costs, required land area, environmental impacts, or
even social-cultural aspects such as acceptance, convenience, etc. (Ness et al., 2007)
Urban water and wastewater systems, drinking water treatment and distribution,
storm water management, and wastewater and sludge recovery of products should
provide clean water for a variety of uses without harming the environment. Mahgoub
(2010) carried out an assessment of the environmental impact of Alexandria, Egypt’s
urban water system using life cycle assessment (LCA) methodology. Mahgoub showed
that the highest impact comes from the disposal of primary treated wastewater (68% of
the total impact) and energy consumption of water treatment plants (18% of the total

  20  
impact) (El-Sayed Mohamed Mahgoub, Van der Steen, Abu-Zeid, & Vairavamoorthy,
2010). Lundin (2002) presents an iterative procedure for the selection of indicators,
which reflects the environmental sustainability of urban water systems, using life cycle
assessment (LCA) as the analytical tool to determine priorities (Lundin & Morrison,
2002). Bagheri and Hjorth (2006) developed a methodology to deal with monitoring
systems for sustainable development and its practice in an urban water system. Using a
system dynamics approach and the idea of Viability Loops to define process indicators to
monitor an urban water system for sustainable development. (Bagheri & Hjorth, 2006)
Hellstro (2000) proposed a framework for analysis and comparison of urban water
systems with respect to sustainability, aiming at synthesizing results from other research
projects from a 6-year Swedish research program entitled “Sustainable Urban Water
Management” initiated by the Swedish Foundation for Strategic Environmental Research
(MISTRA) in 1999.
In the framework, physical and conceptual model cities, which cover the majority
of the Swedish urban environment, with existing or hypothetical urban water system
structures, are selected for analysis and evaluation. The system structures to be evaluated
can be separated along three axes: degree of centralization, degree of source separation,
and system scale. The analysis work based on the conceptual model cities is model-based
using computer simulations and other computer-based analysis methods, while the work
based on the physical model cities is data based, which provides the possibility to
validate results achieved from the model-based evaluations of conceptual model cities.
Sets of most critical criteria were selected to make the concept of sustainability more
operational and practically useful. The entire system was separated into modular blocks
that can be combined in any fashion, which will allow for a wide range of different water
management systems to be analyzed and compared, while exposed to different situations.
(Hellstro, 2000)

  21  
Chapter 3 RO Model
3.1 Temperature Effects
3.1.1 Approach
As described in Section 2.1.3, water viscosity and seawater viscosity at any
temperature can be calculated using the following equations:
𝜇! = 4.2844×10!! + 0.157 𝑡 + 64.993 !
− 91.296 !!
(61)
0 ≤ 𝑡 ≤ 180℃
𝜇!" =   𝜇! 1 + 𝐴𝑆 + 𝐵𝑆 !   (62)
𝐴 = 1.541 + 1.998×10!! 𝑡 − 9.52×10!! 𝑡 ! (63)
𝐵 = 7.974 − 7.561×10!! 𝑡 + 4.724×10!! 𝑡 ! (64)
0 ≤ 𝑡 ≤ 180℃, 0 < 𝑆 < 0.15𝑘𝑔/𝑘𝑔
Given the diffusivity of NaCl solution at 25°C (1.611×10!!  𝑚! /𝑠), the NaCl
solute diffusivity at any other temperature can be calculated using:  
!!" !
𝐷! = 𝐷!" !! !"#.!"
(65)

The mass transfer coefficient at any temperature can be calculated using the
diffusivity of NaCl solution.
!/!
!! ! !
𝑘!" = 0.808 !
(66)

Given the membrane water permeability at 25°C ( 𝐴!" ), and the solute
permeability at 25°C (𝐵!" ), both permeability at any temperature can be calculated from:
!!"
𝐴 ! = 𝐴!" !!
(67)
!
𝐵! = 𝐵!" ! ! (68)
!"

Here, a XLE membrane water permeability of 2.1×10!!! 𝑚/(𝑠 ∙ 𝑝𝑎), and salt
permeability of 0.25×10!!! 𝑚/(𝑠 ∙ 𝑝𝑎) at 25°C are used. Considering the membrane
property changes, empirical equations are also used where 𝑚𝐴 ! and 𝑚𝐵! are water
permeability and solute permeability:
! !
𝑚𝐴 ! = 𝐴!" 𝑒𝑥𝑝 𝐾!" × (!"#.!"!!)
− !"#.!" (69)
! !
𝑚𝐵! = 𝐵!" 𝑒𝑥𝑝 𝐾!" × (!"#.!"!!)
− !"#.!" (70)

  22  
Here the temperature coefficient for water transport, 𝐾!! , and the temperature
coefficient for solute transport, 𝐾!" , are -2849 and -3281 respectively, obtained from
literature (Jin et al., 2009).
Using the 𝑘!" and 𝐵! calculated above, the concentration polarization factor, CP,
and the observed salt rejection, 𝑋! , at any temperature can be solved from the following
two equations:
!! !
𝐶𝑃 = !!
= 1 − 𝑋! + 𝑋! ∙ exp  (! ! ) (71)
!"

!"∙!! !!
𝑋! = 1 − 𝑐! 𝑐! = 1 − !!
∙! (72)
! !!!

Using the 𝐴 ! and 𝐵! calculated above, the applied pressure at any temperature is
predicted from:
!! !
∆𝑝! = 2𝑅𝑇 ∙ 𝐶𝑃 !! !!!
𝑐! + !! (73)
!

In the case study, the values of other parameters are as follows: The water flux is
1.29×10!! 𝑚/𝑠. The molar concentration of NaCl solution is 50×10!! 𝑚𝑜𝑙/𝐿. The
cross-flow velocity is 7 cm/s. The channel height is 0.173 cm. The channel length is 14.6
cm. The channel width is 9.5 cm. The entire program is implemented in MATLAB
(Appendix A).

3.1.2 Results
The system performance characteristics were plotted against temperature as
below, which are validated by Jin et al. (2009). As shown Figure 1, as temperature
increases, the solute diffusivity increases, and the water viscosity decreases. Thus, the
permeability increases, while concentration polarization is reduced as indicated by the
decrease of the concentration polarization factor and the increase of the mass transfer
coefficient. Although the solute permeability is increased, the observed rejection is
almost unchanged. Because the increase of the water permeability tends to reduce the
permeate concentration and increase the feed concentration, the effects of the increase of
solute permeability are conteracted. The comparison of theoretical and empirical
permeability suggests there may be changes in both solution and membrane properties.
Thermal expansion of membrane pores likely increases the intrinsic water and solute
  23  
permeability. Ultimately, it takes much less pressure to produce the same flux, which
provides a strong support for the integration of energy and water infrastructure systems.

(A) (B)

(C) (D)

(E) (F)
Figure 1 System Performance Characteristics Plotted Against Temperature

  24  
3.2 Module Model
3.2.1 Approach
As described earlier in Section 2.1.4, the common approach to model an Spiral
Wound Reverse Osmosis module is to unwrap the element into a flat plate, and
differentiate the element into slices, where the solution is assumed completely mixed.
Starting from the first slice, water and solute flux can be calculated using the initial
conditions. Using flow and mass balance principals, the conditions for the next slice can
be calculated. The same calculations can be repeated for the following slices using the
conditions calculated by the previous slice. The final output is the recovery ratio of the
RO element under the given conditions.
In the case study, the initial conditions used are as follows: 270 m3/d feed flow
rate, 2000 mg/L feed concentration, 14.2 bar feed pressure, 0.3 bar permeate pressure,
20°C temperature. The membrane element properties are as follows: 0.125 mm channel
height, 32.5 m channel width, 10 m channel length, 0.2 bar element head loss; the solvent
permeability of the membrane is 2.87; the solute permeability is 6.14×10!! . Other
parameters can be found in the source code (Appendix A). The final output, recovery
ratio of the RO element is 0.0983, which is validated by Crittenden and the following
validation (Crittenden, 2005).
All the physical properties are changed to be the same as those in temperature
effects model (Section 3.1), and temperature is added as a variable. The entire program is
implemented in MATLAB (Appendix C).

3.2.2 Results
Important parameters at a range of temperatures are plotted against the differential
slices called “Increment Stage”. The recovery ratio at different temperatures is plotted
against temperature. As shown in Figure 2, as temperature increases, water flux is greatly
increased at the beginning of the SWRO module, but decreases much faster along the
module length due to faster increase of feed concentration, leading to the same trends in
permeate flow rate, feed flow rate, feed velocity and mass transfer coefficient. The solute

  25  
flux is increased at the beginning of the SWRO module and increases much faster along
the module length as temperature gets higher, again due to the faster increase of feed
concentration. However, the two opposite trends counteract each other, so the permeate
concentration does not change significantly before the temperature reaches 100°C.
Ultimately, the recovery ratio is greatly increased as temperature gets higher, indicating
that increasing the temperature of RO treatment can greatly save membrane area when
the goal of recovery ratio remains the same.

(A) (B)

(C) (D)

  26  
(E) (F)

(G) (H)

(I) (J)
Figure 2 System Parameters Plotted Against Increment Stage and Temperature for SWRO Module

The main condition variables that impact the recovery ratio are feed flow rate,
feed concentration and applied pressure. A brief sensitivity analysis (Appendix D) was
done to further prove the correctness of the MATLAB model. As shown in the figures,
the recovery ratio increases with applied pressure, but decreases with feed flow rate and
  27  
feed concentration. Because higher applied pressure increases the water flux, higher feed
concentration increases the osmotic pressure leading to lower water flux. Higher feed
flow rate means a larger denominator in the definition expression of recovery ratio, and
more modules, that is, larger membrane areas, are needed to achieve the same recovery
ratio as smaller feed flow.

(A) (B) (C)


Figure 3 Sensitivity Analysis

3.3 System Model


3.3.1 Approach
At the system scale, the goal is to simulate the performance of a Spiral-wound
Reverse Osmosis (SWRO) system with varying temperature and other varying design
variables. To simplify the system model, the pretreatment, post-treatment processes and
two-pass system are not included in the scope. The RO system in the model includes a set
of RO membrane elements housed in pressure vessels operated in parallel and fed by a
high-pressure pump, which is called a stage. Concentrate streams can be fed to a second
stage to increase water recovery, while maintaining sufficient velocity by reducing the
number of vessels in succeeding stages.
Instead of determining the number of elements per vessel and the number of
vessels per stage, all the spiral wound modules are expanded to flat channels and
connected with each other in series if they are in the same pressure vessel, or in parallel if
they are in different pressure vessels, shown in Figure 4. Thus, the model is simplified to
one or two flat channels with different widths and lengths connected in series,
representing different stages. Given the feed flow rate (determined by the water demand
of the service area), channel height and feed design velocity (arbitrary design
  28  
parameters), the channel width can be determined, which is equivalent to determining the
number of vessels per stage. Given other original operation conditions (pressure,
concentration and temperature) and the goal of recovery ratio, which are all arbitrary
design parameters, the total membrane area needed can be found incrementally, which is
equivalent to determining the number of elements per vessel. If before the recovery ratio
is achieved, the feed flow rate is less than half of the original flow rate into the stage, the
channel width (the number of vessels per stage) will be recalculated using the feed design
velocity and the current flow rate, indicating the beginning of a new stage.

Figure 4 Simplified Model of Spiral Wound Reverse Osmosis System

The entire model is implemented in MATLAB based on the module model and
the above approach. The design parameters and operation conditions are then varied to
analyze the system. To verify the result, the average flux of the first stage was calculated,
which is used to divide the water demand for an estimate of the membrane area.
(Appendix E)

3.3.2 Results
Similar to Section 3.2.2, system parameters at a range of temperatures are plotted
against the differential slices called “Increment Stage”. The membrane areas calculated
from the model and the estimation at different temperatures are plotted against
temperature.
As shown in Figure 5, the membrane area needed to achieve a certain recovery
goal can be decreased significantly at higher temperatures, while other operation
conditions stay the same. According to the plot of feed velocity versus temperature, the

  29  
systems are two-stage except for that at 100°C. The final feed concentration decreases, as
temperature gets higher, because more solute passes the membrane, and leading to higher
permeate concentration. Although the permeate concentration gets higher as the
temperature increases, they are still within the bounds of most public water systems,
which typically have concentrations of sodium and chloride less than 75 mg/L each. The
sodium limit in municipal water standards is 200mg/L. Like the results in previous
sections, the plots conform to the basic physics principals of reverse osmosis processes,
which verify the correctness of the model.

(A) (B)

(C) (D)

  30  
(E) (F)

(G) (H)

(I) (J)
Figure 5 System Parameters Plotted Against Increment Stage and Temperature for SWRO System

The main condition variables that affect the membrane area are feed flow rate,
feed concentration, applied pressure and recovery ratio. A brief sensitivity analysis
(Appendix F) was done to further prove the correctness and gain insight into the
MATLAB model. In the sensitivity analysis, typical seawater reverse osmosis operation
  31  
condition ranges are adopted. Typically, the applied pressure range is 5.6-6.0MPa, with
the highest pressure being 7.0MPa. The seawater salt concentration range is 32000-
35000mg/L. (“Drinking water quality standards,” n.d.)(“Sodium and Chloride in
Drinking Water,” 2010) The recovery ratio range is 0.4-0.6. Thus, the operation
conditions used are: 60bar applied pressure, 32000mg/L feed concentration, 0.5 recovery
ratio, 270m3/d feed flow rate. A few exceptions are the recovery ratio for applied pressure
sensitivity analysis is 0.3. The applied pressure for feed concentration sensitivity analysis
is 80bar. As shown in the following figure, the plots conform to physics principals. The
membrane area needed increases with feed flow rate, concentration and recovery ratio,
but decreases with applied pressure.

(A) (B)

(C) (D)
Figure 6 Sensitivity Analysis

  32  
Chapter 4 FO Model
4.1 Temperature Effects
Based on the approach described in Section 2.2.3, the FO process is simulated
using MATLAB (Appendix G) and validate by experimental data obtained from
McCutcheon & Elimelech (2006).
In the experiment, flux was determined at draw concentration of 0.05, 0.1, 0.5, 1
and 1.5M NaCl, while the feed side uses deionized water, and then determined at feed
concentration of 0.05, 0.1, 0.5 and 1M NaCl, while the draw solution remains constant at
1.5M. The crossflow rate of both feed and draw solution is 45.8 cm/s. Indicated
temperatures apply to both feed and draw solution. Note that a water flux of 10 𝜇𝑚/𝑠
corresponds to 21.2𝑔𝑎𝑙 ∙ 𝑓𝑡 !! 𝑑 !! (𝑔𝑓𝑑) or 36.0𝑙 ∙ 𝑚!! ℎ!! . Obtained from tests, an
average value of 𝑡𝜏/𝜀 at 20°C is 2.98×10!! 𝑚 in PRO mode, and 3.60×10!! 𝑚 in FO
mode. The membrane permeability at 50°C is 2.0484𝐿/(𝑚! ∙ ℎ ∙ 𝑏𝑎𝑟).
First, the system was simulated in PRO mode, where the draw solution is facing
against the active layer. Since the experimental data are read directly from plots and the
physical properties could contain error, there is some error between the simulated results
and the experimental results. However, for the purpose of this study, the accuracy is
acceptable, as shown in the following figure, which indicates that an increase in solution
temperature increases the flux significantly in the absence of ICP, while plays a
negligible role in the presence of ICP.

Figure 7 PRO Mode Simulation Results and Experimental Results for Validation

  33  
The system was them simulated in FO mode, where the draw solution is facing
against the backing layer. Again, the model sufficiently predicts to meet the requirements
of this study, as shown in the following figure, which indicates that the overall flux rates
in FO mode is smaller than that in PRO mode. But an increase in solution temperature
increases the flux even in the presence of ICP.

Figure 8 FO Mode Simulation Results and Experimental Results for Validation

4.2 System Model


At the system scale, the goal is to simulate the performance of a plate-and-frame
FO module in co-current flow, and varying temperature and other design variables. This
system can be simplified to a model similar to the one in Section 3.3.1, shown in the
following figure. To simplify the model, the pretreatment, post-treatment processes, two-
pass and two-stage system are not included in the scope.

Figure 9 Simplified Model of Plate-and-frame Forward Osmosis System

  34  
The FO membrane is assumed to be cellulose triacetate (CTA) membrane
(Hydration Technologies, Albany, USA), whose membrane permeability at 50°C and
solute permeability at 25°C are 2.0484𝐿/(𝑚! ∙ ℎ ∙ 𝑏𝑎𝑟) and 6.14×10!! 𝑚/ℎ ,
respectively. The feed solution is gray water, whose concentration is expressed as
equivalent NaCl solution concentration. The draw solution is assumed to be concentrated
seawater.
The entire model is implemented in MATLAB based on the FO temperature
effects model and an approach similar to the RO system model (Appendix H). Similar to
Chapter 3, important system parameters at a range of temperatures are plotted against the
differential slices called “Increment Stage”. The membrane areas calculated from the
model, and the estimation at different temperatures, are plotted against temperature.
As shown in the figure, the membrane area needed to achieve a certain recovery
goal can be decreased significantly at higher temperatures, while other operation
conditions stay the same. As shown in the following figure, water flux and solute flux
greatly increase with temperature, but decrease along the membrane due to the decrease
of osmotic pressure difference. The plots conform to the basic physics principals of
forward osmosis processes, which verify the correctness of the model.

(A) (B)

  35  
(C) (D)

(E) (F)

(G) (H)
Figure 10 System Parameters Plotted Against Increment Stage and Temperature for FO System

Figure 11 shows the relationship between membrane area and temperature, for
given recovery ratio and operating conditions. As temperature rises from 10°C to 90°C,
the membrane area needed decreases from 210m2 to 40m2.

  36  
Figure 11 Membrane Area Plotted Against Temperature for FO Model

Chapter 5 Design Optimization


To find the optimal design within the entire design space, an indicator is needed
to measure the economic and environmental efficiency of the system. Evaluation of
environmental costs and impacts are discussed in the literature review. However, the
details for all the materials and processes of the system are beyond the scope of this study.
In this study, based on a combination of unit costs and process parameters, predesign cost
estimates are used to estimate only the financial cost of a RO system.
This type of estimate is generally used for development plans, master plans,
feasibility studies, and, for comparing costs of alternatives, with an expected accuracy
between 50% to 30%. The predesign cost estimate is particularly sensitive to assumptions
and qualifications. The capital cost and annual operation and maintenance (O&M) cost
curves for common reverse osmosis treatment plants are recorded by Mcgivney &
Kawamura. The total construction cost of reverse osmosis can be calculated by
y=12.612x0.7177, and the operation and maintenance (O&M) cost of reverse osmosis can
be calculated by y=2.9129x0.6484, where x is the amount of water in millions of gallons
per day, and y is the amount of capital in millions of dollars. (Mcgivney & Kawamura,
2008)
By applying heat to the RO system, area and pressure can be varied from typical
situations, assuming the capital cost is proportional to membrane area while the O&M
  37  
cost is proportional to pressure. The membrane area for the above capital cost curve can
be calculated from the RO model described in Chapter 3. The typical range of applied
pressure is 5.6-6.0MPa, so 6.0MPa is assumed to be the applied pressure of the above
O&M cost curve.
By summing up capital costs and O&M costs (assuming a 30-year analysis
period), the total cost can be obtained. Dividing water demand (amount of product water)
by the total cost gives an indicator that represents the amount of water produced per unit
of cost, which is the economic efficiency of the design.
!"#$%  !"#$%&
𝐸𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑐𝑦 = !"#$%"&  !"#$!  !&!  !"#$ (74)

The method described above is Method 1. Another method (Method 2) to


calculate the total cost of the RO system is based on the following parameters from the
IAEA DEEP desalination economic model: (Kavvadias, K.C. Kavvadias, n.d.)
Table 1 Cost Estimate Parameters
Base unit cost 900 $/(m3/d)
Specific O&M spare parts cost 0.04 $/m3
Specific O&M chemicals cost for pre-treatment 0.03$/m3
Specific O&M chemicals cost for post- 0.01$/m3
treatment
O&M membrane replacement cost (RO) 0.07$/m3
Purchased power cost 0.06$/kWh

The typical prices for 4" membrane elements are $450 for 8" and $175, and the
area of 8” membrane elements is about 35.3 m2. Assume RO membrane replacement is
assumed to happen every 3 years.

From literature, the electricity consumption of the RO process was shown to be


responsible for more than 90% of the impacts of the RO desalination plant. The impacts
of the plant construction and decommissioning phases, as well as the impacts of
membrane renewal, were found to be negligible in comparison with the electricity
consumption impacts. (Vince, Marechal, Aoustin, & Bréant, 2008) The economic
efficiency of the design is defined by Equation 75:
!"#$%  !"#$%&
𝐸𝑓𝑓𝑖𝑐𝑖𝑒𝑛𝑐𝑦 = !"#$%"&  !"#$  !!"#$%&'"  !"#$%&"'"()  !"#$!  !"#$%&'$'%(  !"#$ (75)

  38  
Total power consumption of the system includes power for seawater pumping,
high-pressure pumping, and chemical treatment pumping. High-pressure pumps consume
a large portion of energy, while other system pumps account for only 20% of the total
energy consumption. The power requirement of pump is calculated by:
𝑃! = 𝑄×𝑃! /(𝐸! ×𝐸! ) (76)
where 𝑃! is the power consumed by each pump (kW), Q is the feed water flow
rates for each pump (m3/s), 𝑃! is the feed water pressure of each pump (kPa), 𝐸! is the
pump efficiency (assume 0.88), 𝐸! is motor efficiency (assume 0.85).
In RO desalination process, the typical recovery ratio is around 30%, and the
remaining seawater is rejected at a pressure only slightly below the applied pressure. In
large RO systems, devices such as a Pelton turbine can recover and return the energy to
the shaft of the high-pressure pump.
The recovered energy can be calculated using:
𝑃 = 𝑄! ×𝑃! ×𝐸! (77)
where P is the recovered energy (kW), 𝑄! is the brine flow rate (𝑚! /𝑠), 𝑃! is the
brine pressure (kPa), and 𝐸! is the turbine efficiency. 𝐸! is assumed to be 0.67 when the
turbine is a reversed centrifugal pump, and 0.84‒0.88 when it is an impulse wheel
turbine. (Al-Karaghouli, A., & Kazmerski, n.d.)
Using both methods to evaluate efficiency of the RO design, a simulation was run
in ModelCenter using efficiency as the optimization objective. Result is shown using
parallel coordinates, which is a common way of visualizing high-dimensional geometry
and analyzing multivariate data. A point in n-dimensional space is represented as a
polyline with vertices on the parallel axes.
In the simulation, there are 5 input variables. C! , the concentration of seawater,
ranges from 3.2×10! to 3.5×10! mg/L. P! , the applied pressure ranges from 10~70 bar.
Q ! , the water demand, ranges from 4×10! to 5×10! m! /d. HeatIn, the applied heat
ranges from 1×10!" to 1×10!" J/d, corresponding to temperature from 29~96°C,
RecoveryGoal, the targeted recovery ratio, ranges from 0.3 to 0.8.

  39  
Figure 12 shows the simulation results using method 1, and Figure 13 shows the
simulation results using method 2. The results of these two methods are very similar to
each other. The optimal designs typically have a 70~90°C operating temperature, a
0.3~0.5 recovery goal, a 50~60 bar operating pressure, a low seawater concentration, and
a large water demand (service area). It is also indicated that lower applied pressure and
higher water demand result in higher efficiency.

Figure 12 Design Optimization Results for Method 1

Figure 13 Design Optimization Results for Method 2

 
 
 
 

  40  
Chapter 6 Conclusions
By providing waste heat of a CCHP plant to water treatment units using
membrane technology, both the energy efficiency and environmental impacts of the
CCHP plant and the water treatment facility could be benefited. This study proposed
three hypothetical infrastructure systems, which integrated desalination, CCHP plant
and/or gray water reclamation.
The first scenario is reverse osmosis desalination integrated with CCHP plant,
through providing waste heat of a CCHP plant to desalination plant. The second scenario
adds gray water separation (FO/RO hybrid system) on site into the water infrastructure
system, integrated with CCHP plant. The third scenario integrates CCHP plant, reverse
osmosis desalination with forward osmosis, so that not only gray water can be
concentrated, but also desalination concentrate can be diluted and disposed.
In order to compare these hypothetical integrated infrastructure systems,
simulation and modeling need to be performed taking all possible system parameters into
consideration. In this study, a simulation approach for RO and FO water treatment
processes is presented to explore the possible economic benefits of incorporating CCHP
waste heat with Reverse Osmosis and Forward Osmosis processes. This approach is
based on the solution-diffusion theory to describe membrane mass transfer. Using a
simplified RO and FO network model, the total membrane area, which is needed to
achieve certain recovery ratio, can be obtained incrementally, given the applied pressure,
temperature, concentration and water flow.
The design space of a preheated RO system is explored, using MATLAB and
ModelCenter. The optimization objective is to maximize the amount of water produced
per unit cost. The optimization results show that typical optimal designs have 70~90°C
operating temperature, 0.3~0.5 recovery goal, 50~60 bar operating pressure, lower
seawater concentration, and large water demand (service area). It is also indicated that
lower applied pressure and higher water demand result in higher efficiency. This study
found that incorporating CCHP waste heat will increase the economic efficiency of an
RO system, and also identified the process parameters for cost and environmental
analysis to compare hypothetical integrated infrastructure.

  41  
Chapter 7 Future Work
This study is limited by the predesign cost estimate approach, which is not very
accurate, and cannot be applied to analyzing the costs and impacts of the three
hypothetical scenarios of integrated infrastructure systems.
One future direction is to analyze the economic and environmental costs of the
three hypothetical scenarios of integrated infrastructure systems. One approach is to
estimate the changes to baseline cases, while not knowing the exact consequences of the
alternatives. For example, the changes that can be caused by the above three scenarios are
summarized in the following table. Some promising approaches to quantify these changes
include predesign cost estimation, life cycle assessment, and general system analysis.
Table 2 An Approach To Compare Alternative Scenario By Estimating Changes To Baseline
Savings (-) Extra Costs (+)
Scenario 1:
Pressure Cost / Heat Transfer from
Baseline - RO Desalination
Membrane Cost CCHP Plant
Alternative – Preheated RO Desalination
Gray Water
Collection System
Water Intake Cost,
Scenario 2: Cost,
Drinking Water
Baseline – Wastewater Collection and Treatment System FO/RO Hybrid
Treatment Cost,
Alternative – Add in Pure Water Extraction from Gray Water System Cost,
Wastewater
using FO/RO Hybrid System Reclaimed Water
Treatment Cost
Distribution Cost

Scenario 3:
Gray Water
Baseline – RO Desalination + Wastewater Collection and RO Concentrate
Collection System
Treatment System Treatment Cost,
Cost,
Alternative – Add FO after RO Desalination to Extract Pure Wastewater
FO Unit Cost
Water from Gray Water using RO Concentrate (Disposed into Treatment Cost
Sea)

Another approach is to find the quantitative relationship between costs/impacts


and the process parameters, namely, concentration, applied pressure, temperature,
membrane area and water flow rate. The last approach is to evaluate the optimal point in

  42  
the design space, which is found in this study, and compare the costs and impacts with
the traditional water infrastructure system.
Another interesting direction is to combine CCHP technologies with anaerobic
digestion processes. Anaerobic digestion processes provide a “free” source of fuel for
CHP systems, while CHP systems can supply all of the heat required by the anaerobic
digestion process and a significant portion of electric power demand of the urban water
system. The concept of integrated urban water management, incorporating centralized
and decentralized water supply and wastewater management along with water
reclamation and reuse, distributed water treatment, and rainwater harvesting provides a
number of potential opportunities. Sustainability principles can be used to develop,
evaluate, and implement these systems. Potential options can be screened based on social
acceptability, affordability, and sustainability. (Daigger, Crawford, & Hill, 2007)

  43  
Reference

Agrawal, J. P., & Sourirajan, S. (1969). Specification, Selectivity, and Performance of


Porous Cellulose Acetate Membranes in Reverse Osmosis. Ind. Eng. Chem. Proc.
Des. Dew., 8(4), 439.

Al-Jayyousi, O. R. (2003). Greywater reuse: towards sustainable water management.


Desalination, 156(1-3), 181–192. doi:10.1016/S0011-9164(03)00340-0

Al-Karaghouli, A., & Kazmerski, L. L. (n.d.). Performance and Economic Analysis of a


Medium-Size Reverse-Osmosis Plant using HOMER and DEEP-3.2 Software.
National Renewable Energy Laboratory Golden.

Amjad, Z. (1993). Reverse osmosis: membrane technology, water chemistry & industrial
applications. Chapman & Hall.

Avlonitis, S. A., Kouroumbas, K., & Vlachakis, N. (2003). Energy consumption and
membrane replacement cost for seawater RO desalination plants. Desalination,
157(1-3), 151–158. doi:10.1016/S0011-9164(03)00395-3

Bagheri, A., & Hjorth, P. (2006). a Framework for Process Indicators To Monitor for
Sustainable Development: Practice To an Urban Water System. Environment,
Development and Sustainability, 9(2), 143–161. doi:10.1007/s10668-005-9009-0

Baker, R. W. (2004). Membrane Technology and Applications (2nd ed.). John Wiley &
Sons Ltd., England.

Balkema, A. J., Preisig, H. A., Otterpohl, R., & Lambert, F. J. D. (2002). Indicators for
the sustainability assessment of wastewater treatment systems, 4, 153–161.

Bindra, S. P., & Abosh, W. (2001). Recent Developments in Water Desalination.


Desalination, 136(1-3), 49–56.

Cath, T., Childress, a, & Elimelech, M. (2006). Forward osmosis: Principles,


applications, and recent developments. Journal of Membrane Science, 281(1-2), 70–
87. doi:10.1016/j.memsci.2006.05.048

Cath, T. Y., Gormly, S., Beaudry, E. G., Flynn, M. T., Adams, V. D., & Childress, A. E.
(2005). Membrane contactor processes for wastewater reclamation in space. Journal
of Membrane Science, 257(1-2), 85–98. doi:10.1016/j.memsci.2004.08.039

CEE. (2011). Sustainable and Resilient Infrastructure Systems Program. The University
of llinois. Retrieved from http://cee.illinois.edu/SRIS

  44  
Connell, P., & Dickson, J. M. (1988). Modeling Reverse Osmosis Separations with
Strong Solute-Membrane Affinity at Different Temperatures Using the Finely
Porous Model. I. Appl. Polym. Sci., 35(5), 1129.

Crittenden, J. C. (2005). Water treatment  : principles and design (pp. 1425–1506).


Montgomery Watson Harza.

Daigger, G. T., Crawford, G. V, & Hill, C. H. M. (2007). ENHANCING WATER


SYSTEM SECURITY AND SUSTAINABILITY BY INCORPORATING
CENTRALIZED AND DECENTRALIZED WATER RECLAMATION AND
REUSE INTO URBAN WATER MANAGEMENT SYSTEMS, 17(1), 1–10.

Djebedjian, B., Gad, H., Khaled, I., Rayan, M. A., & Authority, S. D. (2008).
OPTIMIZATION OF REVERSE OSMOSIS DESALINATION SYSTEM, (m).

Drinking water quality standards. (n.d.).Wikipedia. Retrieved from


http://en.wikipedia.org/wiki/Drinking_water_quality_standards

El-Manharawy, S., & Hafez, A. (2001). Water type and guidelines for RO system design.
Desalination, 139(1-3), 97–113. doi:10.1016/S0011-9164(01)00298-3

El-Sayed Mohamed Mahgoub, M., Van der Steen, N. P., Abu-Zeid, K., &
Vairavamoorthy, K. (2010). Towards sustainability in urban water: a life cycle
analysis of the urban water system of Alexandria City, Egypt. Journal of Cleaner
Production, 18(10-11), 1100–1106. doi:10.1016/j.jclepro.2010.02.009

Flemming, H.-C. (1997). Reverse osmosis membrane biofouling. Experimental Thermal


and Fluid Science, 14(4), 382–391. doi:10.1016/S0894-1777(96)00140-9

Fritzmann, C., Löwenberg, J., Wintgens, T., & Melin, T. (2007). State-of-the-art of
reverse osmosis desalination. Desalination, 216(1-3), 1–76.
doi:10.1016/j.desal.2006.12.009

Garcia-Castello, E. M., McCutcheon, J. R., & Elimelech, M. (2009). Performance


evaluation of sucrose concentration using forward osmosis. Journal of Membrane
Science, 338, 61–66.

Goosen, M. F. A., Sablani, S. S., Al-Maskari, S. S., Al-Belushi, R. H., & Wilf, M.
(2002). Effect of feed temperature on permeate flux and mass transfer coefficient in
spiral-wound reverse osmosis systems. Desalination, 144(1-3), 367–372.
doi:10.1016/S0011-9164(02)00345-4

Greenlee, L. F., Lawler, D. F., Freeman, B. D., Marrot, B., & Moulin, P. (2009). Reverse
osmosis desalination: water sources, technology, and today’s challenges. Water
research, 43(9), 2317–48. doi:10.1016/j.watres.2009.03.010

  45  
Gu, B., Kim, D. Y., Kim, J. H., & Yang, D. R. (2011). Mathematical model of flat sheet
membrane modules for FO process: Plate-and-frame module and spiral-wound
module. Journal of Membrane Science, 379(1-2), 403–415.
doi:10.1016/j.memsci.2011.06.012

Hellstro, D. (2000). A framework for systems analysis of sustainable urban water


management, 20, 311–321.

Hepbasli, A. (2008). A key review on exergetic analysis and assessment of renewable


energy resources for a sustainable future. Renewable and Sustainable Energy
Reviews, 12(3), 593–661. doi:10.1016/j.rser.2006.10.001

Jin, X., Jawor, A., Kim, S., & Hoek, E. M. V. (2009). Effects of feed water temperature
on separation performance and organic fouling of brackish water RO membranes.
Desalination, 239(1-3), 346–359. doi:10.1016/j.desal.2008.03.026

Johnson, Jon & Busch, M. (2009). Engineering Aspects of Reverse Osmosis Module
Design. Lenntech bv.

Kavvadias, K.C. Kavvadias, K. C. (n.d.). The IAEA DEEP desalination economic model:
A critical review.

Kim, Y. M., Kim, S. J., Kim, Y. S., Lee, S., Kim, I. S., & Kim, J. H. (2009). Overview of
systems engineering approaches for a large-scale seawater desalination plant with a
reverse osmosis network. Desalination, 238(1-3), 312–332.
doi:10.1016/j.desal.2008.10.004

Kong, X. Q., Wang, R. Z., Wu, J. Y., Huang, X. H., Huangfu, Y., Wu, D. W., & Xu, Y.
X. (2005). Experimental investigation of a micro-combined cooling, heating and
power system driven by a gas engine. International Journal of Refrigeration, 28(7),
977–987. doi:10.1016/j.ijrefrig.2005.04.006

Kukreja, R. (2015). What are Alternative Energy Sources? Conserve Energy Future.
Retrieved from http://www.conserve-energy-
future.com/AlternativeEnergySources.php

LANXESS. (2012). Guidelines for the Design of Reverse Osmosis Membrane Systems.

Lee, K. P., Arnot, T. C., & Mattia, D. (2011). A review of reverse osmosis membrane
materials for desalination—Development to date and future potential. Journal of
Membrane Science, 370(1-2), 1–22. doi:10.1016/j.memsci.2010.12.036

Lonsdale, H. K., Merten, U., Riley, R. L., & Jay, J. (1965). Transport Properties of
Cellulose Acetate Osmotic Membranes *, 9, 1341–1362.

  46  
Lundin, M., & Morrison, G. M. (2002). A life cycle assessment based procedure for
development of environmental sustainability indicators for urban water systems, 4,
145–152.

Malaeb, L., & Ayoub, G. M. (2011). Reverse osmosis technology for water treatment:
State of the art review. Desalination, 267(1), 1–8. doi:10.1016/j.desal.2010.09.001

Marriott, J., & Sørensen, E. (2003). A general approach to modelling membrane modules.
Chemical Engineering Science, 58(22), 4975–4990. doi:10.1016/j.ces.2003.07.005

McCutcheon, J. R., & Elimelech, M. (2006). Influence of concentrative and dilutive


internal concentration polarization on flux behavior in forward osmosis. Journal of
Membrane Science, 284(1-2), 237–247. doi:10.1016/j.memsci.2006.07.049

Mccutcheon, J. R., & Elimelech, M. (2007). Modeling Water Flux in Forward Osmosis  :
Implications for Improved Membrane Design, 53(7), 1736–1744. doi:10.1002/aic

Mcgivney, W., & Kawamura, S. (2008). COST ESTIMATING MANUAL FOR WATER
TREATMENT FACILITIES.

McLennan, J. F. (2004). The Philosophy of Sustainable Design.

Mi, B., & Elimelech, M. (2008). Chemical and physical aspects of organic fouling of
forward osmosis membranes. Journal of Membrane Science, 320(1-2), 292–302.
doi:10.1016/j.memsci.2008.04.036

Mulder, M. (1996). Basic Principles of Membrane Technologyitle. Dordrecht: Kluwer


Academic Publishers.

Ness, B., Urbel-Piirsalu, E., Anderberg, S., & Olsson, L. (2007). Categorising tools for
sustainability assessment. Ecological Economics, 60(3), 498–508.
doi:10.1016/j.ecolecon.2006.07.023

Petrotos, K. B., Quantick, P. C., & Petropakis, H. (1999). Direct osmotic concentration of
tomato juice in tubular membrane - module configuration. II. The effect of using
clarified tomato juice on the process performance. Journal of Membrane Science,
160(171-177).

Phuntsho, S., Vigneswaran, S., Kandasamy, J., & Hong, S. (2012). Influence of
temperature and temperature difference in the performance of forward osmosis
desalination process, 416, 734–744.

Senthilmurugan, S., Ahluwalia, A., & Gupta, S. K. (2005). Modeling of a spiral-wound


module and estimation of model parameters using numerical techniques, 173, 269–
286.

  47  
Sharqawy, M. H., V, J. H. L., & Zubair, S. M. (2010). The thermophysical properties of
seawater: A review of existing correlations and data. Desalination and Water
Treatment, 354–380.

Sodium and Chloride in Drinking Water. (2010).New Hampshire Department of


Environmental Services. Retrieved from
http://des.nh.gov/organization/commissioner/pip/factsheets/dwgb/documents/dwgb-
3-17.pdf

Soltanieh, M., & Gill, W. N. (1984). An experimental study of the complete-mixing


model for radial flow hollow fiber reverse osmosis systems. Desalination, 49(1),
57–88. doi:10.1016/0011-9164(84)80012-0

Song, L., Hong, S., Hu, J. Y., Ong, S. L., & Ng, W. J. (2002). Simulations of Full-Scale
Reverse Osmosis Membrane Process, 960–966.

Taylor, P., Mehdizadeh, H., & Dickson, J. M. (1991). MODELLING OF


TEMPERATURE EFFECTS ON THE PERFORMANCE OF REVERSE
OSMOSIS MEMBRANES. Chem. Eng. Comm., 103, 99–117.

Vince, F., Marechal, F., Aoustin, E., & Bréant, P. (2008). Multi-objective optimization of
RO desalination plants. Desalination, 222(1-3), 96–118.
doi:10.1016/j.desal.2007.02.064

Wijmans, J. G., & Baker, R. W. (1995). The solution-diffusion model  : a review, 107, 1–
21.

Williams, M. E. (2003). A Review of Reverse Osmosis Theory. EET Corporation and


Williams Engineering Services Company, Inc., 1–40.

Yip, N. Y., Tiraferri, A., Phillip, W. A., Schiffman, J. D., & Elimelech, M. (2010). High
Performance Thin-Film Composite Forward Osmosis Membrane. Environmental
Science & Technology, 44, 3812–3818.

Zhao, S., & Zou, L. (2011). Effects of working temperature on separation performance,
membrane scaling and cleaning in forward osmosis desalination. Desalination,
278(1-3), 157–164. doi:10.1016/j.desal.2011.05.018

  48  
Appendices
Appendix A: MATLAB Script Jw = 1.29e-5; %m/s ~27gfd assumed water flux
u = 7; %crossflow velocity cm/s
for RO Temperature Effects H = 0.173; %channel height cm
Model L = 14.6; %channel length cm
W = 9.5; %channel width cm

########RO_T_Effect_Model.m######## R = 8.3144621e3; %Universal Gas Constant


L.Pa/(K.mol)

%% X axsis Kwt = -2849; %K

nT = 40; Kst = -3281; %K

T0 = 1; %centigrade
dT = 1; %centigrade %% Constants at 25

TVector = T0:dT:(T0+(nT-1)*dT); VisWater25 = 4.2844/10^5 + 1/(0.157*(25 +


64.993)^2 - 91.296); %kg/(m.s)

%% Y axsis Dif25 = 1.611e-9; %m2/s NaCl

YVector1 = zeros(1,nT); ks25 = 0.808*((6*u/H *

YVector2 = zeros(1,nT); Dif25^2)/(0.01*L))^(1/3); %m/s

YVector3 = zeros(1,nT); rs25 = 1/(Bs25/Jw + 1);

YVector4 = zeros(1,nT); Xs25 = 0.5; %assumed salt rejection

YVector5 = zeros(1,nT); CP25 = 0;

YVector6 = zeros(1,nT); delta = 1e9;

YVector7 = zeros(1,nT); while (delta > 1e-9)

YVector8 = zeros(1,nT); CP25 = 1 - Xs25 + Xs25 * exp(Jw/ks25);

YVector9 = zeros(1,nT); newXs = 1 - CP25 * Bs25 * rs25 / Jw;

YVector10 = zeros(1,nT); delta = abs(newXs - Xs25);

YVector11 = zeros(1,nT); Xs25 = newXs;

YVector12 = zeros(1,nT); end


Pa25 = 2*R*(25+273.15)*CP25*(Jw/(Jw +

%% Parameters Bs25))*Mb + Jw/Aw25; %Pa

MW = 58.5; %g/mol
Mb = 50e-3; %mol/L %% Calculate

Cb = 50e-3 * MW; %g/L NaCl for i = 1:nT;

Aw25 = 2.1e-11; %m/(s-pa) XLE membrane T = TVector(i);

water permeability
Bs25 = 0.25e-11; %m/(s-pa) XLE membrane salt %% Water viscosity

permeability Den = 999.9 + 0.02034*T - 0.006162*T^2 +

  49  
2.261*10^(-5)*T^3 - 4.657*10^(-8)*T^4 + YVector5(1,i) = power(Dif/Dif25, 2/3);
802.0*Cb/10^3 - 2.001*Cb/10^3*T + %mass transfer coefficient
1.677/10^2*Cb/10^3*T^2 - 3.06*10^(- ksT = ks25 * YVector5(1,i); %m/s
5)*Cb/10^3*T^3 - 1.613/10^5*Cb^2/10^6*T^2; rsT = 1/(BsT/Jw + 1); %intrinsic rejection
A = 1.541 + 1.998e-2*T - 9.52e-5*T^2;
B = 7.974 - 7.561e-2*T + 4.724e-4*T^2; Xs = 0.5; %salt rejection
VisWater = 4.2844e-5 + 1/(0.157*(T + CP = 0;
64.993)^2 - 91.296); %kg/(m.s) delta = 1e9;
YVector1(1,i) = VisWater / VisWater25; while (delta > 1e-9)
CP = 1 - Xs + Xs * exp(Jw/ksT);
%% Solute diffusivity newXs = 1 - CP * BsT * rsT / Jw;
Vis = VisWater * (1+A*Cb/10^3 + delta = abs(newXs - Xs);
B*Cb^2/10^6); %kg/(m.s) NaCl Xs = newXs;
Vis25 = VisWater25 * (1+A*Cb/10^3 + end
B*Cb^2/10^6); %kg/(m.s) NaCl Pa = 2*R*(T+273.15)*CP*(Jw/(Jw +
Dif = BsT))*Mb + Jw/AwT; %Pa
Dif25*(T+273.15)/(25+273.15)*Vis25/Vis;
%m2/s NaCl YVector6(1,i) = CP/CP25; %concentration
YVector2(1,i) = Dif / Dif25; polarization

%% Water & salt permeability %% Salt rejection & Applied Pressure


YVector3(1,i) = VisWater25 / VisWater; YVector7(1,i) = Pa/Pa25;
%water permeability YVector8(1,i) = Xs/Xs25;
AwT = Aw25 * YVector3(1,i); end
YVector9(1,i) = AwT;
mAwT = Aw25*exp(Kwt*(1/(T+273.15)- %% Plot
1/298.15)); figure(1);
YVector10(1,i) = mAwT; hold on;
YVector4(1,i) = Dif / Dif25; %salt plot(TVector, YVector1, 's', 'LineWidth', 0.5);
permeability plot(TVector, YVector2, 'o', 'MarkerFaceColor',
BsT = Bs25 * YVector4(1,i); 'k', 'LineWidth', 0.5);
YVector11(1,i) = BsT; xlabel('Temperature (unit:
mBsT = Bs25*exp(Kst*(1/(T+273.15)- centidegree)','fontSize',16,'fontWeight','bold');
1/298.15)); ylabel('Viscosity &
YVector12(1,i) = mBsT; Diffusivity','fontSize',16,'fontWeight','bold');
legend('\mu_{T}/\mu_{25}','D_{T}/D_{25}');
%% Mass transfer coefficient & CP
  50  
figure(2); figure(5);
hold on; hold on;
plot(TVector, YVector3, 's', 'LineWidth', 0.5); plot(TVector, YVector9, 's', 'LineWidth', 0.5); %
plot(TVector, YVector4, 'o', 'MarkerFaceColor', values are correct, but the plot is biased, some
'k', 'LineWidth', 0.5); bug in matlab src
xlabel('Temperature (unit: plot(TVector, YVector10, 'o', 'MarkerFaceColor',
centidegree)','fontSize',16,'fontWeight','bold'); 'k', 'LineWidth', 0.5);
ylabel('Water & Salt xlabel('Temperature (unit:
Permeability','fontSize',16,'fontWeight','bold'); centidegree)','fontSize',16,'fontWeight','bold');
legend('A_{T}/A_{25}','B_{T}/B_{25}'); ylabel('Water Permeability (unit: m/s-
Pa)','fontSize',16,'fontWeight','bold');
figure(3); legend('A_{T}','mA_{T}');
hold on;
plot(TVector, YVector5, 's', 'LineWidth', 0.5); % figure(6);
values are correct, but the plot is biased, some hold on;
bug in matlab src plot(TVector, YVector11, 's', 'LineWidth', 0.5);
plot(TVector, YVector6, 'o', 'MarkerFaceColor', % values are correct, but the plot is biased, some
'k', 'LineWidth', 0.5); bug in matlab src
xlabel('Temperature (unit: plot(TVector, YVector12, 'o', 'MarkerFaceColor',
centidegree)','fontSize',16,'fontWeight','bold'); 'k', 'LineWidth', 0.5);
ylabel('Mass Transfer Coefficient & xlabel('Temperature (unit:
CP','fontSize',16,'fontWeight','bold'); centidegree)','fontSize',16,'fontWeight','bold');
legend('k_{T}/k_{25}','CP_{T}/CP_{25}'); ylabel('Salt Permeability (unit: m/s-
Pa)','fontSize',16,'fontWeight','bold');
figure(4); legend('B_{T}','mB_{T}');
hold on;
plot(TVector, YVector7, 's', 'LineWidth', 0.5); % Appendix B: MATLAB Script
values are correct, but the plot is biased, some
bug in matlab src
for RO Module Model
plot(TVector, YVector8, 'o', 'MarkerFaceColor',
'k', 'LineWidth', 0.5); ########RO_Module_Model.m ########

xlabel('Temperature (unit:
centidegree)','fontSize',16,'fontWeight','bold'); global Pp

ylabel('Applied Pressure & Observed Salt global k

Rejection','fontSize',16,'fontWeight','bold'); global Pb

legend('P_{T}/P_{25}','X_{T}/X_{25}'); global Rej


global OsmBri
  51  
global OsmPer R = 0.0831451; %Universal Gas Constant
global Kw L?bar/(K.mol)

%% Operation Conditions %% Calculation


Qf = 270; %m3/d Feed Flow num = 10; %Increment Number
Pf = 14.2; %bar Feed Pressure Qb = Qf/24/60/60; %m3/s
Cf = 2000; %mg/L NaCl Feed Concentration Pb = Pf; %bar
v0 = 0.5; %m/s Design Velocity Cb = Cf/1000; %g/L
Pp = 0.3; %bar Permeate Pressure Cp = 0;
T = 20; %centigrade Feed Temperature
for i = 1:num;
%% Membrane Element Properties OsmBri = n*Phi*Cb/MW*R*(T+273); %bar
l = 1; %m Increment Length OsmPer = n*Phi*Cp/MW*R*(T+273); %bar
a = 32.5; %m2 Increment Membrane Area Rej = 1 - Cp/Cb;
h = 0.125; %mm Feed Channel Height v = Qb/(h*1e-3)/w; %m/s
w = 32.5; %m Feed Channel Width Re = Den*v*dH/Vis;
hL = 0.2; %bar Element Head Loss Sc = Vis/(Den*Dif);
dhL = hL/v0^2/l; %bar.s2/m2 Head Loss k = 0.023*Dif*Re^0.83*Sc^0.33/dH; %m/s
Coefficient
dH = 2*h/1000; %m Hydraulic Diameter [CP, Jw, flag]=goalSeek();

%% Solute Properties: NaCl if (flag == 1)


n = 2; %Number of ions produced during Jw
dissociation of solute Beta = CP %Concentration Polarization
Phi = 1; %Osmotic Coefficient Factor
MW = 58.4; %g/mol Molecular Weight
Dif = 1.34e-9; %m2/s NaCl Js = Ks*(Beta*Cb-Cp)*10^6; %mg/(m2.h)
Qp = Jw*l*w/num/1000/3600; %m3/s
%% Water Properties Sf = Js*l*w/num/3600; %mg/s
Den = 9.98e2; %kg/m3 hl = dhL*v^2*l/num; %bar
Vis = 1.01e-3; %kg/m-s
%% New Value
%% Membrane Properties Qb = Qb - Qp;
Kw = 2.87; %L/m2-h-bar Pb = Pb - hl;
Ks = 6.14e-4; %m/h Cb = (Qb*Cb*10^3-Sf/1000)/Qb/10^3;
%g/L
%% Constants Cp = Js/Jw/1000; %g/L
  52  
Recovery = 1-Qb/(Qf/24/60/60)
else end
fprintf('Fail to find roots');
break; Appendix C: MATLAB Script
end
end
for RO Module Temperature
Effects Model
######## goalSeek.m ########

########RO_Module_T_Effect_Model.m
function [CP, Jw, flag]=goalSeek() ########

global Pb global Pp
global Pp global k
global k global Pb
global Rej global Rej
global OsmBri global OsmBri
global OsmPer global OsmPer
global Kw global Kw

min = 1; %% Operation Conditions


CP = 0; Qf = 270; %m3/d Feed Flow
Jw = 0; Pf = 14.2; %bar Feed Pressure
flag = 0; Cf = 2000; %mg/L NaCl Feed Concentration
for i = 1:0.01:5 %CP v0 = 0.5; %m/s Design Velocity
for j = 0:0.01:100; % L/m2.h Pp = 0.3; %bar Permeate Pressure
f = (exp(j/k/10^3/3600)*Rej+1-Rej-i)^2 +
(Kw*((Pb-Pp)-(i*OsmBri-OsmPer))-j)^2; %% Membrane Element Properties
r = abs(f); l = 1; %m Element Length
if (r<1e-2 && r<min) a = 32.5; %m2 Increment Membrane Area
min = r; h = 0.125; %mm Feed Channel Height
CP = i; w = 32.5; %m Feed Channel Width
Jw = j; hL = 0.2; %bar Element Head Loss
flag = 1; dhL = hL/v0^2/l; %bar.s2/m2 Head Loss
end Coefficient
end dH = 2*h/1000; %m Hydraulic Diameter
end
min
  53  
%% Solute Properties: NaCl QpVector = zeros(nT, num);
n = 2; %Number of ions produced during CbVector = zeros(nT, num);
dissociation of solute CpVector = zeros(nT, num);
Phi = 1; %Osmotic Coefficient PbVector = zeros(nT, num);
MW = 58.5; %g/mol Molecular Weight ReVector = zeros(1,nT);
Dif25 = 1.611e-9; %m2/s NaCl
%% Iteration
%% Water Properties for i = 1:nT;
VisWater25 = 4.2844/10^5 + 1/(0.157*(25 + T = TVector(i);
64.993)^2 - 91.296); %kg/(m.s)
%% Water & Salt Permeability
%% Membrane Properties Kw = Kw25*exp(Kwt*(1/(T+273.15)-
Kw25 = 2.1e-11*3.6e11; %convert m/(s-pa) to 1/298.15)); %L/m2-h-bar XLE membrane water
L/m2-h-bar XLE membrane water permeability permeability
at 25 Ks = Ks25*exp(Kst*(1/(T+273.15)-
Ks25 = 6.14e-4; %m/h 1/298.15)); %m/h membrane salt permeability
Kwt = -2849; %K
Kst = -3281; %K %% Calculation
Qb = Qf/24/60/60; %m3/s
%% Constants Pb = Pf; %bar
R = 0.0831451; %Universal Gas Constant Cb = Cf/1000; %g/L
L?bar/(K.mol) Cp = 0;
Recovery = 0;
%% Temperature Range
nT = 5; for j = 1:num;
T0 = 20; %centigrade %% Outputs
dT = 20; %centigrade QbVector(i,j) = Qb;
TVector = T0:dT:(T0+(nT-1)*dT); CbVector(i,j) = Cb;
PbVector(i,j) = Pb;
%% Model Output
num = 10; %Increment Number %% Parameters
JwVector = zeros(nT, num); OsmBri = n*Phi*Cb/MW*R*(T+273);
JsVector = zeros(nT, num); %bar
CPVector = zeros(nT, num); OsmPer = n*Phi*Cp/MW*R*(T+273);
vVector = zeros(nT, num); %bar
kVector = zeros(nT, num); Rej = 1 - Cp/Cb;
QbVector = zeros(nT, num); v = Qb/(h*1e-3)/w; %m/s
  54  
Beta = x(2);
%% Physical Properties else
%% Water viscosity [Beta, Jw, flag]=goalSeek();
Den = 999.9 + 0.02034*T - if (flag == 0)
0.006162*T^2 + 2.261*10^(-5)*T^3 - fprintf('Fail to find roots');
4.657*10^(-8)*T^4 + 802.0*Cb/10^3 - end
2.001*Cb/10^3*T + 1.677/10^2*Cb/10^3*T^2 - end
3.06*10^(-5)*Cb/10^3*T^3 - Js = Ks*(Beta*Cb-Cp)*10^6 %mg/(m2.h)
1.613/10^5*Cb^2/10^6*T^2; Qp = Jw*l*w/num/1000/3600; %m3/s
A = 1.541 + 1.998e-2*T - 9.52e-5*T^2; Sf = Js*l*w/num/3600; %mg/s
B = 7.974 - 7.561e-2*T + 4.724e-4*T^2; hl = dhL*v^2*l/num; %bar
VisWater = 4.2844e-5 + 1/(0.157*(T +
64.993)^2 - 91.296); %kg/(m.s) %% New Value
Cb = (Qb*Cb*10^3-Sf/1000)/(Qb-
%% Solute diffusivity Qp)/10^3; %g/L
Vis = VisWater * (1+A*Cb/10^3 + Qb = Qb - Qp;
B*Cb^2/10^6); %kg/(m.s) NaCl Pb = Pb - hl;
Vis25 = VisWater25 * (1+A*Cb/10^3 + Cp = Js/Jw/1000 %g/L
B*Cb^2/10^6); %kg/(m.s) NaCl Recovery = 1-Qb/(Qf/24/60/60);
Dif =
Dif25*(T+273.15)/(25+273.15)*Vis25/Vis; %% Outputs
%m2/s NaCl JwVector(i,j) = Jw; %Water flux
JsVector(i,j) = Js; %Solute flux
%% Mass Transfer Coefficient CPVector(i,j) = Beta; %Concentration
k25 = 0.808*((6*v/(h*1e-3) * Polarization Factor
Dif25^2)/(0.01*l))^(1/3); %m/s CpVector(i,j) = Cp; %Permeate
k = k25 * power(Dif/Dif25, 2/3); %m/s Concentration
mass transfer coefficient QpVector(i,j) = Qp;
vVector(i,j) = v;
%% Solve for Flux kVector(i,j) = k;
x0 = [30 300]; end
x = fsolve(@myfun, x0); ReVector(1,i) = Recovery;
a = (exp(x(1)/10^3/3600/k)*Rej+1-Rej- end
x(2))^2+(Kw*((Pb-Pp)-(x(2)*OsmBri-
OsmPer))-x(1))^2 %% Plot
if (a < 1e-2) figure(1);
Jw = x(1) %L/(m2.h) hold on;
  55  
cc = hsv(nT); cc(nT-i+1,:),'LineWidth', 1.2);
for i = 1:nT; legendInfo{i} = ['T = ', num2str(T)];
T = TVector(i); end
XVector = 1:1:num; xlabel('Increment
plot(XVector, JwVector(i,:), '-s', 'color', cc(nT- Stage','fontSize',16,'fontWeight','bold');
i+1,:),'LineWidth', 1.2); ylabel('Concentration Polarization
legendInfo{i} = ['T = ', num2str(T)]; Factor','fontSize',16,'fontWeight','bold');
end legend(legendInfo, 'fontSize',14);
xlabel('Increment
Stage','fontSize',16,'fontWeight','bold'); figure(4);
ylabel('Water Flux (unit: hold on;
L/m2.h)','fontSize',16,'fontWeight','bold'); cc = hsv(nT);
legend(legendInfo, 'fontSize',14); for i = 1:nT;
T = TVector(i);
figure(2); XVector = 1:1:num;
hold on; plot(XVector, vVector(i,:), '-s', 'color', cc(nT-
cc = hsv(nT); i+1,:),'LineWidth', 1.2);
for i = 1:nT; legendInfo{i} = ['T = ', num2str(T)];
T = TVector(i); end
XVector = 1:1:num; xlabel('Increment
plot(XVector, JsVector(i,:), '-s', 'color', cc(nT- Stage','fontSize',16,'fontWeight','bold');
i+1,:),'LineWidth', 1.2); ylabel('Feed Velocity (unit:
legendInfo{i} = ['T = ', num2str(T)]; m/s)','fontSize',16,'fontWeight','bold');
end legend(legendInfo, 'fontSize',14);
xlabel('Increment
Stage','fontSize',16,'fontWeight','bold'); figure(5);
ylabel('Solute Flux (unit: hold on;
mg/(m2.h))','fontSize',16,'fontWeight','bold'); cc = hsv(nT);
legend(legendInfo, 'fontSize',14); for i = 1:nT;
T = TVector(i);
figure(3); XVector = 1:1:num;
hold on; plot(XVector, kVector(i,:), '-s', 'color', cc(nT-
cc = hsv(nT); i+1,:),'LineWidth', 1.2);
for i = 1:nT; legendInfo{i} = ['T = ', num2str(T)];
T = TVector(i); end
XVector = 1:1:num; xlabel('Increment
plot(XVector, CPVector(i,:), '-s', 'color', Stage','fontSize',16,'fontWeight','bold');
  56  
ylabel('Mass Transfer Coefficient(unit: hold on;
m/s)','fontSize',16,'fontWeight','bold'); cc = hsv(nT);
legend(legendInfo, 'fontSize',14); for i = 1:nT;
T = TVector(i);
figure(6); XVector = 1:1:num;
hold on; plot(XVector, CbVector(i,:), '-s', 'color',
cc = hsv(nT); cc(nT-i+1,:),'LineWidth', 1.2);
for i = 1:nT; legendInfo{i} = ['T = ', num2str(T)];
T = TVector(i); end
XVector = 1:1:num; xlabel('Increment
plot(XVector, QbVector(i,:), '-s', 'color', Stage','fontSize',16,'fontWeight','bold');
cc(nT-i+1,:),'LineWidth', 1.2); ylabel('Feed Concentration (unit:
legendInfo{i} = ['T = ', num2str(T)]; g/L)','fontSize',16,'fontWeight','bold');
end legend(legendInfo, 'fontSize',14);
xlabel('Increment
Stage','fontSize',16,'fontWeight','bold'); figure(9);
ylabel('Feed Flow Rate (unit: hold on;
m3/s)','fontSize',16,'fontWeight','bold'); cc = hsv(nT);
legend(legendInfo, 'fontSize',14); for i = 1:nT;
T = TVector(i);
figure(7); XVector = 1:1:num;
hold on; plot(XVector, CpVector(i,:), '-s', 'color',
cc = hsv(nT); cc(nT-i+1,:),'LineWidth', 1.2);
for i = 1:nT; legendInfo{i} = ['T = ', num2str(T)];
T = TVector(i); end
XVector = 1:1:num; xlabel('Increment
plot(XVector, QpVector(i,:), '-s', 'color', Stage','fontSize',16,'fontWeight','bold');
cc(nT-i+1,:),'LineWidth', 1.2); ylabel('Permeate Concentration (unit:
legendInfo{i} = ['T = ', num2str(T)]; g/L)','fontSize',16,'fontWeight','bold');
end legend(legendInfo, 'fontSize',14);
xlabel('Increment
Stage','fontSize',16,'fontWeight','bold'); figure(10);
ylabel('Permeate Flow Rate (unit: hold on;
m3/s)','fontSize',16,'fontWeight','bold'); plot(TVector, ReVector, '-s', 'LineWidth', 0.5);
legend(legendInfo, 'fontSize',14); xlabel('Temperature (unit:
centidegree)','fontSize',16,'fontWeight','bold');
figure(8); ylabel('Recovery
  57  
Ratio','fontSize',16,'fontWeight','bold'); dQ = 100;
QVector = Q0:dQ:(Q0+(n-1)*dQ);
########## myfun.m ##########
%% Feed Pressure Range bar
function F=myfun(x) P0 = 10;
global Pb dP = 10;
global Pp PVector = P0:dP:(P0+(n-1)*dP);
global k
global Rej %% Feed Concentration Range mg/L NaCl
global OsmBri C0 = 4000;
global OsmPer dC = 2000;
global Kw CVector = C0:dC:(C0+(n-1)*dC);
F = [exp(x(1)/k/10^3/3600)*Rej+1-Rej-x(2);
Kw*((Pb-Pp)-(x(2)*OsmBri-OsmPer))-x(1)]; %% Operation Conditions: 1
end Pf = 14.2; %bar Feed Pressure
Cf = 2000; %mg/L NaCl Feed Concentration

Appendix D: MATLAB Script for i = 1:n;


Qf = QVector(i);
for Sensitivity Analysis of RO for j = 1:n;
Module Model with T Effects T = TVector(j);
[Recovery] = calRe(T, Qf, Pf, Cf);

########RO_Module_T_Sensitivity.m ReMatrix(i, j) = Recovery

######## end
end

function RO_5
%% Output %% Plot

n = 5; figure(1);

ReMatrix = zeros(n, n); hold on;


cc = hsv(n);

%% Temperature centigrade for i = 1:n;

T0 = 10; Q = QVector(i);

dT = 20; plot(TVector, ReMatrix(i,:), '-s', 'color',

TVector = T0:dT:(T0+(n-1)*dT); cc(n-i+1,:),'LineWidth', 1.2);


legendInfo{i} = ['Q = ', num2str(Q)];

%% Feed Flow Range m3/d end

Q0 = 150; xlabel('Temperature
(unit:centigrade)','fontSize',16,'fontWeight','bold'
  58  
); for i = 1:n;
ylabel('Recovery Cf = CVector(i);
Ratio','fontSize',16,'fontWeight','bold'); for j = 1:n;
legend(legendInfo, 'fontSize',14); T = TVector(j);
[Recovery] = calRe(T, Qf, Pf, Cf);
%% Operation Conditions: 2 ReMatrix(i, j) = Recovery;
Qf = 550; %m3/d Feed Flow end
Cf = 2000; %mg/L NaCl Feed Concentration end
for i = 1:n;
Pf = PVector(i); %% Plot
for j = 1:n; figure(3);
T = TVector(j); hold on;
[Recovery] = calRe(T, Qf, Pf, Cf); cc = hsv(n);
ReMatrix(i, j) = Recovery; for i = 1:n;
end Cf = CVector(i);
end plot(TVector, ReMatrix(i,:), '-s', 'color',
cc(n-i+1,:),'LineWidth', 1.2);
%% Plot legendInfo{i} = ['C = ', num2str(Cf)];
figure(2); end
hold on; xlabel('Temperature
cc = hsv(n); (unit:centigrade)','fontSize',16,'fontWeight','bold'
for i = 1:n; );
P = PVector(i); ylabel('Recovery
plot(TVector, ReMatrix(i,:), '-s', 'color', Ratio','fontSize',16,'fontWeight','bold');
cc(n-i+1,:),'LineWidth', 1.2); legend(legendInfo, 'fontSize',14);
legendInfo{i} = ['P = ', num2str(P)]; end
end
xlabel('Temperature ########## calRe.m ##########
(unit:centigrade)','fontSize',16,'fontWeight','bold'
); function [Recovery] = calRe(T, Qf, Pf, Cf)
ylabel('Recovery
Ratio','fontSize',16,'fontWeight','bold'); global Pp
legend(legendInfo, 'fontSize',14); global k
global Pb
%% Operation Conditions: 3 global Rej
Qf = 270; %m3/d Feed Flow global OsmBri
Pf = 14.2; %bar Feed Pressure global OsmPer
  59  
global Kw %% Constants
R = 0.0831451; %Universal Gas Constant
%% Operation Conditions L?bar/(K.mol)
%Qf m3/d Feed Flow
%Pf bar Feed Pressure %% Model Output
%Cf mg/L NaCl Feed Concentration num = 10; %Increment Number
%T centigrade Feed Temperature
v0 = 0.5; %m/s Design Velocity %% Water & Salt Permeability
Pp = 0.3; %bar Permeate Pressure Kw = Kw25*exp(Kwt*(1/(T+273.15)-
1/298.15)); %L/m2-h-bar XLE membrane water
%% Membrane Element Properties permeability
l = 1; %m Element Length Ks = Ks25*exp(Kst*(1/(T+273.15)-
h = 0.125; %mm Feed Channel Height 1/298.15)); %m/h membrane salt permeability
w = 32.5; %m Feed Channel Width
hL = 0.2; %bar Element Head Loss %% Calculation
dhL = hL/v0^2/l; %bar.s2/m2 Head Loss Qb = Qf/24/60/60; %m3/s
Coefficient Pb = Pf; %bar
Cb = Cf/1000; %g/L
%% Solute Properties: NaCl Cp = 0;
n = 2; %Number of ions produced during Recovery = 0;
dissociation of solute
Phi = 1; %Osmotic Coefficient for j = 1:num;
MW = 58.5; %g/mol Molecular Weight OsmBri = n*Phi*Cb/MW*R*(T+273);
Dif25 = 1.611e-9; %m2/s NaCl %bar
OsmPer = n*Phi*Cp/MW*R*(T+273);
%% Water Properties %bar
VisWater25 = 4.2844/10^5 + 1/(0.157*(25 + Rej = 1 - Cp/Cb;
64.993)^2 - 91.296); %kg/(m.s) v = Qb/(h*1e-3)/w; %m/s

%% Membrane Properties %% Physical Properties


Kw25 = 2.1e-11*3.6e11; %convert m/(s-pa) to %% Water viscosity
L/m2-h-bar XLE membrane water permeability A = 1.541 + 1.998e-2*T - 9.52e-5*T^2;
at 25 B = 7.974 - 7.561e-2*T + 4.724e-4*T^2;
Ks25 = 6.14e-4; %m/h VisWater = 4.2844e-5 + 1/(0.157*(T +
Kwt = -2849; %K 64.993)^2 - 91.296); %kg/(m.s)
Kst = -3281; %K
%% Solute diffusivity
  60  
Vis = VisWater * (1+A*Cb/10^3 + %% New Value
B*Cb^2/10^6); %kg/(m.s) NaCl Cb = (Qb*Cb*10^3-Sf/1000)/(Qb-
Vis25 = VisWater25 * (1+A*Cb/10^3 + Qp)/10^3; %g/L
B*Cb^2/10^6); %kg/(m.s) NaCl Qb = Qb - Qp;
Dif = Pb = Pb - hl;
Dif25*(T+273.15)/(25+273.15)*Vis25/Vis; Cp = Js/Jw/1000; %g/L
%m2/s NaCl Recovery = 1-Qb/(Qf/24/60/60)
end
%% Mass Transfer Coefficient
k25 = 0.808*((6*v/(h*1e-3) * Appendix E: MATLAB Script
Dif25^2)/(0.01*l))^(1/3); %m/s
for RO Module Temperature
k = k25 * power(Dif/Dif25, 2/3); %m/s
mass transfer coefficient Effects Model

%% Solve for Flux ########## RO_System_Model.m ##########


x0 = [30 300];
x = fsolve(@myfun, x0); global Pp
a = (exp(x(1)/10^3/3600/k)*Rej+1-Rej- global k
x(2))^2+(Kw*((Pb-Pp)-(x(2)*OsmBri- global Pb
OsmPer))-x(1))^2; global Rej
if (a < 1e-2) global OsmBri
Jw = x(1); %L/(m2.h) global OsmPer
Beta = x(2); global Kw
else
[Beta, Jw, flag]=goalSeek(); %% Water Treatment Goal
if (flag == 0) Qd = 180; %m3/d Water Demand = Permeate
fprintf('Fail to find roots'); Flow
Recovery = 0 RecoveryGoal = 0.6; %Recovery Ratio
return;
end %% Operation Conditions
end Qf = Qd/RecoveryGoal; %m3/d Feed Flow
Pf = 14.2; %bar Feed Pressure
Js = Ks*(Beta*Cb-Cp)*10^6; %mg/(m2.h) Cf = 2000; %mg/L NaCl Feed Concentration
Qp = Jw*l*w/num/1000/3600; %m3/s vf = 0.7; %m/s Feed velocity
Sf = Js*l*w/num/3600; %mg/s Pp = 0.3; %bar Permeate Pressure
hl = dhL*v^2*l/num; %bar

  61  
%% Membrane Element Properties T0 = 20; %centigrade
l = 1; %m Element Length dT = 20; %centigrade
dl = 0.1; %m Increment Length TVector = T0:dT:(T0+(nT-1)*dT);
a = 32.5; %m2 Increment Membrane Area
h = 0.125; %mm Feed Channel Height %% Model Output
w = 32.5; %m Feed Channel Width num = 40;
hL = 0.2; %bar Element Head Loss JwVector = zeros(nT, num);
v0 = 0.5; %m/s Design Velocity JsVector = zeros(nT, num);
dhL = hL/v0^2/l; %bar.s2/m2 Head Loss CPVector = zeros(nT, num);
Coefficient vVector = zeros(nT, num);
dH = 2*h/1000; %m Hydraulic Diameter kVector = zeros(nT, num);
QbVector = zeros(nT, num);
%% Solute Properties: NaCl QpVector = zeros(nT, num);
n = 2; %Number of ions produced during CbVector = zeros(nT, num);
dissociation of solute CpVector = zeros(nT, num);
Phi = 1; %Osmotic Coefficient PbVector = zeros(nT, num);
MW = 58.5; %g/mol Molecular Weight AVector = zeros(1,nT);
Dif25 = 1.611e-9; %m2/s NaCl AEVector = zeros(1,nT);

%% Water Properties %%Iteration


VisWater25 = 4.2844/10^5 + 1/(0.157*(25 + for i = 1:nT;
64.993)^2 - 91.296); %kg/(m.s) T = TVector(i);

%% Membrane Properties %% Water & Salt Permeability


Kw25 = 2.1e-11*3.6e11; %convert m/(s-pa) to Kw = Kw25*exp(Kwt*(1/(T+273.15)-
L/m2-h-bar XLE membrane water permeability 1/298.15)); %L/m2-h-bar XLE membrane water
at 25 permeability
Ks25 = 6.14e-4; %m/h Ks = Ks25*exp(Kst*(1/(T+273.15)-1/298.15));
Kwt = -2849; %K %m/h membrane salt permeability
Kst = -3281; %K
%% Calculation
%% Constants Qb = Qf/24/60/60; %m3/s
R = 0.0831451; %Universal Gas Constant Pb = Pf; %bar
L?bar/(K.mol) Cb = Cf/1000; %g/L
Cp = 0;
%% Temperature Range totalA = 0;
nT = 5; Recovery = 0;
  62  
j = 1; v = Qb/(h*1e-3)/w; %m/s

while Recovery < RecoveryGoal %% Physical Properties


stageA = 0; %m2 total Area in one stage %% Water viscosity
tL = 0; %m total length in one stage Den = 999.9 + 0.02034*T -
0.006162*T^2 + 2.261*10^(-5)*T^3 -
%Set new velocity 4.657*10^(-8)*T^4 + 802.0*Cb/10^3 -
v = vf; 2.001*Cb/10^3*T + 1.677/10^2*Cb/10^3*T^2 -
w = Qb/v/h*1e3; %m 3.06*10^(-5)*Cb/10^3*T^3 -
Q0 = Qb; 1.613/10^5*Cb^2/10^6*T^2;
A = 1.541 + 1.998e-2*T - 9.52e-5*T^2;
%Set new pressure B = 7.974 - 7.561e-2*T + 4.724e-4*T^2;
Plow = n*Phi*Cb/MW*R*(T+273) + Pp; VisWater = 4.2844e-5 + 1/(0.157*(T +
%The lower limit of pressure at current 64.993)^2 - 91.296); %kg/(m.s)
concentration
if Pf > Plow; %% Solute diffusivity
Pb = Pf; Vis = VisWater * (1+A*Cb/10^3 +
else B*Cb^2/10^6); %kg/(m.s) NaCl
totalA = 0; Vis25 = VisWater25 * (1+A*Cb/10^3 +
fprintf('The recovery goal cannot be reached B*Cb^2/10^6); %kg/(m.s) NaCl
at this pressure'); Dif =
break; Dif25*(T+273.15)/(25+273.15)*Vis25/Vis;
end %m2/s NaCl

while Recovery < RecoveryGoal && Qb > %% Mass Transfer Coefficient


Q0/2 && Pb > Plow k25 = 0.808*((6*v/(h*1e-3) *
%% Outputs Dif25^2)/(0.01*l))^(1/3); %m/s
QbVector(i,j) = Qb; k = k25 * power(Dif/Dif25, 2/3); %m/s
CbVector(i,j) = Cb; mass transfer coefficient
PbVector(i,j) = Pb;
x0 = [30 300];
%% Parameters x = fsolve(@myfun, x0);
OsmBri = n*Phi*Cb/MW*R*(T+273); a = (exp(x(1)/10^3/3600/k)*Rej+1-Rej-
%bar x(2))^2+(Kw*((Pb-Pp)-(x(2)*OsmBri-
OsmPer = n*Phi*Cp/MW*R*(T+273); OsmPer))-x(1))^2;
%bar if (a < 1e-2)
Rej = 1 - Cp/Cb; Jw = x(1); %L/(m2.h)
  63  
Beta = x(2);
else %% Calculate average flux
fprintf('Fail to find roots'); [AveFlux] = calAveFlux(T, Qf, Pf, Cf);
end %L/m2.h
areaEst = Qd*1e3/24/AveFlux; %m2
Js = Ks*(Beta*Cb-Cp)*10^6; %mg/(m2.h)
Qp = Jw*dl*w/1000/3600; %m3/s %% Outputs
Sf = Js*dl*w/3600; %mg/s AVector(1,i) = totalA;
hl = dhL*v^2*dl; %bar AEVector(1,i) = areaEst;

%% New Value end


Cb = (Qb*Cb*10^3-Sf/1000)/(Qb-
Qp)/10^3; %g/L %% Plot
Qb = Qb - Qp; figure(1);
Pb = Pb - hl; hold on;
Cp = Js/Jw/1000; %g/L cc = hsv(nT);
tL = tL + dl; %m for i = 1:nT;
stageA = w * tL; %m2 T = TVector(i);
Recovery = 1-Qb/(Qf/24/60/60); XVector = 1:1:num;
Plow = n*Phi*Cb/MW*R*(T+273) + Pp; plot(XVector, JwVector(i,:), '-o', 'color',
%The lower limit of pressure at current cc(nT-i+1,:),'LineWidth', 1.05);
concentration legendInfo{i} = ['T = ', num2str(T)];
end
%% Outputs xlabel('Increment
JwVector(i,j) = Jw; %Water flux Stage','fontSize',16,'fontWeight','bold');
JsVector(i,j) = Js; %Solute flux ylabel('Water Flux (unit:
CPVector(i,j) = Beta; %Concentration L/m2.h)','fontSize',16,'fontWeight','bold');
Polarization Factor legend(legendInfo, 'fontSize',14);
CpVector(i,j) = Cp; %Permeate
Concentration figure(2);
QpVector(i,j) = Qp; hold on;
vVector(i,j) = v; cc = hsv(nT);
kVector(i,j) = k; for i = 1:nT;
j = j + 1; T = TVector(i);
end XVector = 1:1:num;
totalA = totalA + stageA; plot(XVector, JsVector(i,:), '-o', 'color', cc(nT-
end i+1,:),'LineWidth', 1.05);
  64  
legendInfo{i} = ['T = ', num2str(T)]; m/s)','fontSize',16,'fontWeight','bold');
end legend(legendInfo, 'fontSize',14);
xlabel('Increment
Stage','fontSize',16,'fontWeight','bold'); figure(5);
ylabel('Solute Flux (unit: hold on;
mg/(m2.h))','fontSize',16,'fontWeight','bold'); cc = hsv(nT);
legend(legendInfo, 'fontSize',14); for i = 1:nT;
T = TVector(i);
figure(3); XVector = 1:1:num;
hold on; plot(XVector, kVector(i,:), '-o', 'color', cc(nT-
cc = hsv(nT); i+1,:),'LineWidth', 1.05);
for i = 1:nT; legendInfo{i} = ['T = ', num2str(T)];
T = TVector(i); end
XVector = 1:1:num; xlabel('Increment
plot(XVector, CPVector(i,:), '-o', 'color', Stage','fontSize',16,'fontWeight','bold');
cc(nT-i+1,:),'LineWidth', 1.05); ylabel('Mass Transfer Coefficient(unit:
legendInfo{i} = ['T = ', num2str(T)]; m/s)','fontSize',16,'fontWeight','bold');
end legend(legendInfo, 'fontSize',14);
xlabel('Increment
Stage','fontSize',16,'fontWeight','bold'); figure(6);
ylabel('Concentration Polarization hold on;
Factor','fontSize',16,'fontWeight','bold'); cc = hsv(nT);
legend(legendInfo, 'fontSize',14); for i = 1:nT;
T = TVector(i);
figure(4); XVector = 1:1:num;
hold on; plot(XVector, QbVector(i,:), '-o', 'color',
cc = hsv(nT); cc(nT-i+1,:),'LineWidth', 1.05);
for i = 1:nT; legendInfo{i} = ['T = ', num2str(T)];
T = TVector(i); end
XVector = 1:1:num; xlabel('Increment
plot(XVector, vVector(i,:), '-o', 'color', cc(nT- Stage','fontSize',16,'fontWeight','bold');
i+1,:),'LineWidth', 1.05); ylabel('Feed Flow Rate (unit:
legendInfo{i} = ['T = ', num2str(T)]; m3/s)','fontSize',16,'fontWeight','bold');
end legend(legendInfo, 'fontSize',14);
xlabel('Increment
Stage','fontSize',16,'fontWeight','bold'); figure(7);
ylabel('Feed Velocity (unit: hold on;
  65  
cc = hsv(nT); cc(nT-i+1,:),'LineWidth', 1.05);
for i = 1:nT; legendInfo{i} = ['T = ', num2str(T)];
T = TVector(i); end
XVector = 1:1:num; xlabel('Increment
plot(XVector, QpVector(i,:), '-o', 'color', Stage','fontSize',16,'fontWeight','bold');
cc(nT-i+1,:),'LineWidth', 1.05); ylabel('Permeate Concentration (unit:
legendInfo{i} = ['T = ', num2str(T)]; g/L)','fontSize',16,'fontWeight','bold');
end legend(legendInfo, 'fontSize',14);
xlabel('Increment
Stage','fontSize',16,'fontWeight','bold'); figure(10);
ylabel('Permeate Flow Rate (unit: hold on;
m3/s)','fontSize',16,'fontWeight','bold'); plot(TVector, AVector, '-s', 'LineWidth', 0.5);
legend(legendInfo, 'fontSize',14); plot(TVector, AEVector, '-o', 'MarkerFaceColor',
'k', 'LineWidth', 0.5);
figure(8); xlabel('Temperature (unit:
hold on; centidegree)','fontSize',16,'fontWeight','bold');
cc = hsv(nT); ylabel('Membrane Area (unit:
for i = 1:nT; m2)','fontSize',16,'fontWeight','bold');
T = TVector(i); legend('Modeled','Estimated');
XVector = 1:1:num;
plot(XVector, CbVector(i,:), '-o', 'color', ########## calAveFlux.m ##########
cc(nT-i+1,:),'LineWidth', 1.05);
legendInfo{i} = ['T = ', num2str(T)]; function [AveFlux] = calAveFlux(T, Qf, Pf, Cf)
end
xlabel('Increment global Pp
Stage','fontSize',16,'fontWeight','bold'); global k
ylabel('Feed Concentration (unit: global Pb
g/L)','fontSize',16,'fontWeight','bold'); global Rej
legend(legendInfo, 'fontSize',14); global OsmBri
global OsmPer
figure(9); global Kw
hold on;
cc = hsv(nT); %% Operation Conditions
for i = 1:nT; %Qf m3/d Feed Flow
T = TVector(i); %Pf bar Feed Pressure
XVector = 1:1:num; %Cf mg/L NaCl Feed Concentration
plot(XVector, CpVector(i,:), '-o', 'color', %T centigrade Feed Temperature
  66  
v0 = 0.5; %m/s Design Velocity num = 10; %Increment Number
v = 0.7; %m/s Feed velocity
Pp = 0.3; %bar Permeate Pressure %% Iteration
%% Water & Salt Permeability
%% Membrane Element Properties Kw = Kw25*exp(Kwt*(1/(T+273.15)-
l = 1; %m Element Length 1/298.15)); %L/m2-h-bar XLE membrane water
dl = 0.1; permeability
h = 0.125; %mm Feed Channel Height Ks = Ks25*exp(Kst*(1/(T+273.15)-
w = Qf/v/h*1e3/24/60/60; %m 1/298.15)); %m/h membrane salt permeability
hL = 0.2; %bar Element Head Loss
dhL = hL/v0^2/l; %bar.s2/m2 Head Loss %% Calculation
Coefficient Qb = Qf/24/60/60; %m3/s
Pb = Pf; %bar
%% Solute Properties: NaCl Cb = Cf/1000; %g/L
n = 2; %Number of ions produced during Cp = 0;
dissociation of solute sumJw = 0;
Phi = 1; %Osmotic Coefficient
MW = 58.5; %g/mol Molecular Weight for j = 1:num;
Dif25 = 1.611e-9; %m2/s NaCl OsmBri = n*Phi*Cb/MW*R*(T+273);
%bar
%% Water Properties OsmPer = n*Phi*Cp/MW*R*(T+273);
VisWater25 = 4.2844/10^5 + 1/(0.157*(25 + %bar
64.993)^2 - 91.296); %kg/(m.s) Rej = 1 - Cp/Cb;
v = Qb/(h*1e-3)/w; %m/s
%% Membrane Properties
Kw25 = 2.1e-11*3.6e11; %convert m/(s-pa) to
L/m2-h-bar XLE membrane water permeability %% Physical Properties
at 25 %% Water viscosity
Ks25 = 6.14e-4; %m/h A = 1.541 + 1.998e-2*T -
Kwt = -2849; %K 9.52e-5*T^2;
Kst = -3281; %K B = 7.974 - 7.561e-2*T + 4.724e-4*T^2;
VisWater = 4.2844e-5 + 1/(0.157*(T +
%% Constants 64.993)^2 - 91.296); %kg/(m.s)
R = 0.0831451; %Universal Gas Constant
L?bar/(K.mol) %% Solute diffusivity
Vis = VisWater * (1+A*Cb/10^3 +
%% Model Output B*Cb^2/10^6); %kg/(m.s) NaCl
  67  
Vis25 = VisWater25 * (1+A*Cb/10^3 + Cb = (Qb*Cb*10^3-Sf/1000)/(Qb-
B*Cb^2/10^6); %kg/(m.s) NaCl Qp)/10^3; %g/L
Dif = Qb = Qb - Qp;
Dif25*(T+273.15)/(25+273.15)*Vis25/Vis; Pb = Pb - hl;
%m2/s NaCl Cp = Js/Jw/1000; %g/L
%Recovery = 1-Qb/(Qf/24/60/60);
%% Mass Transfer Coefficient end
k25 = 0.808*((6*v/(h*1e-3) *
Dif25^2)/(0.01*l))^(1/3); %m/s AveFlux = sumJw / num;
k = k25 * power(Dif/Dif25, 2/3); %m/s
mass transfer coefficient ########## RO_System_Sensitivity.m
##########
%% Solve for Flux
x0 = [30 300]; function RO_System_Sensitivity
x = fsolve(@myfun, x0); %% Output
a = (exp(x(1)/10^3/3600/k)*Rej+1-Rej- n = 5;
x(2))^2+(Kw*((Pb-Pp)-(x(2)*OsmBri- AMatrix = zeros(n, n);
OsmPer))-x(1))^2;
if (a < 1e-2) %% Temperature centigrade
Jw = x(1); %L/(m2.h) T0 = 10;
Beta = x(2); dT = 20;
else TVector = T0:dT:(T0+(n-1)*dT);
[Beta, Jw, flag]=goalSeek();
if (flag == 0) %% Feed Flow Range m3/d
fprintf('Fail to find roots'); Q0 = 50;
%Recovery = 0 dQ = 100;
return; QVector = Q0:dQ:(Q0+(n-1)*dQ);
end
end %% Feed Pressure Range bar
P0 = 40;
sumJw = sumJw + Jw; dP = 5;
Js = Ks*(Beta*Cb-Cp)*10^6; %mg/(m2.h) PVector = P0:dP:(P0+(n-1)*dP);
Qp = Jw*w*dl/1000/3600; %m3/s
Sf = Js*w*dl/3600; %mg/s %% Feed Concentration Range mg/L NaCl
hl = dhL*v^2*dl; %bar C0 = 31000;
dC = 1000;
%% New Value CVector = C0:dC:(C0+(n-1)*dC);
  68  
%% Operation Conditions: 2
%% Recovery Goal Qd = 270; %m3/d Feed Flow
R0 = 0.4; Cf = 32000; %mg/L NaCl Feed Concentration
dR = 0.05; RecoveryGoal = 0.3;
RVector = R0:dR:(R0+(n-1)*dR); for i = 1:n;
Pf = PVector(i);
%% Operation Conditions: 1 for j = 1:n;
Pf = 60; %bar Feed Pressure T = TVector(j);
Cf = 32000; %mg/L NaCl Feed Concentration [Area] = calArea(RecoveryGoal, T, Qd,
RecoveryGoal = 0.5; Pf, Cf);
for i = 1:n; AMatrix(i, j) = Area;
Qd = QVector(i); end
for j = 1:n; end
T = TVector(j);
[Area] = calArea(RecoveryGoal, T, Qd, %% Plot
Pf, Cf); figure(2);
AMatrix(i, j) = Area; hold on;
end cc = hsv(n);
end for i = 1:n;
P = PVector(i);
%% Plot plot(TVector, AMatrix(i,:), '-s', 'color', cc(n-
figure(1); i+1,:),'LineWidth', 1.2);
hold on; legendInfo{i} = ['P = ', num2str(P)];
cc = hsv(n); end
for i = 1:n; xlabel('Temperature
Q = QVector(i); (unit:centigrade)','fontSize',16,'fontWeight','bold'
plot(TVector, AMatrix(i,:), '-s', 'color', cc(n- );
i+1,:),'LineWidth', 1.2); ylabel('Membrane Area (unit:
legendInfo{i} = ['Q = ', num2str(Q)]; m2)','fontSize',16,'fontWeight','bold');
end legend(legendInfo, 'fontSize',14);
xlabel('Temperature
(unit:centigrade)','fontSize',16,'fontWeight','bold' %% Operation Conditions: 3
); Qd = 270; %m3/d Feed Flow
ylabel('Membrane Area (unit: Pf = 60; %bar Feed Pressure
m2)','fontSize',16,'fontWeight','bold'); RecoveryGoal = 0.5;
legend(legendInfo, 'fontSize',14); for i = 1:n;
Cf = CVector(i);
  69  
for j = 1:n; AMatrix(i, j) = Area;
T = TVector(j); end
[Area] = calArea(RecoveryGoal, T, Qd, end
Pf, Cf);
AMatrix(i, j) = Area; %% Plot
end figure(4);
end hold on;
cc = hsv(n);
%% Plot for i = 1:n;
figure(3); RecoveryGoal = RVector(i);
hold on; plot(TVector, AMatrix(i,:), '-s', 'color', cc(n-
cc = hsv(n); i+1,:),'LineWidth', 1.2);
for i = 1:n; legendInfo{i} = ['Recovery Goal = ',
Cf = CVector(i); num2str(RecoveryGoal)];
plot(TVector, AMatrix(i,:), '-s', 'color', end
cc(n-i+1,:),'LineWidth', 1.2); xlabel('Temperature
legendInfo{i} = ['C = ', num2str(Cf)]; (unit:centigrade)','fontSize',16,'fontWeight','bold'
end );
xlabel('Temperature ylabel('Membrane Area (unit:
(unit:centigrade)','fontSize',16,'fontWeight','bold' m2)','fontSize',16,'fontWeight','bold');
); legend(legendInfo, 'fontSize',14);
ylabel('Membrane Area (unit:
m2)','fontSize',16,'fontWeight','bold'); end
legend(legendInfo, 'fontSize',14);
########## calArea.m ##########
%% Operation Conditions: 4
Qd = 270; %m3/d Feed Flow %This is function [Area] = calArea(RecoveryGoal, T, Qd,
specially increased, but recovery still doesn't Pf, Cf)
greatly change the result.
Cf = 32000; %mg/L NaCl Feed Concentration global Pp
Pf = 80; %bar Feed Pressure global k
for i = 1:n; global Pb
RecoveryGoal = RVector(i); global Rej
for j = 1:n; global OsmBri
T = TVector(j); global OsmPer
[Area] = calArea(RecoveryGoal, T, Qd, global Kw
Pf, Cf);
  70  
%% Water Treatment Goal at 25
%Qd m3/d Water Demand = Permeate Flow Ks25 = 6.14e-4; %m/h
%RecoveryGoal; %Recovery Ratio Kwt = -2849; %K
Kst = -3281; %K
%% Operation Conditions Kw = Kw25*exp(Kwt*(1/(T+273.15)-
Qf = Qd/RecoveryGoal; %m3/d Feed Flow 1/298.15)); %L/m2-h-bar XLE membrane water
%Pf bar Feed Pressure permeability
%Cf mg/L NaCl Feed Concentration Ks = Ks25*exp(Kst*(1/(T+273.15)-1/298.15));
vf = 0.7; %m/s Feed velocity %m/h membrane salt permeability
Pp = 0.3; %bar Permeate Pressure
%T centigrade Feed Temperature %% Constants
R = 0.0831451; %Universal Gas Constant
%% Membrane Element Properties L?bar/(K.mol)
l = 1; %m Element Length
dl = 0.1; %m Increment Length %% Calculation
h = 0.125; %mm Feed Channel Height Qb = Qf/24/60/60; %m3/s
w = 32.5; %m Feed Channel Width Pb = Pf; %bar
hL = 0.2; %bar Element Head Loss Cb = Cf/1000; %g/L
v0 = 0.5; %m/s Design Velocity Cp = 0;
dhL = hL/v0^2/l; %bar.s2/m2 Head Loss totalA = 0;
Coefficient Recovery = 0;
dH = 2*h/1000; %m Hydraulic Diameter
while Recovery < RecoveryGoal
%% Solute Properties: NaCl stageA = 0; %m2 total Area in one stage
n = 2; %Number of ions produced during tL = 0; %m total length in one stage
dissociation of solute
Phi = 1; %Osmotic Coefficient %Set new velocity
MW = 58.5; %g/mol Molecular Weight v = vf;
Dif25 = 1.611e-9; %m2/s NaCl w = Qb/v/h*1e3; %m
Q0 = Qb;
%% Water Properties
VisWater25 = 4.2844/10^5 + 1/(0.157*(25 + while Recovery < RecoveryGoal && Qb > Q0/2
64.993)^2 - 91.296); %kg/(m.s) OsmBri = n*Phi*Cb/MW*R*(T+273);
%bar
%% Membrane Properties OsmPer = n*Phi*Cp/MW*R*(T+273);
Kw25 = 2.1e-11*3.6e11; %convert m/(s-pa) to %bar
L/m2-h-bar XLE membrane water permeability Rej = 1 - Cp/Cb;
  71  
v = Qb/(h*1e-3)/w; %m/s
Js = Ks*(Beta*Cb-Cp)*10^6; %mg/(m2.h)
%% Physical Properties Qp = Jw*dl*w/1000/3600; %m3/s
%% Water viscosity Sf = Js*dl*w/3600; %mg/s
A = 1.541 + 1.998e-2*T - 9.52e-5*T^2; hl = dhL*v^2*dl; %bar
B = 7.974 - 7.561e-2*T + 4.724e-4*T^2;
VisWater = 4.2844e-5 + 1/(0.157*(T + %% New Value
64.993)^2 - 91.296); %kg/(m.s) Cb = (Qb*Cb*10^3-Sf/1000)/(Qb-
Qp)/10^3; %g/L
%% Solute diffusivity Qb = Qb - Qp;
Vis = VisWater * (1+A*Cb/10^3 + Pb = Pb - hl;
B*Cb^2/10^6); %kg/(m.s) NaCl Cp = Js/Jw/1000; %g/L
Vis25 = VisWater25 * (1+A*Cb/10^3 + tL = tL + dl; %m
B*Cb^2/10^6); %kg/(m.s) NaCl stageA = w * tL; %m2
Dif = Recovery = 1-Qb/(Qf/24/60/60);
Dif25*(T+273.15)/(25+273.15)*Vis25/Vis; end
%m2/s NaCl totalA = totalA + stageA;
end
%% Mass Transfer Coefficient
k25 = 0.808*((6*v/(h*1e-3) * Area = totalA;
Dif25^2)/(0.01*l))^(1/3); %m/s end
k = k25 * power(Dif/Dif25, 2/3); %m/s
mass transfer coefficient Appendix G: MATLAB Script

x0 = [30 300];
for FO Temperature Effects
x = fsolve(@myfun, x0); Model
a = (exp(x(1)/10^3/3600/k)*Rej+1-Rej-
x(2))^2+(Kw*((Pb-Pp)-(x(2)*OsmBri- ########FO_Temperature_Effects.m ########
OsmPer))-x(1))^2;
if a < 1e-2 % difference from the literature: K is timed by 2,
Jw = x(1); %L/(m2.h) to fit with the
Beta = x(2); % experiemntal data
else global k
fprintf('Fail to find roots'); global K
Area = 0; global OsmDraw
return; global OsmFeed
end
  72  
global Kw Flux = zeros(nT,nC);
osmoticPressureDifference = zeros(nT,nC);
%% Operation Conditions for i = 1:nT;
nC = 9; T = TVector(i);
CfVector = [0 0 0 0 0 0.05*58.5 0.1*58.5 %T=25
0.5*58.5 1*58.5]; %g/L for j = 1:nC;
CdVector = [0.05*58.5 0.1*58.5 0.5*58.5 1*58.5 Cf = CfVector(j); %g/L
1.5*58.5 1.5*58.5 1.5*58.5 1.5*58.5 1.5*58.5]; Cd = CdVector(j); %g/L
%g/L nf = Cf/MW; %mol/L
v0 = 45.8; %cm/s nd = Cd/MW; %mol/L

%% Solute Properties: NaCl %% Constants (Density Unit: kg/m3)


n = 2; %Number of ions produced during DenDraw = 999.9 + 0.02034*T -
dissociation of solute 0.006162*T^2 + 2.261*10^(-5)*T^3 -
Phi = 1; %Osmotic Coefficient 4.657*10^(-8)*T^4 + 802.0*Cd/10^3 -
MW = 58.5; %g/mol Molecular Weight 2.001*Cd/10^3*T + 1.677/10^2*Cd/10^3*T^2 -
3.06*10^(-5)*Cd/10^3*T^3 -
%% Constants 1.613/10^5*Cd^2/10^6*T^2;
l = 0.077; %m DenFeed = 999.9 + 0.02034*T -
w = 0.026; %m 0.006162*T^2 + 2.261*10^(-5)*T^3 -
h = 0.003; %m 4.657*10^(-8)*T^4 + 802.0*Cf/10^3 -
%HD = w*h/(2*w+2*h); 2.001*Cf/10^3*T + 1.677/10^2*Cf/10^3*T^2 -
HD = 2*h; %m Hydraulic Diameter 3.06*10^(-5)*Cf/10^3*T^3 -
R = 0.0831451; %Universal Gas Constant 1.613/10^5*Cf^2/10^6*T^2;
L?bar/(K.mol)
Dif25 = 1.611e-9; %m2/s NaCl A = 1.541 + 1.998/10^2*T -
VisWater25 = 4.2844/10^5 + 1/(0.157*(25 + 9.52/10^5*T^2;
64.993)^2 - 91.296); %kg/(m.s) B = 7.974 - 7.561/10^2*T +
Kw50 = (5.69/10^12) * 3.6*10^11; 4.724/10^4*T^2;
%L/(m2.h.bar) Water VisWater = 4.2844/10^5 + 1/(0.157*(T +
64.993)^2 - 91.296);
%% Iterations VisWater50 = 4.2844/10^5 +
nT = 3; 1/(0.157*(50 + 64.993)^2 - 91.296);
T0 = 20; %centigrade
dT = 10; %centigrade VisDraw = VisWater * (1 + A*Cd/10^3 +
TVector = T0:dT:(T0+(nT-1)*dT); B*Cd^2/10^6); %kg/(m.s) NaCl
VisDraw25 = VisWater25 * (1 +
  73  
A*Cd/10^3 + B*Cd^2/10^6); %kg/(m.s) NaCl Kw = Kw50*VisWater50/VisWater;
%L/(m2.h.bar)
VisFeed = VisWater * (1 + A*Cf/10^3 + x = fzero('f',1e-4); %m/s use ‘f1’ instead in
B*Cf^2/10^6); %kg/(m.s) NaCl FO mode
VisFeed25 = VisWater25 * (1 + A*Cf/10^3 a = Kw*OsmDraw*exp(-x/k)-
+ B*Cf^2/10^6); %kg/(m.s) NaCl Kw*OsmFeed*exp(x*K)-x*1000*3600;
%use ‘a = Kw*OsmDraw*exp(-x*K)-
DifDraw = Kw*OsmFeed*exp(x/k)-x*1000*3600;’ instead
Dif25*(T+273.15)/(25+273.15)*VisDraw25/Vis in FO mode
Draw; %m2/s
DifFeed = if (a < 1e-2)
Dif25*(T+273.15)/(25+273.15)*VisFeed25/VisF Jw = x*10^6; %um/s
eed %m2/s else
fprintf('Fail to find roots');
%Set velocity end
vd = v0;
vf = v0; Flux(i,j) = Jw;
osmoticPressureDifference(i,j) = DeltaOsm;
%% Mass Transfer Coefficient (External end
Concentration Coefficient) end
Re = DenDraw*vd*HD/VisDraw/10^2;
%%% Here is a fixed bug of unit conversion: %% Display Data
divide by 10^2 Flux;
Sc = VisDraw/(DenDraw*DifDraw); osmoticPressureDifference;
Sh = 1.85*(Re*Sc*HD/l)^0.33; experimentData = [0.5 1 5 8.75 11.5 8 7.5 3
k = Sh*DifDraw/HD; %m/s 1.25; 1 1.5 7 11.5 15.5 10.5 8.5 3.75 1.25; 1.25 2
8.75 15 19.6 13.75 11 4 1.25];
%% Internal Concentration Polarization error = (Flux - experimentData)./experimentData
Coefficient
K = 2.98e-4/DifFeed figure
hold on
OsmDraw = n*Phi*Cd/MW*R*(T+273); for i = 1:nT;
%bar if i == 1;
OsmFeed = n*Phi*Cf/MW*R*(T+273);
%bar plot(osmoticPressureDifference(i,:),experimentD
DeltaOsm = 0.9869*(OsmDraw - ata(i,:),'-d','Color','k','LineWidth',1.1);
OsmFeed); %atm
  74  
plot(osmoticPressureDifference(i,:),Flux(i,:),'-- global Kw
d','Color','k','LineWidth',1); y = Kw*OsmDraw*exp(-x/k)-
end Kw*OsmFeed*exp(x*K)-x*1000*3600;
if i == 2;
########## f1.m ##########
plot(osmoticPressureDifference(i,:),experimentD
ata(i,:),'-o','Color','b','LineWidth',1.1); function y = f1(x)
global k
plot(osmoticPressureDifference(i,:),Flux(i,:),'-- global K
o','Color','b','LineWidth',1); global OsmDraw
end global OsmFeed
if i == 3; global Kw
y = Kw*OsmDraw*exp(-x*K)-
plot(osmoticPressureDifference(i,:),experimentD Kw*OsmFeed*exp(x/k)-x*1000*3600;
ata(i,:),'-s','Color','r','LineWidth',1.1);
Appendix H: MATLAB Script for FO System
plot(osmoticPressureDifference(i,:),Flux(i,:),'-- Model
s','Color','r','LineWidth',1);
end ########FO_System_Model.m ########
end
%%% FO mode
xlabel('Osmotic Pressure Difference (unit: global k
atm)','fontSize',16,'fontWeight','bold'); global K
ylabel('Flux (unit: global OsmFeed
um/s)','fontSize',16,'fontWeight','bold'); global OsmDraw
legend('Experiment(T=20)', 'Simulation(T=20)', global Kw
'Experiment(T=30)', 'Simulation(T=30)',
'Experiment(T=40)', 'Simulation(T=40)', %% Water Treatment Goal
'fontSize', 14, 'Location', 'NorthWest'); RecoveryGoal = 0.5;

########## f.m ########## %% Operation Conditions


Qd = 90; %m3/d Draw Flow
function y = f(x) Qf = Qd; %m3/d Feed Flow
global k Cf = 4000; %mg/L NaCl Feed Concentration
global K Cd = 66000; %mg/L NaCl Feed Concentration
global OsmDraw vf = 0.7; %m/s Feed velocity
global OsmFeed vd = vf; %m/s Feed velocity
  75  
TVector = T0:dT:(T0+(nT-1)*dT);
%% Membrane Element Properties
l = 1; %m Element Length %% Model Output
dl = 0.1; %m Increment Length num = 200;
a = 32.5; %m2 Increment Membrane Area JwVector = zeros(nT, num);
h = 0.125; %mm Feed Channel Height JsVector = zeros(nT, num);
w = 32.5; %m Feed Channel Width KVector = zeros(nT, num);
hL = 0.2; %bar Element Head Loss kVector = zeros(nT, num);
v0 = 0.5; %m/s Design Velocity QgVector = zeros(nT, num);
dhL = hL/v0^2/l; %bar.s2/m2 Head Loss QsVector = zeros(nT, num);
Coefficient CgVector = zeros(nT, num);
dH = 2*h/1000; %m Hydraulic Diameter CsVector = zeros(nT, num);
vgVector = zeros(nT, num);
%% Solute Properties: NaCl vsVector = zeros(nT, num);
n = 2; %Number of ions produced during AVector = zeros(1,nT);
dissociation of solute
Phi = 1; %Osmotic Coefficient %%Iteration
MW = 58.5; %g/mol Molecular Weight for i = 1:nT;
Dif25 = 1.611e-9; %m2/s NaCl T = TVector(i);

%% Water Properties %% Calculation


VisWater25 = 4.2844/10^5 + 1/(0.157*(25 + Qg = Qf/24/60/60; %m3/s
64.993)^2 - 91.296); %kg/(m.s) Qs = Qd/24/60/60; %m3/s
Cg = Cf/1000; %g/L
%% Membrane Properties Cs = Cd/1000; %g/L
Kw50 = (5.69/10^12) * 3.6*10^11; totalA = 0;
%L/(m2.h.bar) Water Recovery = 0;
Ks25 = 6.14e-4; %m/h j = 1;
vg = vf;
%% Constants vs = vd;
R = 0.0831451; %Universal Gas Constant w = Qg/vg/h*1e3; %m
L?bar/(K.mol)
while Recovery < RecoveryGoal
%% Temperature Range %% Outputs
nT = 5; QgVector(i,j) = Qg;
T0 = 10; %centigrade QsVector(i,j) = Qs;
dT = 20; %centigrade CgVector(i,j) = Cg;
  76  
CsVector(i,j) = Cs; (1+A*Cg/10^3 + B*Cg^2/10^6); %kg/(m.s)
vgVector(i,j) = vg; NaCl
vsVector(i,j) = vs; DifFeed =
Dif25*(T+273.15)/(25+273.15)*VisFeed25/VisF
%% Parameters eed; %m2/s NaCl
OsmFeed = n*Phi*Cg/MW*R*(T+273);
%bar VisDraw = VisWater * (1+A*Cs/10^3 +
OsmDraw = n*Phi*Cs/MW*R*(T+273); B*Cs^2/10^6); %kg/(m.s) NaCl
%bar VisDraw25 = VisWater25 *
vg = Qg/(h*1e-3)/w; %m/s (1+A*Cs/10^3 + B*Cs^2/10^6); %kg/(m.s)
vs = Qs/(h*1e-3)/w; %m/s NaCl
DifDraw =
%% Physical Properties Dif25*(T+273.15)/(25+273.15)*VisDraw25/Vis
%% Water viscosity Draw; %m2/s NaCl
DenDraw = 999.9 + 0.02034*T -
0.006162*T^2 + 2.261*10^(-5)*T^3 - %% Mass Transfer Coefficient (External
4.657*10^(-8)*T^4 + 802.0*Cs/10^3 - Concentration Coefficient)
2.001*Cs/10^3*T + 1.677/10^2*Cs/10^3*T^2 - Re = DenDraw*vd*dH/VisDraw/10^2;
3.06*10^(-5)*Cs/10^3*T^3 - %%% Here is a fixed bug of unit conversion:
1.613/10^5*Cs^2/10^6*T^2; divide by 10^2
DenFeed = 999.9 + 0.02034*T - Sc = VisDraw/(DenDraw*DifDraw);
0.006162*T^2 + 2.261*10^(-5)*T^3 - Sh = 1.85*(Re*Sc*dH/l)^0.33;
4.657*10^(-8)*T^4 + 802.0*Cg/10^3 - k = Sh*DifDraw/dH; %m/s
2.001*Cg/10^3*T + 1.677/10^2*Cg/10^3*T^2 -
3.06*10^(-5)*Cg/10^3*T^3 - %% Internal Concentration Polarization
1.613/10^5*Cg^2/10^6*T^2; Coefficient
A = 1.541 + 1.998e-2*T - 9.52e-5*T^2; K = 3.60e-4/DifFeed; %s/m
B = 7.974 - 7.561e-2*T + 4.724e-4*T^2;
VisWater = 4.2844e-5 + 1/(0.157*(T + %% Water & Salt Permeability
64.993)^2 - 91.296); %kg/(m.s) Kw = Kw50*VisWater50/VisWater;
VisWater50 = 4.2844/10^5 + %L/(m2.h.bar) %% Water or NaCl
1/(0.157*(50 + 64.993)^2 - 91.296); Ks = Ks25*VisDraw25/VisDraw; %m/h
membrane salt permeability
%% Solute diffusivity
VisFeed = VisWater * (1+A*Cg/10^3 + x = fzero('f1', 1e-10); %m/s
B*Cg^2/10^6); %kg/(m.s) NaCl a = Kw*OsmDraw*exp(-x*K)-
VisFeed25 = VisWater25 * Kw*OsmFeed*exp(x/k)-x*1000*3600;
  77  
if (a < 1e-2) %% Plot
Jw = x*10^3*3600; %L/(m2.h) figure(1);
else hold on;
fprintf('Fail to find roots'); cc = hsv(nT);
T for i = 1:nT;
end T = TVector(i);
XVector = 1:1:num;
Js = Ks*(exp(-x/k)*Cs- plot(XVector, JwVector(i,:), '-s', 'color', cc(nT-
Cg*exp(x*K))*10^6; %mg/(m2.h) i+1,:),'LineWidth', 1.0);
Qp = Jw*dl*w/1000/3600; %m3/s legendInfo{i} = ['T = ', num2str(T)];
Sf = Js*dl*w/3600; %mg/s end
xlabel('Increment
%% New Value Stage','fontSize',16,'fontWeight','bold');
Cg = (Qg*Cg*10^3+Sf/1000)/(Qg- ylabel('Water Flux (unit:
Qp)/10^3; %g/L L/m2.h)','fontSize',16,'fontWeight','bold');
Cs = (Qs*Cs*10^3-Sf/1000)/(Qs+Qp)/10^3; legend(legendInfo, 'fontSize',14);
%g/L
Qg = Qg - Qp; figure(2);
Qs = Qs + Qp; hold on;
Recovery = 1-Qg/(Qf/24/60/60); cc = hsv(nT);
for i = 1:nT;
%% Outputs T = TVector(i);
JwVector(i,j) = Jw; %Water flux XVector = 1:1:num;
JsVector(i,j) = Js; %Solute flux plot(XVector, JsVector(i,:), '-s', 'color', cc(nT-
KVector(i,j) = K; %Concentration i+1,:),'LineWidth', 1.0);
Polarization Factor legendInfo{i} = ['T = ', num2str(T)];
kVector(i,j) = k; end
j = j + 1; xlabel('Increment
Stage','fontSize',16,'fontWeight','bold');
totalA = totalA + w * dl; %m2 ylabel('Solute Flux (unit:
end mg/(m2.h))','fontSize',16,'fontWeight','bold');
Area = totalA; legend(legendInfo, 'fontSize',14);

%% Outputs figure(5);
AVector(1,i) = Area; hold on;
end cc = hsv(nT);
for i = 1:nT;
  78  
T = TVector(i); end
XVector = 1:1:num; xlabel('Increment
plot(XVector, vgVector(i,:), '-s', 'color', cc(nT- Stage','fontSize',16,'fontWeight','bold');
i+1,:),'LineWidth', 1.0); ylabel('Feed Concentration (unit:
legendInfo{i} = ['T = ', num2str(T)]; g/L)','fontSize',16,'fontWeight','bold');
end legend(legendInfo, 'fontSize',14);
xlabel('Increment
Stage','fontSize',16,'fontWeight','bold'); figure(8);
ylabel('Feed Velocity (unit: hold on;
m/s)','fontSize',16,'fontWeight','bold'); cc = hsv(nT);
legend(legendInfo, 'fontSize',14); for i = 1:nT;
T = TVector(i);
figure(6); XVector = 1:1:num;
hold on; plot(XVector, CsVector(i,:), '-s', 'color', cc(nT-
cc = hsv(nT); i+1,:),'LineWidth', 1.0);
for i = 1:nT; legendInfo{i} = ['T = ', num2str(T)];
T = TVector(i); end
XVector = 1:1:num; xlabel('Increment
plot(XVector, vsVector(i,:), '-s', 'color', cc(nT- Stage','fontSize',16,'fontWeight','bold');
i+1,:),'LineWidth', 1.0); ylabel('Draw Concentration (unit:
legendInfo{i} = ['T = ', num2str(T)]; g/L)','fontSize',16,'fontWeight','bold');
end legend(legendInfo, 'fontSize',14);
xlabel('Increment
Stage','fontSize',16,'fontWeight','bold'); figure(9);
ylabel('Draw Velocity (unit: hold on;
m/s)','fontSize',16,'fontWeight','bold'); cc = hsv(nT);
legend(legendInfo, 'fontSize',14); for i = 1:nT;
T = TVector(i);
figure(7); XVector = 1:1:num;
hold on; plot(XVector, QgVector(i,:), '-s', 'color',
cc = hsv(nT); cc(nT-i+1,:),'LineWidth', 1.0);
for i = 1:nT; legendInfo{i} = ['T = ', num2str(T)];
T = TVector(i); end
XVector = 1:1:num; xlabel('Increment
plot(XVector, CgVector(i,:), '-s', 'color', Stage','fontSize',16,'fontWeight','bold');
cc(nT-i+1,:),'LineWidth', 1.0); ylabel('Feed Flow Rate (unit:
legendInfo{i} = ['T = ', num2str(T)]; m3/s)','fontSize',16,'fontWeight','bold');
  79  
legend(legendInfo, 'fontSize',14); %Qd m3/d Water Demand = Permeate Flow:
range = 4e5-5e8
figure(10); %Pf bar Feed Pressure: range = 10~70
hold on; %Cf mg/L NaCl Feed Concentration: range =
cc = hsv(nT); 32000-35000
for i = 1:nT; %HeatIn: 1e13~1.5e14 J/d => 29~96.C
T = TVector(i); %{
XVector = 1:1:num; for RecoveryGoal = 0.3:0.1:0.8;
plot(XVector, QsVector(i,:), '-s', 'color', cc(nT- for Qd = 5e5:5e5:5e8;
i+1,:),'LineWidth', 1.0); for Pf = 10:20:70;
legendInfo{i} = ['T = ', num2str(T)]; for Cf = 32000:1000:35000;
end for HeatIn = 100:10:200;
xlabel('Increment %}
Stage','fontSize',16,'fontWeight','bold');
ylabel('Draw Flow Rate (unit: [Area, Pc, Qc] = calROArea(RecoveryGoal,
m3/s)','fontSize',16,'fontWeight','bold'); HeatIn, Qd, Pf, Cf);
legend(legendInfo, 'fontSize',14); %[Area0, Pc0, Qc0] =
calROArea(RecoveryGoal, 0, Qd, Pf, Cf);
figure(11); if Area == 0;
hold on; Eff = 0;
plot(TVector, AVector, '-s', 'LineWidth', 0.5); Elec = 0; %Need to check Elec and set Heat to
xlabel('Temperature (unit: 0
centidegree)','fontSize',16,'fontWeight','bold'); HeatOut = 0;
ylabel('Membrane Area (unit: return;
m2)','fontSize',16,'fontWeight','bold'); end
legend('Modeled','Estimated'); HeatOut = HeatIn;

EE =
(Qd/RecoveryGoal/24/3600)*(Pf*100)/0.88/0.85
Appendix I: Efficiency Model *(24*365); %kWh/year Electricity Energy
ACost = 2 * 450/35.2 / 3; %$/m2/yr assume
########calROEff.m ######## replacing membrane per 3 years
%%% For integration with CCHP model CapitalCost = 900*Qd; %$
LifeTime = 30; %years Life Time of RO plants
function [Eff, Elec, HeatOut] = AreaCost = LifeTime*ACost*Area; %$
calROEff(RecoveryGoal, HeatIn, Qd, Pf, Cf) ElectricityCost = LifeTime*0.06*EE; %$
%RecoveryGoal: range = 0.3~0.8 Eff = Qd/(CapitalCost + AreaCost +
  80  
ElectricityCost); %m3/d/$ Efficiency of RO %Heat J/d
plant T0 = 25; %centigrade Feed Temperature
%CapitalCost = C = 4.18; %Water heat capacity J/.C/g
12.612*(Qd/264.172/1e6)^0.7177/Area0*Area; Den = 1e6; %g/m3
%OMCost = T = T0 + Heat/(Qf*Den*C); %centigrade Feed
2.9129*(Qd/264.172/1e6)^0.6484/60*Pf; Temperature
%Eff = Qd/(CapitalCost + OMCost);
%% Membrane Element Properties
ERe = Qc*(Pc*100)*0.67; %kWh Recovered l = 1; %m Element Length
Electricity Energy dl = 0.1; %m Increment Length
Elec = EE/24/365 - ERe; %kWh Electricity h = 0.125; %mm Feed Channel Height
Demand for CCHP w = 32.5; %m Feed Channel Width
hL = 0.2; %bar Element Head Loss
end v0 = 0.5; %m/s Design Velocity
dhL = hL/v0^2/l; %bar.s2/m2 Head Loss
Coefficient
########calROArea.m ######## dH = 2*h/1000; %m Hydraulic Diameter
function [Area, Pc, Qc] =
calROArea(RecoveryGoal, Heat, Qd, Pf, Cf) %% Solute Properties: NaCl
n = 2; %Number of ions produced during
global Pp dissociation of solute
global k Phi = 1; %Osmotic Coefficient
global Pb MW = 58.5; %g/mol Molecular Weight
global Rej Dif25 = 1.611e-9; %m2/s NaCl
global OsmBri
global OsmPer %% Water Properties
global Kw VisWater25 = 4.2844/10^5 + 1/(0.157*(25 +
64.993)^2 - 91.296); %kg/(m.s)
%% Water Treatment Goal
%Qd m3/d Water Demand = Permeate Flow %% Membrane Properties
Kw25 = 2.1e-11*3.6e11; %convert m/(s-pa) to
%% Operation Conditions L/m2-h-bar XLE membrane water permeability
Qf = Qd/RecoveryGoal; %m3/d Feed Flow at 25
%Pf bar Feed Pressure Ks25 = 6.14e-4; %m/h
%Cf mg/L NaCl Feed Concentration Kwt = -2849; %K
vf = 0.7; %m/s Feed velocity Kst = -3281; %K
Pp = 0.3; %bar Permeate Pressure Kw = Kw25*exp(Kwt*(1/(T+273.15)-
  81  
1/298.15)); %L/m2-h-bar XLE membrane water A = 1.541 + 1.998e-2*T - 9.52e-5*T^2;
permeability B = 7.974 - 7.561e-2*T + 4.724e-4*T^2;
Ks = Ks25*exp(Kst*(1/(T+273.15)-1/298.15)); VisWater = 4.2844e-5 + 1/(0.157*(T +
%m/h membrane salt permeability 64.993)^2 - 91.296); %kg/(m.s)

%% Constants %% Solute diffusivity


R = 0.0831451; %Universal Gas Constant Vis = VisWater * (1+A*Cb/10^3 +
L?bar/(K.mol) B*Cb^2/10^6); %kg/(m.s) NaCl
Vis25 = VisWater25 * (1+A*Cb/10^3 +
%% Calculation B*Cb^2/10^6); %kg/(m.s) NaCl
Qb = Qf/24/60/60; %m3/s Dif =
Pb = Pf; %bar Dif25*(T+273.15)/(25+273.15)*Vis25/Vis;
Cb = Cf/1000; %g/L %m2/s NaCl
Cp = 0;
totalA = 0; %% Mass Transfer Coefficient
Recovery = 0; k25 = 0.808*((6*v/(h*1e-3) *
Dif25^2)/(0.01*l))^(1/3); %m/s
while Recovery < RecoveryGoal k = k25 * power(Dif/Dif25, 2/3); %m/s
stageA = 0; %m2 total Area in one stage mass transfer coefficient
tL = 0; %m total length in one stage
x0 = [30 300];
%Set new velocity x = fsolve(@myfun, x0);
v = vf; a = (exp(x(1)/10^3/3600/k)*Rej+1-Rej-
w = Qb/v/h*1e3; %m x(2))^2+(Kw*((Pb-Pp)-(x(2)*OsmBri-
Q0 = Qb; OsmPer))-x(1))^2;
if a < 1e-2
while Recovery < RecoveryGoal && Qb > Jw = x(1); %L/(m2.h)
Q0/2 Beta = x(2);
OsmBri = n*Phi*Cb/MW*R*(T+273); else
%bar fprintf('Fail to find roots');
OsmPer = n*Phi*Cp/MW*R*(T+273); Area = 0;
%bar Pc = 0;
Rej = 1 - Cp/Cb; Qc = 0;
v = Qb/(h*1e-3)/w; %m/s return;
end
%% Physical Properties
%% Water viscosity Js = Ks*(Beta*Cb-Cp)*10^6; %mg/(m2.h)
  82  
Qp = Jw*dl*w/1000/3600; %m3/s stageA = w * tL; %m2
Sf = Js*dl*w/3600; %mg/s Recovery = 1-Qb/(Qf/24/60/60);
hl = dhL*v^2*dl; %bar end
totalA = totalA + stageA;
%% New Value end
Cb = (Qb*Cb*10^3-Sf/1000)/(Qb-
Qp)/10^3; %g/L Area = totalA;
Qb = Qb - Qp; Pc = Pb;
Pb = Pb - hl; Qc = Qb; %m3/s
Cp = Js/Jw/1000; %g/L end
tL = tL + dl; %m

  83  

You might also like