вати дискретні події. Наприклад, управління ланцюгами поставок за допомогою імітаційного моделювання вимагає опису учасників ланцюга поставок агентами: виробники, продавці, споживачі, мережа складів. При цьому виробництво описується в рамках дискретно-подієвого (процесного) моделювання, де продукт або його частини - це заявки, а автомобілі, поїзди, штабелери - ресурси. Самі поставки представляються дискретними подіями, але при цьому попит на товари може описуватися безперервної системно-динамічної діаграмою. Можливість змішувати підходи дозволяє описувати процеси реального життя, а не підганяти процес під доступний математичний апарат.
. 3 Специфікація і побудова схеми програми
Специфікація постановки завдання
· Час генерації нових повідомлень 8 ± 2с.
· Час передачі повідомлення по основному каналу за 6 ± 2 с.
· Інтервали часу виходу з ладу основного каналу 250 ± 40 с.
· Час відновлення основного каналу 22 ± 6 с.
· Час запуску резервного каналу 3 с.
· Загальний час проведення експерименту 2:00 (7200 с.)
При дослідженні моделі каналу передачі повідомлень необхідно отримає наступні дані:
· Визначити кількість переданих повідомлень обох каналах.
· Визначити завантаження запасного каналу.
· Визначити частоту відмов основного каналу.
· Визначити число перерваних повідомлень.
Для того щоб визначити кількість переданих повідомлень будемо рахувати кількість оброблених повідомлень на виході моделі.
Для того щоб визначити завантаження запасного каналу будемо рахувати кількість оброблених повідомлень на виході запасного каналу.
Для того щоб визначити частоту відмов основного каналу будемо рахувати кількість виходів з ладу основного каналу.
Для того щоб визначити число перерваних повідомлень будемо рахувати кількість видалених повідомлень при виході з ладу основного каналу.
. 4 Проведення програмування моделі
Для реалізації моделі каналу передачі даних в пакеті AnyLogic будемо використовувати бібліотеку AnyLogic Enterprise Library яка підтримує дискретно-подієвий або, якщо бути більш точним, процесний підхід моделювання. Управляти об'єктами будемо з допомогоюподій які ми створимо спеціально для цієї моделі, підрахунок параметрів будемо проводити за допомогою простих змінних які також повинна зумовлені в моделі.
Не обходжений створити наступні події:
Avaria (вихід з ладу основного каналу з інтервалом 250 ± 40 с. uniform (290,210))
Дії відбуваються при настанні події
· hold.setBlocked (true);//закриваємо основний канал
· blok=true;//ознака виходу з ладу
· startvoctanovlenie.restart ();//запуск події на відновлення
· startrezerv.restart ();//запуск події на рестарт резервного каналу
· kollotkazov=kollotkazov + 1;//вважаємо кол-ть відмов
Startvoctanovlenie (запуск події на відновлення основного каналу)
Дії відбуваються при настанні події
· voctanovlenie.restart (uniform (28,16))
Voctanovlenie (час відновлення основного каналу 22 ± 6 с.)
Дії відбуваються при настанні події
· hold.setBlocked (false);//відкриваємо основний канал
· blok=false;//ознака виходу з ладу
· avaria.restart (uniform (290,210));//запускаємо подія на вихід з ладу основного каналу
· hold1.setBlocked (true)//закриваємо резервний канал
Startrezerv (час запуску резервного каналу 3 с)
Дії відбуваються при настанні події
· hold1.setBlocked (false);//відкриваємо резервний канал
Необхідні змінні для реалізації моделі
Blok (змінна типу boolean якщо true то основний канал вийшов з ладу, ця змінна управляє об'єктами selectOutput) (змінна типу double для підрахунку кількості відмов) (змінна типу double для підрахунку перерваних повідомлень)
Kolrezerv (змінна типу double для підрахунку кількості повідомлень переданих резервним каналом) (змінна типу double для підрахунку кількості повідомлень переданих основним каналом) (змінна типу double для підрахунку кількості згенерованих повідомлень) (змінна типу double для підрахунку переданих повідомлень по о...