- •Рассмотрено на заседании кафедры атп
- •Введение
- •Постановка задачи
- •Исходные данные
- •Требования
- •Текст программы на gpss
- •Распечатка выходных данных для моделирования работы участка цеха в течение рабочего дня.
- •Распечатка выходных данных для моделирования работы участка цеха в течение рабочей недели
- •График для представления длины очереди ко 2 оборудованию
- •Выдвижение гипотезы
- •Постановка задачи
График для представления длины очереди ко 2 оборудованию
Для наглядности можно графически представить некоторые параметры функционирования системы.
Допустим, мы хотим представить на всем периоде моделирования количество изделий, обработанных на втором виде оборудования.
Для начала должным образом заполним окно Edit Plot Window:
Обсуждение результатов моделирования
Из информации, содержащейся в листинге выходного отчета, можно сформировать следующие таблицы.
Таблица 1. Средняя загрузка станков, %
Станок |
В течение 8 часов |
В течение 5 рабочих дней |
АI |
95 |
99 |
А2 |
67 |
73 |
А3 |
55 |
62 |
Таблица 2. Максимальная длина очередей к станкам
Станок |
В течение 8 часов |
В течение 5 рабочих дней |
АI |
18 |
101 |
А2 |
0 |
0 |
А3 |
0 |
0 |
Таблица 3. Среднее время обработки деталей на станках, мин
Станок |
В течение 8 часов |
В течение 5 рабочих дней |
АI |
97.235 |
508.055 |
А2 |
1.553 |
2.223 |
А3 |
0.918 |
1.910 |
Отсеивающий эксперимент
a11_time equ 18
a12_time equ 12
a21_time equ 25
a22_time equ 10
a31_time equ 12
a32_time equ 12
GENERATE 15,5
QUEUE AA1
SEIZE AI
DEPART AA1
ADVANCE 18,3
RELEASE AI
QUEUE AA2
SEIZE A2
DEPART AA2
ADVANCE 10,3
RELEASE A2
QUEUE AA3
SEIZE A3
DEPART AA3
ADVANCE 12,5
RELEASE A3
TERMINATE
GENERATE 35,8
QUEUE AA1
SEIZE AI
DEPART AA1
ADVANCE 20,4
RELEASE AI
QUEUE AA2
SEIZE A2
DEPART AA2
ADVANCE 25,8
RELEASE A2
QUEUE AA3
SEIZE A3
DEPART AA3
ADVANCE 12,4
RELEASE A3
TERMINATE
GENERATE 480
TERMINATE 1
Так как загружены только станок А1 и А2, то будем рассматривать только их временные оценки.
*******************************************************
* *
* SEM *
* Fractional Factorial Screening Experiment *
* *
*******************************************************
SEM_Results MATRIX ,2,2,2,2,2
INITIAL SEM_Results,UNSPECIFIED
SEM_NextRunNumber EQU 0
EXPERIMENT SEM() BEGIN
/* Run 1 */
a11_time = 15;
a12_time = 16;
a21_time = 7;
a22_time = 17;
a32_time = 8;
IF (StringCompare(DataType(SEM_Results[1,1,1,1,1]),"UNSPECIFIED")'E'0)
THEN BEGIN
/* Set the Run Number Variable at the beginning. */
SEM_NextRunNumber = 1;
/* Log the Run and Execute the Simulation */
SEM_GetResult();
SEM_Results[1,1,1,1,1] = Q$AA2;
END;
/* Run 2 */
a11_time = 15;
a12_time = 16;
a21_time = 7;
a22_time = 33;
a32_time = 16;
IF (StringCompare(DataType(SEM_Results[1,1,1,2,2]),"UNSPECIFIED")'E'0)
THEN BEGIN
/* Log the Run and Execute the Simulation */
SEM_GetResult();
SEM_Results[1,1,1,2,2] = Q$AA2;
END;
/* Run 3 */
a11_time = 15;
a12_time = 24;
a21_time = 13;
a22_time = 17;
a32_time = 16;
IF (StringCompare(DataType(SEM_Results[1,2,2,1,2]),"UNSPECIFIED")'E'0)
THEN BEGIN
/* Log the Run and Execute the Simulation */
SEM_GetResult();
SEM_Results[1,2,2,1,2] = Q$AA2;
END;
/* Run 4 */
a11_time = 15;
a12_time = 24;
a21_time = 13;
a22_time = 33;
a32_time = 8;
IF (StringCompare(DataType(SEM_Results[1,2,2,2,1]),"UNSPECIFIED")'E'0)
THEN BEGIN
/* Log the Run and Execute the Simulation */
SEM_GetResult();
SEM_Results[1,2,2,2,1] = Q$AA2;
END;
/* Run 5 */
a11_time = 21;
a12_time = 16;
a21_time = 13;
a22_time = 17;
a32_time = 16;
IF (StringCompare(DataType(SEM_Results[2,1,2,1,2]),"UNSPECIFIED")'E'0)
THEN BEGIN
/* Log the Run and Execute the Simulation */
SEM_GetResult();
SEM_Results[2,1,2,1,2] = Q$AA2;
END;
/* Run 6 */
a11_time = 21;
a12_time = 16;
a21_time = 13;
a22_time = 33;
a32_time = 8;
IF (StringCompare(DataType(SEM_Results[2,1,2,2,1]),"UNSPECIFIED")'E'0)
THEN BEGIN
/* Log the Run and Execute the Simulation */
SEM_GetResult();
SEM_Results[2,1,2,2,1] = Q$AA2;
END;
/* Run 7 */
a11_time = 21;
a12_time = 24;
a21_time = 7;
a22_time = 17;
a32_time = 8;
IF (StringCompare(DataType(SEM_Results[2,2,1,1,1]),"UNSPECIFIED")'E'0)
THEN BEGIN
/* Log the Run and Execute the Simulation */
SEM_GetResult();
SEM_Results[2,2,1,1,1] = Q$AA2;
END;
/* Run 8 */
a11_time = 21;
a12_time = 24;
a21_time = 7;
a22_time = 33;
a32_time = 16;
IF (StringCompare(DataType(SEM_Results[2,2,1,2,2]),"UNSPECIFIED")'E'0)
THEN BEGIN
/* Log the Run and Execute the Simulation */
SEM_GetResult();
SEM_Results[2,2,1,2,2] = Q$AA2;
END;
/* Aliased Effects in Fractional Factorial Experiment */
SE_Effects(SEM_Results,"I=ABC=CDE");
END;
*******************************************************
* The Run Execution Procedure *
*******************************************************
PROCEDURE SEM_GetResult() BEGIN
/* Run Simulation and Log Results. */
/* Treatments have already been set for this run. */
TEMPORARY CurrentYield,ShowString,CommandString;
/* Run Procedure Call */
DoTheRun(SEM_NextRunNumber);
CurrentYield = Q$AA2;
ShowString = PolyCatenate("Run ",String(SEM_NextRunNumber),". ", "" );
ShowString = PolyCatenate(ShowString," Yield=",String(CurrentYield),". ");
ShowString = PolyCatenate(ShowString," a11_time=",String(a11_time), ";" );
ShowString = PolyCatenate(ShowString," a12_time=",String(a12_time), ";" );
ShowString = PolyCatenate(ShowString," a21_time=",String(a21_time), ";" );
ShowString = PolyCatenate(ShowString," a22_time=",String(a22_time), ";");
ShowString = PolyCatenate(ShowString," a32_time=",String(a32_time), ";" );
CommandString = PolyCatenate("SHOW """,ShowString,"""", "" );
DoCommand(CommandString);
SEM_NextRunNumber = SEM_NextRunNumber + 1;
RETURN CurrentYield;
END;
*******************************************************
* Run Procedure *
*******************************************************
PROCEDURE DoTheRun(Run_Number) BEGIN
DoCommand("CLEAR OFF"); /* Must use OFF to preserve results. */
/* EXPAND THIS RMULT IF YOU HAVE MORE RNGs. */
/* All Random Number Streams must have new seeds. */
TEMPORARY CommandString;
/* Evaluate before passing to DoCommand. */
CommandString = Catenate("RMULT ",Run_Number#111);
/* DoCommand compiles the string in Global Context. */
DoCommand(CommandString);
/* SET UP YOUR OWN RUN CONDITIONS. */
DoCommand("START 100,NP"); /* Get past the Startup Period. */
DoCommand("RESET"); /* Begin the Measurement Period. */
DoCommand("START 1000,NP"); /* Run the Simulation. */
END;
Результат отсеивающего эксперимента
12/24/10 17:04:23 Simulation in Progress.
12/24/10 17:04:23 A Simulation in an Experiment has ended. Clock is 48000.000000.
12/24/10 17:04:23 Simulation in Progress.
12/24/10 17:04:23 A Simulation in an Experiment has ended. Clock is 528000.000000.
12/24/10 17:04:23 "Run 8. Yield=0. a11_time=21; a12_time=24; a21_time=7; a22_time=33; a32_time=16;"
12/24/10 17:04:23 _______________________________________________________________________________
12/24/10 17:04:23 Alias Effect Sum of Degrees of F - for Only Critical Value
12/24/10 17:04:23 Group Squares Freedom Main Effects of F (p=.05)
12/24/10 17:04:23 _______________________________________________________________________________
12/24/10 17:04:23 A = BC = BDE = ACDE 0.250 0.125 1 1.000 18.51
12/24/10 17:04:23 B = AC = ADE = BCDE -0.250 0.125 1 1.000 18.51
12/24/10 17:04:23 C = AB = DE = ABCDE -0.250 0.125 1 1.000 18.51
12/24/10 17:04:23 D = CE = ABE = ABCD 0.250 0.125 1 1.000 18.51
12/24/10 17:04:23 AD = BE = ACE = BCD 0.250
12/24/10 17:04:23 AE = BD = ACD = BCE -0.250
12/24/10 17:04:23 E = CD = ABD = ABCE -0.250 0.125 1 1.000 18.51
12/24/10 17:04:23 _______________________________________________________________________________
12/24/10 17:04:23 Error 0.250 2
12/24/10 17:04:23 Total 0.875 7
12/24/10 17:04:23 Grand Mean 0.125
12/24/10 17:04:23 _______________________________________________________________________________
12/24/10 17:04:23 Experiment ended.
12/24/10 17:13:06 "Run 43. Yield=0. a11_time=18; a12_time=20; a21_time=10; a22_time=17; a32_time=12;"
12/24/10 17:13:06 Simulation in Progress.
12/24/10 17:13:06 A Simulation in an Experiment has ended. Clock is 48000.000000.
12/24/10 17:13:06 Simulation in Progress.
12/24/10 17:13:06 A Simulation in an Experiment has ended. Clock is 528000.000000.
12/24/10 17:13:06 "Run 44. Yield=0. a11_time=18; a12_time=20; a21_time=10; a22_time=25; a32_time=16;"
12/24/10 17:13:07 Simulation in Progress.
12/24/10 17:13:07 A Simulation in an Experiment has ended. Clock is 48000.000000.
12/24/10 17:13:07 Simulation in Progress.
12/24/10 17:13:07 A Simulation in an Experiment has ended. Clock is 528000.000000.
12/24/10 17:13:07 "Run 45. Yield=0. a11_time=18; a12_time=20; a21_time=10; a22_time=25; a32_time=8;"
12/24/10 17:13:07 Second order model fails. Saddle point detected.
12/24/10 17:13:07 Goodness of fit test fails.
12/24/10 17:13:07 Standard Error is 0. Cannot perform F test.
12/24/10 17:13:07 RSM_FitSurfaceToData() returns 1.
12/24/10 17:13:07 "ERROR: Response Surface Fails. Optimum not found."
12/24/10 17:13:07 Experiment ended.
