LTMED + VAGMD Flowsheet
Implementation
This flowsheet simulates the semibatch operation of an LTMED + VAGMD system using the IDAES multiperiod framework, and
each period in the processing phase contains a steady-state flowsheet as depicted in Fig. 1
each flowsheet incorporates the following models
the system performance is evaluated based on a single Aquastill MD module
the system can be scaled to any capacity in the cost evaluation
Figure 1. Diagram of a MED-VAGMD semibatch system - processing phase.
This configuration takes feed water into the MED system first, and treats the MED brine with VAGMD in a semibatch operation, to reach a higher water recovery rate and thermal efficiency. In each period, mixer M1 receives brine from both MED and VAGMD components and updates the properties of the mixed liquid for the next period, which will be the feed to the VAGMD component. Separator S1 diverges the MED brine, so that the liquid volume in the mixer remains the same between periods, while the excess brine will be stored in a tank during a single batch and discharged to the mixer in the next batch. Virtual separator S2 is not a physical piece of equipment in this configuration but just a node to carry the mixed flow properties to the next instance of time.
As shown in Fig. 2, during the processing phase, the liquid salinity in the mixer increases over time while the mixer volume remains unchanged at a user-specifed batch volume. Upon reaching the user-specifed point, it triggers the discharging and refilling phase, when the highly saline liquid is fully discharged and the MED brine stored during the processing phase is used to fill the mixer for the next batch. The refilling phase continues until the liquid volume in the mixer is back to the specifed batch volume. The refilling phase is simplified as a steady-state period when the system operates at the starting point of the process.
Figure 2. Salinity and volume in the mixer during different modes of operation, i.e., processing and discharging/refilling.
Detailed assumptions of the model are listed below:
Initial condition at the first period:
VAGMD feed temperature and concentration are the same as MED brine,
the initial volume in M1 is the user specified batch volume,
the MED brine tank starts as empty.
Discharging and refilling phase:
The length of discharging and refilling phase is determined by the following equation:
\[T_{refill} = \cfrac{V_{batch} - V_{tank,t_{N}}}{\nu_{MED,brine,t_{0}} - \nu_{MD,dist,t_{0}}}\]where \(\nu_{MED,brine,t_{0}}\) and \(\nu_{MD,dist,t_{0}}\) are the volumetric flow rate of MED brine and MD dist at the beginning of the processing phase and \(V_{tank,t_{N}}\) is the liquid volume stored in tank at the end of processing phase.
System scaling
The system can be scaled for purposes of cost analysis. The user needs to specify the target system capacity
target_system_capacity, and the model will calculate the capacity of MED and MD respectively, based on the performance of a specified semibatch operation.
Model Inputs
The unit model takes in the model inputs as a dictionary in the model arguments. It includes:
Description |
Argument |
Symbol |
Valid Range |
Units |
|---|---|---|---|---|
Number of periods in the processing phase |
|
\(N\) |
Positive Integer |
\(-\) |
Time interval during processing phase |
|
\(\text{dt}\) |
>0 or |
\(\text{s}\) |
Feed water temperature into LTMED |
|
\(T_{f,med}\) |
20 - 30 |
\(\text{°C}\) |
Steam temperature into LTMED |
|
\(T_{s,med}\) |
60 - 80 |
\(\text{°C}\) |
Feed water salinity into LTMED |
|
\(S_{f,med}\) |
30 - 60 |
\(\text{g/L}\) |
MED capacity associated with a single MD module |
|
\(Q_{MED}\) |
>0 |
\(\text{m}^3\text{/day}\) |
Feed flow rate of a single VAGMD module |
|
\(FFR_{md}\) |
400 - 1100 |
\(\text{L/hr}\) |
Condenser inlet temperature of VAGMD |
|
\(TCI_{md}\) |
20 - 30 |
\(\text{°C}\) |
Evaporator inlet temperature of VAGMD |
|
\(TEI_{md}\) |
60 - 80 |
\(\text{°C}\) |
MD cooling system type |
|
\(-\) |
open or closed |
\(-\) |
MD cooling water inlet temperature |
|
\(T_{cooling,in}\) |
20 - 30 |
\(\text{°C}\) |
MD high brine salinity mode |
|
\(-\) |
True or False |
\(-\) |
Batch volume associated to a single MD module |
|
\(V_{batch}\) |
>0 |
\(\text{L}\) |
- Notes on configuration inputs:
dt: IfNoneis provided to time interval, the model uses default equations to determine its value based on the specified feed flow rate to the VAGMD module.\(Q_{MED}\): MED capacity should be associated with a single MD module for the batch process simulation, before scaled to a certain capacity. This value should be selected so that there’s enough MED brine that can be fed to the MD component.
\(T_{cooling,in}\): The cooling water inlet temperature is not required when cooling system type is set to “closed”. See details in the VAGMD base model documentation.
md_high_brine_salinity: Specify/predict if the MD component will operate at high brine salinity mode (>175.3 g/L)
Equations
Description |
Equation |
|---|---|
Water production from MED during processing phase |
\(m_{prod,med,process} = {\sum_{t=1}^{N} m_{dist,t}\text{dt}}\) |
Water production from MD during processing phase |
\(m_{prod,md,process} = {\sum_{t=1}^{N} J_{t} A_{module} \text{dt}}\) |
Water production from MED during refilling phase |
\(m_{prod,med,refill} = m_{dist,t=0} t_{refill}\) |
Water production from MD during refilling phase |
\(m_{prod,md,refill} = J_{t=0} A_{module} t_{refill}\) |
Total water production during one batch |
\(m_{prod,tot,batch} = m_{prod,med,process} + m_{prod,md,process} + m_{prod,med,refill} + m_{prod,md,refill}\) |
Total operation time of one batch |
\(t_{batch,tot} = t_{refill} + N \times \text{dt}\) |
System capacity associated with one MD module |
\(Q_{MED} = \cfrac{m_{prod,tot,batch}}{t_{batch,tot}}\) |
Total thermal power required |
\(P_{th,tot} = \cfrac{({\sum_{t=1}^{N}P_{th,md,t}} + {\sum_{t=1}^{N}P_{th,med,t}}) \times \text{dt} + (P_{th,md,t=0} + P_{th,med,t=0}) \times t_{refill}}{t_{batch,tot}}\) |
Average STEC of a batch |
\(STEC = \cfrac{P_{th,tot} \times t_{batch,tot}}{m_{prod,tot,batch}}\) |
Linking Variables
This table lists pairs of variables that need to be connected across two time periods during processing phase
Variable In Previous Period |
Symbol |
Variable In Next Period |
Symbol |
|---|---|---|---|
Temperature of flow from S2 |
\(T_{S2}\) |
Feed temperature to MD |
\(T_{in,MD}\) |
TDS mass flow rate from S2 to MD |
\(m_{TDS,to-MD}\) |
TDS mass flow rate fed to MD |
\(m_{TDS,MD}\) |
H2O mass flow rate from S2 to MD |
\(m_{H2O,to-MD}\) |
H2O mass flow rate fed to MD |
\(m_{H2O,MD}\) |
Flow pressure from S2 |
\(P_{S2}\) |
Feed pressure to VAGMD |
\(P_{in,MD}\) |
Temperature of flow from S2 |
\(T_{S2}\) |
Temperature of liquid remaining in M1 |
\(T_{M1,remain}\) |
TDS mass flow rate from S2 and remaining in M1 |
\(m_{TDS,S2-to-mix}\) |
TDS mass flow rate remaining in M1 |
\(m_{TDS,remain}\) |
H2O mass flow rate from S2 and remaining in M1 |
\(m_{H2O,S2-to-mix}\) |
H2O mass flow rate remaining in M1 |
\(m_{H2O,remain}\) |
Flow pressure from S2 |
\(P_{S2}\) |
Pressure of liquid remaining in M1 |
\(P_{remain}\) |
Liquid volume in tank |
\(V_{tank}\) |
Tank volume from previous step |
\(V_{tank,pre}\) |
These variables will be unfixed in each period after connected to the previous step to maintain degrees of freedom.
Methods
This model class includes the following methods for different functionalities.
add_costing_packages: Creates a costing block and setup the system based on the target capacity.get_model_performance: Returns the overall performance of the batch operation in a dictionary, and the timewise system performance of the processing phase in a pandas dataframe.get_costing_performance: Returns the cost performance of a system with a target capacity scaled upon the specified MED-MD module in the unit model.