Σ
SDCalc
IntermedioApplicazioni·14 min

Carte di controllo e controllo statistico di processo

Padroneggia il controllo statistico di processo (SPC) con le carte di controllo. Impara a fissare i limiti di controllo con la deviazione standard, applicare le regole Western Electric e rilevare la deriva del processo.

Controllo statistico di processo: il fondamento della qualità

Le carte di controllo sono la pietra angolare del controllo statistico di processo (SPC), e utilizzano la deviazione standard per monitorare la stabilità del processo nel tempo. Sviluppate da Walter Shewhart ai Bell Labs negli anni ’20, questi potenti strumenti distinguono tra variazione da cause comuni (intrinseca al processo) e variazione da cause speciali (che indica problemi da affrontare).

La genialità delle carte di controllo risiede nella loro semplicità: si tracciano le misurazioni nel tempo, si aggiungono limiti di controllo basati sulla deviazione standard e si osservano punti o pattern che segnalano problemi. Questo monitoraggio in tempo reale previene i difetti prima che si verifichino, anziché individuarli attraverso l’ispezione successiva.

La produzione moderna, la sanità e il settore dei servizi si affidano alle carte di controllo per mantenere la qualità. Dalla fabbricazione di semiconduttori che richiede precisione nanometrica ai tassi di infezione ospedaliera, l’SPC fornisce un quadro universale per il miglioramento dei processi.

Cause comuni vs cause speciali

La variazione da cause comuni è la variabilità naturale e attesa in qualsiasi processo. La variazione da cause speciali indica che qualcosa è cambiato: un nuovo operatore, un utensile usurato o un materiale contaminato. Le carte di controllo aiutano a distinguere tra le due.

Tipi di carte di controllo

Tipi di dati diversi richiedono carte di controllo diverse. Scegliere la carta giusta garantisce un monitoraggio accurato del processo:

Tipo di cartaTipo di datiCaso d’uso
X̄-R (X-barra e Range)Continui, sottogruppi n≤10Misurazioni di produzione
X̄-S (X-barra e Dev. St.)Continui, sottogruppi n>10Campionamento di grandi lotti
I-MR (Individuali-Range Mobile)Misurazioni individualiTest costosi/distruttivi
Carta pProporzione difettosaIspezione conforme/non conforme
Carta cConteggio difettiDifetti per unità

Per dati continui (misurazioni come lunghezza, peso, temperatura), la carta X̄-R è la più comune. Si raccolgono sottogruppi di campioni, si traccia la media (X̄) su una carta e il range (R) su un’altra. Insieme, monitorano sia il centraggio che la variabilità del processo.

Calcolo dei limiti di controllo

I limiti di controllo definiscono i confini della variazione attesa. Sono fissati a ±3 deviazioni standard dalla linea centrale, catturando il 99,73% dei punti quando il processo è sotto controllo:

Limiti di controllo

UCL = x̄ + 3σ, CL = x̄, LCL = x̄ - 3σ

Per una carta X̄ con il metodo del range, le formule diventano:

Limiti della carta X-barra

UCL = X̅̅ + A₂R̄, LCL = X̅̅ - A₂R̄

Dove X̅̅ è la media generale, R̄ è il range medio e A₂ è una costante che dipende dalla dimensione del sottogruppo (es. A₂ = 0,577 per n=5).

Limiti di controllo ≠ Limiti di specifica

I limiti di controllo sono calcolati dai dati e riflettono ciò che il processo effettivamente fa. I limiti di specifica sono fissati dai clienti/ingegneri e riflettono ciò che il processo dovrebbe fare. Un processo può essere sotto controllo ma produrre comunque pezzi fuori specifica.

Costanti per i limiti di controllo

nA₂D₃D₄
21,88003,267
31,02302,574
40,72902,282
50,57702,114

Regole Western Electric per rilevare i problemi

Un singolo punto fuori dai limiti di controllo non è l’unico segnale di problema. Le regole Western Electric rilevano pattern più sottili dividendo la carta in zone basate sulle deviazioni standard:

  • Zona C:Entro 1σ dalla linea centrale
  • Zona B:Tra 1σ e 2σ dal centro
  • Zona A:Tra 2σ e 3σ dal centro

Le quattro regole principali

1

Regola 1: Punto singolo

Un punto oltre 3σ (Zona A o oltre). Ha solo lo 0,27% di probabilità di verificarsi naturalmente.
2

Regola 2: Serie di 9

9 punti consecutivi dallo stesso lato della linea centrale. Indica uno spostamento della media del processo.
3

Regola 3: Tendenza di 6

6 punti consecutivi in aumento o diminuzione. Suggerisce una deriva del processo o usura dell’utensile.
4

Regola 4: Pattern di zona

2 su 3 punti consecutivi in Zona A o oltre (stesso lato). Segnale precoce di spostamento.

Riconoscere i pattern comuni

I professionisti esperti imparano a riconoscere pattern visivi che indicano problemi specifici:

PatternAspettoCausa probabile
SpostamentoCambio improvviso di livelloNuovo operatore, lotto di materiale, regolazione apparecchiatura
TendenzaDeriva graduale verso l’alto/bassoUsura utensile, deriva termica, affaticamento
CicliAndamento ripetitivo su/giùCambi turno, cicli ambientali, rotazioni programmate
AggrappamentoPunti raggruppati vicino al centroLimiti errati, dati arrotondati/modificati
StratificazionePunti che evitano il centroFlussi misti, macchine multiple

Implementazione in Python

Creare una carta di controllo X̄-R con verifica automatica delle regole:

python
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)