Controlul statistic al proceselor: fundamentul calității
Diagramele de control sunt piatra de temelie a controlului statistic al proceselor (SPC), utilizând deviația standard pentru a monitoriza stabilitatea procesului în timp. Dezvoltate de Walter Shewhart la Bell Labs în anii 1920, aceste instrumente puternice disting între variația din cauze comune (inerentă procesului) și variația din cauze speciale (care indică probleme ce necesită atenție).
Geniulitatea diagramelor de control rezidă în simplitatea lor: trasezi măsurătorile în timp, adaugi limite de control bazate pe deviația standard și urmărești punctele sau tiparele care semnalează probleme. Această monitorizare în timp real previne defectele înainte de a apărea, în loc să le descopere prin inspecție ulterioară.
Industria modernă de producție, sănătatea și serviciile se bazează pe diagrame de control pentru menținerea calității. De la fabricarea semiconductorilor care necesită precizie de nanometri până la ratele de infecții din spitale, SPC oferă un cadru universal pentru îmbunătățirea proceselor.
Cauze comune vs. cauze speciale
Tipuri de diagrame de control
Tipuri diferite de date necesită diagrame de control diferite. Alegerea diagramei potrivite asigură monitorizarea precisă a procesului:
| Tip diagramă | Tip date | Utilizare |
|---|---|---|
| X̄-R (X-bar și Amplitudine) | Continue, subgrupuri n≤10 | Măsurători de producție |
| X̄-S (X-bar și Dev. Std.) | Continue, subgrupuri n>10 | Eșantionare loturi mari |
| I-MR (Individuală-Amplitudine mobilă) | Măsurători individuale | Testare costisitoare/distructivă |
| Diagrama p | Proporție defectă | Inspecție acceptat/respins |
| Diagrama c | Număr de defecte | Defecte per unitate |
Pentru date continue (măsurători precum lungime, greutate, temperatură), diagrama X̄-R este cea mai utilizată. Colectezi subgrupuri de eșantioane, trasezi media (X̄) pe o diagramă și amplitudinea (R) pe alta. Împreună, ele monitorizează atât centrarea procesului, cât și variabilitatea.
Calculul limitelor de control
Limitele de control definesc granițele variației așteptate. Se stabilesc la ±3 deviații standard de la linia centrală, cuprinzând 99,73% din puncte când procesul este sub control:
Control Limits
Pentru o diagramă X̄ folosind metoda amplitudinii, formulele devin:
X-bar Chart Limits
Unde X̿ este media generală, R̄ este amplitudinea medie, iar A₂ este o constantă care depinde de dimensiunea subgrupului (de ex., A₂ = 0,577 pentru n=5).
Limite de control ≠ Limite de specificație
Constantele limitelor de control
| n | A₂ | D₃ | D₄ |
|---|---|---|---|
| 2 | 1,880 | 0 | 3,267 |
| 3 | 1,023 | 0 | 2,574 |
| 4 | 0,729 | 0 | 2,282 |
| 5 | 0,577 | 0 | 2,114 |
Regulile Western Electric pentru detectarea problemelor
Un singur punct în afara limitelor de control nu este singurul semnal de alarmă. Regulile Western Electric detectează tipare mai subtile prin împărțirea diagramei în zone bazate pe deviații standard:
- Zona C:În intervalul de 1σ față de linia centrală
- Zona B:Între 1σ și 2σ față de centru
- Zona A:Între 2σ și 3σ față de centru
Cele patru reguli principale
Regula 1: Punct singular
Regula 2: Serie de 9
Regula 3: Tendință de 6
Regula 4: Tipar de zonă
Recunoașterea tiparelor frecvente
Practicienii experimentați învață să recunoască tipare vizuale care indică probleme specifice:
| Tipar | Aspect | Cauză probabilă |
|---|---|---|
| Deplasare | Schimbare bruscă de nivel | Operator nou, lot de material, reglare echipament |
| Tendință | Derivă graduală în sus/jos | Uzura sculei, derivă de temperatură, oboseală |
| Cicluri | Tipar repetitiv sus/jos | Schimburi de lucru, cicluri de mediu, rotații de program |
| Grupare | Puncte grupate lângă centru | Limite incorecte, date rotunjite/editate |
| Stratificare | Punctele evită centrul | Fluxuri mixte, mașini multiple |
Implementare Python
Crearea unei diagrame de control X̄-R cu verificare automată a regulilor:
import numpy as np
import matplotlib.pyplot as plt
def create_xbar_chart(data, subgroup_size=5):
"""Create X-bar control chart with control limits."""
# Reshape data into subgroups
n_subgroups = len(data) // subgroup_size
subgroups = data[:n_subgroups * subgroup_size].reshape(n_subgroups, subgroup_size)
# Calculate subgroup means and ranges
xbar = subgroups.mean(axis=1)
R = subgroups.max(axis=1) - subgroups.min(axis=1)
# Control chart constants (for n=5)
A2 = 0.577
D3, D4 = 0, 2.114
# Calculate control limits
xbar_bar = xbar.mean()
R_bar = R.mean()
UCL = xbar_bar + A2 * R_bar
LCL = xbar_bar - A2 * R_bar
# Check for out-of-control points
ooc = (xbar > UCL) | (xbar < LCL)
# Plot
plt.figure(figsize=(12, 5))
plt.plot(xbar, 'b-o', markersize=4)
plt.axhline(xbar_bar, color='g', linestyle='-', label='CL')
plt.axhline(UCL, color='r', linestyle='--', label='UCL')
plt.axhline(LCL, color='r', linestyle='--', label='LCL')
plt.scatter(np.where(ooc)[0], xbar[ooc], color='red', s=100, zorder=5)
plt.xlabel('Subgroup')
plt.ylabel('X-bar')
plt.title('X-bar Control Chart')
plt.legend()
plt.show()
return {'xbar': xbar, 'UCL': UCL, 'LCL': LCL, 'ooc': ooc}
# Example: Monitor a manufacturing process
np.random.seed(42)
# Simulate 100 measurements (20 subgroups of 5)
measurements = np.random.normal(100, 2, 100)
# Add a shift at subgroup 15
measurements[75:] += 3
result = create_xbar_chart(measurements)