Σ
SDCalc
ŚredniozaawansowanyZastosowania·14 min

Karty kontrolne i sterowanie procesem

Opanuj statystyczne sterowanie procesem (SPC) z kartami kontrolnymi. Naucz się wyznaczać granice kontrolne za pomocą odchylenia standardowego, stosować reguły Western Electric i wykrywać dryfty procesu.

Statystyczne sterowanie procesem: fundament jakości

Karty kontrolne są kamieniem węgielnym statystycznego sterowania procesem (SPC), wykorzystującym odchylenie standardowe do monitorowania stabilności procesu w czasie. Opracowane przez Waltera Shewharta w Bell Labs w latach 20. XX wieku, te potężne narzędzia rozróżniają między zmiennością przyczyn wspólnych (nieodłączną częścią procesu) a zmiennością przyczyn specjalnych (wskazującą na problemy wymagające uwagi).

Geniusz kart kontrolnych tkwi w ich prostocie: wykreśl pomiary w czasie, dodaj granice kontrolne oparte na odchyleniu standardowym i obserwuj punkty lub wzorce sygnalizujące problemy. Takie monitorowanie w czasie rzeczywistym zapobiega defektom, zanim powstaną, zamiast wychwytywać je przez inspekcję ex post.

Współczesna produkcja, ochrona zdrowia i sektory usługowe polegają na kartach kontrolnych w utrzymaniu jakości. Od produkcji półprzewodników wymagającej precyzji nanometrowej po wskaźniki zakażeń szpitalnych, SPC zapewnia uniwersalne ramy doskonalenia procesów.

Przyczyny wspólne a specjalne

Zmienność przyczyn wspólnych to naturalna, oczekiwana zmienność w każdym procesie. Zmienność przyczyn specjalnych wskazuje, że coś się zmieniło — nowy operator, zużyte narzędzie lub zanieczyszczony materiał. Karty kontrolne pomagają rozróżnić te dwa rodzaje.

Rodzaje kart kontrolnych

Różne typy danych wymagają różnych kart kontrolnych. Wybór właściwej karty zapewnia dokładne monitorowanie procesu:

Typ kartyTyp danychZastosowanie
X̄-R (X-średnia i rozstęp)Ciągłe, podgrupy n≤10Pomiary produkcyjne
X̄-S (X-średnia i odchylenie)Ciągłe, podgrupy n>10Pobieranie prób z dużych partii
I-MR (indywidualne-ruchomy rozstęp)Pomiary indywidualneBadania kosztowne/niszczące
Karta pOdsetek wadliwychInspekcja zdał/nie zdał
Karta cLiczba defektówDefekty na jednostkę

Dla danych ciągłych (pomiary takie jak długość, waga, temperatura) najczęstsza jest karta X̄-R. Zbierasz podgrupy prób, wykreślasz średnią (X̄) na jednej karcie i rozstęp (R) na drugiej. Razem monitorują zarówno wycentrowanie procesu, jak i zmienność.

Wyznaczanie granic kontrolnych

Granice kontrolne definiują zakres oczekiwanej zmienności. Ustawia się je na ±3 odchylenia standardowe od linii centralnej, obejmując 99,73% punktów, gdy proces jest pod kontrolą:

Granice kontrolne

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

Dla karty X̄ metodą rozstępu wzory przyjmują postać:

Granice karty X-średnia

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

Gdzie X̿ to wielka średnia, R̄ to średni rozstęp, a A₂ to stała zależna od wielkości podgrupy (np. A₂ = 0,577 dla n=5).

Granice kontrolne ≠ granice specyfikacji

Granice kontrolne oblicza się na podstawie danych i odzwierciedlają faktyczne zachowanie procesu. Granice specyfikacji wyznaczają klienci/inżynierowie i odzwierciedlają oczekiwane zachowanie procesu. Proces może być pod kontrolą, a mimo to produkować części poza specyfikacją.

Stałe granic kontrolnych

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

Reguły Western Electric do wykrywania problemów

Pojedynczy punkt poza granicami kontrolnymi to nie jedyny sygnał problemów. Reguły Western Electric wykrywają subtelniejsze wzorce, dzieląc kartę na strefy oparte na odchyleniach standardowych:

  • Strefa C:W obrębie 1σ od linii centralnej
  • Strefa B:Między 1σ a 2σ od centrum
  • Strefa A:Między 2σ a 3σ od centrum

Cztery podstawowe reguły

1

Reguła 1: Pojedynczy punkt

Jeden punkt poza 3σ (strefa A lub dalej). Prawdopodobieństwo naturalnego wystąpienia to zaledwie 0,27%.
2

Reguła 2: Seria 9

9 kolejnych punktów po tej samej stronie linii centralnej. Wskazuje na przesunięcie średniej procesu.
3

Reguła 3: Trend 6

6 kolejnych punktów w trendzie rosnącym lub malejącym. Sugeruje dryft procesu lub zużycie narzędzia.
4

Reguła 4: Wzorzec strefowy

2 z 3 kolejnych punktów w strefie A lub dalej (po tej samej stronie). Wczesne ostrzeżenie o przesunięciu.

Rozpoznawanie typowych wzorców

Doświadczeni praktycy uczą się rozpoznawać wizualne wzorce wskazujące na konkretne problemy:

WzorzecWyglądPrawdopodobna przyczyna
PrzesunięcieNagła zmiana poziomuNowy operator, partia materiału, regulacja sprzętu
TrendStopniowy dryft w górę/dółZużycie narzędzia, dryft temperatury, zmęczenie
CyklePowtarzający się wzór góra/dółZmiany zmianowe, cykle środowiskowe, harmonogramy rotacji
PrzylgnięciePunkty skupione przy centrumNieprawidłowe granice, dane zaokrąglone/edytowane
RozwarstwieniePunkty omijające centrumMieszane strumienie, wiele maszyn

Implementacja w Pythonie

Utwórz kartę kontrolną X̄-R z automatycznym sprawdzaniem reguł:

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)