← All Use Cases
🧵
Central Composite Design

Garment Pressing Settings

Central composite design to maximize crease sharpness and minimize fabric shine by tuning iron temperature, steam output, and pressing duration

Summary

This experiment investigates garment pressing settings. Central composite design to maximize crease sharpness and minimize fabric shine by tuning iron temperature, steam output, and pressing duration.

The design varies 3 factors: iron temp c (C), ranging from 110 to 200, steam g min (g/min), ranging from 0 to 40, and press sec (sec), ranging from 3 to 15. The goal is to optimize 2 responses: crease sharpness (pts) (maximize) and shine risk (pts) (minimize). Fixed conditions held constant across all runs include fabric = wool_blend, press cloth = yes.

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 crease sharpness, the most influential factors were press sec (51.5%), iron temp c (34.8%), steam g min (13.6%). The best observed value was 8.0 (at iron temp c = 155, steam g min = 20, press sec = 9).

For shine risk, the most influential factors were press sec (40.4%), steam g min (32.7%), iron temp c (26.9%). The best observed value was 1.5 (at iron temp c = 155, steam g min = 20, press sec = 9).

Recommended Next Steps

Experimental Setup

Factors

FactorLowHighUnit
iron_temp_c110200C
steam_g_min040g/min
press_sec315sec

Fixed: fabric = wool_blend, press_cloth = yes

Responses

ResponseDirectionUnit
crease_sharpness↑ maximizepts
shine_risk↓ minimizepts

Configuration

use_cases/186_iron_press_settings/config.json
{ "metadata": { "name": "Garment Pressing Settings", "description": "Central composite design to maximize crease sharpness and minimize fabric shine by tuning iron temperature, steam output, and pressing duration" }, "factors": [ { "name": "iron_temp_c", "levels": [ "110", "200" ], "type": "continuous", "unit": "C" }, { "name": "steam_g_min", "levels": [ "0", "40" ], "type": "continuous", "unit": "g/min" }, { "name": "press_sec", "levels": [ "3", "15" ], "type": "continuous", "unit": "sec" } ], "fixed_factors": { "fabric": "wool_blend", "press_cloth": "yes" }, "responses": [ { "name": "crease_sharpness", "optimize": "maximize", "unit": "pts" }, { "name": "shine_risk", "optimize": "minimize", "unit": "pts" } ], "settings": { "operation": "central_composite", "test_script": "use_cases/186_iron_press_settings/sim.sh" } }

Experimental Matrix

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

Runiron_temp_csteam_g_minpress_sec
1155209
2200015
3110403
415556.51489
5155209
672.8416209
715520-1.95445
8155209
9200403
10237.158209
11155209
12155-16.51489
13155209
14110015
15155209
1620003
171552019.9545
182004015
19155209
2011003
211104015
22155209

Step-by-Step Workflow

1

Preview the design

Terminal
$ doe info --config use_cases/186_iron_press_settings/config.json
2

Generate the runner script

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

Execute the experiments

Terminal
$ bash use_cases/186_iron_press_settings/results/run.sh
4

Analyze results

Terminal
$ doe analyze --config use_cases/186_iron_press_settings/config.json
5

Get optimization recommendations

Terminal
$ doe optimize --config use_cases/186_iron_press_settings/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/186_iron_press_settings/config.json --multi
7

Generate the HTML report

Terminal
$ doe report --config use_cases/186_iron_press_settings/config.json \ --output use_cases/186_iron_press_settings/results/report.html

Features Exercised

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

Analysis Results

Generated from actual experiment runs using the DOE Helper Tool.

Response: crease_sharpness

