Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

мод сис / V.Boev-GPSSvsAnyLogic

.pdf
Скачиваний:
88
Добавлен:
11.04.2015
Размер:
9.01 Mб
Скачать

Рис. 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