← All Use Cases
🐄
Central Composite Design

Sheep Shearing Technique

Central composite design to maximize wool quality and minimize nicks by tuning comb tooth count, cutter speed, and blow angle

Summary

This experiment investigates sheep shearing technique. Central composite design to maximize wool quality and minimize nicks by tuning comb tooth count, cutter speed, and blow angle.

The design varies 3 factors: comb teeth (teeth), ranging from 9 to 17, cutter rpm (rpm), ranging from 2000 to 3500, and blow angle deg (deg), ranging from 10 to 40. The goal is to optimize 2 responses: staple length cm (cm) (maximize) and nick count (per_sheep) (minimize). Fixed conditions held constant across all runs include breed = merino, season = spring.

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 staple length cm, the most influential factors were blow angle deg (34.4%), comb teeth (34.4%), cutter rpm (31.3%). The best observed value was 9.2 (at comb teeth = 13, cutter rpm = 2750, blow angle deg = 25).

For nick count, the most influential factors were blow angle deg (47.3%), comb teeth (41.9%), cutter rpm (10.9%). The best observed value was 2.3 (at comb teeth = 9, cutter rpm = 2000, blow angle deg = 40).

Recommended Next Steps

Experimental Setup

Factors

FactorLowHighUnit
comb_teeth917teeth
cutter_rpm20003500rpm
blow_angle_deg1040deg

Fixed: breed = merino, season = spring

Responses

ResponseDirectionUnit
staple_length_cm↑ maximizecm
nick_count↓ minimizeper_sheep

Configuration

use_cases/292_sheep_shearing/config.json
{ "metadata": { "name": "Sheep Shearing Technique", "description": "Central composite design to maximize wool quality and minimize nicks by tuning comb tooth count, cutter speed, and blow angle" }, "factors": [ { "name": "comb_teeth", "levels": [ "9", "17" ], "type": "continuous", "unit": "teeth" }, { "name": "cutter_rpm", "levels": [ "2000", "3500" ], "type": "continuous", "unit": "rpm" }, { "name": "blow_angle_deg", "levels": [ "10", "40" ], "type": "continuous", "unit": "deg" } ], "fixed_factors": { "breed": "merino", "season": "spring" }, "responses": [ { "name": "staple_length_cm", "optimize": "maximize", "unit": "cm" }, { "name": "nick_count", "optimize": "minimize", "unit": "per_sheep" } ], "settings": { "operation": "central_composite", "test_script": "use_cases/292_sheep_shearing/sim.sh" } }

Experimental Matrix

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

Runcomb_teethcutter_rpmblow_angle_deg
113275025
217200040
39350010
4134119.3125
513275025
65.69703275025
7132750-2.38613
813275025
917350010
1020.303275025
1113275025
12131380.6925
1313275025
149200040
1513275025
1617200010
1713275052.3861
1817350040
1913275025
209200010
219350040
2213275025

Step-by-Step Workflow

1

Preview the design

Terminal
$ doe info --config use_cases/292_sheep_shearing/config.json
2

Generate the runner script

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

Execute the experiments

Terminal
$ bash use_cases/292_sheep_shearing/results/run.sh
4

Analyze results

Terminal
$ doe analyze --config use_cases/292_sheep_shearing/config.json
5

Get optimization recommendations

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

Generate the HTML report

Terminal
$ doe report --config use_cases/292_sheep_shearing/config.json \ --output use_cases/292_sheep_shearing/results/report.html

Features Exercised

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

Analysis Results

Generated from actual experiment runs using the DOE Helper Tool.

Response: staple_length_cm