Top factors: press_sec (51.5%), iron_temp_c (34.8%), steam_g_min (13.6%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
iron_temp_c44.74361.18590.4480.7721
steam_g_min41.80610.45150.1700.9481
press_sec49.38202.34550.8850.5102
LackofFit21.47810.7391
PureError718.5487
Error920.02692.6498
Total2135.95861.7123

Pareto Chart

Pareto chart for crease_sharpness

Main Effects Plot

Main effects plot for crease_sharpness

Normal Probability Plot of Effects

Normal probability plot for crease_sharpness

Half-Normal Plot of Effects

Half-normal plot for crease_sharpness

Model Diagnostics

Model diagnostics for crease_sharpness

Response: shine_risk

Top factors: press_sec (40.4%), steam_g_min (32.7%), iron_temp_c (26.9%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
iron_temp_c412.00583.00150.8890.5084
steam_g_min412.92003.23000.9560.4757
press_sec417.16004.29001.2700.3501
LackofFit20.00000.0000
PureError723.6400
Error98.35423.3771
Total2150.44002.4019

Pareto Chart

Pareto chart for shine_risk

Main Effects Plot

Main effects plot for shine_risk

Normal Probability Plot of Effects

Normal probability plot for shine_risk

Half-Normal Plot of Effects

Half-normal plot for shine_risk

Model Diagnostics

Model diagnostics for shine_risk

Response Surface Plots

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

crease sharpness iron temp c vs press sec

RSM surface: crease sharpness iron temp c vs press sec

crease sharpness iron temp c vs steam g min

RSM surface: crease sharpness iron temp c vs steam g min

crease sharpness steam g min vs press sec

RSM surface: crease sharpness steam g min vs press sec

shine risk iron temp c vs press sec

RSM surface: shine risk iron temp c vs press sec

shine risk iron temp c vs steam g min

RSM surface: shine risk iron temp c vs steam g min

shine risk steam g min vs press sec

RSM surface: shine risk steam g min vs press sec

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.6532

Per-Response Desirability

ResponseWeightDesirabilityPredictedDir
crease_sharpness 1.5
0.5248
5.40 0.5248 5.40 pts
shine_risk 2.0
0.7696
2.70 0.7696 2.70 pts

Recommended Settings

FactorValue
iron_temp_c200 C
steam_g_min40 g/min
press_sec15 sec

Source: from observed run #15

Trade-off Summary

Sacrifice = how much worse than single-objective best.

ResponsePredictedBest ObservedSacrifice
shine_risk2.701.50+1.20

Top 3 Runs by Desirability

RunDFactor Settings
#10.6473iron_temp_c=110, steam_g_min=0, press_sec=15
#50.6472iron_temp_c=110, steam_g_min=40, press_sec=15

Model Quality

ResponseType
shine_risk0.0897linear

Full Multi-Objective Output

doe optimize --multi
============================================================ MULTI-OBJECTIVE OPTIMIZATION Method: Derringer-Suich Desirability Function ============================================================ Overall desirability: D = 0.6532 Response Weight Desirability Predicted Direction --------------------------------------------------------------------- crease_sharpness 1.5 0.5248 5.40 pts ↑ shine_risk 2.0 0.7696 2.70 pts ↓ Recommended settings: iron_temp_c = 200 C steam_g_min = 40 g/min press_sec = 15 sec (from observed run #15) Trade-off summary: crease_sharpness: 5.40 (best observed: 8.00, sacrifice: +2.60) shine_risk: 2.70 (best observed: 1.50, sacrifice: +1.20) Model quality: crease_sharpness: R² = 0.0636 (linear) shine_risk: R² = 0.0897 (linear) Top 3 observed runs by overall desirability: 1. Run #15 (D=0.6532): iron_temp_c=200, steam_g_min=40, press_sec=15 2. Run #1 (D=0.6473): iron_temp_c=110, steam_g_min=0, press_sec=15 3. Run #5 (D=0.6472): iron_temp_c=110, steam_g_min=40, press_sec=15

Full Analysis Output

doe analyze
=== Main Effects: crease_sharpness === Factor Effect Std Error % Contribution -------------------------------------------------------------- press_sec 3.4000 0.2790 51.5% iron_temp_c 2.3000 0.2790 34.8% steam_g_min 0.9000 0.2790 13.6% === ANOVA Table: crease_sharpness === Source DF SS MS F p-value ----------------------------------------------------------------------------- iron_temp_c 4 4.7436 1.1859 0.448 0.7721 steam_g_min 4 1.8061 0.4515 0.170 0.9481 press_sec 4 9.3820 2.3455 0.885 0.5102 Lack of Fit 2 1.4781 0.7391 0.279 0.7646 Pure Error 7 18.5487 2.6498 Error 9 20.0269 2.6498 Total 21 35.9586 1.7123 === Summary Statistics: crease_sharpness === iron_temp_c: Level N Mean Std Min Max ------------------------------------------------------------ 110 4 5.0750 0.7274 4.0000 5.6000 155 12 5.4000 1.5580 2.5000 8.0000 200 4 4.5750 0.9878 3.5000 5.6000 237.158 1 4.1000 0.0000 4.1000 4.1000 72.8416 1 6.4000 0.0000 6.4000 6.4000 steam_g_min: Level N Mean Std Min Max ------------------------------------------------------------ -16.5148 1 5.7000 0.0000 5.7000 5.7000 0 4 4.8500 0.9037 3.5000 5.4000 20 12 5.3250 1.6277 2.5000 8.0000 40 4 4.8000 0.9238 4.0000 5.6000 56.5148 1 5.7000 0.0000 5.7000 5.7000 press_sec: Level N Mean Std Min Max ------------------------------------------------------------ -1.95445 1 8.0000 0.0000 8.0000 8.0000 15 4 4.6000 1.0100 3.5000 5.6000 19.9545 1 5.3000 0.0000 5.3000 5.3000 3 4 5.0500 0.7188 4.0000 5.6000 9 12 5.1667 1.4131 2.5000 6.8000 === Main Effects: shine_risk === Factor Effect Std Error % Contribution -------------------------------------------------------------- press_sec 4.0500 0.3304 40.4% steam_g_min 3.2750 0.3304 32.7% iron_temp_c 2.7000 0.3304 26.9% === ANOVA Table: shine_risk === Source DF SS MS F p-value ----------------------------------------------------------------------------- iron_temp_c 4 12.0058 3.0015 0.889 0.5084 steam_g_min 4 12.9200 3.2300 0.956 0.4757 press_sec 4 17.1600 4.2900 1.270 0.3501 Lack of Fit 2 0.0000 0.0000 0.000 1.0000 Pure Error 7 23.6400 3.3771 Error 9 8.3542 3.3771 Total 21 50.4400 2.4019 === Summary Statistics: shine_risk === iron_temp_c: Level N Mean Std Min Max ------------------------------------------------------------ 110 4 2.7500 0.3317 2.3000 3.0000 155 12 3.9833 1.8473 1.5000 7.4000 200 4 2.6250 0.4349 2.2000 3.0000 237.158 1 2.5000 0.0000 2.5000 2.5000 72.8416 1 5.2000 0.0000 5.2000 5.2000 steam_g_min: Level N Mean Std Min Max ------------------------------------------------------------ -16.5148 1 5.9000 0.0000 5.9000 5.9000 0 4 2.7500 0.3317 2.3000 3.0000 20 12 3.8750 1.8246 1.5000 7.4000 40 4 2.6250 0.4349 2.2000 3.0000 56.5148 1 3.1000 0.0000 3.1000 3.1000 press_sec: Level N Mean Std Min Max ------------------------------------------------------------ -1.95445 1 6.7000 0.0000 6.7000 6.7000 15 4 2.6500 0.4041 2.3000 3.0000 19.9545 1 2.9000 0.0000 2.9000 2.9000 3 4 2.7250 0.3775 2.2000 3.0000 9 12 3.8250 1.7152 1.5000 7.4000

Optimization Recommendations

doe optimize
=== Optimization: crease_sharpness === Direction: maximize Best observed run: #18 iron_temp_c = 155 steam_g_min = 20 press_sec = 9 Value: 8.0 RSM Model (linear, R² = 0.1472, Adj R² = 0.0051): Coefficients: intercept +5.1773 iron_temp_c -0.5904 steam_g_min -0.0700 press_sec +0.0866 RSM Model (quadratic, R² = 0.2448, Adj R² = -0.3216): Coefficients: intercept +4.9825 iron_temp_c -0.5904 steam_g_min -0.0700 press_sec +0.0866 iron_temp_c*steam_g_min +0.3250 iron_temp_c*press_sec -0.4000 steam_g_min*press_sec +0.1500 iron_temp_c^2 +0.0924 steam_g_min^2 -0.0276 press_sec^2 +0.2274 Curvature analysis: press_sec coef=+0.2274 convex (has a minimum) iron_temp_c coef=+0.0924 negligible curvature steam_g_min coef=-0.0276 negligible curvature Notable interactions: iron_temp_c*press_sec coef=-0.4000 (antagonistic) iron_temp_c*steam_g_min coef=+0.3250 (synergistic) Predicted optimum (from linear model, at observed points): iron_temp_c = 72.8416 steam_g_min = 20 press_sec = 9 Predicted value: 6.2553 Surface optimum (via L-BFGS-B, linear model): iron_temp_c = 110 steam_g_min = 0 press_sec = 15 Predicted value: 5.9243 Model quality: Weak fit — consider adding center points or using a different design. Factor importance: 1. iron_temp_c (effect: 3.1, contribution: 53.4%) 2. steam_g_min (effect: 1.9, contribution: 32.8%) 3. press_sec (effect: 0.8, contribution: 13.8%) === Optimization: shine_risk === Direction: minimize Best observed run: #20 iron_temp_c = 155 steam_g_min = 20 press_sec = 9 Value: 1.5 RSM Model (linear, R² = 0.1734, Adj R² = 0.0357): Coefficients: intercept +3.5000 iron_temp_c -0.6409 steam_g_min -0.3083 press_sec +0.3012 RSM Model (quadratic, R² = 0.3483, Adj R² = -0.1406): Coefficients: intercept +3.4316 iron_temp_c -0.6409 steam_g_min -0.3083 press_sec +0.3012 iron_temp_c*steam_g_min +0.9500 iron_temp_c*press_sec -0.3000 steam_g_min*press_sec -0.0250 iron_temp_c^2 +0.1642 steam_g_min^2 -0.1058 press_sec^2 +0.0442 Curvature analysis: iron_temp_c coef=+0.1642 convex (has a minimum) steam_g_min coef=-0.1058 concave (has a maximum) press_sec coef=+0.0442 negligible curvature Notable interactions: iron_temp_c*steam_g_min coef=+0.9500 (synergistic) Predicted optimum (from linear model, at observed points): iron_temp_c = 110 steam_g_min = 0 press_sec = 15 Predicted value: 4.7504 Surface optimum (via L-BFGS-B, linear model): iron_temp_c = 200 steam_g_min = 40 press_sec = 3 Predicted value: 2.2496 Model quality: Weak fit — consider adding center points or using a different design. Factor importance: 1. steam_g_min (effect: 2.5, contribution: 39.2%) 2. iron_temp_c (effect: 2.3, contribution: 36.5%) 3. press_sec (effect: 1.5, contribution: 24.3%)
← All Use Cases Next: Titration Accuracy Optimization →