← All Use Cases
🧪
Plackett-Burman Design

Electroplating Thickness Control

Plackett-Burman screening of current density, bath temperature, plating time, pH, and agitation for uniform coating thickness and adhesion

Summary

This experiment investigates electroplating thickness control. Plackett-Burman screening of current density, bath temperature, plating time, pH, and agitation for uniform coating thickness and adhesion.

The design varies 5 factors: current density (A/dm2), ranging from 1 to 10, bath temp c (C), ranging from 20 to 55, time min (min), ranging from 5 to 60, bath ph (pH), ranging from 2 to 5, and agitation rpm (rpm), ranging from 0 to 200. The goal is to optimize 2 responses: thickness um (um) (maximize) and adhesion score (pts) (maximize). Fixed conditions held constant across all runs include metal = nickel, substrate = mild_steel.

A Plackett-Burman screening design was used to efficiently test 5 factors in only 8 runs. This design assumes interactions are negligible and focuses on identifying the most influential main effects.

Key Findings

For thickness um, the most influential factors were current density (44.4%), time min (33.3%), bath temp c (17.8%). The best observed value was 38.0 (at current density = 10, bath temp c = 20, time min = 5).

For adhesion score, the most influential factors were bath temp c (35.7%), time min (21.7%), bath ph (16.5%). The best observed value was 4.4 (at current density = 10, bath temp c = 20, time min = 5).

Recommended Next Steps

Experimental Setup

Factors

FactorLowHighUnit
current_density110A/dm2
bath_temp_c2055C
time_min560min
bath_ph25pH
agitation_rpm0200rpm

Fixed: metal = nickel, substrate = mild_steel

Responses

ResponseDirectionUnit
thickness_um↑ maximizeum
adhesion_score↑ maximizepts

Configuration

use_cases/194_electroplating/config.json
{ "metadata": { "name": "Electroplating Thickness Control", "description": "Plackett-Burman screening of current density, bath temperature, plating time, pH, and agitation for uniform coating thickness and adhesion" }, "factors": [ { "name": "current_density", "levels": [ "1", "10" ], "type": "continuous", "unit": "A/dm2" }, { "name": "bath_temp_c", "levels": [ "20", "55" ], "type": "continuous", "unit": "C" }, { "name": "time_min", "levels": [ "5", "60" ], "type": "continuous", "unit": "min" }, { "name": "bath_ph", "levels": [ "2", "5" ], "type": "continuous", "unit": "pH" }, { "name": "agitation_rpm", "levels": [ "0", "200" ], "type": "continuous", "unit": "rpm" } ], "fixed_factors": { "metal": "nickel", "substrate": "mild_steel" }, "responses": [ { "name": "thickness_um", "optimize": "maximize", "unit": "um" }, { "name": "adhesion_score", "optimize": "maximize", "unit": "pts" } ], "settings": { "operation": "plackett_burman", "test_script": "use_cases/194_electroplating/sim.sh" } }

Experimental Matrix

The Plackett-Burman Design produces 8 runs. Each row is one experiment with specific factor settings.

Runcurrent_densitybath_temp_ctime_minbath_phagitation_rpm
110556020
21206050
3155550
41055605200
515552200
6102055200
7120602200
81020520

Step-by-Step Workflow

1

Preview the design

Terminal
$ doe info --config use_cases/194_electroplating/config.json
2

Generate the runner script

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

Execute the experiments

Terminal
$ bash use_cases/194_electroplating/results/run.sh
4

Analyze results

Terminal
$ doe analyze --config use_cases/194_electroplating/config.json
5

Get optimization recommendations

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

Generate the HTML report

Terminal
$ doe report --config use_cases/194_electroplating/config.json \ --output use_cases/194_electroplating/results/report.html

Features Exercised

FeatureValue
Design typeplackett_burman
Factor typescontinuous (all 5)
Arg styledouble-dash
Responses2 (thickness_um ↑, adhesion_score ↑)
Total runs8

Analysis Results

Generated from actual experiment runs using the DOE Helper Tool.

Response: thickness_um

