السيطرة الإحصائية على العمليات: أساس الجودة
مخططات التحكم هي حجر الزاوية في السيطرة الإحصائية على العمليات (SPC)، وتستخدم الانحراف المعياري لمراقبة استقرار العمليات عبر الزمن. طورها والتر شيوهارت في مختبرات بل في العشرينيات، وتميز هذه الأدوات القوية بين التباين الناتج عن أسباب عامة (المتأصل في العملية) والتباين الناتج عن أسباب خاصة (الذي يشير إلى مشاكل تحتاج اهتمامًا).
عبقرية مخططات التحكم تكمن في بساطتها: ارسم قياساتك عبر الزمن، أضف حدود التحكم بناءً على الانحراف المعياري، وراقب النقاط أو الأنماط التي تشير إلى مشاكل. هذه المراقبة الفورية تمنع العيوب قبل حدوثها، بدلاً من اكتشافها من خلال الفحص بعد ذلك.
يعتمد التصنيع الحديث والرعاية الصحية وصناعات الخدمات على مخططات التحكم للحفاظ على الجودة. من تصنيع أشباه الموصلات الذي يتطلب دقة بالنانومتر إلى معدلات العدوى في المستشفيات، توفر SPC إطارًا عالميًا لتحسين العمليات.
الأسباب العامة مقابل الخاصة
أنواع مخططات التحكم
أنواع البيانات المختلفة تتطلب مخططات تحكم مختلفة. اختيار المخطط الصحيح يضمن مراقبة دقيقة للعملية:
| نوع المخطط | نوع البيانات | حالة الاستخدام |
|---|---|---|
| X̄-R (المتوسط والمدى) | مستمرة، مجموعات فرعية n≤10 | قياسات التصنيع |
| X̄-S (المتوسط والانحراف المعياري) | مستمرة، مجموعات فرعية n>10 | أخذ عينات الدفعات الكبيرة |
| I-MR (فردي-مدى متحرك) | قياسات فردية | الاختبارات المكلفة/المدمرة |
| p-chart | نسبة المعيب | فحص نجاح/فشل |
| c-chart | عدد العيوب | العيوب لكل وحدة |
للبيانات المستمرة (قياسات مثل الطول والوزن ودرجة الحرارة)، مخطط X̄-R هو الأكثر شيوعًا. تجمع مجموعات فرعية من العينات، ترسم المتوسط (X̄) على مخطط والمدى (R) على آخر. معًا، يراقبان كلاً من تمركز العملية وتباينها.
حساب حدود التحكم
حدود التحكم تحدد نطاق التباين المتوقع. تُحدَّد عند ±3 انحرافات معيارية من خط المركز، مما يلتقط 99.73% من النقاط عندما تكون العملية تحت السيطرة:
حدود التحكم
لمخطط X̄ باستخدام طريقة المدى، تصبح الصيغ:
حدود مخطط X-bar
حيث 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 |
قواعد ويسترن إلكتريك لاكتشاف المشاكل
نقطة واحدة خارج حدود التحكم ليست الإشارة الوحيدة للمشاكل. تكتشف قواعد ويسترن إلكتريك أنماطًا أدق بتقسيم المخطط إلى مناطق بناءً على الانحرافات المعيارية:
- المنطقة 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)