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
Rodzaje kart kontrolnych
Różne typy danych wymagają różnych kart kontrolnych. Wybór właściwej karty zapewnia dokładne monitorowanie procesu:
| Typ karty | Typ danych | Zastosowanie |
|---|---|---|
| X̄-R (X-średnia i rozstęp) | Ciągłe, podgrupy n≤10 | Pomiary produkcyjne |
| X̄-S (X-średnia i odchylenie) | Ciągłe, podgrupy n>10 | Pobieranie prób z dużych partii |
| I-MR (indywidualne-ruchomy rozstęp) | Pomiary indywidualne | Badania kosztowne/niszczące |
| Karta p | Odsetek wadliwych | Inspekcja zdał/nie zdał |
| Karta c | Liczba defektów | Defekty 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
Dla karty X̄ metodą rozstępu wzory przyjmują postać:
Granice karty X-średnia
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
Stałe granic kontrolnych
| 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 |
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
Reguła 1: Pojedynczy punkt
Reguła 2: Seria 9
Reguła 3: Trend 6
Reguła 4: Wzorzec strefowy
Rozpoznawanie typowych wzorców
Doświadczeni praktycy uczą się rozpoznawać wizualne wzorce wskazujące na konkretne problemy:
| Wzorzec | Wygląd | Prawdopodobna przyczyna |
|---|---|---|
| Przesunięcie | Nagła zmiana poziomu | Nowy operator, partia materiału, regulacja sprzętu |
| Trend | Stopniowy dryft w górę/dół | Zużycie narzędzia, dryft temperatury, zmęczenie |
| Cykle | Powtarzający się wzór góra/dół | Zmiany zmianowe, cykle środowiskowe, harmonogramy rotacji |
| Przylgnięcie | Punkty skupione przy centrum | Nieprawidłowe granice, dane zaokrąglone/edytowane |
| Rozwarstwienie | Punkty omijające centrum | Mieszane strumienie, wiele maszyn |
Implementacja w Pythonie
Utwórz kartę kontrolną X̄-R z automatycznym sprawdzaniem reguł:
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)