Top factors: blow_angle_deg (34.4%), comb_teeth (34.4%), cutter_rpm (31.3%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
comb_teeth41.26820.31700.4980.7386
cutter_rpm42.50070.62520.9810.4643
blow_angle_deg43.06150.76541.2010.3743
LackofFit20.90780.4539
PureError74.4600
Error95.36780.6371
Total2112.19820.5809

Pareto Chart

Pareto chart for staple_length_cm

Main Effects Plot

Main effects plot for staple_length_cm

Normal Probability Plot of Effects

Normal probability plot for staple_length_cm

Half-Normal Plot of Effects

Half-normal plot for staple_length_cm

Model Diagnostics

Model diagnostics for staple_length_cm

Response: nick_count

Top factors: blow_angle_deg (47.3%), comb_teeth (41.9%), cutter_rpm (10.9%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
comb_teeth41.72770.43190.7760.5676
cutter_rpm40.30360.07590.1360.9647
blow_angle_deg42.19110.54780.9840.4628
LackofFit21.31040.6552
PureError73.8950
Error95.20540.5564
Total219.42770.4489

Pareto Chart

Pareto chart for nick_count

Main Effects Plot

Main effects plot for nick_count

Normal Probability Plot of Effects

Normal probability plot for nick_count

Half-Normal Plot of Effects

Half-normal plot for nick_count

Model Diagnostics

Model diagnostics for nick_count

Response Surface Plots

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

nick count comb teeth vs blow angle deg

RSM surface: nick count comb teeth vs blow angle deg

nick count comb teeth vs cutter rpm

RSM surface: nick count comb teeth vs cutter rpm

nick count cutter rpm vs blow angle deg

RSM surface: nick count cutter rpm vs blow angle deg

staple length cm comb teeth vs blow angle deg

RSM surface: staple length cm comb teeth vs blow angle deg

staple length cm comb teeth vs cutter rpm

RSM surface: staple length cm comb teeth vs cutter rpm

staple length cm cutter rpm vs blow angle deg

RSM surface: staple length cm cutter rpm vs blow angle deg

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

Per-Response Desirability

ResponseWeightDesirabilityPredictedDir
staple_length_cm 1.5
0.9545
9.20 0.9545 9.20 cm
nick_count 1.0
0.7727
2.80 0.7727 2.80 per_sheep

Recommended Settings

FactorValue
comb_teeth13 teeth
cutter_rpm2750 rpm
blow_angle_deg25 deg

Source: from observed run #12

Trade-off Summary

Sacrifice = how much worse than single-objective best.

ResponsePredictedBest ObservedSacrifice
nick_count2.802.30+0.50

Top 3 Runs by Desirability

RunDFactor Settings
#20.8769comb_teeth=9, cutter_rpm=3500, blow_angle_deg=40
#130.7038comb_teeth=13, cutter_rpm=2750, blow_angle_deg=25

Model Quality

ResponseType
nick_count0.1726linear

Full Multi-Objective Output

doe optimize --multi
============================================================ MULTI-OBJECTIVE OPTIMIZATION Method: Derringer-Suich Desirability Function ============================================================ Overall desirability: D = 0.8772 Response Weight Desirability Predicted Direction --------------------------------------------------------------------- staple_length_cm 1.5 0.9545 9.20 cm ↑ nick_count 1.0 0.7727 2.80 per_sheep ↓ Recommended settings: comb_teeth = 13 teeth cutter_rpm = 2750 rpm blow_angle_deg = 25 deg (from observed run #12) Trade-off summary: staple_length_cm: 9.20 (best observed: 9.20, sacrifice: +0.00) nick_count: 2.80 (best observed: 2.30, sacrifice: +0.50) Model quality: staple_length_cm: R² = 0.0439 (linear) nick_count: R² = 0.1726 (linear) Top 3 observed runs by overall desirability: 1. Run #12 (D=0.8772): comb_teeth=13, cutter_rpm=2750, blow_angle_deg=25 2. Run #2 (D=0.8769): comb_teeth=9, cutter_rpm=3500, blow_angle_deg=40 3. Run #13 (D=0.7038): comb_teeth=13, cutter_rpm=2750, blow_angle_deg=25

Full Analysis Output

doe analyze
=== Main Effects: staple_length_cm === Factor Effect Std Error % Contribution -------------------------------------------------------------- blow_angle_deg 1.1250 0.1625 34.4% comb_teeth 1.1250 0.1625 34.4% cutter_rpm 1.0250 0.1625 31.3% === ANOVA Table: staple_length_cm === Source DF SS MS F p-value ----------------------------------------------------------------------------- comb_teeth 4 1.2682 0.3170 0.498 0.7386 cutter_rpm 4 2.5007 0.6252 0.981 0.4643 blow_angle_deg 4 3.0615 0.7654 1.201 0.3743 Lack of Fit 2 0.9078 0.4539 0.712 0.5229 Pure Error 7 4.4600 0.6371 Error 9 5.3678 0.6371 Total 21 12.1982 0.5809 === Summary Statistics: staple_length_cm === comb_teeth: Level N Mean Std Min Max ------------------------------------------------------------ 13 12 7.7750 0.6837 6.6000 9.2000 17 4 7.4750 0.9251 6.1000 8.1000 20.303 1 8.6000 0.0000 8.6000 8.6000 5.69703 1 8.0000 0.0000 8.0000 8.0000 9 4 8.0000 1.0360 6.6000 9.1000 cutter_rpm: Level N Mean Std Min Max ------------------------------------------------------------ 1380.69 1 7.8000 0.0000 7.8000 7.8000 2000 4 8.2500 0.5916 7.8000 9.1000 2750 12 7.9000 0.7045 6.6000 9.2000 3500 4 7.2250 1.0308 6.1000 8.1000 4119.31 1 7.3000 0.0000 7.3000 7.3000 blow_angle_deg: Level N Mean Std Min Max ------------------------------------------------------------ -2.38613 1 7.2000 0.0000 7.2000 7.2000 10 4 7.1750 0.9878 6.1000 8.2000 25 12 7.9083 0.6960 6.6000 9.2000 40 4 8.3000 0.5416 7.9000 9.1000 52.3861 1 7.8000 0.0000 7.8000 7.8000 === Main Effects: nick_count === Factor Effect Std Error % Contribution -------------------------------------------------------------- blow_angle_deg 1.5250 0.1429 47.3% comb_teeth 1.3500 0.1429 41.9% cutter_rpm 0.3500 0.1429 10.9% === ANOVA Table: nick_count === Source DF SS MS F p-value ----------------------------------------------------------------------------- comb_teeth 4 1.7277 0.4319 0.776 0.5676 cutter_rpm 4 0.3036 0.0759 0.136 0.9647 blow_angle_deg 4 2.1911 0.5478 0.984 0.4628 Lack of Fit 2 1.3104 0.6552 1.177 0.3624 Pure Error 7 3.8950 0.5564 Error 9 5.2054 0.5564 Total 21 9.4277 0.4489 === Summary Statistics: nick_count === comb_teeth: Level N Mean Std Min Max ------------------------------------------------------------ 13 12 3.1750 0.7275 2.3000 4.8000 17 4 3.4250 0.6076 2.7000 4.1000 20.303 1 4.4000 0.0000 4.4000 4.4000 5.69703 1 3.5000 0.0000 3.5000 3.5000 9 4 3.0500 0.5066 2.7000 3.8000 cutter_rpm: Level N Mean Std Min Max ------------------------------------------------------------ 1380.69 1 3.0000 0.0000 3.0000 3.0000 2000 4 3.1250 0.4349 2.7000 3.7000 2750 12 3.3333 0.8015 2.3000 4.8000 3500 4 3.3500 0.7047 2.7000 4.1000 4119.31 1 3.0000 0.0000 3.0000 3.0000 blow_angle_deg: Level N Mean Std Min Max ------------------------------------------------------------ -2.38613 1 4.5000 0.0000 4.5000 4.5000 10 4 3.5000 0.5477 2.9000 4.1000 25 12 3.2083 0.7154 2.3000 4.8000 40 4 2.9750 0.4856 2.7000 3.7000 52.3861 1 3.0000 0.0000 3.0000 3.0000

Optimization Recommendations

doe optimize
=== Optimization: staple_length_cm === Direction: maximize Best observed run: #12 comb_teeth = 13 cutter_rpm = 2750 blow_angle_deg = 25 Value: 9.2 RSM Model (linear, R² = 0.1368, Adj R² = -0.0070): Coefficients: intercept +7.8091 comb_teeth -0.2146 cutter_rpm +0.2597 blow_angle_deg +0.0178 RSM Model (quadratic, R² = 0.2840, Adj R² = -0.2531): Coefficients: intercept +7.9696 comb_teeth -0.2146 cutter_rpm +0.2597 blow_angle_deg +0.0178 comb_teeth*cutter_rpm -0.3750 comb_teeth*blow_angle_deg -0.0000 cutter_rpm*blow_angle_deg +0.1000 comb_teeth^2 +0.0047 cutter_rpm^2 -0.1453 blow_angle_deg^2 -0.1003 Curvature analysis: cutter_rpm coef=-0.1453 concave (has a maximum) blow_angle_deg coef=-0.1003 concave (has a maximum) comb_teeth coef=+0.0047 negligible curvature Notable interactions: comb_teeth*cutter_rpm coef=-0.3750 (antagonistic) Predicted optimum (from linear model, at observed points): comb_teeth = 9 cutter_rpm = 3500 blow_angle_deg = 40 Predicted value: 8.3011 Surface optimum (via L-BFGS-B, linear model): comb_teeth = 9 cutter_rpm = 3500 blow_angle_deg = 40 Predicted value: 8.3011 Model quality: Weak fit — consider adding center points or using a different design. Factor importance: 1. cutter_rpm (effect: 1.1, contribution: 40.0%) 2. comb_teeth (effect: 0.8, contribution: 30.9%) 3. blow_angle_deg (effect: 0.8, contribution: 29.1%) === Optimization: nick_count === Direction: minimize Best observed run: #7 comb_teeth = 9 cutter_rpm = 2000 blow_angle_deg = 40 Value: 2.3 RSM Model (linear, R² = 0.2036, Adj R² = 0.0709): Coefficients: intercept +3.2682 comb_teeth +0.2279 cutter_rpm +0.1284 blow_angle_deg -0.2499 RSM Model (quadratic, R² = 0.4017, Adj R² = -0.0470): Coefficients: intercept +3.3116 comb_teeth +0.2279 cutter_rpm +0.1284 blow_angle_deg -0.2499 comb_teeth*cutter_rpm -0.3875 comb_teeth*blow_angle_deg +0.2375 cutter_rpm*blow_angle_deg +0.0875 comb_teeth^2 +0.0233 cutter_rpm^2 -0.0067 blow_angle_deg^2 -0.0817 Curvature analysis: blow_angle_deg coef=-0.0817 negligible curvature comb_teeth coef=+0.0233 negligible curvature cutter_rpm coef=-0.0067 negligible curvature Notable interactions: comb_teeth*cutter_rpm coef=-0.3875 (antagonistic) Predicted optimum (from linear model, at observed points): comb_teeth = 17 cutter_rpm = 3500 blow_angle_deg = 10 Predicted value: 3.8744 Surface optimum (via L-BFGS-B, linear model): comb_teeth = 9 cutter_rpm = 2000 blow_angle_deg = 40 Predicted value: 2.6620 Model quality: Weak fit — consider adding center points or using a different design. Factor importance: 1. blow_angle_deg (effect: 1.0, contribution: 41.5%) 2. comb_teeth (effect: 0.9, contribution: 38.3%) 3. cutter_rpm (effect: 0.5, contribution: 20.2%)
← Previous: Dairy Cow Feed Ration Next: Poultry House Ventilation →