Taguchi Designs
Introduction to Taguchi Designs
Many production processes involve both controllable (control) and uncontrollable (noise) factors that can affect the process response. For example, a control factor in an experiment might be the number of cylinders in an engine, whereas a noise factor might be the temperature of the operating environment. Taguchi designs, developed by Genichi Taguchi in the 1950s, offer a way to designate individual control and noise factors when formulating an experimental design. You can use a Taguchi design to identify the control factor settings that minimize the contribution of noise factors to the response mean and variance.
Taguchi designs are well suited for processes in which only a small number of factors have a significant impact on the response, and there are few interactions between the factors. Taguchi designs are also orthogonal, meaning they give equal weight to all factor levels. Because they are typically not full factorial designs, Taguchi designs are not suitable for experiments where all factor level combinations need to be evaluated.
Geiger Counter Example
As an example, suppose you want to design a Geiger counter in which the control factors are the thickness of the end-window (W), the thickness of the tube wall (C), and the anode voltage (V). The design involves two noise factors, the ambient temperature (T) and the background radiation level (R). The goal is to determine which control factor settings minimize the variance of the response. In the experiment, sample the following levels for each factor:
W — 1 mm and 2 mm
C — 1 mm, 2 mm, and 3 mm
V — 400 V, 500 V, and 600 V
T — 280 K and 310 K
R — 2 mSv and 7 mSv
Use the taguchiTypes
function to return the allowable Taguchi design types for the inner (control) array and outer (noise) array. Also return the structure dinfo
, which contains the factor information.
[types,noisetypes,dinfo] = taguchiTypes([1 2],[1 2 3],[400 500 600],[280 310],[2 7], ... FactorNames=["W","C","V","T","R"],NoiseFactors=["T","R"])
types = "L18"
noisetypes = "L4"
dinfo = struct with fields:
Levels: {[1 2] [1 2 3] [400 500 600] [280 310] [2 7]}
CategoricalFactors: []
FactorNames: ["W" "C" "V" "T" "R"]
ModelSpecification: "linear"
NumLevelsPerFactor: [2 3 3 2 2]
NoiseFactors: [4 5]
ModelSpecSet: 0
The allowable design types for the inner and outer arrays are L18
and L4,
respectively.
Create a taguchiDOE
object using the factor information in dinfo
, and display the first several design runs.
t = taguchiDOE(dinfo,"L18",NoiseDesignType="L4")
t = taguchiDOE with properties: Design: [72×5 table] ModelSpecification: "1 + W + C + V" Levels: {[1 2] [1 2 3] [400 500 600] [280 310] [2 7]} CategoricalFactors: [] NoiseFactors: [4 5] DesignType: ["L18" "L4"]
D = t.Design
D=72×5 table
W C V T R
_ _ ___ ___ _
1 1 400 280 2
1 1 400 280 7
1 1 400 310 2
1 1 400 310 7
1 1 500 280 2
1 1 500 280 7
1 1 500 310 2
1 1 500 310 7
1 1 600 280 2
1 1 600 280 7
1 1 600 310 2
1 1 600 310 7
1 2 400 280 2
1 2 400 280 7
1 2 400 310 2
1 2 400 310 7
⋮
Each run in the design contains the level value for each factor.
Load the taguchiGeigerData
data set, which contains a simulated measured response for each run.
load taguchiGeigerData.mat
Return a table of signal-to-noise ratio (SNR) information for the control factor settings.
snr(t,resp)
ans=8×5 table
FactorName FactorLevel Mean Std nominal_SNR
__________ ___________ ______ ______ ___________
"W" "1" 59.676 10.059 35.608
"W" "2" 59.645 10.452 34.832
"C" "1" 59.615 10.569 34.599
"C" "2" 59.645 10.04 35.637
"C" "3" 59.722 10.379 34.999
"V" "400" 47.992 2.5982 58.324
"V" "500" 59.605 3.3292 57.7
"V" "600" 71.385 4.1102 57.092
The table indicates that the setting of 400 V for the anode voltage yields the smallest standard deviation of the response and the highest nominal SNR.
Plot the SNR information for the control factors.
plotsnr(t,resp)
The plots indicate that a higher anode voltage setting results in a lower nominal SNR, regardless of the settings for the other two control factors.
See Also
taguchiDOE
| taguchiTypes
| snr
| plotsnr