← All Use Cases
🌊
Central Composite Design

Seawater Desalination Efficiency

Central composite design to maximize freshwater recovery and minimize energy use by tuning membrane pressure, feed temperature, and recovery ratio

Summary

This experiment investigates seawater desalination efficiency. Central composite design to maximize freshwater recovery and minimize energy use by tuning membrane pressure, feed temperature, and recovery ratio.

The design varies 3 factors: pressure bar (bar), ranging from 50 to 70, feed temp c (C), ranging from 15 to 30, and recovery pct (%), ranging from 35 to 55. The goal is to optimize 2 responses: permeate lmh (L/m2/hr) (maximize) and sec kwh m3 (kWh/m3) (minimize). Fixed conditions held constant across all runs include membrane = RO_polyamide, salinity = 35000ppm.

A Central Composite Design (CCD) was selected to fit a full quadratic response surface model, including curvature and interaction effects. With 3 factors this produces 22 runs including center points and axial (star) points that extend beyond the factorial range.

Quadratic response surface models were fitted to capture potential curvature and factor interactions. The RSM contour plots below visualize how pairs of factors jointly affect each response.

Key Findings

For permeate lmh, the most influential factors were feed temp c (55.3%), recovery pct (25.3%), pressure bar (19.4%). The best observed value was 34.3 (at pressure bar = 60, feed temp c = 22.5, recovery pct = 45).

For sec kwh m3, the most influential factors were pressure bar (42.4%), recovery pct (32.8%), feed temp c (24.8%). The best observed value was 2.67 (at pressure bar = 70, feed temp c = 30, recovery pct = 55).

Recommended Next Steps

Experimental Setup

Factors

FactorLowHighUnit
pressure_bar5070bar
feed_temp_c1530C
recovery_pct3555%

Fixed: membrane = RO_polyamide, salinity = 35000ppm

Responses

ResponseDirectionUnit
permeate_lmh↑ maximizeL/m2/hr
sec_kwh_m3↓ minimizekWh/m3

Configuration

use_cases/252_seawater_desalination/config.json
{ "metadata": { "name": "Seawater Desalination Efficiency", "description": "Central composite design to maximize freshwater recovery and minimize energy use by tuning membrane pressure, feed temperature, and recovery ratio" }, "factors": [ { "name": "pressure_bar", "levels": [ "50", "70" ], "type": "continuous", "unit": "bar" }, { "name": "feed_temp_c", "levels": [ "15", "30" ], "type": "continuous", "unit": "C" }, { "name": "recovery_pct", "levels": [ "35", "55" ], "type": "continuous", "unit": "%" } ], "fixed_factors": { "membrane": "RO_polyamide", "salinity": "35000ppm" }, "responses": [ { "name": "permeate_lmh", "optimize": "maximize", "unit": "L/m2/hr" }, { "name": "sec_kwh_m3", "optimize": "minimize", "unit": "kWh/m3" } ], "settings": { "operation": "central_composite", "test_script": "use_cases/252_seawater_desalination/sim.sh" } }

Experimental Matrix

The Central Composite Design produces 22 runs. Each row is one experiment with specific factor settings.

Runpressure_barfeed_temp_crecovery_pct
16022.545
2701555
3503035
46036.193145
56022.545
641.742622.545
76022.526.7426
86022.545
9703035
1078.257422.545
116022.545
12608.8069445
136022.545
14501555
156022.545
16701535
176022.563.2574
18703055
196022.545
20501535
21503055
226022.545

Step-by-Step Workflow

1

Preview the design

Terminal
$ doe info --config use_cases/252_seawater_desalination/config.json
2

Generate the runner script

Terminal
$ doe generate --config use_cases/252_seawater_desalination/config.json \ --output use_cases/252_seawater_desalination/results/run.sh --seed 42
3

Execute the experiments

Terminal
$ bash use_cases/252_seawater_desalination/results/run.sh
4

Analyze results

Terminal
$ doe analyze --config use_cases/252_seawater_desalination/config.json
5

Get optimization recommendations

Terminal
$ doe optimize --config use_cases/252_seawater_desalination/config.json
6

Multi-objective optimization

With 2 competing responses, use --multi to find the best compromise via Derringer–Suich desirability.

Terminal
$ doe optimize --config use_cases/252_seawater_desalination/config.json --multi
7

Generate the HTML report

