[Перевод] Создаем кольцевую развязку с помощью библиотеки трафика AnyLogic

Сегодня я поделюсь с вами своим опытом работы над интересным проектом, который я завершил, используя инструментарий для симуляции трафика, доступный в AnyLogic. Для тех, кто не знаком с AnyLogic, это полнофункциональное программное обеспечение для моделирования, способное разрабатывать сложные имитационные модели для различных систем. AnyLogic была выбрана мной потому, что она специализируется на инструментах моделирования и предоставляет широкий функционал в своем пакете инструментов для работы с трафиком.

В этой статье я расскажу вам о своем опыте и предоставлю пошаговое руководство, которое поможет вам самостоятельно создать подобную симуляцию.

Что ж, давайте разбираться!

Шаг 1: Постановка цели

Самым первым шагом перед созданием модели была постановка цели, которая заключалась в разработке симуляции перекрестка с круговым движением, чтобы понять эффективность и пропускную способность кольцевой развязки при различных скоростях движения автомобилей. Хорошее понимание этой цели помогло мне разработать модель и задать соответствующие параметры. Создавать линейные перекрестки довольно просто с помощью функции «Intersection» в окне «Space Markup». Однако создание кольцевой развязки дорожных путей осуществляется с помощью функции «Make Segment Linear/Arc‑based», как показано ниже на рисунке ниже (см. рис. 1).

Рис. 1. Варианты генерации перекресток и кольцевых дуг

Рис. 1. Варианты генерации перекресток и кольцевых дуг

Шаг 2: Эскиз макета

Я начал с эскиза кольцевой развязки, определив количество точек въезда и выезда, а также общий размер и форму развязки. Это было сделано для того, чтобы определить сложность модели и ее взаимодействие с дорожным движением. Такие макеты можно дополнительно настраивать, используя стоп‑линии и добавляя светофоры.

Рис. 2. Добавление стоп‑линии и светофора

Рис. 2. Добавление стоп‑линии и светофора

Шаг 3: Разработка логики

После проектирования дороги и перекрестков следующим шагом будет проектирование логических блоков. Вы должны ознакомиться со всеми блоками, которые вам понадобятся, и добавить их соответствующим образом, чтобы сформировать свою собственную структуру. Я добавил элементы 'Car Source' на каждой точке въезда, чтобы обеспечить движение транспорта. После этого мной был добавлен блок 'Select Output', который определяет вероятности (probabilities) для движения автомобиля (Например: Вероятность, равная 1, будет указывать на все автомобили, движущиеся в определенном направлении). Также можно использовать блок 'Select Output 5', если вам нужно настроить несколько вероятностей. Самым важным шагом является использование блока 'Car Move To', который определяет, на какую дорогу повернет автомобиль, в зависимости от присвоенной ему вероятности. Наконец, элемент 'Car Dispose' на выездах указывает на завершение блока движения.

Рис. 3. Образец логической диаграммы с использованием элементов инструментария Traffic Toolbox

Рис. 3. Образец логической диаграммы с использованием элементов инструментария Traffic Toolbox

Шаг 4: Настройка параметров

Я настроил элемент 'Car Source' на генерацию автомобилей со скоростью 1000 автомобилей в час с равномерным распределением между различными точками въезда. Равномерное распределение автомобилей можно сделать с помощью блока 'Interarrival time' в Car Source. Я также позаботился о том, чтобы элемент 'Car Sink' был настроен правильно, чтобы удалять автомобили из системы после их выезда.

Рис. 4. Частота генерации автомобилей

Рис. 4. Частота генерации автомобилей

Шаг 5: Запуск моделирования

После того как все элементы были настроены, я нажал на кнопку 'Run', чтобы начать симуляцию. Я наблюдал за поведением автомобилей, когда они проезжали через кольцевую развязку. Это было захватывающее зрелище — видеть, как 1000 автомобилей эффективно справляются с перемещением по кольцевой развязке.

Шаг 6: Анализ результатов

Для анализа моделирования я использовал функции сбора и визуализации данных AnyLogic. Особое внимание я уделил таким параметрам, как среднее время проезда автомобиля через кольцевую развязку и количество автомобилей на кольцевой развязке в определенный момент времени. И это далеко не все функции, которые можно использовать для анализа результатов.

Шаг 7: Внесение корректировок

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

Шаг 8: Документация и отчетность

Наконец, я задокументировал все результаты, интерпретации и выводы, сделанные в ходе проекта. Всегда важно эффективно донести свои выводы, и AnyLogic предоставляет множество инструментов для создания исчерпывающих отчетов.

Создание перекрестка с круговым движением с моделируемым потоком автомобилей было захватывающим опытом. Он позволил мне в полной мере использовать возможности AnyLogic и дал ценные сведения о функционировании и эффективности кольцевых развязок в условиях интенсивного трафика. Этот проект стал для меня настоящим воплощением мощи моделирования в решении реальных проблем.

В процессе моделирования этого проекта я столкнулся с множеством проблем.

1. Создание развязок — первым шагом, на котором я застрял,  было создание развязок. Но с помощью сегмента make arc, как объяснялось выше, я все‑таки смог это сделать.

2. Прибытие автомобилей в одно и то же время — определение скорости движения автомобилей и их прибытие в одну и ту же точку на старте может быть довольно неприятной проблемой. Здесь на помощь пришла интервала для времени прибытия, которая решила мою проблему.

3. Определение разных скоростей для разных дорог — поскольку мне нужны были разные скорости для автомобилей на кольцевой развязке и на дороге, эта проблема была решена с использованием стоп‑линий и назначением ограничений скорости для них.

P. S.: Ниже представлен общий вид простой модели, которую я создал. Вы можете загрузить ее по ссылке ниже или из облака AnyLogic

19c0b4b1451afc3e7632bb43121c3315.png8150e542f3dde914ac7075fd65a6783b.png

Sample Roundabout Model.alp.zip: Скачать ZIP — 15 КБ

Что дальше?

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

Если вы действительно хотите внести свой вклад в нашу поддержку, пожалуйста, присоединяйтесь к нашему сообществу Patreon.

Научитесь создавать имитационные модели в ПО AnyLogic и применять их для анализа проектов на онлайн-курсе «Имитационное моделирование на базе AnyLogic». На странице курса можно ознакомиться с подробной программой, а также бесплатно посмотреть записи открытых уроков.

© Habrahabr.ru