Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МОДЕЛИРОВАНИЕ ПРОЦЕССОВ И СИСТЕМ / Консп_лекц_МПиС_бак_очн_14г(нужно от 16 стр.).doc
Скачиваний:
112
Добавлен:
21.03.2016
Размер:
2.3 Mб
Скачать

4.2. Алгоритм дискретно-событийной имитации

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

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

Модуль SCHDLпередает в календарь все сведения о будущем событии: его атрибуты, код классаKEVNTи время свершенияTSOB(содержит две части - известное время и приращениеDTIME, рассчитываемое в зависимости от события. Поскольку известная часть обычно является текущим временемTNOW, планировать можно не само времяTSOB, а только его приращениеDTIME. Учитывая важность понятия "времени свершения", в дальнейшем будем оперировать в основном его символическим эквивалентомTSOB).

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

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

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

Нетрудно заметить, что все основные шаги по дискретно-событийной имитации будут повторяться для любых моделируемых процессов. Поэтому управление ходом имитации (информационный технологический алгоритм) независимо от задачи поручают отдельной процедуре системного типа - процессору имитации СЛАМ, вызываемому из главного модуля перед первым прогоном (рис. 4.1).

Как показывает анализ, всегда в модели часть процедур может быть

Главный модуль

Вызов INTLC

Извлечение первого события

Обновление TNOW

Вызов EVENT

Отчет по прогону

Итоговый отчет

Нет

Да

Да

Нет

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

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