← All Use Cases
🔌
Central Composite Design

Linear Power Supply Regulation

Central composite design to maximize load regulation and minimize ripple by tuning transformer tap, filter capacitance, and regulator dropout

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

Experimental Setup

Factors

FactorLowHighUnit
transformer_v1224V
filter_uf100010000uF
dropout_v14V

Fixed: regulator = LM317, output = 12V

Responses

ResponseDirectionUnit
load_reg_pct↓ minimize%
ripple_mv↓ minimizemV_pp

Configuration

use_cases/280_power_supply_design/config.json
{ "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.

Runtransformer_vfilter_ufdropout_v
11855002.5
22410004
312100001
41813715.82.5
51855002.5
67.0455555002.5
7185500-0.238613
81855002.5
924100001
1028.954555002.5
111855002.5
1218-2715.842.5
131855002.5
141210004
151855002.5
162410001
171855005.23861
1824100004
191855002.5
201210001
2112100004
221855002.5

Step-by-Step Workflow

1

Preview the design

Terminal
$ doe info --config use_cases/280_power_supply_design/config.json
2

Generate the runner script

Terminal
$ 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

Terminal
$ bash use_cases/280_power_supply_design/results/run.sh
4

Analyze results

Terminal
$ doe analyze --config use_cases/280_power_supply_design/config.json
5

Get optimization recommendations

Terminal
$ 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.

Terminal
$ doe optimize --config use_cases/280_power_supply_design/config.json --multi
7

Generate the HTML report

Terminal
$ doe report --config use_cases/280_power_supply_design/config.json \ --output use_cases/280_power_supply_design/results/report.html

Features Exercised

FeatureValue
Design typecentral_composite
Factor typescontinuous (all 3)
Arg styledouble-dash
Responses2 (load_reg_pct ↓, ripple_mv ↓)
Total runs22

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

SourceDFSSMSFp-value
SourceDFSSMSFp-value
transformer_v40.25270.06323.0720.0747
filter_uf40.05050.01260.6140.6631
dropout_v40.24020.06002.9200.0838
LackofFit20.17350.0868
PureError70.1439
Error90.31750.0206
Total210.86090.0410

Pareto Chart

Pareto chart for load_reg_pct

Main Effects Plot

Main effects plot for load_reg_pct

Normal Probability Plot of Effects

Normal probability plot for load_reg_pct

Half-Normal Plot of Effects

Half-normal plot for load_reg_pct

Model Diagnostics

Model diagnostics for load_reg_pct

Response: ripple_mv

Top factors: transformer_v (37.3%), filter_uf (35.6%), dropout_v (27.1%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
transformer_v4970.2500242.56252.8130.0910
filter_uf41146.5000286.62503.3250.0621
dropout_v4671.5833167.89581.9470.1867
LackofFit2998.1667499.0833
PureError7603.5000
Error91601.666786.2143
Total214390.0000209.0476

Pareto Chart

Pareto chart for ripple_mv

Main Effects Plot

Main effects plot for ripple_mv

Normal Probability Plot of Effects

Normal probability plot for ripple_mv

Half-Normal Plot of Effects

Half-normal plot for ripple_mv

Model Diagnostics

Model diagnostics for ripple_mv

Response Surface Plots

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

load reg pct filter uf vs dropout v

RSM surface: load reg pct filter uf vs dropout v

load reg pct transformer v vs dropout v

RSM surface: load reg pct transformer v vs dropout v

load reg pct transformer v vs filter uf

RSM surface: load reg pct transformer v vs filter uf

ripple mv filter uf vs dropout v

RSM surface: ripple mv filter uf vs dropout v

ripple mv transformer v vs dropout v

RSM surface: ripple mv transformer v vs dropout v

ripple mv transformer v vs filter uf

RSM surface: 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

ResponseWeightDesirabilityPredictedDir
load_reg_pct 1.5
0.9545
0.26 0.9545 0.26 %
ripple_mv 1.0
0.9386
32.00 0.9386 32.00 mV_pp

Recommended Settings

FactorValue
transformer_v12 V
filter_uf10000 uF
dropout_v1 V

Source: from observed run #9

Trade-off Summary

Sacrifice = how much worse than single-objective best.

ResponsePredictedBest ObservedSacrifice
ripple_mv32.0031.00+1.00

Top 3 Runs by Desirability

RunDFactor Settings
#70.8301transformer_v=18, filter_uf=5500, dropout_v=5.23861
#40.7947transformer_v=18, filter_uf=5500, dropout_v=2.5

Model Quality

ResponseType
ripple_mv0.4076quadratic

Full Multi-Objective Output

doe optimize --multi
============================================================ 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

doe analyze
=== 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

doe optimize
=== 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%)
← All Use Cases Next: Watercolor Wash Technique →