Σ
SDCalc
ØvetAnvendelser·14 min

Kontroldiagrammer og proceskontrol

Mestr statistisk proceskontrol (SPC) med kontroldiagrammer. Lær at fastsætte kontrolgrænser ved hjælp af standardafvigelse, anvende Western Electric-regler og opdage procesdrift.

Statistisk proceskontrol: Kvalitetens fundament

Kontroldiagrammer er hjørnestenen i statistisk proceskontrol (SPC) og bruger standardafvigelse til at overvåge processtabilitet over tid. Udviklet af Walter Shewhart hos Bell Labs i 1920’erne skelner disse kraftfulde værktøjer mellem fællesårsagsvariation (iboende i processen) og specialårsagsvariation (som indikerer problemer, der kræver handling).

Det geniale ved kontroldiagrammer ligger i deres enkelhed: plot dine målinger over tid, tilføj kontrolgrænser baseret på standardafvigelse, og hold øje med punkter eller mønstre, der signalerer problemer. Denne realtidsovervågning forebygger fejl, før de opstår, i stedet for at fange dem ved efterfølgende inspektion.

Moderne fremstillings-, sundheds- og serviceindustrier er afhængige af kontroldiagrammer til at opretholde kvalitet. Fra halvlederfabrikation, der kræver nanometerpræcision, til hospitalsinfektionsrater giver SPC en universel ramme for procesforbedring.

Fællesårsag vs. specialårsag

Fællesårsagsvariation er den naturlige, forventede variabilitet i enhver proces. Specialårsagsvariation indikerer, at noget har ændret sig – en ny operatør, et slidt værktøj eller forurenet materiale. Kontroldiagrammer hjælper dig med at skelne mellem de to.

Typer af kontroldiagrammer

Forskellige datatyper kræver forskellige kontroldiagrammer. Valg af det rigtige diagram sikrer nøjagtig procesovervågning:

DiagramtypeDatatypeAnvendelse
X̄-R (X-bar og Range)Kontinuerte, undergrupper n≤10Produktionsmålinger
X̄-S (X-bar og Std.afv.)Kontinuerte, undergrupper n>10Stor batchstikprøve
I-MR (Individuel-glidende Range)Individuelle målingerDyr/destruktiv testning
p-diagramAndel defekteGodkendt/afvist-inspektion
c-diagramAntal defekterFejl pr. enhed

Til kontinuerte data (målinger som længde, vægt, temperatur) er X̄-R-diagrammet mest almindeligt. Man indsamler undergrupper af stikprøver, plotter gennemsnittet (X̄) på ét diagram og variationsbredden (R) på et andet. Tilsammen overvåger de både procescentrering og variabilitet.

Beregning af kontrolgrænser

Kontrolgrænser definerer de forventede variationsgrænser. De sættes ved ±3 standardafvigelser fra centerlinjen og dækker 99,73% af punkterne, når processen er under kontrol:

Control Limits

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

For et X̄-diagram med variationsbreddemetoden bliver formlerne:

X-bar Chart Limits

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

Hvor X̿ er det overordnede gennemsnit, R̄ er den gennemsnitlige variationsbredde, og A₂ er en konstant afhængig af undergruppestørrelse (f.eks. A₂ = 0,577 for n=5).

Kontrolgrænser ≠ specifikationsgrænser

Kontrolgrænser beregnes ud fra dine data og afspejler, hvad processen faktisk gør. Specifikationsgrænser fastsættes af kunder/ingeniører og afspejler, hvad processen bør gøre. En proces kan være under kontrol, men stadig producere dele uden for specifikation.

Kontrolgrænsekonstanter

nA₂D₃D₄
21.88003.267
31.02302.574
40.72902.282
50.57702.114

Western Electric-regler til opdagelse af problemer

Et enkelt punkt uden for kontrolgrænserne er ikke det eneste tegn på problemer. Western Electric-reglerne opdager mere subtile mønstre ved at inddele diagrammet i zoner baseret på standardafvigelser:

  • Zone C:Inden for 1σ fra centerlinjen
  • Zone B:Mellem 1σ og 2σ fra centret
  • Zone A:Mellem 2σ og 3σ fra centret

De fire primære regler

1

Regel 1: Enkelt punkt

Ét punkt ud over 3σ (Zone A eller derover). Der er kun 0,27% sandsynlighed for, at dette sker naturligt.
2

Regel 2: Serie af 9

9 fortløbende punkter på samme side af centerlinjen. Indikerer et skift i procesgennemsnittet.
3

Regel 3: Trend af 6

6 fortløbende punkter med stigende eller faldende tendens. Antyder procesdrift eller værktøjsslitage.
4

Regel 4: Zonemønster

2 af 3 fortløbende punkter i Zone A eller derover (samme side). Tidlig advarsel om et skift.

Genkendelse af almindelige mønstre

Erfarne praktikere lærer at genkende visuelle mønstre, der indikerer specifikke problemer:

MønsterUdseendeSandsynlig årsag
SkiftPludselig niveauændringNy operatør, materialebatch, udstyrsjustering
TrendGradvis drift op/nedVærktøjsslitage, temperaturdrift, udmattelse
CyklusserGentaget op/ned-mønsterVagtskift, miljømæssige cyklusser, rotationsplaner
KlyngningPunkter samler sig nær centretForkerte grænser, afrundede/redigerede data
StratifikationPunkter undgår centretBlandede strømme, flere maskiner

Python-implementering

Opret et X̄-R-kontroldiagram med automatisk regelkontrol:

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)