мод сис / V.Boev-GPSSvsAnyLogic
.pdfПо результатам контроля некоторые изделия будут признаны браком. Для отбраковки воспользуйтесь элементом selectOutPut.
1.Перетащите элементы queue, delay и selectOutPut на прямоугольник с Пункты приема изделий диаграммы класса Main.
2.Разместите и соедините их согласно рис. 6.12.
3.Выделите элемент queue и установите на странице Основ-
ные панели Свойства:
Имя: очерПрием
Класс заявки: Product
Максимальная вместимость Установите флажок
4. Выделите элемент delay и установите его свойства:
Класс заявки: Product Задержка задается Явно
Время задержки exponential( 1/timePriemIzd )
Вместимость kolPunPriem
Действие при выходе kolPriemIzd++; costPriemkiIzd += stPriemIzd; entity.cost += stPriemIzd;
5. Выделите элемент selectOutPut и установите его свойства:
Класс заявки: Product
Выход true выбирается С заданной вероятностью
Вероятность[0..1] 1-procBrakPriem
Действие при выходе (false) entity.sign1 = 2; brakPriemIzd++;
Код свойства Действие при выходе элемента delay введен для счета количества kolPriemIzd принятых всего изделий.
Код свойства Действие при выходе (false) элемента selectOutPut считает количество brakPriemIzd забракованных изделий и полю entity.sign1 присваивает 2 — признак брака в изделии.
6.2.4.6. Имитация склада готовых изделий
Для имитации склада готовых изделий используйте элемент sink со следующими свойствами:
Имя: ГотИзделия
Класс заявки: Product
Действие при выходе kolGotIzd++;
321
timeIzd = time()/kolGotIzd; costGotIzd += entity.cost; minCostGotIzd+=minCostIzd; koefIncrCostIzd =
(costGotIzd+costBrakBlock)/minCostGotIzd; ostGotBlock1 = gotBlock1 - kolGotIzd - zamBlock1; ostGotBlock2 = gotBlock2 - kolGotIzd - zamBlock2; ostGotBlock3 = gotBlock3 - kolGotIzd - zamBlock3; ostGotBlock4 = gotBlock4 - kolGotIzd - zamBlock4;
Код свойства Действие при выходе введен для счѐта количества kolGotIzd готовых изделий, их стоимости costGotIzd и коэффициента koefIncrCostIzd увеличения себестоимости изделия вследствие наличия брака.
Кроме того, ведется счѐт готовых для сборки блоков, то есть изготовленных цехами и проверенных на постах контроля, но не использованных для сборки изделий блоков по типам ostGotBlock1… ostGotBlock4 на текущее модельное время.
6.2.4.7. Имитация склада бракованных блоков
Ранее (см. п. 6.2.4.2) для имитации склада бракованных блоков было рекомендовано использовать один блок sink.
Предположим, что требуется вести раздельный учѐт забракованных блоков на постах контроля цехов и забракованных на стендах контроля и пунктах приѐма изделий. Для разделения потока брака дополнительному полю entity.sign1 присваивались признаки 1 или 2.
1.Перетащите объекты selectOutput и sink на прямоугольник
сименем Склад бракованных блоков диаграммы класса Main.
2.Разместите и соедините их согласно рис. 6.12.
3.Поочередно выделите объекты имитации склада бракованных блоков, начиная с объекта selectOutput, и установите свойства согласно табл. 6.8.
Коды в свойстве Действие при выходе обоих объектов sink одинаковые. Они предназначены для счѐта:
стоимости costzbrakBlock забракованных блоков не по типам, а в целом всех блоков;
количества забракованных блоков по типам allBrakBlock1… allBrakBlock4.
4. Из палитры Картинки перетащите на сегменты имитации складов готовых изделий и бракованных блоков картинки Склад.
322
Таблица 6.8
Свойства |
Значение |
|
|
|
selectOutput |
|
|
Класс заявки: |
Product |
Выход true выбирается |
При выполнении условия |
Условие |
entity.sign1 == 1 |
|
sink |
|
|
Имя |
БрПостКонтр |
Класс заявки: |
Product |
Действие при выходе |
if (entity.numBlBrak1 == 1) |
|
{costBrakBlock += costBlock1; |
|
allBrakBlock1++;} |
|
if (entity.numBlBrak2 == 1) |
|
{costBrakBlock += costBlock2 ; |
|
allBrakBlock2++;} |
|
if (entity.numBlBrak3 == 1) |
|
{costBrakBlock += costBlock3; |
|
allBrakBlock3++;} |
|
if (entity.numBlBrak4 == 1) |
|
{costBrakBlock += costBlock4; |
|
allBrakBlock4++;} |
Имя |
БрБлЗам |
Класс заявки: |
Product |
Действие при выходе |
if (entity.numBlBrak1 == 1) |
|
{costBrakBlock += costBlock1; |
|
allBrakBlock1++;} |
|
if (entity.numBlBrak2 == 1) |
|
{costBrakBlock += costBlock2; |
|
allBrakBlock2++;} |
|
if (entity.numBlBrak3 == 1) |
|
{costBrakBlock += costBlock3; |
|
allBrakBlock3++;} |
|
if (entity.numBlBrak4 == 1) |
|
{costBrakBlock += costBlock4; |
|
allBrakBlock4++;} |
Замечание. Можно обойтись и одним объектом sink для имитации склада бракованных блоков. Для этого нужно оба кода (см. табл. 6.8) занести в его свойство Действие при выходе.
В начало первого кода добавить: if (entity.sign1 == 1)
323
{ код для БрПостКонтр }
а во второго
if (entity.sign1 == 2) { код для БрБлЗам }
Количественный результат будет аналогичным, только во время прогонов модели вы не сможете визуально наблюдать раздельные потоки забракованных блоков.
6.2.4.8. Организация переключения между областями просмотра
Добавьте свои собственные элементы презентации на ранее созданные области просмотра Mainview, Data, Result, Kont1 и Sbor, щелчком на которых будет производиться переход к той или иной области просмотра. Сделайте так, чтобы из любой области можно было переходить в любую другую область.
Для этого разместите на каждой области просмотра элементы презентации, показанные на рис. 6.13.
Рис. 6.13. Элементы презентации для переключения
Начните с области просмотра Mainview.
1. В Палитре выделите Презентация. Перетащите элемент text на область просмотра Mainview, разместите и введите в поле Текст: Предприятие (рис. 6.13). На странице Основные панели Свойства установите в поле Цвет: black, а также выберите выравнивание текста и шрифт.
2. Перетащите второй элемент text, разместите и введите в поле Текст: Посты контроля блоков. На странице Основ-
ные панели Свойства установите в поле Цвет: blue, а также выберите выравнивание текста и шрифт. На панели Свойства выде-
лите Динамические и в поле Действие по щелчку: введите код: test.Kontr1.navigateTo();
Замечание. Можете выбрать и другие цвета элементов презентации. При этом нужно исходить из того, чтобы различались по цвету текст открытой области просмотра и тексты закрытых областей просмотра.
324
3. Перетащите третий элемент text, разместите и введите
вполе Текст: Пункты сборки изделий. На панели Свойства
выделите Динамические и в поле Действие по щелчку: введите: sborka.Sbor.navigateTo();
4.Перетащите четвертый элемент text, разместите и введите
вполе Текст: Исходные данные. На панели Свойства выдели-
те Динамические и в поле Действие по щелчку: введите:
Data.navigateTo();
5. Перетащите пятый |
элемент text, разместите и введите |
в поле Текст: Результаты |
моделирования. На панели Свой- |
ства выделите Динамические и в поле Действие по щелчку:
введите: Result.navigateTo();
Таким образом, с области просмотра Mainview можно будет переходить на любую из четырех областей просмотра. При этом элемент презентации открытой области высвечивается черным цветом, а остальные элементы презентации — голубым цветом.
1.Скопируйте элементы презентации так, как они показаны на рис. 6.13.
2.Последовательно переходите на остальные области просмотра, вставьте скопированные элементы презентации и внесите правки в их свойства согласно табл. 6.9.
Построение модели для проведения простого эксперимента завершено. Теперь отладьте модель и проведите эксперимент.
Замечание. При каждом запуске модели результаты будут повторяться, если в модели используются только распределения и случайные функции из AnyLogic. Например, если вместо функции uniform(1) использовать функцию random(), которая является функцией Java, то результаты моделирования воспроизводиться не будут.
325
|
|
|
|
Таблица 6.9 |
|
|
|
|
|
Элемент презентации |
|
|
Действие по щелчку |
|
|
|
|
|
Data |
Предприятие |
|
|
Mainview.navigateTo(); |
|
Посты контроля блоков |
|
|
test.Kontr1.navigateTo(); |
|
Пункты сборки изделий |
|
|
sborka.Sbor.navigateTo(); |
|
Исходные данные |
|
|
|
|
Результаты моделирования |
|
|
Result.navigateTo(); |
|
|
|
|
|
Result |
Предприятие |
|
|
Mainview.navigateTo(); |
|
Посты контроля блоков |
|
|
test.Kontr1.navigateTo(); |
|
Пункты сборки изделий |
|
|
sborka.Sbor.navigateTo(); |
|
Исходные данные |
|
|
Data.navigateTo(); |
|
Результаты моделирования |
|
|
|
|
|
|
|
|
Kontrol |
Предприятие |
|
get_Main().Mainview.navigateTo(); |
||
Посты контроля блоков |
|
get_Main().sborka.Sbor.navigateTo(); |
||
Пункты сборки изделий |
|
|||
|
get_Main().Data.navigateTo(); |
|||
Исходные данные |
|
|||
|
get_Main().Result.navigateTo(); |
|||
Результаты моделирова- |
|
|||
|
|
|
|
|
ния |
|
|
|
|
|
|
|
|
Sbor |
Предприятие |
|
get_Main().Mainview.navigateTo(); |
||
Посты контроля блоков |
|
get_Main().test.Kontr1.navigateTo(); |
||
Пункты сборки изделий |
|
get_Main().Data.navigateTo(); |
||
Исходные данные |
|
|||
|
|
|
|
|
Результаты моделирова- |
|
get_Main().Result.navigateTo(); |
||
ния |
|
|||
|
|
|
|
|
6.3. Сравнительная оценка результатов моделирования |
||||
Мы провели эксперименты с моделями, выполнив в GPSS World 1 000 прогонов, а в AnyLogic увеличив модельное время в 1 000 раз. При этом начальное значение генераторов случайных чисел устанавливали произвольным образом, но одно и тоже согласно табл. 6.10 и 6.11.
Эксперименты проводились при времени работы предприятия 40 часов (2400 единиц модельного времени) и при времени работы предприятия 80 часов (4800 единиц модельного времени).
Результаты экспериментов приведены в виде различных показателей функционирования предприятия в табл. 6.10 и 6.11 соответственно.
326
Таблица 6.10
Показатели функционирования предприятия
|
|
|
Системы моделирования |
|
|
|||||
Показатели |
|
GPSS World |
|
|
|
|
AnyLogic |
|
||
|
Начальные числа генераторов случайных чисел |
|
||||||||
|
|
|
||||||||
|
27 |
339 |
7456 |
82874 |
|
27 |
|
339 |
7456 |
82874 |
Время работы 40 часов — 2400 единиц модельного времени |
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
Количество готовых изделий |
121,884 |
122,140 |
121,439 |
122,242 |
|
122,068 |
|
122,337 |
121,288 |
121,867 |
|
|
|
|
1 |
0,803 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Стоимость готовых изделий |
74569 |
74743 |
74332 |
74798 |
|
74946 |
|
75,151 |
74487 |
74831 |
Минимальная стоимость изделий |
70936 |
71085 |
70677 |
71144 |
|
71043 |
|
71200 |
70589 |
70926 |
|
|
|
|
2 |
611 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Стоимость забракованных блоков |
3106 |
3099 |
3091 |
3099 |
|
3080 |
|
3122 |
3067 |
3086 |
Коэффициент увеличения стоимости |
1,095 |
1,095 |
1,095 |
1,095 |
|
1,098 |
|
1,099 |
1,099 |
1,099 |
|
|
|
|
3 |
0, 004 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Время изготовления изделия, мин |
19,691 |
19,650 |
19,763 |
19,633 |
|
19,661 |
|
19,618 |
19,787 |
19,694 |
Коэффициент использования ПК1 |
0,316 |
0,316 |
0,315 |
0,316 |
|
0,318 |
|
0,316 |
0,313 |
0,315 |
Коэффициент использования ПК2 |
0,727 |
0,731 |
0,726 |
0,728 |
|
0,724 |
|
0,728 |
0,731 |
0,730 |
Коэффициент использования ПК3 |
0,703 |
0,700 |
0,700 |
0,705 |
|
0,697 |
|
0,699 |
0,699 |
0,701 |
Коэффициент использования ПК4 |
0,470 |
0,473 |
0,472 |
0,471 |
|
0,473 |
|
0,474 |
0,470 |
0,471 |
Коэффициент использования ПС |
0,584 |
0,583 |
0,578 |
0,583 |
|
0,581 |
|
0,586 |
0,578 |
0,584 |
Коэффициент использования СВК |
0,543 |
0,547 |
0,544 |
0,548 |
|
0,543 |
|
0,548 |
0,543 |
0,545 |
Коэффициент использования ПП |
0,535 |
0,540 |
0,538 |
0,542 |
|
0,540 |
|
0,539 |
0,537 |
0,538 |
Примечание: ПК1…ПК4 — пункты контроля блоков 1…4 соответственно; ПС — пункты сборки изделий; СВК — стенды выходного контроля изделий; ПП — пункт приѐмки изделий.
327
Таблица 6.11
Показатели функционирования предприятия
|
|
|
Системы моделирования |
|
|
|||||
Показатели |
|
GPSS World |
|
|
|
|
AnyLogic |
|
||
|
Начальные числа генераторов случайных чисел |
|
||||||||
|
|
|
||||||||
|
27 |
339 |
7456 |
82874 |
|
27 |
|
339 |
7456 |
82874 |
Время работы 80 часов — 4800 единиц модельного времени |
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
Количество готовых изделий |
244,071 |
243,727 |
243,201 |
243,460 |
|
244,043 |
|
244,900 |
243,342 |
243,524 |
|
|
|
|
1 |
1, 699 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Стоимость готовых изделий |
149328 |
149147 |
148838 |
148,971 |
|
149928 |
|
150454 |
149443 |
149579 |
Минимальная стоимость изделий |
142049 |
141849 |
141542 |
141,693 |
|
142033 |
|
142531 |
141625 |
141730 |
|
|
|
|
2 |
989 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Стоимость забракованных блоков |
6226 |
6216 |
6233 |
6219 |
|
6186 |
|
6221 |
6180 |
6189 |
Коэффициент увеличения стоимости |
1,095 |
1,095 |
1,096 |
1,095 |
|
1,099 |
|
1,099 |
1,099 |
1,099 |
|
|
|
|
3 |
0, 004 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Время изготовления изделия, мин |
19,666 |
19,694 |
19,737 |
19,716 |
|
19,669 |
|
19,600 |
19,725 |
19,710 |
Коэффициент использования ПК1 |
0,316 |
0,316 |
0,316 |
0,315 |
|
0,316 |
|
0,316 |
0,314 |
0,315 |
Коэффициент использования ПК2 |
0,728 |
0,727 |
0,727 |
0,727 |
|
0,725 |
|
0,728 |
0,728 |
0,730 |
Коэффициент использования ПК3 |
0,702 |
0,699 |
0,701 |
0,701 |
|
0,699 |
|
0,699 |
0,700 |
0,702 |
Коэффициент использования ПК4 |
0,472 |
0,472 |
0,471 |
0,473 |
|
0,471 |
|
0,473 |
0,470 |
0,471 |
Коэффициент использования ПС |
0,585 |
0,582 |
0,580 |
0,580 |
|
0,582 |
|
0,585 |
0,580 |
0,583 |
Коэффициент использования СВК |
0,545 |
0,546 |
0,544 |
0,546 |
|
0,544 |
|
0,547 |
0,545 |
0,546 |
Коэффициент использования ПП |
0,536 |
0,538 |
0,539 |
0,538 |
|
0,539 |
|
0,539 |
0,537 |
0,537 |
328
Сравнительная оценка свидетельствует о том, что результаты моделирования, полученные в различных средах, адекватны.
Различие незначительно, например, для коэффициента увеличения стоимости изделия оно составляет 0,003…0,004.
Коэффициенты использования различных подразделений предприятия также отличаются на тысячные доли.
Время изготовления одного изделия практически одно и тоже и равно 19,7 мин.
329
ГЛАВА 7. МОДЕЛЬ ФУНКЦИОНИРОВАНИЯ ТЕРМИНАЛА
7.1.Модель в GPSS World
7.1.1.Постановка задачи
Общий вид терминала показан на рис. 7.1. Территория терминала обозначена A, примыкающая городская территория — B.
1.Автомобиль (транспортное средство), груженный или порожний, попадает в порт по дороге общего пользования C. В случае отсутствия мест на парковке D терминала, дорога становится накопительным буфером (очередь с дисциплиной FIFO).
2.Если имеется свободное место, автомобиль въезжает на парковку, водитель выходит и с документами идет в офис E. Процедура парковки занимает около 2 мин.
3.В офисе водитель дожидается своей очереди на обслуживание у одного из окошек. Дождавшись, он оформляет документы на въезд. Получив их, он возвращается к своему автомобилю. Оформление документов занимает, вместе с ходьбой, около 10 мин. Одновременно на терминал отсылается заявка на обслуживание данного автомобиля.
4.Если ворота F имеют свободную полосу, автомобиль подъезжает на полосу досмотра. Здесь у него проверяют разрешение на въезд и проводят физический досмотр контейнера (пломб, наличия повреждений, отсутствия посторонних лиц и пр.). Досмотр занимает 2 мин.
Рис. 7.1. Схема терминала
330
