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