Top factors: current_density (44.4%), time_min (33.3%), bath_temp_c (17.8%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
current_density1800.0000800.0000213.3330.0000
bath_temp_c1128.0000128.000034.1330.0021
time_min1450.0000450.0000120.0000.0001
bath_ph14.50004.50001.2000.3233
agitation_rpm10.50000.50000.1330.7299
current_density*bath_temp_c1450.0000450.0000120.0000.0001
current_density*time_min1128.0000128.000034.1330.0021
current_density*bath_ph10.50000.50000.1330.7299
current_density*agitation_rpm14.50004.50001.2000.3233
bath_temp_c*time_min1800.0000800.0000213.3330.0000
bath_temp_c*bath_ph10.50000.50000.1330.7299
bath_temp_c*agitation_rpm14.50004.50001.2000.3233
time_min*bath_ph14.50004.50001.2000.3233
time_min*agitation_rpm10.50000.50000.1330.7299
bath_ph*agitation_rpm1800.0000800.0000213.3330.0000
Error(LenthPSE)518.75003.7500
Total71388.0000198.2857

Pareto Chart

Pareto chart for thickness_um

Main Effects Plot

Main effects plot for thickness_um

Normal Probability Plot of Effects

Normal probability plot for thickness_um

Half-Normal Plot of Effects

Half-normal plot for thickness_um

Model Diagnostics

Model diagnostics for thickness_um

Response: adhesion_score

Top factors: bath_temp_c (35.7%), time_min (21.7%), bath_ph (16.5%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
current_density10.36130.36130.6670.4513
bath_temp_c12.10122.10123.8780.1060
time_min10.78120.78121.4420.2836
bath_ph10.45130.45130.8330.4033
agitation_rpm10.21130.21130.3900.5598
current_density*bath_temp_c10.78130.78131.4420.2836
current_density*time_min12.10122.10123.8780.1060
current_density*bath_ph10.21120.21120.3900.5598
current_density*agitation_rpm10.45130.45130.8330.4033
bath_temp_c*time_min10.36130.36130.6670.4513
bath_temp_c*bath_ph10.00120.00120.0020.9636
bath_temp_c*agitation_rpm11.20121.20122.2170.1967
time_min*bath_ph11.20121.20122.2170.1967
time_min*agitation_rpm10.00120.00120.0020.9636
bath_ph*agitation_rpm10.36120.36120.6670.4513
Error(LenthPSE)52.70940.5419
Total75.10880.7298

Pareto Chart

Pareto chart for adhesion_score

Main Effects Plot

Main effects plot for adhesion_score

Normal Probability Plot of Effects

Normal probability plot for adhesion_score

Half-Normal Plot of Effects

Half-normal plot for adhesion_score

Model Diagnostics

Model diagnostics for adhesion_score

Response Surface Plots

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

adhesion score bath ph vs agitation rpm

RSM surface: adhesion score bath ph vs agitation rpm

adhesion score bath temp c vs agitation rpm

RSM surface: adhesion score bath temp c vs agitation rpm

adhesion score bath temp c vs bath ph

RSM surface: adhesion score bath temp c vs bath ph

adhesion score bath temp c vs time min

RSM surface: adhesion score bath temp c vs time min

adhesion score current density vs agitation rpm

RSM surface: adhesion score current density vs agitation rpm

adhesion score current density vs bath ph

RSM surface: adhesion score current density vs bath ph

adhesion score current density vs bath temp c

RSM surface: adhesion score current density vs bath temp c

adhesion score current density vs time min

RSM surface: adhesion score current density vs time min

adhesion score time min vs agitation rpm

RSM surface: adhesion score time min vs agitation rpm

adhesion score time min vs bath ph

RSM surface: adhesion score time min vs bath ph

thickness um bath ph vs agitation rpm

RSM surface: thickness um bath ph vs agitation rpm

thickness um bath temp c vs agitation rpm

RSM surface: thickness um bath temp c vs agitation rpm

thickness um bath temp c vs bath ph

RSM surface: thickness um bath temp c vs bath ph

thickness um bath temp c vs time min

RSM surface: thickness um bath temp c vs time min

thickness um current density vs agitation rpm

RSM surface: thickness um current density vs agitation rpm

thickness um current density vs bath ph

RSM surface: thickness um current density vs bath ph

thickness um current density vs bath temp c

RSM surface: thickness um current density vs bath temp c

thickness um current density vs time min

RSM surface: thickness um current density vs time min

thickness um time min vs agitation rpm

RSM surface: thickness um time min vs agitation rpm

thickness um time min vs bath ph

RSM surface: thickness um time min vs bath ph

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

Per-Response Desirability

ResponseWeightDesirabilityPredictedDir
thickness_um 1.0
0.9545
38.00 0.9545 38.00 um
adhesion_score 1.5
0.9545
4.40 0.9545 4.40 pts

Recommended Settings

FactorValue
current_density10 A/dm2
bath_temp_c20 C
time_min5 min
bath_ph5 pH
agitation_rpm200 rpm

Source: from observed run #4

Trade-off Summary

Sacrifice = how much worse than single-objective best.

ResponsePredictedBest ObservedSacrifice
adhesion_score4.404.40+0.00

Top 3 Runs by Desirability

RunDFactor Settings
#10.5614current_density=10, bath_temp_c=55, time_min=60, bath_ph=2, agitation_rpm=0
#20.4670current_density=1, bath_temp_c=55, time_min=5, bath_ph=5, agitation_rpm=0

Model Quality

ResponseType
adhesion_score0.9878linear

Full Multi-Objective Output

doe optimize --multi
============================================================ MULTI-OBJECTIVE OPTIMIZATION Method: Derringer-Suich Desirability Function ============================================================ Overall desirability: D = 0.9545 Response Weight Desirability Predicted Direction --------------------------------------------------------------------- thickness_um 1.0 0.9545 38.00 um ↑ adhesion_score 1.5 0.9545 4.40 pts ↑ Recommended settings: current_density = 10 A/dm2 bath_temp_c = 20 C time_min = 5 min bath_ph = 5 pH agitation_rpm = 200 rpm (from observed run #4) Trade-off summary: thickness_um: 38.00 (best observed: 38.00, sacrifice: +0.00) adhesion_score: 4.40 (best observed: 4.40, sacrifice: +0.00) Model quality: thickness_um: R² = 0.3325 (linear) adhesion_score: R² = 0.9878 (linear) Top 3 observed runs by overall desirability: 1. Run #4 (D=0.9545): current_density=10, bath_temp_c=20, time_min=5, bath_ph=5, agitation_rpm=200 2. Run #1 (D=0.5614): current_density=10, bath_temp_c=55, time_min=60, bath_ph=2, agitation_rpm=0 3. Run #2 (D=0.4670): current_density=1, bath_temp_c=55, time_min=5, bath_ph=5, agitation_rpm=0

Full Analysis Output

doe analyze
=== Main Effects: thickness_um === Factor Effect Std Error % Contribution -------------------------------------------------------------- current_density 20.0000 4.9785 44.4% time_min 15.0000 4.9785 33.3% bath_temp_c 8.0000 4.9785 17.8% bath_ph 1.5000 4.9785 3.3% agitation_rpm 0.5000 4.9785 1.1% === ANOVA Table: thickness_um === Source DF SS MS F p-value ----------------------------------------------------------------------------- current_density 1 800.0000 800.0000 213.333 0.0000 bath_temp_c 1 128.0000 128.0000 34.133 0.0021 time_min 1 450.0000 450.0000 120.000 0.0001 bath_ph 1 4.5000 4.5000 1.200 0.3233 agitation_rpm 1 0.5000 0.5000 0.133 0.7299 current_density*bath_temp_c 1 450.0000 450.0000 120.000 0.0001 current_density*time_min 1 128.0000 128.0000 34.133 0.0021 current_density*bath_ph 1 0.5000 0.5000 0.133 0.7299 current_density*agitation_rpm 1 4.5000 4.5000 1.200 0.3233 bath_temp_c*time_min 1 800.0000 800.0000 213.333 0.0000 bath_temp_c*bath_ph 1 0.5000 0.5000 0.133 0.7299 bath_temp_c*agitation_rpm 1 4.5000 4.5000 1.200 0.3233 time_min*bath_ph 1 4.5000 4.5000 1.200 0.3233 time_min*agitation_rpm 1 0.5000 0.5000 0.133 0.7299 bath_ph*agitation_rpm 1 800.0000 800.0000 213.333 0.0000 Error (Lenth PSE) 5 18.7500 3.7500 Total 7 1388.0000 198.2857 Note: Error estimated using Lenth's pseudo-standard-error (unreplicated design) === Interaction Effects: thickness_um === Factor A Factor B Interaction % Contribution ------------------------------------------------------------------------ bath_temp_c time_min 20.0000 29.0% bath_ph agitation_rpm 20.0000 29.0% current_density bath_temp_c 15.0000 21.7% current_density time_min 8.0000 11.6% current_density agitation_rpm 1.5000 2.2% bath_temp_c agitation_rpm 1.5000 2.2% time_min bath_ph 1.5000 2.2% current_density bath_ph 0.5000 0.7% bath_temp_c bath_ph -0.5000 0.7% time_min agitation_rpm -0.5000 0.7% === Summary Statistics: thickness_um === current_density: Level N Mean Std Min Max ------------------------------------------------------------ 1 4 5.0000 4.2426 1.0000 10.0000 10 4 25.0000 13.3417 13.0000 38.0000 bath_temp_c: Level N Mean Std Min Max ------------------------------------------------------------ 20 4 11.0000 3.1623 7.0000 14.0000 55 4 19.0000 20.2485 1.0000 38.0000 time_min: Level N Mean Std Min Max ------------------------------------------------------------ 5 4 7.5000 6.9522 1.0000 14.0000 60 4 22.5000 16.2583 7.0000 38.0000 bath_ph: Level N Mean Std Min Max ------------------------------------------------------------ 2 4 14.2500 14.5459 2.0000 35.0000 5 4 15.7500 15.7982 1.0000 38.0000 agitation_rpm: Level N Mean Std Min Max ------------------------------------------------------------ 0 4 14.7500 14.4309 1.0000 35.0000 200 4 15.2500 15.9452 2.0000 38.0000 === Main Effects: adhesion_score === Factor Effect Std Error % Contribution -------------------------------------------------------------- bath_temp_c 1.0250 0.3020 35.7% time_min -0.6250 0.3020 21.7% bath_ph 0.4750 0.3020 16.5% current_density 0.4250 0.3020 14.8% agitation_rpm 0.3250 0.3020 11.3% === ANOVA Table: adhesion_score === Source DF SS MS F p-value ----------------------------------------------------------------------------- current_density 1 0.3613 0.3613 0.667 0.4513 bath_temp_c 1 2.1012 2.1012 3.878 0.1060 time_min 1 0.7812 0.7812 1.442 0.2836 bath_ph 1 0.4513 0.4513 0.833 0.4033 agitation_rpm 1 0.2113 0.2113 0.390 0.5598 current_density*bath_temp_c 1 0.7813 0.7813 1.442 0.2836 current_density*time_min 1 2.1012 2.1012 3.878 0.1060 current_density*bath_ph 1 0.2112 0.2112 0.390 0.5598 current_density*agitation_rpm 1 0.4513 0.4513 0.833 0.4033 bath_temp_c*time_min 1 0.3613 0.3613 0.667 0.4513 bath_temp_c*bath_ph 1 0.0012 0.0012 0.002 0.9636 bath_temp_c*agitation_rpm 1 1.2012 1.2012 2.217 0.1967 time_min*bath_ph 1 1.2012 1.2012 2.217 0.1967 time_min*agitation_rpm 1 0.0012 0.0012 0.002 0.9636 bath_ph*agitation_rpm 1 0.3612 0.3612 0.667 0.4513 Error (Lenth PSE) 5 2.7094 0.5419 Total 7 5.1088 0.7298 Note: Error estimated using Lenth's pseudo-standard-error (unreplicated design) === Interaction Effects: adhesion_score === Factor A Factor B Interaction % Contribution ------------------------------------------------------------------------ current_density time_min 1.0250 20.9% bath_temp_c agitation_rpm 0.7750 15.8% time_min bath_ph 0.7750 15.8% current_density bath_temp_c -0.6250 12.8% current_density agitation_rpm 0.4750 9.7% bath_temp_c time_min 0.4250 8.7% bath_ph agitation_rpm 0.4250 8.7% current_density bath_ph 0.3250 6.6% bath_temp_c bath_ph 0.0250 0.5% time_min agitation_rpm 0.0250 0.5% === Summary Statistics: adhesion_score === current_density: Level N Mean Std Min Max ------------------------------------------------------------ 1 4 2.9750 1.0500 1.7000 4.1000 10 4 3.4000 0.6928 2.8000 4.4000 bath_temp_c: Level N Mean Std Min Max ------------------------------------------------------------ 20 4 2.6750 0.7089 1.7000 3.2000 55 4 3.7000 0.7071 2.8000 4.4000 time_min: Level N Mean Std Min Max ------------------------------------------------------------ 5 4 3.5000 0.4243 3.2000 4.1000 60 4 2.8750 1.1236 1.7000 4.4000 bath_ph: Level N Mean Std Min Max ------------------------------------------------------------ 2 4 2.9500 0.9950 1.7000 4.1000 5 4 3.4250 0.7500 2.6000 4.4000 agitation_rpm: Level N Mean Std Min Max ------------------------------------------------------------ 0 4 3.0250 0.4031 2.6000 3.5000 200 4 3.3500 1.2124 1.7000 4.4000

Optimization Recommendations

doe optimize
=== Optimization: thickness_um === Direction: maximize Best observed run: #4 current_density = 10 bath_temp_c = 20 time_min = 5 bath_ph = 5 agitation_rpm = 200 Value: 38.0 RSM Model (linear, R² = 0.7716, Adj R² = 0.2006): Coefficients: intercept +15.0000 current_density +2.0000 bath_temp_c -8.5000 time_min +3.0000 bath_ph +1.7500 agitation_rpm +6.7500 Predicted optimum (from linear model, at observed points): current_density = 10 bath_temp_c = 20 time_min = 5 bath_ph = 5 agitation_rpm = 200 Predicted value: 31.0000 Surface optimum (via L-BFGS-B, linear model): current_density = 10 bath_temp_c = 20 time_min = 60 bath_ph = 5 agitation_rpm = 200 Predicted value: 37.0000 Model quality: Good fit — general trends are captured, some noise remains. Factor importance: 1. bath_temp_c (effect: -17.0, contribution: 38.6%) 2. agitation_rpm (effect: 13.5, contribution: 30.7%) 3. time_min (effect: 6.0, contribution: 13.6%) 4. current_density (effect: 4.0, contribution: 9.1%) 5. bath_ph (effect: 3.5, contribution: 8.0%) === Optimization: adhesion_score === Direction: maximize Best observed run: #4 current_density = 10 bath_temp_c = 20 time_min = 5 bath_ph = 5 agitation_rpm = 200 Value: 4.4 RSM Model (linear, R² = 0.7822, Adj R² = 0.2378): Coefficients: intercept +3.1875 current_density -0.2125 bath_temp_c +0.1625 time_min -0.2375 bath_ph +0.5375 agitation_rpm +0.2875 Predicted optimum (from linear model, at observed points): current_density = 1 bath_temp_c = 55 time_min = 5 bath_ph = 5 agitation_rpm = 0 Predicted value: 4.0500 Surface optimum (via L-BFGS-B, linear model): current_density = 1 bath_temp_c = 55 time_min = 5 bath_ph = 5 agitation_rpm = 200 Predicted value: 4.6250 Model quality: Good fit — general trends are captured, some noise remains. Factor importance: 1. bath_ph (effect: 1.1, contribution: 37.4%) 2. agitation_rpm (effect: 0.6, contribution: 20.0%) 3. time_min (effect: -0.5, contribution: 16.5%) 4. current_density (effect: -0.4, contribution: 14.8%) 5. bath_temp_c (effect: 0.3, contribution: 11.3%)
← All Use Cases Next: Enzyme Kinetics Assay →