5- محاكاة نظام التحكم في جودة
عرض المشكلة:
تصنع قطعة عن طريق متتابعة من العمليات، كل
منها تتبع بدقيقتين للفحص. العملية الأولى تحتاج إلى 20% من القطع ليعاد
تصنيعها. العمليتين الثانية والثالثة تحتاج كل منهما إلى 15% و 5%
من القطع ليعاد تصنيعها على التوالي. 60% من القطع المعاد
تصنيعها تكون تالفه و تنبذ scrapped
، والـ 40% الباقية تحتاج الي إعادة معالجة
من العملية التي تم منها الرفض.
صناعة قطعة جديدة يتم في المتوسط كل 30
دقيقة بتوزيع اسي. الزمن للعملية الاولى يعطى بالجدول التالي:
Time For First Process
Frequency .05
.13 .16 .22 .29 .15
Process time (mins) 10 14 21 32 38 45
العملية الثانية تستغرق 15±6
دقائق وزمن العملية الأخيرة له توزيع طبيعي بمتوسط 24 دقيقة و إنحراف
معياري 4 دقائق.
1-
حاكي عمليات
التصنيع لـ 100 قطعة مكتملة.
2-
عين الزمن
الآزم لذلك وعدد القطع المرفوضة.
عرض البرنامج:
; GPSS World Sample File -
QCONTROL.GPS, by Gerard F. Cummings
*****************************************************************
*
*
*
Quality Control Program
*
* Time
units are in minutes
*
*****************************************************************
RMULT 93211
* Definitions
Transit TABLE
M1,100,100,20 ;Transit Time
Process FUNCTION RN1,D7
0,0/.05,10/.18,14/.34,21/.56,32/.85,38/1.0,45
*****************************************************************
GENERATE
(Exponential(1,0,30))
ASSIGN 1,FN$Process
;Process time in P1
Stage1 SEIZE
Machine1
ADVANCE
P1
;Process 1
RELEASE
Machine1
ADVANCE
2
;Inspection
TRANSFER
.200,,Rework1 ;20% Need rework
*****************************************************************
Stage2 SEIZE
Machine2
ADVANCE
15,6
;Process 2
RELEASE
Machine2
ADVANCE
2
;Inspection
TRANSFER
.150,,Rework2 ;15% Need rework
*****************************************************************
Stage3 SEIZE
Machine3
ADVANCE
(Normal(1,24,4))
;Process 3
RELEASE
Machine3
ADVANCE
2
;Inspection 3
TRANSFER
.050,,Rework3 ;5% need rework
TABULATE
Transit
;Record transit time
TERMINATE 1
*****************************************************************
Rework1 TRANSFER .400,,Stage1
TERMINATE
Rework2 TRANSFER .400,,Stage2
TERMINATE
Rework3 TRANSFER .400,,Stage3
TERMINATE
وصف النموذج سطرا بسطر:
RMULT
لبدء نواة مولد الأرقام العشوائية رقم 1 .
عند الحاجة لإجراء تكرارات للمحاكاة فإننا نغير نواة مولد الأرقام العشوائية فقط.
TABLE
الجدول الإنتقالي Table Transit سوف يجمع البيانات للمدرج التكراري والذي سيشاهد
تفاعليا.
FUNCTION
دالة لغة GPSS المسماه PROCESS تعطي القيمة (إقرأ من اليسار لليمين) 10,
14, 21, 32, 38, 45بحسب الإحتمالات المعطاة. لاحظ انه في دوال GPSS Functions يجب إستخدام دالة
التوزيع التراكمي Cumulative Distribution Functions لتعيين الإحتمالات.
GENERATE
تصنع قطع جديدة كل 30 دقيقة في المتوسط بتوزيع
اسي. أستخدمنا التوزيع الأسي الداخلي للغة GPSS.
ASSIGN
زمن التصنيع للمرحلة الاولى للعمل وضع في
العامل الأول parameter number 1
للمتعامل Transaction
SEIZE
العمل او الوظيفة تمتلك أو تنتظر كائن
التسهيلة Facility Entity
المسمي Machine1
ADVANCE
تبقي الوظيفة Machine1 مشغولة بمقدار الزمن المخزن في
العامل الأول parameter 1
للمتعامل الممثل للوظيفة.
RELEASE
المتعامل الممثل للوظيفة يترك Machine1 والتي يمكن عندئذ
إشغالها بالمتعامل المنتظر إذا وجد.
ADVANCE
القالب ADVANCE Block يحاكي زمن الفحص.
TRANSFER
قالب TRANSFER Block سوف يختار بشكل عشوائي 20%
من المتعاملين ليذهب إلى القالب المرمز Rework1 . هذا يمثل فشل القطعة الناتجة من Stage1 . الـ 80%
من المتعاملين الاخر يستمروا للمرحلة التالية.
SEIZE
المتعامل الذي مر من الفحص يتملك او ينتظر
التسهيلة Facility Entity
المسماة Machine2.
ADVANCE
القالب ADVANCE Block يحاكي زمن المرحلة الثانية stage 2.
RELEASE
المتعامل الممثل للوظيفة يترك Machine2 والتي يمكن عندئذ
إشغالها بالمتعامل المنتظر إذا وجد.
ADVANCE
القالب ADVANCE Block يحاكي زمن الفحص.
TRANSFER
قالب TRANSFER Block سوف يختار بشكل عشوائي 15%
من المتعاملين ليذهب
إلى القالب المرمز Rework2
. هذا يمثل فشل القطعة الناتجة من Stage2
. الـ 85% من المتعاملين الاخر يستمروا للمرحلة التالية.
SEIZE
المتعامل الذي مر من الفحص يتملك او ينتظر
التسهيلة Facility Entity
المسماة Machine3.
ADVANCE
القالب ADVANCE Block يحاكي زمن المرحلة الثانية stage 3. الزمن المستغرق موزع طبيعيا.
RELEASE
المتعامل الممثل للوظيفة يترك Machine3 والتي يمكن عندئذ
إشغالها بالمتعامل المنتظر إذا وجد.
ADVANCE
القالب ADVANCE Block يحاكي زمن الفحص.
TRANSFER
قالب TRANSFER Block سوف يختار بشكل عشوائي 5% من المتعاملين ليذهب إلى القالب المرمز Rework3 . هذا يمثل فشل
القطعة الناتجة من stage 3
. الـ 95% من المتعاملين الاخر يمثلوا القطع
المكتملة.
TABULATE
قالب TABULATE Block يضيف زمن الإكمال الى
المدرج التكراري الخاص بالجدول المسمى Transit ، تكتب الجداول تلقائيا في التقرير المعياري وتشاهد
كمدرجات تكرارية في نوافذ الجداول كل علي حدة.
TERMINATE
قالب TERMINATE Block ينهي المتعامل وينقص
عداد الإنهاء. يمكننا محاكاة عدد معين من القطع المكتملة بإستخدام عداد قطع في
العامل A (operand A ) من عبارة START statement.
TRANSFER
عندما يفشل متعامل (قطعة) فحص القطع في
المرحلة الاولى فإن له إحتمال 40% في ان يعاد إلى
المرحلة الاولى. وهذا يمثل قطعة يعاد تصنيعها.
TERMINATE
المتعاملين الآخرين يتم إنهائهم من المحاكاة
بدون إنقاص عداد القطع المكملة. وهذا يمثل نبذ scrapping القطع.
TRANSFER
عندما يفشل متعامل (قطعة) فحص القطع في
المرحلة الثانية ويرسل الى هذا القالب TRANSFER Block يكون له إحتمال 40%
في ان يعاد الى المرحلة الثانية. . وهذا يمثل قطعة يعاد تصنيعها.
TERMINATE
المتعاملين الآخرين يتم إنهائهم من المحاكاة
بدون إنقاص عداد القطع المكملة. وهذا يمثل نبذ scrapping القطع.
TRANSFER
عندما يفشل متعامل (قطعة) فحص القطع في
المرحلة الثالثة فإن له إحتمال 40% في ان يعاد إلى
المرحلة الثالثة. وهذا يمثل قطعة يعاد تصنيعها.
TERMINATE
المتعاملين الآخرين يتم إنهائهم من المحاكاة
بدون إنقاص عداد القطع المكملة. وهذا يمثل نبذ scrapping القطع.
النموذج منظم في عدة أجزاء. بعد تعريف جدول
إنتقالي Transit Table
ودالة عملية Process Function
نجد انه يوجد ثلاثة أجزاء للنموذج كل منها يمثل عملية تصنيع. كل متعامل يمثل قطعة
في احد مراحل التصنيع. وحدات الزمن هي الدقائق. كل خطوة لها إحتمالات فشل، واللتي
في هذه الحالة يرسل المتعامل إلى أحد القوالب المرمزة Rework1 أو Rework2 أو Rework3 على التوالي. القطع المعاد
تصنيعها لها إحتمال 60% في ان تنبذ وإلا تعيد خطوتها
الأخيرة.
إجراء المحاكاة:
في النافذة الرئيسية نختار File / Openومن صندوق الحوار نختار QCONTROLونضغط على Open ومن ثم
يجب خلق المحاكاة بإختيار Command / Create Simulation ثم نختار Command / START في صندوق
الحوار بدل 1 بـ 100 ثم إضغط OK
تنتهي المحاكاة عندما يدخل 100
متعامل Transactions
قالب TERMINATE Block
وهذا يمثل 100 قطعة مصنعة كاملة. كالمعتاد يكتب
تقرير معياري الى الملف QControl.1.1
. هذا التقرير يظهر ايضا بشكل تلقائي في نافذة التقارير.
مناقشة النتائج:
من زمن الإنتهاء End
Time في التقرير المعياري نرى انه استغرق 4153.8
دقائق أو حوالي 69 ساعة لإكمال 100
قطعة. من تعداد دخول القوالب Block
entry counts نستطيع إيجاد عدد القطع المرفوضة. العدد الكلي لدخول
القوالب Rework1
و Rework2 و Rework3 يبين ان هناك 22
قطعة فشلت في المرحلة الاولى و 14 قطعة فشلت في المرحلة
الثانية و 4 قطع فشلت في المرحلة الثالثة. هذا يشكل 40
قطعة فاشلة منها 21 (11+7+3)
قطعة نبذت.
داخل المحاكاة:
لنستكشف حالة نهاية المحاكاة التي تولد
عندها التقرير المعياري السابق. لنستخدم الأمر SHOW Command للنظر إلى بعض الصفات
العددية للنظام System Numeric
Attributes. اولا لنتأكد من زمن نهاية المحاكاة لنختار Command / SHOW وفي صندوق الحوار أكتب AC1 ثم اضغط OKفي سطر الحالة Status Line سنشاهد ان الزمن الحالي مساويا
زمن نهاية المحاكاة في التقرير السابق. لنختار Command / SHOW وفي صندوق الحوار أكتب N$Rework1 ثم اضغط OK ، هذه القيمة (22)
هو عدد القطع التي فشلت في المرحلة الاولى.
لنشاهد بعض نوافذ الرسومات، لنختار
Window
/ Simulation Window / Facilities Window
هذه نافذة التسهيلات. لاحظ ان فعالية Machine1 عالية جدا وانه يوجد
عدد كبير من القطع المنتظرة، يبدوا أن معدل الفشل عند Machine1 مثير للقلق لأنه يحمل هذا المصدر
المشغول جدا اكثر مما يطيقه.
الجدول Table Transit هو مدرج تكراري
لأزمنة الإكمال، لننظر إليه بإختيار
Window / Simulation Window / Table Window
وفي صندوق الحوار سنرى كلمة Transit فقط حيث انه يوجد جدول
واحد في المحاكاة نضغط على OK
برغم ان متوسط زمن الإنهاء كان 321
دقيقة الا ان بعض القطع اخذ اكثر من 800 دقيقة. الآن أقفل
نوافذ التسهيلات والجداول.
اننظر الآن أين القطع؟ نافذة القوالب سوف
تعطينا هذه المعلومات. لنختار
Window / Simulation Window / Blocks Window
لاحظ انه توجد 30 قطعة تنتظر Machine1 في قالب ASSIGN . سوف نجلري المحاكاة
من جديد ولنشاهدها من خلال بعض نوافذ الرسومات. لنبدأ بفتح نافذة العبارات ونعبئها
ببعض القيم التي نرغب في ملاحظتها. لنبقي نافذة القوالب مفتوحه لكي نشاهد إنسياب
المحاكاة ونفتح نافذة التعابير لمشاهدت بعض القيم المختارة بينما تجرى المحاكاة.
لنختار
Window / Simulation Window / Expressions Window
في صندوق تحرير العبارات وفي خانة الرمز
أكتب Rework1 وفي خانة التعبير أكتب N$Rework1 عندما نشاهد النافذة سوف نرى كم قطعة ارسلت
لإعادة تصنيعها لاحظ ان جزء منها سوف ينبذ. اضغط على View و على Memorize ثم انظر الى
إعادة التصنيع بعد المعالجة بالآلة الثانية. في نافذة تحرير العبارات وفي صندوق
الحوار استبدل القيمة الحلية في خانة الرمز بالقيمة Rework2 وفي خانة التعبير استبدل القيمة الحالية بـ N$Rework2
أخيرا أنظر الى إعادة
التصنيع بعد المعالجة بالآلة الثالثة في نافذة العبارات كالسابق بدل الرمز بـ Rework3 والتعبير بـ N$Rework3 ثم اضغط على View و Memorize. هذا سيمكننا من مشاهدت القطع الفاشلة، ايضا في
نافذة القوالب سوف نشاهد المتعاملين الفاشلين الداخلين لقوالب Rework1 و Rework2 و Rework3
لننظر الى رقم القطعة للمتعامل النشط، في
صندوق الحوار وفي خانة الرمز أكتب Part number وفي خانة العبارات أكتب XN1 اضغط View و
Memorize ثم OK
لنتخلص من كل المتعاملين ونصفر العدادات
الإحصائية. من القائمة الرئيسية نختار Command / Clear و OK . القيمة Part no. لم تصفر لأنها لا تتأثر بلأمر Clear سوف تتغير بمجرد بدء المحاكاة.
حرك افذتي القوالب والتعبير بحيث تظهر معا. نختار Command / START وبدل 1 بـ 50
ثم OK
لاحظ نافذتي القوالب والتعبير. أكتب
ملاحظاتك؟
الآن اقفل نافذة التعابير. كما لاحظت فإن
معظم القطع لم تفشل. دعنا نوقف المحاكاة عند حدوث فشل لقطعة في المرحلة الأولى.
أوقف المحاكاة Halt (Ctrl+Alt+H)
وفي نافذة القوالب نختار View
/ Entity Details لكي نحول الي المشاهدة المختصرة، ضع مؤشر الفارة علي القالب المرمز Rework1 وأضغط عليه فيصبح
مختارا (يتغير لونه) ثم اضغط على Place
في سطر الأدوات. إستمر المحاكاة بالضغط علي (Ctrl+Alt+C)
. ستتوقف المحاكاة عند فشل متعامل عند Rework1 الآن اجرى المحاكاة خطوة خطوة بالضغط على (Ctrl+Alt+1)
مرتين. الآن قم بالتجربة على النموذج بنفسك. جرب بدائل اخرى ودون ملاحظاتك؟