
1 2 3
Рисунок 1 – Общий вид дороги
На Рисунке 1 цифрой 1 обозначено место появления автомобилей (rectangle1), цифрой 2 – место остановки (rectangle3) и цифрой 3 – место завершения движения (rectangle2). Для задания пути воспользуемся компонентом polyline. В данной лабораторной работе нам понадобятся два компонента – одна линия задает путь до стоп-линии, вторая – после нее. Все вышеперечисленные компоненты объединим в группу и назовем ее Path.
Основным компонентом при моделировании процесса движения является Network из библиотеки Enterprise Library. Добавим его в рабочее окно модели и в поле «Группа фигур сети» добавим уже созданную группу Path.
За реализацию алгоритма движения будет отвечать последовательность компонентов библиотеки Enterprise Library, показанная на Рисунке 2.
Рисунок 2 – Компоненты, моделирующие движение транспорта
Рассмотрим эту последовательность подробнее. Компонент Source1 инициирует появление автомобилей. В нем можно задать частоту их появления, фигуру анимации. Для данной модели зададим следующие параметры:
время между прибытиями exponential(0.1);
фигура анимации заявки lorry.
Так же необходимо поместить фигуру грузовик (lorry) из палитры «Картинки» на рабочее поле. Компонент NetworkEnter задает место появления объектов и их скорость. Соответственно для данной модели:
скорость – 50;
узел входа – rectangle1;
сеть – network.
Следующий компонент – NetworkMoveTo определяет траекторию движения. В данном случае – это линия polyline. Блок, состоящий из компонентов queue2, delay, selectOutput, определяет задержку объектов при проверке на определенное условие. Для данной модели таким условием является сигнал светофора. Компонент queue используется для предотвращения переполнения буфера в компоненте delay. Зададим параметры объектов группы – задержка delay 0.1, вместимость очереди queue – 100, условие проверки на истинность selectOutput – красный!=true. Таким образом, когда параметр «красный» имеет значение false объекты продолжают движение.
Следующий блок состоит из двух компонентов – queue и conveyor. Он реализует последовательное движение объектов после ожидания разрешающего сигнала светофора. Это движение сходно с движением деталей по конвейеру. Безусловно, без этого компонента можно обойтись, но в таком случае объекты после ожидания будут двигаться одним целым, таким образом становится затруднительно оценить, например, суммарную длину пробки при ожидании сигнала светофора. Для компонента conveyor зададим следующие параметры:
расстояние между заявками – 75;
скорость – 50;
фигура анимации – polyline1.
Компонент networkExit служит завершающим звеном в алгоритме, в нем не задаются параметры. Компонент sink «убивает» объекты, прошедшие всю цепочку.
Таким образом, получим модель движения транспортных средств по дороге, регулируемой светофором. Демонстрация работы модели представлена на Рисунке 3.
Рисунок 3 – Работа модели движения транспортных средств
Вариант 2.2
В данной лабораторной работе будет смоделирован пешеходный переход, на котором движение пешеходов регулируется светофором.
Моделирование движения людей можно выполнить и с помощью библиотеки Enterprise Library, однако в таком случае приходится задавать жесткую траекторию движения, что не всегда допустимо. Для более реалистичного моделирования движения пешеходов используется библиотека Pedestrian Library.
При моделировании движения пешеходов задается лишь место их появления и место движения. Есть возможность задавать стены, области ожидания, обслуживания и т.д.
Для начала создадим группу объектов Walk из палитры «Презентация». В нее входят 3 компонента line. Так же поместим на рабочую область компонент rectangle – являющийся областью ожидания для пешеходов. Таким образом, получим пешеходный переход, как показано на Рисунке 1.
Рисунок 1 – Вид пешеходного перехода
Создадим цепочку объектов из палитры Pedestrian Library, моделирующих движение пешеходов, как показано на Рисунке 2.
Рисунок 2 – Цепочка объектов библиотеки Pedestrian Library
PedSource задает место появления пешеходов – line, начальную скорость – 0,4, интенсивность их появления – 50/hour. Комопнент pedGoTo задает цель движения пешеходов – line1. Блок, состоящий из компонентов pedWait и selectOutput, определяет область ожидания пешеходов – pedArea1 и условие движения пешеходов – красный==false. Зададим цель в компоненте PedGoTo1 – line2. Для комопнента pedArea зададим параметр «Фигура» - walk, а для pedArea1 – rectangle1.
В результате получим модель, демонстрация работы которой показана на Рисунке 3.
Рисунок 3 – Демонстрация модели движения пешеходов.
ПОСТРОЕНИЕ ОТЧЕТА О ВЫПОЛНЕННОЙ ЛАБОРАТОРНОЙ РАБОТЕ
Отчет по лабораторной работе должен содержать:
Постановку задачи.
Сохраненные на переносном носителе информации файлы модели.
Описание процесса построения имитационной модели, согласно определенного варианта. Конечный файл должен быть сохранен на том же носителе.
Вывод о проделанной лабораторной работе.