Terminal
$ doe report --config use_cases/252_seawater_desalination/config.json \ --output use_cases/252_seawater_desalination/results/report.html

Features Exercised

FeatureValue
Design typecentral_composite
Factor typescontinuous (all 3)
Arg styledouble-dash
Responses2 (permeate_lmh ↑, sec_kwh_m3 ↓)
Total runs22

Analysis Results

Generated from actual experiment runs using the DOE Helper Tool.

Response: permeate_lmh

Top factors: feed_temp_c (55.3%), recovery_pct (25.3%), pressure_bar (19.4%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
pressure_bar469.088617.27220.5090.7309
feed_temp_c4241.412060.35301.7790.2171
recovery_pct4108.663627.16590.8010.5542
LackofFit2206.2444103.1222
PureError7237.4750
Error9443.719433.9250
Total21862.883641.0897

Pareto Chart

Pareto chart for permeate_lmh

Main Effects Plot

Main effects plot for permeate_lmh

Normal Probability Plot of Effects

Normal probability plot for permeate_lmh

Half-Normal Plot of Effects

Half-normal plot for permeate_lmh

Model Diagnostics

Model diagnostics for permeate_lmh

Response: sec_kwh_m3

Top factors: pressure_bar (42.4%), recovery_pct (32.8%), feed_temp_c (24.8%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
pressure_bar43.48800.87200.8400.5331
feed_temp_c41.24790.31200.3010.8703
recovery_pct42.72790.68200.6570.6367
LackofFit22.51511.2575
PureError77.2628
Error99.77791.0375
Total2117.24170.8210

Pareto Chart

Pareto chart for sec_kwh_m3

Main Effects Plot

Main effects plot for sec_kwh_m3

Normal Probability Plot of Effects

Normal probability plot for sec_kwh_m3

Half-Normal Plot of Effects

Half-normal plot for sec_kwh_m3

Model Diagnostics

Model diagnostics for sec_kwh_m3

Response Surface Plots

3D surfaces fitted with quadratic RSM. Red dots are observed data points.

permeate lmh feed temp c vs recovery pct

RSM surface: permeate lmh feed temp c vs recovery pct

permeate lmh pressure bar vs feed temp c

RSM surface: permeate lmh pressure bar vs feed temp c

permeate lmh pressure bar vs recovery pct

RSM surface: permeate lmh pressure bar vs recovery pct

sec kwh m3 feed temp c vs recovery pct

RSM surface: sec kwh m3 feed temp c vs recovery pct

sec kwh m3 pressure bar vs feed temp c

RSM surface: sec kwh m3 pressure bar vs feed temp c

sec kwh m3 pressure bar vs recovery pct

RSM surface: sec kwh m3 pressure bar vs recovery pct

Multi-Objective Optimization

When responses compete, Derringer–Suich desirability finds the best compromise. Each response is scaled to a 0–1 desirability, then combined via a weighted geometric mean.

Overall Desirability
D = 0.8931

Per-Response Desirability

ResponseWeightDesirabilityPredictedDir
permeate_lmh 1.5
0.9545
34.30 0.9545 34.30 L/m2/hr
sec_kwh_m3 1.0
0.8082
3.19 0.8082 3.19 kWh/m3

Recommended Settings

FactorValue
pressure_bar60 bar
feed_temp_c8.80694 C
recovery_pct45 %

Source: from observed run #9

Trade-off Summary

Sacrifice = how much worse than single-objective best.

ResponsePredictedBest ObservedSacrifice
sec_kwh_m33.192.67+0.52

Top 3 Runs by Desirability

RunDFactor Settings
#40.7891pressure_bar=60, feed_temp_c=22.5, recovery_pct=45
#70.7663pressure_bar=70, feed_temp_c=15, recovery_pct=55

Model Quality

ResponseType
sec_kwh_m30.7510quadratic

Full Multi-Objective Output

doe optimize --multi
============================================================ MULTI-OBJECTIVE OPTIMIZATION Method: Derringer-Suich Desirability Function ============================================================ Overall desirability: D = 0.8931 Response Weight Desirability Predicted Direction --------------------------------------------------------------------- permeate_lmh 1.5 0.9545 34.30 L/m2/hr ↑ sec_kwh_m3 1.0 0.8082 3.19 kWh/m3 ↓ Recommended settings: pressure_bar = 60 bar feed_temp_c = 8.80694 C recovery_pct = 45 % (from observed run #9) Trade-off summary: permeate_lmh: 34.30 (best observed: 34.30, sacrifice: +0.00) sec_kwh_m3: 3.19 (best observed: 2.67, sacrifice: +0.52) Model quality: permeate_lmh: R² = 0.2006 (linear) sec_kwh_m3: R² = 0.7510 (quadratic) Top 3 observed runs by overall desirability: 1. Run #9 (D=0.8931): pressure_bar=60, feed_temp_c=8.80694, recovery_pct=45 2. Run #4 (D=0.7891): pressure_bar=60, feed_temp_c=22.5, recovery_pct=45 3. Run #7 (D=0.7663): pressure_bar=70, feed_temp_c=15, recovery_pct=55

Full Analysis Output

doe analyze
=== Main Effects: permeate_lmh === Factor Effect Std Error % Contribution -------------------------------------------------------------- feed_temp_c 20.6000 1.3666 55.3% recovery_pct 9.4000 1.3666 25.3% pressure_bar 7.2250 1.3666 19.4% === ANOVA Table: permeate_lmh === Source DF SS MS F p-value ----------------------------------------------------------------------------- pressure_bar 4 69.0886 17.2722 0.509 0.7309 feed_temp_c 4 241.4120 60.3530 1.779 0.2171 recovery_pct 4 108.6636 27.1659 0.801 0.5542 Lack of Fit 2 206.2444 103.1222 3.040 0.1121 Pure Error 7 237.4750 33.9250 Error 9 443.7194 33.9250 Total 21 862.8836 41.0897 === Summary Statistics: permeate_lmh === pressure_bar: Level N Mean Std Min Max ------------------------------------------------------------ 41.7426 1 20.7000 0.0000 20.7000 20.7000 50 4 18.6750 7.8453 8.3000 24.9000 60 12 22.7000 6.7289 10.1000 34.3000 70 4 22.7250 6.0852 13.7000 27.0000 78.2574 1 25.9000 0.0000 25.9000 25.9000 feed_temp_c: Level N Mean Std Min Max ------------------------------------------------------------ 15 4 21.3750 8.7641 8.3000 27.0000 22.5 12 22.5833 5.1924 10.1000 27.7000 30 4 20.0250 5.6115 13.7000 24.9000 36.1931 1 13.7000 0.0000 13.7000 13.7000 8.80694 1 34.3000 0.0000 34.3000 34.3000 recovery_pct: Level N Mean Std Min Max ------------------------------------------------------------ 26.7426 1 18.0000 0.0000 18.0000 18.0000 35 4 23.0000 4.0710 16.9000 25.3000 45 12 22.8000 6.5227 10.1000 34.3000 55 4 18.4000 8.8788 8.3000 27.0000 63.2574 1 27.4000 0.0000 27.4000 27.4000 === Main Effects: sec_kwh_m3 === Factor Effect Std Error % Contribution -------------------------------------------------------------- pressure_bar 1.8300 0.1932 42.4% recovery_pct 1.4150 0.1932 32.8% feed_temp_c 1.0700 0.1932 24.8% === ANOVA Table: sec_kwh_m3 === Source DF SS MS F p-value ----------------------------------------------------------------------------- pressure_bar 4 3.4880 0.8720 0.840 0.5331 feed_temp_c 4 1.2479 0.3120 0.301 0.8703 recovery_pct 4 2.7279 0.6820 0.657 0.6367 Lack of Fit 2 2.5151 1.2575 1.212 0.3532 Pure Error 7 7.2628 1.0375 Error 9 9.7779 1.0375 Total 21 17.2417 0.8210 === Summary Statistics: sec_kwh_m3 === pressure_bar: Level N Mean Std Min Max ------------------------------------------------------------ 41.7426 1 2.6700 0.0000 2.6700 2.6700 50 4 3.5475 0.3465 3.1600 3.9900 60 12 3.7900 0.9046 2.8700 5.8500 70 4 4.5000 1.2099 3.4300 5.9000 78.2574 1 3.7300 0.0000 3.7300 3.7300 feed_temp_c: Level N Mean Std Min Max ------------------------------------------------------------ 15 4 3.7875 0.8978 3.1600 5.1200 22.5 12 3.7458 0.9474 2.6700 5.8500 30 4 4.2600 1.1109 3.5500 5.9000 36.1931 1 3.7400 0.0000 3.7400 3.7400 8.80694 1 3.1900 0.0000 3.1900 3.1900 recovery_pct: Level N Mean Std Min Max ------------------------------------------------------------ 26.7426 1 3.2300 0.0000 3.2300 3.2300 35 4 3.6025 0.2640 3.4300 3.9900 45 12 3.8017 0.9228 2.6700 5.8500 55 4 4.4450 1.2830 3.1600 5.9000 63.2574 1 3.0300 0.0000 3.0300 3.0300

Optimization Recommendations

doe optimize
=== Optimization: permeate_lmh === Direction: maximize Best observed run: #9 pressure_bar = 60 feed_temp_c = 22.5 recovery_pct = 45 Value: 34.3 RSM Model (linear, R² = 0.0826, Adj R² = -0.0703): Coefficients: intercept +22.0273 pressure_bar +0.2870 feed_temp_c -1.4249 recovery_pct -1.6570 RSM Model (quadratic, R² = 0.3115, Adj R² = -0.2048): Coefficients: intercept +24.2668 pressure_bar +0.2870 feed_temp_c -1.4249 recovery_pct -1.6570 pressure_bar*feed_temp_c -3.0500 pressure_bar*recovery_pct +1.2500 feed_temp_c*recovery_pct +1.2750 pressure_bar^2 -1.8647 feed_temp_c^2 -1.3397 recovery_pct^2 -0.1547 Curvature analysis: pressure_bar coef=-1.8647 concave (has a maximum) feed_temp_c coef=-1.3397 concave (has a maximum) recovery_pct coef=-0.1547 concave (has a maximum) Notable interactions: pressure_bar*feed_temp_c coef=-3.0500 (antagonistic) feed_temp_c*recovery_pct coef=+1.2750 (synergistic) pressure_bar*recovery_pct coef=+1.2500 (synergistic) Predicted optimum (from linear model, at observed points): pressure_bar = 70 feed_temp_c = 15 recovery_pct = 35 Predicted value: 25.3962 Surface optimum (via L-BFGS-B, linear model): pressure_bar = 70 feed_temp_c = 15 recovery_pct = 35 Predicted value: 25.3962 Model quality: Weak fit — consider adding center points or using a different design. Factor importance: 1. feed_temp_c (effect: 17.8, contribution: 50.6%) 2. pressure_bar (effect: 10.7, contribution: 30.4%) 3. recovery_pct (effect: 6.7, contribution: 19.0%) === Optimization: sec_kwh_m3 === Direction: minimize Best observed run: #3 pressure_bar = 70 feed_temp_c = 30 recovery_pct = 55 Value: 2.67 RSM Model (linear, R² = 0.1461, Adj R² = 0.0038): Coefficients: intercept +3.8214 pressure_bar -0.0967 feed_temp_c -0.3912 recovery_pct -0.0965 RSM Model (quadratic, R² = 0.5891, Adj R² = 0.2810): Coefficients: intercept +3.7425 pressure_bar -0.0967 feed_temp_c -0.3912 recovery_pct -0.0965 pressure_bar*feed_temp_c +0.1263 pressure_bar*recovery_pct -0.2038 feed_temp_c*recovery_pct -0.2162 pressure_bar^2 +0.4644 feed_temp_c^2 -0.0471 recovery_pct^2 -0.2991 Curvature analysis: pressure_bar coef=+0.4644 convex (has a minimum) recovery_pct coef=-0.2991 concave (has a maximum) feed_temp_c coef=-0.0471 negligible curvature Predicted optimum (from quadratic model, at observed points): pressure_bar = 41.7426 feed_temp_c = 22.5 recovery_pct = 45 Predicted value: 5.4672 Surface optimum (via L-BFGS-B, quadratic model): pressure_bar = 61.8758 feed_temp_c = 30 recovery_pct = 55 Predicted value: 2.6761 Model quality: Moderate fit — use predictions directionally, not precisely. Factor importance: 1. pressure_bar (effect: 2.7, contribution: 47.2%) 2. feed_temp_c (effect: 2.1, contribution: 35.9%) 3. recovery_pct (effect: 1.0, contribution: 16.9%)
← Previous: Coral Reef Fragment Restoration Next: Tidal Turbine Placement →