Σ
SDCalc
СереднійЗастосування·14 min

Контрольні карти та управління процесами

Опануйте статистичне управління процесами (SPC) за допомогою контрольних карт. Навчіться встановлювати контрольні межі на основі стандартного відхилення, застосовувати правила Western Electric та виявляти зсуви процесу.

Статистичне управління процесами: основа якості

Контрольні карти є наріжним каменем статистичного управління процесами (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% точок, коли процес перебуває під контролем:

Контрольні межі

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

Для карти X̄ із використанням методу розмаху формули набувають вигляду:

Межі карти X-середнє

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

Де X̿ — загальне середнє, R̄ — середній розмах, а A₂ — константа, що залежить від розміру підгрупи (наприклад, A₂ = 0,577 для n=5).

Контрольні межі ≠ Межі специфікації

Контрольні межі обчислюються з ваших даних і відображають фактичну поведінку процесу. Межі специфікації встановлюються замовниками чи інженерами і відображають бажану поведінку процесу. Процес може бути під контролем, але все ж виробляти деталі поза специфікацією.

Константи контрольних меж

nA₂D₃D₄
21.88003.267
31.02302.574
40.72902.282
50.57702.114

Правила Western Electric для виявлення проблем

Одна точка за контрольними межами — не єдиний сигнал проблеми. Правила Western Electric виявляють тонші патерни, поділяючи карту на зони на основі стандартних відхилень:

  • Зона C:У межах 1σ від центральної лінії
  • Зона B:Між 1σ та 2σ від центру
  • Зона A:Між 2σ та 3σ від центру

Чотири основні правила

1

Правило 1: Окрема точка

Одна точка за межами 3σ (зона A або далі). Ймовірність цього за нормальних умов становить лише 0,27%.
2

Правило 2: Серія з 9

9 послідовних точок з одного боку від центральної лінії. Вказує на зсув середнього процесу.
3

Правило 3: Тренд з 6

6 послідовних точок, що рухаються вгору або вниз. Свідчить про дрейф процесу або знос інструмента.
4

Правило 4: Зонний патерн

2 з 3 послідовних точок у зоні A або далі (з одного боку). Раннє попередження про зсув.

Розпізнавання типових патернів

Досвідчені фахівці навчаються розпізнавати візуальні патерни, що вказують на конкретні проблеми:

ПатернВиглядІмовірна причина
ЗсувРаптова зміна рівняНовий оператор, партія матеріалу, налаштування обладнання
ТрендПоступовий дрейф вгору/внизЗнос інструмента, зміна температури, втомлюваність
ЦиклиПовторюваний патерн вгору/внизЗміни зміни, кліматичні цикли, графіки ротації
ПритягуванняТочки групуються біля центруНекоректні межі, округлені або відредаговані дані
СтратифікаціяТочки уникають центруЗмішані потоки, кілька верстатів

Реалізація на Python

Побудова контрольної карти X̄-R з автоматичною перевіркою правил:

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)