Статистичне управління процесами: основа якості
Контрольні карти є наріжним каменем статистичного управління процесами (SPC), використовуючи стандартне відхилення для моніторингу стабільності процесу в часі. Розроблені Волтером Шухартом у Bell Labs у 1920-х роках, ці потужні інструменти дозволяють розрізняти загальну варіацію (притаманну процесу) та спеціальну варіацію (що вказує на проблеми, які потребують уваги).
Геніальність контрольних карт полягає в їх простоті: нанесіть вимірювання в часі, додайте контрольні межі на основі стандартного відхилення і стежте за точками чи патернами, що сигналізують про проблеми. Такий моніторинг у реальному часі запобігає дефектам ще до їх появи, а не виявляє їх постфактум через інспекцію.
Сучасне виробництво, охорона здоров’я та сфера послуг покладаються на контрольні карти для підтримки якості. Від виробництва напівпровідників, де потрібна нанометрова точність, до рівня внутрішньолікарняних інфекцій — SPC надає універсальну основу для вдосконалення процесів.
Загальні та спеціальні причини
Типи контрольних карт
Різні типи даних вимагають різних контрольних карт. Правильний вибір карти забезпечує точний моніторинг процесу:
| Тип карти | Тип даних | Сфера застосування |
|---|---|---|
| X̄-R (X-середнє та розмах) | Неперервні, підгрупи n≤10 | Виробничі вимірювання |
| X̄-S (X-середнє та стандартне відхилення) | Неперервні, підгрупи n>10 | Відбір великих партій |
| I-MR (індивідуальне значення та ковзний розмах) | Індивідуальні вимірювання | Дороге або руйнівне тестування |
| p-карта | Частка дефектних | Інспекція “пройшов/не пройшов” |
| c-карта | Кількість дефектів | Дефекти на одиницю |
Для неперервних даних (вимірювання довжини, ваги, температури) найпоширенішою є карта X̄-R. Ви збираєте підгрупи зразків, наносите середнє (X̄) на одну карту та розмах (R) на іншу. Разом вони відстежують як центрування, так і варіабельність процесу.
Розрахунок контрольних меж
Контрольні межі визначають границі очікуваної варіації. Вони встановлюються на рівні ±3 стандартних відхилення від центральної лінії, охоплюючи 99,73% точок, коли процес перебуває під контролем:
Контрольні межі
Для карти X̄ із використанням методу розмаху формули набувають вигляду:
Межі карти X-середнє
Де X̿ — загальне середнє, R̄ — середній розмах, а A₂ — константа, що залежить від розміру підгрупи (наприклад, A₂ = 0,577 для n=5).
Контрольні межі ≠ Межі специфікації
Константи контрольних меж
| 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 |
Правила Western Electric для виявлення проблем
Одна точка за контрольними межами — не єдиний сигнал проблеми. Правила Western Electric виявляють тонші патерни, поділяючи карту на зони на основі стандартних відхилень:
- Зона C:У межах 1σ від центральної лінії
- Зона B:Між 1σ та 2σ від центру
- Зона A:Між 2σ та 3σ від центру
Чотири основні правила
Правило 1: Окрема точка
Правило 2: Серія з 9
Правило 3: Тренд з 6
Правило 4: Зонний патерн
Розпізнавання типових патернів
Досвідчені фахівці навчаються розпізнавати візуальні патерни, що вказують на конкретні проблеми:
| Патерн | Вигляд | Імовірна причина |
|---|---|---|
| Зсув | Раптова зміна рівня | Новий оператор, партія матеріалу, налаштування обладнання |
| Тренд | Поступовий дрейф вгору/вниз | Знос інструмента, зміна температури, втомлюваність |
| Цикли | Повторюваний патерн вгору/вниз | Зміни зміни, кліматичні цикли, графіки ротації |
| Притягування | Точки групуються біля центру | Некоректні межі, округлені або відредаговані дані |
| Стратифікація | Точки уникають центру | Змішані потоки, кілька верстатів |
Реалізація на Python
Побудова контрольної карти X̄-R з автоматичною перевіркою правил:
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)