Summary
This experiment investigates ceramic glaze firing optimization. Taguchi orthogonal array with mixed-level factors for ceramic glaze quality.
The design varies 5 factors: clay type, ranging from porcelain to earthenware, glaze thickness, ranging from thin to thick, peak temperature (°C), ranging from 1100 to 1250, hold time (min), ranging from 30 to 90, and cooling rate, ranging from slow to fast. The goal is to optimize 2 responses: surface smoothness (score) (maximize) and color accuracy (deltaE) (minimize). Fixed conditions held constant across all runs include kiln type = electric.
The Taguchi Orthogonal Array produces 16 experimental runs.
Key Findings
For surface smoothness, the most influential factors were glaze thickness (33.0%), hold time (27.7%), peak temperature (20.7%). The best observed value was 86.91 (at clay type = porcelain, glaze thickness = thin, peak temperature = 1100).
For color accuracy, the most influential factors were hold time (32.9%), glaze thickness (21.9%), cooling rate (21.1%). The best observed value was 4.46 (at clay type = porcelain, glaze thickness = thin, peak temperature = 1250).
Recommended Next Steps
- Consider whether any fixed factors should be varied in a future study.
- The screening results can guide factor reduction — drop factors contributing less than 5% and re-run with a smaller, more focused design.
Experimental Setup
Factors
| Factor | Low | High | Unit |
clay_type | porcelain | earthenware | |
glaze_thickness | thin | thick | |
peak_temperature | 1100 | 1250 | °C |
hold_time | 30 | 90 | min |
cooling_rate | slow | fast | |
Fixed: kiln_type = electric
Responses
| Response | Direction | Unit |
surface_smoothness | ↑ maximize | score |
color_accuracy | ↓ minimize | deltaE |
Configuration
{
"metadata": {
"name": "Ceramic Glaze Firing Optimization",
"description": "Taguchi orthogonal array with mixed-level factors for ceramic glaze quality"
},
"factors": [
{
"name": "clay_type",
"levels": [
"porcelain",
"stoneware",
"earthenware"
],
"type": "categorical",
"unit": ""
},
{
"name": "glaze_thickness",
"levels": [
"thin",
"medium",
"thick"
],
"type": "ordinal",
"unit": ""
},
{
"name": "peak_temperature",
"levels": [
"1100",
"1250"
],
"type": "continuous",
"unit": "\u00b0C"
},
{
"name": "hold_time",
"levels": [
"30",
"60",
"90"
],
"type": "continuous",
"unit": "min"
},
{
"name": "cooling_rate",
"levels": [
"slow",
"fast"
],
"type": "categorical",
"unit": ""
}
],
"fixed_factors": {
"kiln_type": "electric"
},
"responses": [
{
"name": "surface_smoothness",
"optimize": "maximize",
"unit": "score"
},
{
"name": "color_accuracy",
"optimize": "minimize",
"unit": "deltaE"
}
],
"settings": {
"operation": "taguchi",
"test_script": "use_cases/302_ceramic_glaze_firing/sim.sh"
}
}
Experimental Matrix
The Taguchi Orthogonal Array produces 16 runs. Each row is one experiment with specific factor settings.
| Run | clay_type | glaze_thickness | peak_temperature | hold_time | cooling_rate |
| 1 | stoneware | thin | 1100 | 60 | slow |
| 2 | earthenware | medium | 1250 | 90 | slow |
| 3 | stoneware | medium | 1100 | 30 | slow |
| 4 | stoneware | thick | 1250 | 30 | fast |
| 5 | porcelain | thick | 1250 | 30 | slow |
| 6 | earthenware | thick | 1100 | 60 | fast |
| 7 | porcelain | thin | 1250 | 60 | slow |
| 8 | earthenware | thin | 1100 | 30 | fast |
| 9 | porcelain | medium | 1250 | 60 | fast |
| 10 | porcelain | thick | 1100 | 90 | slow |
| 11 | porcelain | medium | 1100 | 30 | fast |
| 12 | porcelain | thin | 1100 | 90 | fast |
| 13 | stoneware | thin | 1250 | 90 | fast |
| 14 | earthenware | thin | 1250 | 30 | slow |
| 15 | porcelain | thin | 1100 | 30 | slow |
| 16 | porcelain | thin | 1250 | 30 | fast |
Step-by-Step Workflow
1
Preview the design
$ doe info --config use_cases/302_ceramic_glaze_firing/config.json
2
Generate the runner script
$ doe generate --config use_cases/302_ceramic_glaze_firing/config.json \
--output use_cases/302_ceramic_glaze_firing/results/run.sh --seed 42
3
Execute the experiments
$ bash use_cases/302_ceramic_glaze_firing/results/run.sh
4
Analyze results
$ doe analyze --config use_cases/302_ceramic_glaze_firing/config.json
5
Get optimization recommendations
$ doe optimize --config use_cases/302_ceramic_glaze_firing/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/302_ceramic_glaze_firing/config.json --multi
7
Generate the HTML report
$ doe report --config use_cases/302_ceramic_glaze_firing/config.json \
--output use_cases/302_ceramic_glaze_firing/results/report.html
Features Exercised
| Feature | Value |
| Design type | taguchi |
| Factor types | continuous (2), categorical (2) |
| Arg style | double-dash |
| Responses | 2 (surface_smoothness ↑, color_accuracy ↓) |
| Total runs | 16 |
Analysis Results
Generated from actual experiment runs using the DOE Helper Tool.
Response: surface_smoothness
Top factors: glaze_thickness (33.0%), hold_time (27.7%), peak_temperature (20.7%).
ANOVA
| Source | DF | SS | MS | F | p-value |
| Source | DF | SS | MS | F | p-value |
| clay_type | 2 | 189.4248 | 94.7124 | 3.001 | 0.1249 |
| glaze_thickness | 2 | 725.7416 | 362.8708 | 11.499 | 0.0089 |
| peak_temperature | 1 | 395.1150 | 395.1150 | 12.521 | 0.0122 |
| hold_time | 2 | 376.2926 | 188.1463 | 5.962 | 0.0375 |
| cooling_rate | 1 | 2.8477 | 2.8477 | 0.090 | 0.7740 |
| peak_temperature*cooling_rate | 1 | 121.2752 | 121.2752 | 3.843 | 0.0976 |
| Error | 6 | 189.3369 | 31.5561 | | |
| Total | 15 | 2000.0337 | 133.3356 | | |
Response: color_accuracy
Top factors: hold_time (32.9%), glaze_thickness (21.9%), cooling_rate (21.1%).
ANOVA
| Source | DF | SS | MS | F | p-value |
| Source | DF | SS | MS | F | p-value |
| clay_type | 2 | 0.6933 | 0.3467 | 0.055 | 0.9470 |
| glaze_thickness | 2 | 4.5282 | 2.2641 | 0.359 | 0.7126 |
| peak_temperature | 1 | 3.4410 | 3.4410 | 0.545 | 0.4881 |
| hold_time | 2 | 13.0643 | 6.5322 | 1.035 | 0.4110 |
| cooling_rate | 1 | 6.9696 | 6.9696 | 1.104 | 0.3338 |
| peak_temperature*cooling_rate | 1 | 1.4520 | 1.4520 | 0.230 | 0.6484 |
| Error | 6 | 37.8646 | 6.3108 | | |
| Total | 15 | 68.0131 | 4.5342 | | |
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.7417
Per-Response Desirability
| Response | Weight | Desirability | Predicted | Dir |
surface_smoothness |
1.0 |
|
66.47 0.5081 66.47 score |
↑ |
color_accuracy |
1.5 |
|
4.46 0.9545 4.46 deltaE |
↓ |
Recommended Settings
| Factor | Value |
clay_type | earthenware |
glaze_thickness | thin |
peak_temperature | 1100 °C |
hold_time | 30 min |
cooling_rate | fast |
Source: from observed run #10
Trade-off Summary
Sacrifice = how much worse than single-objective best.
| Response | Predicted | Best Observed | Sacrifice |
color_accuracy | 4.46 | 4.46 | +0.00 |
Top 3 Runs by Desirability
| Run | D | Factor Settings |
| #7 | 0.7143 | clay_type=porcelain, glaze_thickness=thin, peak_temperature=1250, hold_time=60, cooling_rate=slow |
| #5 | 0.6669 | clay_type=stoneware, glaze_thickness=medium, peak_temperature=1100, hold_time=30, cooling_rate=slow |
Model Quality
| Response | R² | Type |
color_accuracy | 0.3525 | linear |
Full Multi-Objective Output
============================================================
MULTI-OBJECTIVE OPTIMIZATION
Method: Derringer-Suich Desirability Function
============================================================
Overall desirability: D = 0.7417
Response Weight Desirability Predicted Direction
---------------------------------------------------------------------
surface_smoothness 1.0 0.5081 66.47 score ↑
color_accuracy 1.5 0.9545 4.46 deltaE ↓
Recommended settings:
clay_type = earthenware
glaze_thickness = thin
peak_temperature = 1100 °C
hold_time = 30 min
cooling_rate = fast
(from observed run #10)
Trade-off summary:
surface_smoothness: 66.47 (best observed: 86.91, sacrifice: +20.44)
color_accuracy: 4.46 (best observed: 4.46, sacrifice: +0.00)
Model quality:
surface_smoothness: R² = 0.4908 (linear)
color_accuracy: R² = 0.3525 (linear)
Top 3 observed runs by overall desirability:
1. Run #10 (D=0.7417): clay_type=earthenware, glaze_thickness=thin, peak_temperature=1100, hold_time=30, cooling_rate=fast
2. Run #7 (D=0.7143): clay_type=porcelain, glaze_thickness=thin, peak_temperature=1250, hold_time=60, cooling_rate=slow
3. Run #5 (D=0.6669): clay_type=stoneware, glaze_thickness=medium, peak_temperature=1100, hold_time=30, cooling_rate=slow
Full Analysis Output
=== Main Effects: surface_smoothness ===
Factor Effect Std Error % Contribution
--------------------------------------------------------------
glaze_thickness 15.8550 2.8868 33.0%
hold_time 13.3075 2.8868 27.7%
peak_temperature -9.9388 2.8868 20.7%
clay_type 8.1450 2.8868 16.9%
cooling_rate 0.8438 2.8868 1.8%
=== ANOVA Table: surface_smoothness ===
Source DF SS MS F p-value
-----------------------------------------------------------------------------
clay_type 2 189.4248 94.7124 3.001 0.1249
glaze_thickness 2 725.7416 362.8708 11.499 0.0089
peak_temperature 1 395.1150 395.1150 12.521 0.0122
hold_time 2 376.2926 188.1463 5.962 0.0375
cooling_rate 1 2.8477 2.8477 0.090 0.7740
peak_temperature*cooling_rate 1 121.2752 121.2752 3.843 0.0976
Error 6 189.3369 31.5561
Total 15 2000.0337 133.3356
=== Interaction Effects: surface_smoothness ===
Factor A Factor B Interaction % Contribution
------------------------------------------------------------------------
peak_temperature cooling_rate 5.5063 100.0%
=== Summary Statistics: surface_smoothness ===
clay_type:
Level N Mean Std Min Max
------------------------------------------------------------
earthenware 4 73.6375 11.6386 62.7400 86.9100
porcelain 8 65.4925 13.0390 45.2900 85.6800
stoneware 4 66.1650 8.4486 59.8400 78.3700
glaze_thickness:
Level N Mean Std Min Max
------------------------------------------------------------
medium 4 79.3575 9.3822 66.4700 86.9100
thick 4 63.5025 3.6233 61.2000 68.8300
thin 8 63.9637 11.7767 45.2900 79.8200
peak_temperature:
Level N Mean Std Min Max
------------------------------------------------------------
1100 8 72.6663 8.7369 59.8400 85.6800
1250 8 62.7275 12.3669 45.2900 86.9100
hold_time:
Level N Mean Std Min Max
------------------------------------------------------------
30 8 68.8725 13.1456 45.2900 85.6800
60 4 59.8675 6.8581 50.4200 66.4700
90 4 73.1750 9.5394 65.2100 86.9100
cooling_rate:
Level N Mean Std Min Max
------------------------------------------------------------
fast 8 67.2750 12.3137 45.2900 85.6800
slow 8 68.1188 11.5623 50.4200 86.9100
=== Main Effects: color_accuracy ===
Factor Effect Std Error % Contribution
--------------------------------------------------------------
hold_time 2.0600 0.5323 32.9%
glaze_thickness 1.3700 0.5323 21.9%
cooling_rate 1.3200 0.5323 21.1%
peak_temperature -0.9275 0.5323 14.8%
clay_type 0.5875 0.5323 9.4%
=== ANOVA Table: color_accuracy ===
Source DF SS MS F p-value
-----------------------------------------------------------------------------
clay_type 2 0.6933 0.3467 0.055 0.9470
glaze_thickness 2 4.5282 2.2641 0.359 0.7126
peak_temperature 1 3.4410 3.4410 0.545 0.4881
hold_time 2 13.0643 6.5322 1.035 0.4110
cooling_rate 1 6.9696 6.9696 1.104 0.3338
peak_temperature*cooling_rate 1 1.4520 1.4520 0.230 0.6484
Error 6 37.8646 6.3108
Total 15 68.0131 4.5342
=== Interaction Effects: color_accuracy ===
Factor A Factor B Interaction % Contribution
------------------------------------------------------------------------
peak_temperature cooling_rate -0.6025 100.0%
=== Summary Statistics: color_accuracy ===
clay_type:
Level N Mean Std Min Max
------------------------------------------------------------
earthenware 4 9.4575 1.7940 7.9000 11.2000
porcelain 8 9.7238 2.5640 4.4600 13.0600
stoneware 4 10.0450 1.9702 9.0400 13.0000
glaze_thickness:
Level N Mean Std Min Max
------------------------------------------------------------
medium 4 8.8325 3.5855 4.4600 13.0000
thick 4 10.2025 1.0820 9.1000 11.4000
thin 8 9.9575 1.7487 7.9000 13.0600
peak_temperature:
Level N Mean Std Min Max
------------------------------------------------------------
1100 8 10.2012 1.7312 7.9000 13.0000
1250 8 9.2737 2.4955 4.4600 13.0600
hold_time:
Level N Mean Std Min Max
------------------------------------------------------------
30 8 10.6150 1.8406 7.9000 13.0600
60 4 8.5550 2.8240 4.4600 10.8100
90 4 9.1650 1.5609 7.9200 11.4000
cooling_rate:
Level N Mean Std Min Max
------------------------------------------------------------
fast 8 9.0775 2.4767 4.4600 13.0600
slow 8 10.3975 1.6083 7.9200 13.0000
Optimization Recommendations
=== Optimization: surface_smoothness ===
Direction: maximize
Best observed run: #7
clay_type = porcelain
glaze_thickness = thin
peak_temperature = 1100
hold_time = 30
cooling_rate = slow
Value: 86.91
RSM Model (linear, R² = 0.1937, Adj R² = -0.2095):
Coefficients:
intercept +68.1761
clay_type -2.2088
glaze_thickness +1.9202
peak_temperature -0.7744
hold_time +3.8370
cooling_rate +2.9181
Predicted optimum (from linear model, at observed points):
clay_type = porcelain
glaze_thickness = thick
peak_temperature = 1100
hold_time = 90
cooling_rate = slow
Predicted value: 75.7056
Surface optimum (via L-BFGS-B, linear model):
clay_type = porcelain
glaze_thickness = 1.0000
peak_temperature = 1100
hold_time = 60
cooling_rate = fast
Predicted value: 79.8346
Model quality: Weak fit — consider adding center points or using a different design.
Factor importance:
1. glaze_thickness (effect: 11.9, contribution: 34.3%)
2. hold_time (effect: 11.0, contribution: 31.7%)
3. cooling_rate (effect: 5.8, contribution: 16.8%)
4. clay_type (effect: 4.4, contribution: 12.7%)
5. peak_temperature (effect: -1.5, contribution: 4.5%)
=== Optimization: color_accuracy ===
Direction: minimize
Best observed run: #10
clay_type = porcelain
glaze_thickness = thin
peak_temperature = 1250
hold_time = 60
cooling_rate = slow
Value: 4.46
RSM Model (linear, R² = 0.4404, Adj R² = 0.1605):
Coefficients:
intercept +9.9327
clay_type +0.6212
glaze_thickness -1.1718
peak_temperature -0.2962
hold_time -0.3909
cooling_rate -0.7362
Predicted optimum (from linear model, at observed points):
clay_type = porcelain
glaze_thickness = medium
peak_temperature = 1100
hold_time = 30
cooling_rate = fast
Predicted value: 12.5280
Surface optimum (via L-BFGS-B, linear model):
clay_type = porcelain
glaze_thickness = 1.0000
peak_temperature = 1250
hold_time = 60
cooling_rate = fast
Predicted value: 6.7163
Model quality: Weak fit — consider adding center points or using a different design.
Factor importance:
1. glaze_thickness (effect: 2.2, contribution: 31.0%)
2. clay_type (effect: 1.6, contribution: 23.0%)
3. cooling_rate (effect: -1.5, contribution: 20.7%)
4. hold_time (effect: 1.2, contribution: 16.9%)
5. peak_temperature (effect: -0.6, contribution: 8.3%)