The Weibull distribution
The Weibull distribution is the workhorse of reliability engineering. It models the time to failure of components, the life of bearings and batteries, wind speeds and material strength. Its flexibility comes from two parameters:
- the shape k (often written β), which describes how the failure rate changes over time;
- the scale λ (often written η), the characteristic life: the time by which 63.2% of units have failed.
The formulas
F(x) = 1 − e^−(x/λ)^k (probability of failure by x)
R(x) = e^−(x/λ)^k (reliability, or survival)
h(x) = (k/λ)(x/λ)^(k−1) (hazard, or instantaneous failure rate)
Mean life = λ Γ(1 + 1/k), median = λ (ln 2)^(1/k), B10 life = λ (−ln 0.9)^(1/k)
Example
Components with shape 1.5 and scale 1,000 hours:
- by 500 h, F = 1 − e^−(0.5)^1.5 ≈ 29.8% have failed; reliability is 70.2%;
- the mean life (MTTF) is 1,000 × Γ(1.667) ≈ 903 h;
- the median life is about 783 h;
- the B10 life, when 10% have failed, is about 223 h.
What the shape tells you
| Shape k | Failure rate | Typical cause |
|---|---|---|
| Below 1 | Decreasing | Early failures, manufacturing defects |
| 1 | Constant | Random failures (exponential distribution) |
| 1 to 4 | Increasing | Wear, fatigue, corrosion |
| Above 4 | Rapidly increasing | Sharp end-of-life wear-out |
Together, the three regions form the classic bathtub curve. With k around 3.5, the Weibull distribution looks much like a normal distribution.
Estimating the parameters
Shape and scale are fitted from failure data, often with Weibull probability plotting or maximum likelihood. Suspended units (still working when the test ends) must be included in the analysis, or the life will be underestimated.
Uses
- Setting warranty periods from the B1 or B10 life.
- Planning preventive maintenance: replacing parts before wear-out only makes sense when k > 1.
- Comparing designs or suppliers on the same basis.
- Modeling wind speed for energy yield, typically with k ≈ 2 (the Rayleigh case).
For a constant failure rate, the exponential distribution calculator gives the same results with k = 1.