Summary
This experiment investigates linear power supply regulation. Central composite design to maximize load regulation and minimize ripple by tuning transformer tap, filter capacitance, and regulator dropout.
The design varies 3 factors: transformer v (V), ranging from 12 to 24, filter uf (uF), ranging from 1000 to 10000, and dropout v (V), ranging from 1 to 4. The goal is to optimize 2 responses: load reg pct (%) (minimize) and ripple mv (mV_pp) (minimize). Fixed conditions held constant across all runs include regulator = LM317, output = 12V.
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 load reg pct, the most influential factors were transformer v (50.2%), dropout v (32.1%), filter uf (17.7%). The best observed value was 0.26 (at transformer v = 24, filter uf = 10000, dropout v = 1).
For ripple mv, the most influential factors were transformer v (37.3%), filter uf (35.6%), dropout v (27.1%). The best observed value was 31.0 (at transformer v = 12, filter uf = 1000, dropout v = 4).
Recommended Next Steps
- Run confirmation experiments at the predicted optimal settings to validate the model.
- Consider whether any fixed factors should be varied in a future study.
Experimental Setup
Factors
| Factor | Low | High | Unit |
transformer_v | 12 | 24 | V |
filter_uf | 1000 | 10000 | uF |
dropout_v | 1 | 4 | V |
Fixed: regulator = LM317, output = 12V
Responses
| Response | Direction | Unit |
load_reg_pct | ↓ minimize | % |
ripple_mv | ↓ minimize | mV_pp |
Configuration
{
"metadata": {
"name": "Linear Power Supply Regulation",
"description": "Central composite design to maximize load regulation and minimize ripple by tuning transformer tap, filter capacitance, and regulator dropout"
},
"factors": [
{
"name": "transformer_v",
"levels": [
"12",
"24"
],
"type": "continuous",
"unit": "V"
},
{
"name": "filter_uf",
"levels": [
"1000",
"10000"
],
"type": "continuous",
"unit": "uF"
},
{
"name": "dropout_v",
"levels": [
"1",
"4"
],
"type": "continuous",
"unit": "V"
}
],
"fixed_factors": {
"regulator": "LM317",
"output": "12V"
},
"responses": [
{
"name": "load_reg_pct",
"optimize": "minimize",
"unit": "%"
},
{
"name": "ripple_mv",
"optimize": "minimize",
"unit": "mV_pp"
}
],
"settings": {
"operation": "central_composite",
"test_script": "use_cases/280_power_supply_design/sim.sh"
}
}
Experimental Matrix
The Central Composite Design produces 22 runs. Each row is one experiment with specific factor settings.
| Run | transformer_v | filter_uf | dropout_v |
| 1 | 18 | 5500 | 2.5 |
| 2 | 24 | 1000 | 4 |
| 3 | 12 | 10000 | 1 |
| 4 | 18 | 13715.8 | 2.5 |
| 5 | 18 | 5500 | 2.5 |
| 6 | 7.04555 | 5500 | 2.5 |
| 7 | 18 | 5500 | -0.238613 |
| 8 | 18 | 5500 | 2.5 |
| 9 | 24 | 10000 | 1 |
| 10 | 28.9545 | 5500 | 2.5 |
| 11 | 18 | 5500 | 2.5 |
| 12 | 18 | -2715.84 | 2.5 |
| 13 | 18 | 5500 | 2.5 |
| 14 | 12 | 1000 | 4 |
| 15 | 18 | 5500 | 2.5 |
| 16 | 24 | 1000 | 1 |
| 17 | 18 | 5500 | 5.23861 |
| 18 | 24 | 10000 | 4 |
| 19 | 18 | 5500 | 2.5 |
| 20 | 12 | 1000 | 1 |
| 21 | 12 | 10000 | 4 |
| 22 | 18 | 5500 | 2.5 |
Step-by-Step Workflow
1
Preview the design
$ doe info --config use_cases/280_power_supply_design/config.json
2
Generate the runner script
$ doe generate --config use_cases/280_power_supply_design/config.json \
--output use_cases/280_power_supply_design/results/run.sh --seed 42
3
Execute the experiments
$ bash use_cases/280_power_supply_design/results/run.sh
4
Analyze results
$ doe analyze --config use_cases/280_power_supply_design/config.json
5
Get optimization recommendations
$ doe optimize --config use_cases/280_power_supply_design/config.json
6
Multi-objective optimization
With 2 competing responses, use --multi to find the best compromise via Derringer–Suich desirability.
$ doe optimize --config use_cases/280_power_supply_design/config.json --multi
7
Generate the HTML report
$ doe report --config use_cases/280_power_supply_design/config.json \
--output use_cases/280_power_supply_design/results/report.html
Features Exercised
| Feature | Value |
| Design type | central_composite |
| Factor types | continuous (all 3) |
| Arg style | double-dash |
| Responses | 2 (load_reg_pct ↓, ripple_mv ↓) |
| Total runs | 22 |
Analysis Results
Generated from actual experiment runs using the DOE Helper Tool.
Response: load_reg_pct
Top factors: transformer_v (50.2%), dropout_v (32.1%), filter_uf (17.7%).
ANOVA
| Source | DF | SS | MS | F | p-value |
| Source | DF | SS | MS | F | p-value |
| transformer_v | 4 | 0.2527 | 0.0632 | 3.072 | 0.0747 |
| filter_uf | 4 | 0.0505 | 0.0126 | 0.614 | 0.6631 |
| dropout_v | 4 | 0.2402 | 0.0600 | 2.920 | 0.0838 |
| Lack | of | Fit | 2 | 0.1735 | 0.0868 |
| Pure | Error | 7 | 0.1439 | | |
| Error | 9 | 0.3175 | 0.0206 | | |
| Total | 21 | 0.8609 | 0.0410 | | |
Pareto Chart
Main Effects Plot
Normal Probability Plot of Effects
Half-Normal Plot of Effects
Model Diagnostics
Response: ripple_mv
Top factors: transformer_v (37.3%), filter_uf (35.6%), dropout_v (27.1%).
ANOVA
| Source | DF | SS | MS | F | p-value |
| Source | DF | SS | MS | F | p-value |
| transformer_v | 4 | 970.2500 | 242.5625 | 2.813 | 0.0910 |
| filter_uf | 4 | 1146.5000 | 286.6250 | 3.325 | 0.0621 |
| dropout_v | 4 | 671.5833 | 167.8958 | 1.947 | 0.1867 |
| Lack | of | Fit | 2 | 998.1667 | 499.0833 |
| Pure | Error | 7 | 603.5000 | | |
| Error | 9 | 1601.6667 | 86.2143 | | |
| Total | 21 | 4390.0000 | 209.0476 | | |
Pareto Chart
Main Effects Plot
Normal Probability Plot of Effects
Half-Normal Plot of Effects
Model Diagnostics
Response Surface Plots
3D surfaces fitted with quadratic RSM. Red dots are observed data points.
load reg pct filter uf vs dropout v
load reg pct transformer v vs dropout v
load reg pct transformer v vs filter uf
ripple mv filter uf vs dropout v
ripple mv transformer v vs dropout v
ripple mv transformer v vs filter uf
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.9481
Per-Response Desirability
| Response | Weight | Desirability | Predicted | Dir |
load_reg_pct |
1.5 |
|
0.26 0.9545 0.26 % |
↓ |
ripple_mv |
1.0 |
|
32.00 0.9386 32.00 mV_pp |
↓ |
Recommended Settings
| Factor | Value |
transformer_v | 12 V |
filter_uf | 10000 uF |
dropout_v | 1 V |
Source: from observed run #9
Trade-off Summary
Sacrifice = how much worse than single-objective best.
| Response | Predicted | Best Observed | Sacrifice |
ripple_mv | 32.00 | 31.00 | +1.00 |
Top 3 Runs by Desirability
| Run | D | Factor Settings |
| #7 | 0.8301 | transformer_v=18, filter_uf=5500, dropout_v=5.23861 |
| #4 | 0.7947 | transformer_v=18, filter_uf=5500, dropout_v=2.5 |
Model Quality
| Response | R² | Type |
ripple_mv | 0.4076 | quadratic |
Full Multi-Objective Output
============================================================
MULTI-OBJECTIVE OPTIMIZATION
Method: Derringer-Suich Desirability Function
============================================================
Overall desirability: D = 0.9481
Response Weight Desirability Predicted Direction
---------------------------------------------------------------------
load_reg_pct 1.5 0.9545 0.26 % ↓
ripple_mv 1.0 0.9386 32.00 mV_pp ↓
Recommended settings:
transformer_v = 12 V
filter_uf = 10000 uF
dropout_v = 1 V
(from observed run #9)
Trade-off summary:
load_reg_pct: 0.26 (best observed: 0.26, sacrifice: +0.00)
ripple_mv: 32.00 (best observed: 31.00, sacrifice: +1.00)
Model quality:
load_reg_pct: R² = 0.6169 (quadratic)
ripple_mv: R² = 0.4076 (quadratic)
Top 3 observed runs by overall desirability:
1. Run #9 (D=0.9481): transformer_v=12, filter_uf=10000, dropout_v=1
2. Run #7 (D=0.8301): transformer_v=18, filter_uf=5500, dropout_v=5.23861
3. Run #4 (D=0.7947): transformer_v=18, filter_uf=5500, dropout_v=2.5
Full Analysis Output
=== Main Effects: load_reg_pct ===
Factor Effect Std Error % Contribution
--------------------------------------------------------------
transformer_v 0.6800 0.0432 50.2%
dropout_v 0.4350 0.0432 32.1%
filter_uf 0.2400 0.0432 17.7%
=== ANOVA Table: load_reg_pct ===
Source DF SS MS F p-value
-----------------------------------------------------------------------------
transformer_v 4 0.2527 0.0632 3.072 0.0747
filter_uf 4 0.0505 0.0126 0.614 0.6631
dropout_v 4 0.2402 0.0600 2.920 0.0838
Lack of Fit 2 0.1735 0.0868 4.220 0.0628
Pure Error 7 0.1439 0.0206
Error 9 0.3175 0.0206
Total 21 0.8609 0.0410
=== Summary Statistics: load_reg_pct ===
transformer_v:
Level N Mean Std Min Max
------------------------------------------------------------
12 4 0.6075 0.3201 0.2600 1.0200
18 12 0.5767 0.1586 0.3800 0.8700
24 4 0.5175 0.0892 0.4600 0.6500
28.9545 1 0.2800 0.0000 0.2800 0.2800
7.04555 1 0.9600 0.0000 0.9600 0.9600
filter_uf:
Level N Mean Std Min Max
------------------------------------------------------------
-2715.84 1 0.7500 0.0000 0.7500 0.7500
1000 4 0.5200 0.0942 0.4600 0.6600
10000 4 0.6050 0.3196 0.2600 1.0200
13715.8 1 0.5100 0.0000 0.5100 0.5100
5500 12 0.5750 0.2083 0.2800 0.9600
dropout_v:
Level N Mean Std Min Max
------------------------------------------------------------
-0.238613 1 0.5000 0.0000 0.5000 0.5000
1 4 0.7000 0.2305 0.4700 1.0200
2.5 12 0.5667 0.1964 0.2800 0.9600
4 4 0.4250 0.1109 0.2600 0.4900
5.23861 1 0.8600 0.0000 0.8600 0.8600
=== Main Effects: ripple_mv ===
Factor Effect Std Error % Contribution
--------------------------------------------------------------
transformer_v 32.7500 3.0826 37.3%
filter_uf 31.2500 3.0826 35.6%
dropout_v 23.7500 3.0826 27.1%
=== ANOVA Table: ripple_mv ===
Source DF SS MS F p-value
-----------------------------------------------------------------------------
transformer_v 4 970.2500 242.5625 2.813 0.0910
filter_uf 4 1146.5000 286.6250 3.325 0.0621
dropout_v 4 671.5833 167.8958 1.947 0.1867
Lack of Fit 2 998.1667 499.0833 5.789 0.0328
Pure Error 7 603.5000 86.2143
Error 9 1601.6667 86.2143
Total 21 4390.0000 209.0476
=== Summary Statistics: ripple_mv ===
transformer_v:
Level N Mean Std Min Max
------------------------------------------------------------
12 4 45.2500 12.6326 32.0000 60.0000
18 12 55.7500 10.1276 47.0000 74.0000
24 4 53.2500 24.5815 31.0000 88.0000
28.9545 1 47.0000 0.0000 47.0000 47.0000
7.04555 1 78.0000 0.0000 78.0000 78.0000
filter_uf:
Level N Mean Std Min Max
------------------------------------------------------------
-2715.84 1 72.0000 0.0000 72.0000 72.0000
1000 4 40.7500 8.4212 31.0000 51.0000
10000 4 57.7500 23.3006 32.0000 88.0000
13715.8 1 50.0000 0.0000 50.0000 50.0000
5500 12 56.0000 11.2896 47.0000 78.0000
dropout_v:
Level N Mean Std Min Max
------------------------------------------------------------
-0.238613 1 49.0000 0.0000 49.0000 49.0000
1 4 54.2500 25.6694 31.0000 88.0000
2.5 12 56.4167 11.6733 47.0000 78.0000
4 4 44.2500 8.9954 32.0000 51.0000
5.23861 1 68.0000 0.0000 68.0000 68.0000
Optimization Recommendations
=== Optimization: load_reg_pct ===
Direction: minimize
Best observed run: #9
transformer_v = 24
filter_uf = 10000
dropout_v = 1
Value: 0.26
RSM Model (linear, R² = 0.0392, Adj R² = -0.1209):
Coefficients:
intercept +0.5755
transformer_v +0.0330
filter_uf -0.0276
dropout_v +0.0212
RSM Model (quadratic, R² = 0.3397, Adj R² = -0.1556):
Coefficients:
intercept +0.6757
transformer_v +0.0330
filter_uf -0.0276
dropout_v +0.0212
transformer_v*filter_uf -0.0025
transformer_v*dropout_v +0.0650
filter_uf*dropout_v +0.1000
transformer_v^2 -0.0651
filter_uf^2 -0.0576
dropout_v^2 -0.0276
Curvature analysis:
transformer_v coef=-0.0651 negligible curvature
filter_uf coef=-0.0576 negligible curvature
dropout_v coef=-0.0276 negligible curvature
Predicted optimum (from linear model, at observed points):
transformer_v = 24
filter_uf = 1000
dropout_v = 4
Predicted value: 0.6573
Surface optimum (via L-BFGS-B, linear model):
transformer_v = 12
filter_uf = 10000
dropout_v = 1
Predicted value: 0.4936
Model quality: Weak fit — consider adding center points or using a different design.
Factor importance:
1. transformer_v (effect: 0.2, contribution: 42.5%)
2. dropout_v (effect: 0.2, contribution: 29.5%)
3. filter_uf (effect: 0.2, contribution: 27.9%)
=== Optimization: ripple_mv ===
Direction: minimize
Best observed run: #4
transformer_v = 12
filter_uf = 1000
dropout_v = 4
Value: 31.0
RSM Model (linear, R² = 0.0623, Adj R² = -0.0940):
Coefficients:
intercept +54.0000
transformer_v +2.6648
filter_uf -0.7087
dropout_v -3.3228
RSM Model (quadratic, R² = 0.5749, Adj R² = 0.2561):
Coefficients:
intercept +64.4605
transformer_v +2.6648
filter_uf -0.7087
dropout_v -3.3228
transformer_v*filter_uf -6.3750
transformer_v*dropout_v +2.6250
filter_uf*dropout_v +6.6250
transformer_v^2 -3.2802
filter_uf^2 -5.8303
dropout_v^2 -6.5803
Curvature analysis:
dropout_v coef=-6.5803 concave (has a maximum)
filter_uf coef=-5.8303 concave (has a maximum)
transformer_v coef=-3.2802 concave (has a maximum)
Notable interactions:
filter_uf*dropout_v coef=+6.6250 (synergistic)
transformer_v*filter_uf coef=-6.3750 (antagonistic)
transformer_v*dropout_v coef=+2.6250 (synergistic)
Predicted optimum (from quadratic model, at observed points):
transformer_v = 24
filter_uf = 1000
dropout_v = 1
Predicted value: 65.8410
Surface optimum (via L-BFGS-B, quadratic model):
transformer_v = 12
filter_uf = 1000
dropout_v = 4
Predicted value: 27.8658
Model quality: Moderate fit — use predictions directionally, not precisely.
Factor importance:
1. dropout_v (effect: 22.2, contribution: 40.2%)
2. filter_uf (effect: 16.8, contribution: 30.4%)
3. transformer_v (effect: 16.2, contribution: 29.5%)