- •Введение
- •1 Принцип функционирования моделируемой системы
- •1.1 Постановка задачи
- •1.2 Функционирование моделируемой системы
- •1.3 Выбор концептуальной модели
- •2 Формализация модели
- •2.1 Группировка событий
- •2.2 Переменные модели
- •2.3 Алгоритм имитации модели
- •2.3.1 Процедура планирования
- •2.3.2 Сортировка записей в календаре
- •2.3.3 Процедура поиска алгоритма обработки события Event
- •2.3.4 Процедура инициализации
- •2.3.10 Процедура rmove
- •2.3.11. Процедура управления ходом имитации slam
- •3 Выбор программного обеспечения
- •4 Программа имитационного моделирования
- •5 Результат моделирования
- •6 Анализ результатов моделирования
- •7 Определение закона распределения выходных данных
- •Заключение
- •Список использованных источников
2.3.1 Процедура планирования
Процедура планирования SCHDL имеет три формальных параметра: код планируемого события KEVNT, интервал свершения DTIME и массив атрибутов Аttrib.
Events – массив, содержащий календарь. Процедура начинается с записи планируемого события, в массив заносится код события и время его свершения. Далее вызывается процедура GRUP.
2.3.2 Сортировка записей в календаре
Для поддержания упорядоченности записей календаря, операции планирования и извлечения записи заканчиваются вызовом процедуры перегруппировки GRUP. Процедура GRUP является системной, без параметров. GRUP сортирует записи в файле календаря по возрастанию времени совершения события.
Если первая запись календаря не пуста, значит, процедура вызвана после планирования какого-то события и необходимо расставить записи по возрастанию их времени свершения (запланированное событие могло иметь любое время свершения). Для этого начинается сравнение времени свершения J-й записи с аналогичным параметром остальных записей и перемещение этой записи на нужное место календаря (массива Sob). Для чего осуществляется сортировка календаря по параметру DTime. После этого события в календаре располагаются по возрастанию времени свершения.
2.3.3 Процедура поиска алгоритма обработки события Event
В данной процедуре осуществляется поиск программы обработки события, код которого передан при обращении к процедуре Event.
2.3.4 Процедура инициализации
Структура этого модуля в основном определяется объектными (пользовательскими) условиями. Обязательными являются оператор задания начального имитационного времени и оператор планирования события. Также в данном модуле используется вызов модуля ЧП. Устанавливаются: время TNOW начала очередного прогона, номер прогона NRNS, т.е. мы задаём прогонные переменные. А также вызов процедуры планирования событий SCHDL.
В данной процедуре задаются следующие начальные условия:
- время начала имитации (Tnow:=Ttbeg);
- обнуление количества событий в календаре (NEvents:=0);
- обнуление количества клиентов в очереди (Och:=0);
- обнуление общего количества обратившихся (NP:=0);
- обнуление количества обслуженных клиентов (Obs:=0);
- обнуление флага обнаружения ЧС (Obsluz:=False);
2.3.5 Процедура Prihod
Данная процедура выполняет формирование данных о том, пришел ли посетитель на станцию или нет. Подсчитывает время наступления следующего события.
2.3.6 Процедура Obsluz
Процедура служит для обработки обслуживания посетителей лодочной станции.
2.3.7 Процедура СHP
Формирует появление ЧП с вероятностью, равной 0.005.
2.3.8. Процедура OUTPUTN
Рассматриваемая процедура формирует отчет по прогону. Полученные данные выводятся на экран и размещаются в файле OTCHET1.txt. В этой процедуре вычисляются:
- общее количество пришедших за прогон посетителей;
- общее количество обслуженных за прогон посетителей;
- наличие в прогоне ЧП.
2.3.9 Процедура OUTPUT
OUTPUT - процедура вывода итогового отчета. В данном отчете формируются следующие данные:
- общее количество пришедших посетителей за все прогоны;
- общее количество обслуженных за все прогоны посетителей;
- среднее количество пришедших посетителей за все прогоны;
- среднее количество обслуженных за все прогоны посетителей.
Все данные формируются за все прогоны. Результаты записываются в текстовый файл OTCHet2.txt.
