← All Use Cases
🔌
Central Composite Design

PCB Soldering Parameters

Central composite design to maximize joint quality and minimize bridging by tuning iron temperature, contact time, and solder wire diameter

Summary

This experiment investigates pcb soldering parameters. Central composite design to maximize joint quality and minimize bridging by tuning iron temperature, contact time, and solder wire diameter.

The design varies 3 factors: iron temp c (C), ranging from 280 to 380, contact sec (sec), ranging from 1 to 5, and solder mm (mm), ranging from 0.5 to 1.2. The goal is to optimize 2 responses: joint quality (pts) (maximize) and bridge rate (per_100) (minimize). Fixed conditions held constant across all runs include flux = rosin, tip = chisel_2mm.

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 joint quality, the most influential factors were iron temp c (43.9%), solder mm (29.3%), contact sec (26.8%). The best observed value was 7.3 (at iron temp c = 280, contact sec = 5, solder mm = 1.2).

For bridge rate, the most influential factors were solder mm (49.8%), iron temp c (28.2%), contact sec (22.0%). The best observed value was 1.4 (at iron temp c = 330, contact sec = 3, solder mm = 0.85).

Recommended Next Steps

Experimental Setup

Factors

FactorLowHighUnit
iron_temp_c280380C
contact_sec15sec
solder_mm0.51.2mm

Fixed: flux = rosin, tip = chisel_2mm

Responses

ResponseDirectionUnit
joint_quality↑ maximizepts
bridge_rate↓ minimizeper_100

Configuration

use_cases/272_pcb_soldering/config.json
{ "metadata": { "name": "PCB Soldering Parameters", "description": "Central composite design to maximize joint quality and minimize bridging by tuning iron temperature, contact time, and solder wire diameter" }, "factors": [ { "name": "iron_temp_c", "levels": [ "280", "380" ], "type": "continuous", "unit": "C" }, { "name": "contact_sec", "levels": [ "1", "5" ], "type": "continuous", "unit": "sec" }, { "name": "solder_mm", "levels": [ "0.5", "1.2" ], "type": "continuous", "unit": "mm" } ], "fixed_factors": { "flux": "rosin", "tip": "chisel_2mm" }, "responses": [ { "name": "joint_quality", "optimize": "maximize", "unit": "pts" }, { "name": "bridge_rate", "optimize": "minimize", "unit": "per_100" } ], "settings": { "operation": "central_composite", "test_script": "use_cases/272_pcb_soldering/sim.sh" } }

Experimental Matrix

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

Runiron_temp_ccontact_secsolder_mm
133030.85
238011.2
328050.5
43306.651480.85
533030.85
6238.71330.85
733030.21099
833030.85
938050.5
10421.28730.85
1133030.85
12330-0.6514840.85
1333030.85
1428011.2
1533030.85
1638010.5
1733031.48901
1838051.2
1933030.85
2028010.5
2128051.2
2233030.85

Step-by-Step Workflow

1

Preview the design

Terminal
$ doe info --config use_cases/272_pcb_soldering/config.json
2

Generate the runner script

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

Execute the experiments

Terminal
$ bash use_cases/272_pcb_soldering/results/run.sh
4

Analyze results

Terminal
$ doe analyze --config use_cases/272_pcb_soldering/config.json
5

Get optimization recommendations

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

Generate the HTML report

Terminal
$ doe report --config use_cases/272_pcb_soldering/config.json \ --output use_cases/272_pcb_soldering/results/report.html

Features Exercised

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

Analysis Results

Generated from actual experiment runs using the DOE Helper Tool.

Response: joint_quality

