Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Одиноков_Курсач.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
229.89 Кб
Скачать

1.2 Функционирование моделируемой системы

Принцип функционирования моделируемой системы представлен на рисунке 1.

рис1.

Рисунок 1 — Блок-схема модели функционирования системы

С приходом покупателя начинается выбор устройства или компьютера.

Очередь определяется приходом посетителя, как только кассир освобождается, к нему подходит следующий посетитель. В зависимости от редкости запроса, на обслуживание клиента уходит от 15 до 25 минут. Затем посетитель покидает станцию. Если посетителя не устраивает цена, то покупатель не совершает прогулку. ЧП может возникнуть в любой момент с равномерно распределенной вероятностью P=0,005.

1.3 Выбор концептуальной модели

Так как нет явно заданных непрерывных процессов, в которых время используется как аргумент, ограничим представление исследуемого объекта дискретной моделью.

Рисунок 2 — Блок-схема алгоритма управления событийной моделью

2 Формализация модели

2.1 Группировка событий

  1. Для разработки имитационной модели рассмотрим четыре класса событий:

Класс 1: приход посетителей.

Класс 2: обслуживание посетителей.

Класс 3: уход посетителей.

Освобождение места в очереди посетителем.

Класс 4: чрезвычайное происшествие.

2.2 Переменные модели

При моделировании системы использовался ряд переменных. Ниже приведены наиболее важные из них:

NRNS – номер текущего прогона;

NNRNS – количество прогонов;

TNow – текущий момент времени;

TTFin – время окончания имитации;

TTBeg- время начала очередного прогона;

TSob – время свершения события;

KEvnt – код свершенного события;

Attrib – массив атрибутов события;

Np – общее число посетителей;

Obs - общее количество обслуженных посетителей.

SrK – среднее количество посетителей за прогон;

SrO – среднее количество всех посетителей за прогон;

Events -массив календаря;

Otchet - файл отчет;

Progon - файл отчетов по каждому прогону;

INTLC- процедура, инициализирущая прогонные переменные;

SCHDL- модуль, передающий в календарь все сведения о событии;

KEY- код класса;

EVENT- процедура, осуществляющая поиск программы реализации события;

GRUP- процедура, сортирующая записи в файле календаря;

KEVNT- код планируемого события;

SLAM- процедура, управляющая ходом имитации;

TNOW- текущее время;

TSOB- время свершения события;

DTIME- интервал свершения события.

2.3 Алгоритм имитации модели

  1. После запуска модели вначале производится инициализация всепрогонных переменных (в главном модуле) и, далее, для первого прогона (в процедуре INTLC).

  2. Поскольку алгоритм имитации ориентирован на обработку событий, необходимо перед первым обращением к календарю запланировать хотя бы одно событие. Это делается после инициализации прогонных переменных в процедуре INTLC, куда помещается оператор вызова процедуры планирования SCHDL.

  3. Модуль SCHDL передает в календарь все сведения о событии: его атрибут, код класса KEY и интервал свершения DTIME, отсчитываемый от текущего времени TNOW.

  4. Собственно имитация работы моделируемого объекта (системы) начинается с выбора из календаря первого события с минимальным временем свершения TSOB. Информация об извлеченном событии используется для проведения ряда операций. Так, например, DTIME дает возможность обновить системное время (TNOW=TNOW+DTIME). Код класса KEY необходим для поиска соответствующего алгоритма реализации события. Атрибуты события используются для определения направления действий при имитации.

  5. После планирования или извлечения события необходимо совершить сортировку календаря (процедура GRUP), потому что события в календаре должны быть расставлены по возрастанию времени свершения.

  6. Поиск программы реализации события осуществляет специализированная процедура EVENT, в которую при ее вызове передается код события. По коду события программа EVENT либо вызывает саму подпрограмму реализации, либо ищет у себя внутри встроенный блок алгоритма свершения события.

  7. После реализации события проверяются условия окончания прогона. Если прогон можно продолжить, идет обращение в календарь для извлечения очередного ближайшего по времени события. Если прогон должен быть завершен, то накопленная в процессе прогона информация обрабатывается и формируется отчет по прогону (OUTPUTN). Затем проверяются условия окончания всех прогонов. Если прогоны продолжаются, управление передается процедуре INTLC для выполнения очередного прогона. При завершении всех прогонов составляется итоговый отчет по всей имитации (OUTPUT).

  8. Все основные шаги по дискретно-событийной имитации будут повторяться для любых моделируемых объектов. Поэтому управление ходом имитации независимо от задачи поручают отдельной процедуре системного типа - процессору имитации СЛАМ, вызываемому из главного модуля перед первым прогоном (рисунок 2) [1].