мод сис / V.Boev-GPSSvsAnyLogic
.pdfРис. 1.55. Ввод нового значения параметра в окно инспекта
1.2.9. Добавление гистограмм
Теперь добавим на диаграмму нашего потока гистограмму, которая будет отображать собранную временную статистику.
1.Перетащите элемент Гистограмма из палитры Статистика в то место графического редактора, куда хотите ее поместить.
2.Укажите, какой элемент сбора данных хранит данные, которые вы хотите отображать на гистограмме: щелкните мышью кнопку Добавить данные и введите в поле Данные имя соответ-
ствующего элемента: time_obrabotki (рис. 1.56).
3.В поле Заголовок: введите Histogram Time obrabotki.
4.Запустите модель. Фрагмент работы показан на рис. 1.57. Замечание. Обратите внимание, что после нового запуска моде-
ли time_mean=180, хотя ранее мы изменили его значение на 240.
1.2.10. Изменение времени обработки запросов сервером
Построенная модель соответствует постановке задачи (п. 1.2.1). В ней, с целью упрощения процесса построения первой модели, время обработки запросов сервером было принято распределѐнным по показательному (экспоненциальному) закону со средним значением T 2 3 мин.
71
Рис. 1.56. Окно установки свойств элемента Гистограмма
Рис. 1.57. Фрагмент работы модели с элементом управления и гистограммой
Однако в модели, реализованной средствами GPSS World (п. 1.1), время обработки поступающих запросов зависит от произ-
водительности сервера Q 6 105 оп/с и вычислительной сложности запросов, распределенной по нормальному закону с математи-
72
ческим ожиданием S1 6 107 оп и среднеквадратическим отклонением S2 2 105 оп:
VrObr VARIABLE (Normal(2,(S1_#Koef),(S2_#Koef)))/Q
Кроме того, в этой модели определяется среднее количество запросов, обработанных за время моделирования 3600 с.
Внесите в модель изменения для аналогичного расчѐта времени обработки запросов.
1.Удалите элемент Параметр с именем time_mean.
2.Из палитры Основная перетащите три элемента Параметр на диаграмму класса Main (рис. 1.58).
3.В поле Имя каждого из элементов введите S1_, S2_ и Q_ соответственно.
4.Выберите Тип double.
5.В поле Значение по умолчанию каждого из элементов
введите 60000000,200000 и 600000 соответственно.
6.Перетащите элемент Простая переменная.
7.В поле Имя укажите KolZap.
8.Выделите объект delay.
9.В поле Время задержки вместо exponential(1/time_mean)
введите:(normal(S2_,S1_))/Q_
10. Выделите объект sink. В поле Действие при входе к имеющемуся там коду добавьте код:
KolZap=sink.count()/9604.0;
В GPSS-модели количество прогонов равнялось 9604. Увеличим время моделирования в AnyLogic-модели в 9604 раз. А так как статистические данные о количестве обработанных запросов собираются за всѐ время моделирования, увеличенное в 9604 раз, то для получения среднего значения это количество нужно разделить на 9604, что и предусмотрено в коде.
11.Показатели моделируемой системы нужно определить в течение 3600 с, поэтому время моделирования в AnyLogic составит 34574400 единиц.
12.В панели Проект выделите Simulation. На странице Мо-
дельное время в поле Установить выберите В заданное время.
13.В поле Конечное время установите 34574400.
14.Запустите модель и дождитесь окончания моделирования. Результаты моделирования приведены на рис. 1.59.
73
Рис. 1.58. Элементы AnyLogic-модели, соответствующие постановке GPSS-модели
Рис. 1.59. Результаты моделирования обработки данных сервером
74
1.3. Результаты решения прямой задачи
Результаты решения прямой задачи в GPSS World и AnyLogic приведены в табл. 1.2. Из их сравнения следует, что они отличаются незначительно.
Разница между количеством обработанных сервером запросов
составляет |
1 |
29,161 29,142 |
0, 019, |
а среднее время обработки |
|||
одного запроса |
2 |
|
254,942 |
|
0,32. Вероятности обра- |
||
255,962 |
|
||||||
ботки запросов отличаются на 0,001. |
|
|
|||||
|
|
|
|
|
|
|
Таблица 1.2 |
|
|
|
|
|
|
||
|
Показатели |
|
|
GPSS World |
AnyLogic |
||
Количество обработанных запросов |
29,161 |
29,142 |
|||||
Вероятность обработки запросов |
|
|
0,970 |
0,971 |
|||
Среднее время обработки одного запроса |
255,262 |
254,942 |
|||||
Коэффициент использования сервера |
0,810 |
0,810 |
75
ГЛАВА 2. МОДЕЛЬ ПРОЦЕССА ИЗГОТОВЛЕНИЯ
ВЦЕХЕ ДЕТАЛЕЙ
2.1.Модель в GPSS World
2.1.1. Решение прямой задачи
2.1.1.1. Постановка задачи
Изготовление в цехе детали начинается через случайное время Tп . Выполнению операций предшествует подготовка. Длительность подготовки зависит от качества заготовки, из которой будет сделана деталь. Всего различных видов заготовок n1 . Время подго-
товки подчинено экспоненциальному закону. Частота появления различных заготовок и средние значения времени их подготовки заданы табл. 2.1 дискретного распределения:
|
|
|
|
|
|
Таблица 2.1 |
||
|
|
|
|
|
|
|
|
|
Частота |
0,05 |
0,13 |
0,16 |
0,22 |
0,29 |
|
0,15 |
|
|
|
|
|
|
|
|
|
|
Среднее время |
10 |
14 |
21 |
22 |
28 |
|
25 |
|
|
|
|
|
|
|
|
|
|
Для изготовления детали последовательно выполняются n операций со средними временами T1 , T2 , ..., Tn соответственно. После
каждой операции в течение времени Tк1 , Tк 2 , ..., Tкn следует контроль. Время выполнения операций и контроля — случайное. Контроль не проходят q1 , q2 , ..., qn % деталей соответственно.
Забракованные детали поступают на пункт окончательного контроля и проходят на нем проверку в течение времени, распределѐнного по экспоненциальному закону со средним значением
Tк . В результате из общего количества не прошедших контроль деталей qn 1 % идут в брак, а оставшиеся 1 qn 1 % деталей под-
лежат повторному выполнению операций, после которых они не прошли контроль. Если деталь во второй раз не проходит контроль, она окончательно бракуется.
2.1.1.2. Исходные данные
n1 6; Exponential Tп |
Exponential 30 ; |
q1 |
12 %, q2 |
15 %; |
||
n 3; Exponential(T1 ) Exponential(30); |
q3 |
10 %, q4 |
80 %; |
|||
Exponential(T2 ) |
Exponential(25); Exponential T3 |
|
Exponential(35); |
|||
Exponential(Tк1 ) |
Exponential(4); Exponential(Tк 2 ) |
Exponential(5); |
||||
Exponential Tк3 |
Exponential(15); Exponential(Tк ) |
Exponential(8). |
76
2.1.1.3. Задание на исследование
Разработать имитационную модель для определения оценки математического ожидания количества деталей, изготовленных цехом в течение 8 часов.
Модель должна также позволять определять относительное количество готовых и забракованных деталей, среднее время изготовления одной детали.
Результаты моделирования необходимо получить с точностью ε = 0,01 и доверительной вероятностью α = 0,99.
2.1.1.4. Уяснение задачи на исследование
Процесс изготовления в цехе деталей представляет собой процесс, протекающий в многофазной разомкнутой системе массового обслуживания с ожиданием (рис. 2.1). Есть также признаки замкнутой системы — потоки брака для повторной обработки.
Рис. 2.1. Цех как система массового обслуживания
77
Представим, что подготовка заготовки и операции 1, 2 и 3 производятся на станках — одноканальных устройствах (ОКУ) 1, 2, 3 и 4 соответственно. Пункт окончательного контроля можно также представить ОКУ. Необходимые для их имитации средства GPSS приведены на рис. 2.1.
Время подготовки заготовки и время выполнения операций даны в мин. Возьмѐм 1 ед. мод. вр. = 1мин.
Рассчитаем количество прогонов, которые нужно выполнить в каждом наблюдении. При этом примем относительное количество готовых деталей как ожидаемую вероятность. Поскольку она заранее не известна, то расчѐт проведѐм для худшего случая:
|
2 |
2 |
0,5 1 |
0,5 |
0, 25 |
|
||
|
|
2 |
|
|
|
|
|
|
N t |
|
|
2,58 |
|
6, 656 |
|
16641. |
|
|
2 |
0, 012 |
0, 0001 |
Программа модели прямой задачи приведена ниже.
2.1.1.5. Программа модели
;Модель процесса изготовления деталей. Прямая задача
;Задание исходных данных
TimeModEQU 480; Время моделирования, 1 ед. мод. вр. = 1 мин
;Среднее время
Tn_ |
EQU |
35 |
; между поступлениями заготовок |
||
T1 |
EQU |
30 |
; выполнения |
1-й |
операции, мин |
T2 |
EQU |
25 |
; выполнения |
2-й |
операции, мин |
T3 |
EQU |
35 |
; выполнения |
3-й |
операции, мин |
Tk1 |
EQU |
4 |
; контроля после |
1-й операции, мин |
|
Tk2 |
EQU |
5 |
; контроля после |
2-й операции, мин |
|
Tk3 |
EQU |
15 |
; контроля после |
3-й операции, мин |
|
Tk |
EQU |
8 |
; окончательного |
контроля, мин |
|
q1_ |
EQU |
.12 |
; Доля брака |
после 1-й операции |
|
q2_ |
EQU |
.15 |
; Доля брака |
после 2-й операции |
|
q3_ |
EQU |
.10 |
; Доля брака |
после 3-й операции |
|
q4_ |
EQU |
.80 |
; Доля окончательного брака |
;Описание функции времени подготовки заготовок
Pod FUNCTION RN10,D6
.05,10/.18,14/.34,21/.56,22/.85,28/1,25
;Сегмент имитации изготовления деталей
GENERATE (Exponential(23,0,Tn_)) ; Источник заготовок
;Подготовка заготовок для деталей
QUEUE |
Pod |
; Встать в очередь |
78
SEIZE |
Pod |
; |
Начать подготовку заготовки |
DEPART |
Pod |
; |
Покинуть очередь |
ADVANCE |
(Exponential(34,0,FN$Pod)); Подготовка |
||
RELEASE |
Pod |
; Закончить подготовку заготовки |
;Имитация выполнения 1-й операции
DCount |
ASSIGN |
1,1 |
; Код 1 - проходит первый раз |
ASSIGN |
2,1 |
; Код 1 в Р2-признак 1-й операции |
|
Oper1 |
QUEUE |
P2 |
; Встать в очередь |
SEIZE |
Konveer1 ; Начать 1-ю операцию |
||
DEPART |
P2 |
; Покинуть очередь |
|
ADVANCE |
(Exponential(23,0,T1)); 1-я операция |
||
RELEASE |
Konveer1 ; Закончить 1-ю операцию |
||
ADVANCE |
(Exponential(23,0,Tk1)); Контроль 1-й |
||
операции |
|
|
|
TRANSFER |
q1_,,Sboi ; Брак на пункт контроля |
;Имитация выполнения 2-й операции
ASSIGN |
2,2 ; Код 2 в Р2-признак 2-й операции |
|
Oper2 QUEUE |
P2 |
; Встать в очередь |
SEIZE |
Konveer2 |
; Начать вторую операцию |
DEPART P2 |
|
; Покинуть очередь |
ADVANCE(Exponential(23,0,T2)) ; 2-я операция |
||
RELEASE |
Konveer2 |
; Закончить 2-ю операцию |
ADVANCE(Exponential(23,0,Tk2)) ; Контроль 2-й |
||
операции |
|
|
TRANSFER |
q2_,,Sboi |
; Брак на пункт контроля |
;Имитация выполнения 3-й операции
ASSIGN |
2,3 ; Код 3 в Р2-признак 3-й операции |
||
Oper3 QUEUE |
P2 |
|
; Встать в очередь |
SEIZE |
Konveer3 |
|
; Начать третью операцию |
DEPART |
P2 |
|
; Покинуть очередь |
ADVANCE |
(Exponential (23,0,T3)) ; 3-я операция |
||
RELEASE |
Konveer3 |
|
; Закончить 3-ю операцию |
ADVANCE |
(Exponential(23,0,Tk3)); Контроль 3-й |
||
операции |
|
|
|
TRANSFER |
q3_,,Sboi |
|
; Брак на пункт контроля |
EndOper1 TERMINATE |
|
; Счѐт готовых деталей |
|
; Сегмент имитации работы |
пункта контроля |
||
Sboi TEST E P1,1,EndOper |
; Если второй раз, то в |
||
окончательный брак |
|
|
|
QUEUE |
Kont ; В очередь на пункт контроля |
||
SEIZE |
Kontr |
; Занять пункт контроля |
|
DEPART |
Kont |
; Покинуть |
|
ADVANCE |
(Exponential(23,0,Tk)); Окончательный |
||
контроль |
|
|
|
79
RELEASE |
Kontr |
; Освободить пункт контроля |
TRANSFER |
q4_,,EndOper ; В окончательный брак |
|
ASSIGN |
1,2 |
; Код 2 в Р1-деталь пойдѐт |
второй раз |
|
|
Met1 TRANSFER |
,(Met1+P2) |
|
TRANSFER |
,Oper1 |
; Повторно на 1-ю операцию |
TRANSFER |
,Oper2 |
; Повторно на 2-ю операцию |
TRANSFER |
,Oper3 |
; Повторно на 3-ю операцию |
EndOperTERMINATE ; Счет брака |
|
; Cегмент задания времени |
моделирования и расчета |
результатов моделирования |
|
GENERATE TimeMod; Время моделирования
TEST L X$Prog,TG1,Met11 ; Если условие выпол-
няется, то
SAVEVALUE Prog,TG1 ; X$Prog=TG1 содержимому счетчика завершений
Met11 TEST E TG1,1,Met12 ; Если содержимое счетчика
равно 1, то расчет результатов моделирования |
|
|
SAVEVALUE NDet,(N$EndOper1/X$Prog) |
; Коли- |
|
чество готовых деталей, шт. |
|
|
SAVEVALUE Brak,(N$EndOper/X$Prog) |
; Коли- |
|
чество забракованных деталей, шт. |
|
|
SAVEVALUE DoljaBrak,(X$Brak/(X$Brak+X$NDet)) |
||
; Общая доля брака |
|
|
SAVEVALUE DoljaDet,(X$NDet/(X$Brak+X$NDet)) |
||
; Доля готовых деталей |
|
|
SAVEVALUE NDet,(INT(X$NDet)) |
; Количество го- |
|
товых деталей (целое), шт. |
|
|
SAVEVALUE Brak,(INT(X$Brak)) |
; Количество за- |
бракованных деталей (целое), шт.
SAVEVALUE SDet,((AC1-X$AC2)/N$EndOper1) ; Сред-
нее время изготовления одной детали, мин
SAVEVALUE AC2,AC1
Met12 TERMINATE 1 |
|
|
START |
1000,NP |
; Число предварительных прогонов |
RESET |
|
; Сброс статистики |
START |
16641 |
; Число основных прогонов |
Замечание. В программе при обращении несколько раз к встроенному генератору экспоненциально распределѐнных случайных чисел взято одно и тоже начальное число 23, хотя рекомендуется брать различные начальные числа. Сделано это для чистоты эксперимента — сравнения в последующем результатов моделирова-
ния GPSS World с результатами AnyLogic.
80