Top factors: iron_temp_c (43.9%), solder_mm (29.3%), contact_sec (26.8%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
iron_temp_c48.29042.07261.0550.4317
contact_sec42.89040.72260.3680.8258
solder_mm44.95201.23800.6300.6532
LackofFit21.44800.7240
PureError713.7487
Error915.19671.9641
Total2131.32951.4919

Pareto Chart

Pareto chart for joint_quality

Main Effects Plot

Main effects plot for joint_quality

Normal Probability Plot of Effects

Normal probability plot for joint_quality

Half-Normal Plot of Effects

Half-normal plot for joint_quality

Model Diagnostics

Model diagnostics for joint_quality

Response: bridge_rate

Top factors: solder_mm (49.8%), iron_temp_c (28.2%), contact_sec (22.0%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
iron_temp_c43.24360.81090.9340.4864
contact_sec41.16700.29170.3360.8471
solder_mm45.16701.29171.4880.2844
LackofFit24.06732.0337
PureError76.0787
Error910.14610.8684
Total2119.72360.9392

Pareto Chart

Pareto chart for bridge_rate

Main Effects Plot

Main effects plot for bridge_rate

Normal Probability Plot of Effects

Normal probability plot for bridge_rate

Half-Normal Plot of Effects

Half-normal plot for bridge_rate

Model Diagnostics

Model diagnostics for bridge_rate

Response Surface Plots

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

bridge rate contact sec vs solder mm

RSM surface: bridge rate contact sec vs solder mm

bridge rate iron temp c vs contact sec

RSM surface: bridge rate iron temp c vs contact sec

bridge rate iron temp c vs solder mm

RSM surface: bridge rate iron temp c vs solder mm

joint quality contact sec vs solder mm

RSM surface: joint quality contact sec vs solder mm

joint quality iron temp c vs contact sec

RSM surface: joint quality iron temp c vs contact sec

joint quality iron temp c vs solder mm

RSM surface: joint quality iron temp c vs solder mm

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

Per-Response Desirability

ResponseWeightDesirabilityPredictedDir
joint_quality 1.5
0.9091
7.10 0.9091 7.10 pts
bridge_rate 1.0
0.6435
2.70 0.6435 2.70 per_100

Recommended Settings

FactorValue
iron_temp_c330 C
contact_sec3 sec
solder_mm1.48901 mm

Source: from observed run #22

Trade-off Summary

Sacrifice = how much worse than single-objective best.

ResponsePredictedBest ObservedSacrifice
bridge_rate2.701.40+1.30

Top 3 Runs by Desirability

RunDFactor Settings
#50.7678iron_temp_c=330, contact_sec=3, solder_mm=0.85
#150.7562iron_temp_c=330, contact_sec=3, solder_mm=0.85

Model Quality

ResponseType
bridge_rate0.2496linear

Full Multi-Objective Output

doe optimize --multi
============================================================ MULTI-OBJECTIVE OPTIMIZATION Method: Derringer-Suich Desirability Function ============================================================ Overall desirability: D = 0.7918 Response Weight Desirability Predicted Direction --------------------------------------------------------------------- joint_quality 1.5 0.9091 7.10 pts ↑ bridge_rate 1.0 0.6435 2.70 per_100 ↓ Recommended settings: iron_temp_c = 330 C contact_sec = 3 sec solder_mm = 1.48901 mm (from observed run #22) Trade-off summary: joint_quality: 7.10 (best observed: 7.30, sacrifice: +0.20) bridge_rate: 2.70 (best observed: 1.40, sacrifice: +1.30) Model quality: joint_quality: R² = 0.5317 (quadratic) bridge_rate: R² = 0.2496 (linear) Top 3 observed runs by overall desirability: 1. Run #22 (D=0.7918): iron_temp_c=330, contact_sec=3, solder_mm=1.48901 2. Run #5 (D=0.7678): iron_temp_c=330, contact_sec=3, solder_mm=0.85 3. Run #15 (D=0.7562): iron_temp_c=330, contact_sec=3, solder_mm=0.85

Full Analysis Output

doe analyze
=== Main Effects: joint_quality === Factor Effect Std Error % Contribution -------------------------------------------------------------- iron_temp_c 3.6000 0.2604 43.9% solder_mm 2.4000 0.2604 29.3% contact_sec 2.2000 0.2604 26.8% === ANOVA Table: joint_quality === Source DF SS MS F p-value ----------------------------------------------------------------------------- iron_temp_c 4 8.2904 2.0726 1.055 0.4317 contact_sec 4 2.8904 0.7226 0.368 0.8258 solder_mm 4 4.9520 1.2380 0.630 0.6532 Lack of Fit 2 1.4480 0.7240 0.369 0.7044 Pure Error 7 13.7487 1.9641 Error 9 15.1967 1.9641 Total 21 31.3295 1.4919 === Summary Statistics: joint_quality === iron_temp_c: Level N Mean Std Min Max ------------------------------------------------------------ 238.713 1 6.9000 0.0000 6.9000 6.9000 280 4 6.1000 0.5477 5.5000 6.7000 330 12 6.1083 1.3215 4.0000 7.3000 380 4 6.0500 0.9883 5.1000 7.0000 421.287 1 3.3000 0.0000 3.3000 3.3000 contact_sec: Level N Mean Std Min Max ------------------------------------------------------------ -0.651484 1 4.9000 0.0000 4.9000 4.9000 1 4 6.3000 0.8367 5.1000 7.0000 3 12 5.9583 1.5078 3.3000 7.3000 5 4 5.8500 0.6658 5.3000 6.8000 6.65148 1 7.1000 0.0000 7.1000 7.1000 solder_mm: Level N Mean Std Min Max ------------------------------------------------------------ 0.21099 1 4.7000 0.0000 4.7000 4.7000 0.5 4 6.5750 0.5315 5.8000 7.0000 0.85 12 5.9750 1.4937 3.3000 7.3000 1.2 4 5.5750 0.5737 5.1000 6.4000 1.48901 1 7.1000 0.0000 7.1000 7.1000 === Main Effects: bridge_rate === Factor Effect Std Error % Contribution -------------------------------------------------------------- solder_mm 2.2083 0.2066 49.8% iron_temp_c 1.2500 0.2066 28.2% contact_sec 0.9750 0.2066 22.0% === ANOVA Table: bridge_rate === Source DF SS MS F p-value ----------------------------------------------------------------------------- iron_temp_c 4 3.2436 0.8109 0.934 0.4864 contact_sec 4 1.1670 0.2917 0.336 0.8471 solder_mm 4 5.1670 1.2917 1.488 0.2844 Lack of Fit 2 4.0673 2.0337 2.342 0.1665 Pure Error 7 6.0787 0.8684 Error 9 10.1461 0.8684 Total 21 19.7236 0.9392 === Summary Statistics: bridge_rate === iron_temp_c: Level N Mean Std Min Max ------------------------------------------------------------ 238.713 1 2.8000 0.0000 2.8000 2.8000 280 4 4.0500 0.8266 3.1000 5.0000 330 12 3.1750 0.9845 2.0000 5.2000 380 4 2.9250 1.1206 1.4000 4.1000 421.287 1 3.2000 0.0000 3.2000 3.2000 contact_sec: Level N Mean Std Min Max ------------------------------------------------------------ -0.651484 1 2.9000 0.0000 2.9000 2.9000 1 4 3.6750 0.6752 3.1000 4.4000 3 12 3.2083 0.9765 2.0000 5.2000 5 4 3.3000 1.4944 1.4000 5.0000 6.65148 1 2.7000 0.0000 2.7000 2.7000 solder_mm: Level N Mean Std Min Max ------------------------------------------------------------ 0.21099 1 3.0000 0.0000 3.0000 3.0000 0.5 4 3.5750 0.9500 3.1000 5.0000 0.85 12 2.9917 0.7549 2.0000 5.1000 1.2 4 3.4000 1.3638 1.4000 4.4000 1.48901 1 5.2000 0.0000 5.2000 5.2000

Optimization Recommendations

doe optimize
=== Optimization: joint_quality === Direction: maximize Best observed run: #1 iron_temp_c = 280 contact_sec = 5 solder_mm = 1.2 Value: 7.3 RSM Model (linear, R² = 0.2412, Adj R² = 0.1148): Coefficients: intercept +6.0045 iron_temp_c -0.2460 contact_sec +0.1672 solder_mm +0.6533 RSM Model (quadratic, R² = 0.4625, Adj R² = 0.0594): Coefficients: intercept +5.6019 iron_temp_c -0.2460 contact_sec +0.1672 solder_mm +0.6533 iron_temp_c*contact_sec +0.4750 iron_temp_c*solder_mm +0.4000 contact_sec*solder_mm +0.0750 iron_temp_c^2 +0.1263 contact_sec^2 +0.4263 solder_mm^2 +0.0513 Curvature analysis: contact_sec coef=+0.4263 convex (has a minimum) iron_temp_c coef=+0.1263 convex (has a minimum) solder_mm coef=+0.0513 negligible curvature Notable interactions: iron_temp_c*contact_sec coef=+0.4750 (synergistic) iron_temp_c*solder_mm coef=+0.4000 (synergistic) Predicted optimum (from linear model, at observed points): iron_temp_c = 330 contact_sec = 3 solder_mm = 1.48901 Predicted value: 7.1973 Surface optimum (via L-BFGS-B, linear model): iron_temp_c = 280 contact_sec = 5 solder_mm = 1.2 Predicted value: 7.0711 Model quality: Weak fit — consider adding center points or using a different design. Factor importance: 1. solder_mm (effect: 2.4, contribution: 47.3%) 2. contact_sec (effect: 1.6, contribution: 31.0%) 3. iron_temp_c (effect: 1.1, contribution: 21.7%) === Optimization: bridge_rate === Direction: minimize Best observed run: #7 iron_temp_c = 330 contact_sec = 3 solder_mm = 0.85 Value: 1.4 RSM Model (linear, R² = 0.0124, Adj R² = -0.1522): Coefficients: intercept +3.2727 iron_temp_c -0.0655 contact_sec -0.0785 solder_mm +0.0786 RSM Model (quadratic, R² = 0.4649, Adj R² = 0.0636): Coefficients: intercept +2.7109 iron_temp_c -0.0655 contact_sec -0.0785 solder_mm +0.0786 iron_temp_c*contact_sec +0.5125 iron_temp_c*solder_mm -0.0375 contact_sec*solder_mm -0.2375 iron_temp_c^2 +0.1259 contact_sec^2 +0.5459 solder_mm^2 +0.1709 Curvature analysis: contact_sec coef=+0.5459 convex (has a minimum) solder_mm coef=+0.1709 convex (has a minimum) iron_temp_c coef=+0.1259 convex (has a minimum) Notable interactions: iron_temp_c*contact_sec coef=+0.5125 (synergistic) Predicted optimum (from quadratic model, at observed points): iron_temp_c = 330 contact_sec = -0.651484 solder_mm = 0.85 Predicted value: 4.6740 Surface optimum (via L-BFGS-B, quadratic model): iron_temp_c = 380 contact_sec = 2.00194 solder_mm = 0.686607 Predicted value: 2.6534 Model quality: Weak fit — consider adding center points or using a different design. Factor importance: 1. contact_sec (effect: 2.4, contribution: 43.6%) 2. iron_temp_c (effect: 1.7, contribution: 30.5%) 3. solder_mm (effect: 1.4, contribution: 25.9%)
← Previous: LED Strip Installation All Use Cases →