YAK 681.51
ИМИТАЦИОННЫЙ ПРОЕКТ АВТОМОБИЛЬНОГО ДОРОЖНОГО ДВИЖЕНИЯ
В.Н.Томашевский, Д.С.Печенежский
Предложена концепция создания имитационного проекта для управления движением автотранспортных средств на основе визуального моделирования. Описаны архитектура и принципы функционирования основных компонентов, и способы их реализации. Имитатор модели движения транспортных средств использует сетевую распределенную обработку и технологию Java.
Запропоновано концепцт створення 1м1тацтного проекту для управлтня рухом автотранспортних засоб1в на основ1 в1-зуального моделювання. Описано архгтектуру i принципи функцгонування основних компонентiв, i засоби ЧхньоЧ реалi-зацп. Iмiтатор моделi руху транспортних засобiв використо-вуе розподiлену обробку у мережi i технологiю Java.
The concept of creation of the imitative project for traffic control of vehicles is offered on the basis of visual simulation. Are described the architecture and principles of operation of the basic components, and methods of their realization. The simulator of model of movement of means of transport uses the network distributed processing and technology Java.
ВВЕДЕНИЕ
Интеграция Украины в европейские структуры ставит новые задачи по улучшению дорожного движения. С этой целью разработана "Государственная программа развития дорожного движения на автомобильных дорогах, улицах...". Одна из задач этой программы заключается в разработке имитационных моделей дорожного движения для анализа пропускной способности и мест концентрации дорожно-транспортных происшествий. Пропускная способность зависит от множества факторов: конфигурации дорог, их полосности, количества и типов перекрестков, переходов и др. Основной причиной снижения пропускной способности дорог являются так называемые "узкие места", поиск которых и является главной целью исследований. Применение аналитических моделей для решения такой задачи затруднено из-за ее сложности.
Ранее созданные программы подобного назначения имитировали дорожное движение достаточно условно. Основное их назначение было нахождение приблизительных оценок пропускной способности и коэффициентов загрузки участков городской сети при разных вариантах планировочных решений.
Основным недостатком этих моделей является их неточность. Участки дорог в них рассматриваются как многоканальные приборы, а перекрестки не моделировались вообще, т.е. предполагалось, что любой автомобиль может свободно пройти перекресток в любой момент времени вне зависимости от ситуации на нем. Данное допущение уместно при грубых оценках и при небольшом коэффициенте загрузки участков дорог прилегающих к перекрестку. Однако при увеличении коэффициента загрузки дорог
автомобили начинают оказывать все большее влияние на движение друг друга. Также усиливается влияние конфигурации перекрестка, режима его регулирования и т.д. Аналитически просчитать влияние конфигурации на его пропускную способность очень сложно, так как увеличение коэффициента загрузки дорог ведет к снижению пропускной способности перекрестка, что в свою очередь приводит к еще большему увеличению коэффициентов загрузки дорог и т.д.
Еще одним существенным недостатком уже существующих моделей является их неразвитый интерактивный интерфейс, что делает трудоемкой работу с ними.
Исходя из вышесказанного, можно сделать вывод, что возникла необходимость в создании новых имитационных систем для моделирования движения автомобильного транспорта. Подобные системы имитации дорожного движения разработаны в странах Западной Европы и Америки, такие как MITSIM, FRESIM, PHAROS (США), AUTOBAHN, PLANSIM-T (Германия), DRACULA, PADSIM (Великобритания), ANATOLL, SIMDAC (Франция) и др. Они используются, в первую очередь, для улучшения условий движения городского и общественного транспорта, а так же для оценки его экономической эффективности. Европейским сообществом разработан перечень требований для систем подобного рода. Однако в Украине пока нет подобных систем.
ЦЕЛЬ И КОНЦЕПЦИЯ
Целью создания имитационного проекта автомобильного дорожного движения является моделирование сети дорожного движения, определение пропускной способности участков дорог, а также нахождение оптимальных маршрутов для специальных транспортных средств, таких как скорая помощь, милиция, пожарная служба.
Исходя из принципов построения визуальных объектных систем, необходимо провести статическую декомпозицию объектов для модели дорожного движения. Основным компонентом верхнего уровня визуального размещения имитационной модели является карта основных автомагистралей Украины, которая в свою очередь декомпозируется на множество других компонентов, каждый из которых представляет собой карту города либо карту загородных дорог. Каждый компонент городского размещения может быть расчленен на компоненты, представляющие всевозможные фрагменты городской сети дорог (районов). Те в свою очередь декомпозированы на различные участки дорог: пересечения, линейные участки, участки с круговым движением, наклоны, подъемы, участки с поворотами, участки с туннелями, участки с ограни-
чением по высоте (проезды под мостами), участки с остановками общественного транспорта, участки с ограничениями по грузоподъемности (мосты, эстакады).
Отличием разрабатываемой модели от других ей подобных аналогов, перечисленных, выше, является то, что имитационная модель создается автоматически для того участка дорожного движения, который отображается на экране дисплея. Такой подход не требует построения полной исчерпывающей имитационной модели и ее хранения в памяти компьютера, т.е. используется принцип "что отображаю, то и моделирую". В качестве наименьшего отображаемого элемента моделирования был взят домен [1], который представляет собой однополосный регулируемый или нерегулируемый участок дороги. Предполагается, что ширина полосы достаточная для размещения автомобиля любой ширины, но не более одного автомобиля по ширине. Участки дорог разделяются на домены так, чтобы светофоры, знаки, переходы, разветвления, консоли дорог были на концах доменов. Таким образом, домен - это элементарный однополосный участок дороги, на протяжении которого автомобили не встречают препятствий кроме других автомобилей. В конце такого участка по ходу движения автомобиля могут находиться препятствия: светофор, знак, переход, пересекающийся участок дороги, разветвление участков дорог. Очевидно, что любой участок дороги может быть разбит на домены, причем на рассматриваемом участке реальной дороги могут находиться одновременно несколько доменов, как показано на рис. 1.
В зависимости от участков дорог, на которые накладываются домены, динамический объект домен характеризуется различной длиной и количеством автомобилей на нем.
Рисунок 1 - Наложение доменов на участки дорог и расположение автомобилей на доменах
Домены включают в себя динамические объекты автомобили. Объект автомобиль служит для моделирования движения автотранспортного средства. Он создается на участке дороги для обозначения конкретного транспортного средства с его характеристиками. Транспортное средство может принадлежать к одному из следующих типов:
мотоцикл, легковой или грузовой автомобиль, грузопассажирский транспорт, специальный транспорт (милиция, пожарная служба, скорая помощь) и т.д.
Динамический объект автомобиль в зависимости от транспортного средства, которое он отображает, имеет различные характеристики, включающие: отрицательное минимальное ускорение торможения, положительное максимальное ускорение разгона, длину, высоту, ширину и полную массу автомобиля (масса снаряженного транспортного средства с грузом и пассажирами), приоритет, который может устанавливаться для специального транспорта и общественного транспорта.
Объект автомобиль может входить в объект домен, передвигаться в нем, останавливаться, становиться в очередь и покидать его. Попадая в какой-либо определенный домен, "поведение" автомобиля определяют параметры домена (максимальная разрешенная скорость, знаки и т.п.).
В модели должны отражаться особые ситуации, которые могут быть активизированы в любое время. Под особыми ситуациями подразумевается затор на трассе, авария, эффект поперечного сужения и т.п. Инцидент может быть сгенерирован стохастическим либо детерминированным способом. Детерминированные инциденты должны определятся пользователем. Стохастические инциденты создаются для каждого участка дороги согласно заданному вероятностному распределению.
ПРЕДСТАВЛЕНИЕ СТАТИЧЕСКИХ ОБЪЕКТОВ
Для имитации дорожного движения необходимо сетевое представление участков дорог (граф), организация управления потоком автомобилей, воспроизведение особых ситуаций, маршрутизация транспортных средств и перемещение транспортных средств.
Детализация имитационной модели должна меняться в зависимости от уровней визуального отображения, определяемых пользователем, что дает возможность моделировать как отдельные транспортные средства, так и потоки автомобилей.
Для имитатора дороги представляются связями, узлами сети и доменами. Данные, которые описывают имитируемую сеть, читаются из сетевой базы данных, которая может быть легко создана, используя интерактивный графический редактор сети дорог, разработанный для имитатора. Сетевая база данных включает описание всех сетевых объектов, соединение участков дорог, приоритет использования трассы, регулирование разворотов и перемещений на пересечениях (например, запрет левых поворотов и разворотов) и управляющих устройств (светофоров).
Узел может быть или пересечением отдельных дорог, или источником, или стоком, где потоки движения вводятся или покидают имитируемую сеть. Каждый узел представляется следующими элементами данных:
- тип узла, который определяет, является ли узел пересечением или источником и/или стоком;
- код узла: это - уникальный опознавательный номер для узла;
- имя узла - может использоваться произвольное имя узла, чтобы маркировать узел в графическом окне и отчете моделирования.
Связи - протяженные участки дорог без пересечений, которые соединяют узлы. Каждая связь может состоять из одного или большего количества участков дороги и характеризуется:
- типом связи, которая может быть автострадой, уклоном, городским проездом, туннелем;
- кодом связи: код связи - опознавательный номер, назначенный для каждой связи;
- стартовыми и конечными узлами для соединения связей;
- число доменов на участке;
- число полос на участке дороги (количество параллельных полос одного направления движения).
Входные и выходные связи узлов соединяется, если существуют, по крайней мере, одно соединение пути между этими двумя связями. Ограничения перестроений из одной связи в другую, представляется в таблице. Эта таблица содержит список ограничений на выполнение перестроений, для каждой определенной пары.
Имитатор представляет сеть на уровне доменов, накладывающихся на полосы участков дорог. Каждый домен описан двумя элементами данных: 1) кодом домена, т.е. уникальным опознавательным кодом; и 2) маршрутом, который изменяет направление и код приоритета использования трассы, определяемый по некоторым правилам.
Правилом изменения полосы:
- разрешенным поворотом налево;
- разрешенным поворотом направо;
- разрешенным поворотом и налево и направо.
Правилом приоритета использования полосы:
1. Запрещением движения грузовикам;
2. Ограничением проезда по высоте;
3. Ограничение по массе.
4. Только для обслуживающих транспортных средств.
5. Только для общественного транспорта.
Кодом приоритета использования полосы для рассматриваемого участка дороги может быть любая непротиворечивая комбинация из пяти типов, определенных выше.
Каждый участок дороги может быть состыкован с последующим и предыдущим участком дороги. Для соединения участков дорог использует список пар кодов участков дорог в сетевой базе данных, чтобы представить соединения между предыдущим и последующим участком дороги.
Домен имеет следующие атрибуты: номер; длину; логическую функцию условий разрешения покинуть автомобилю домен; максимально разрешенную скорость на домене, которая зависит от кривизны участка дороги или ограничивается знаками; упорядоченный список автомобилей, находящихся на домене; время последнего обновления атрибутов домена.
Домен моделирует состояние участка дороги и имеет метод обработчика домена, который вычисляет предикат разрешения автомобилю покинуть домен, и, в зависимости от результата, планирует поведение автомобилей на данном домене. Функция-обработчик определяет время наступления следующего события. Под событием понимается изменение логического условия, изменение ускорения любым автомобилем (торможение, остановка, начало движения, достижение максимальной или заданной скорости),
прибытие или убытие автомобиля на (из) домен. Особо рассматривается первый в списке автомобиль. Только он может покинуть домен за время обработки одного события. Возможность покинуть первым автомобилем домен зависит от условий: достиг ли он конца участка, от его скорости и ускорения; разрешено ли ему покинуть домен; каково положение, скорость и ускорение последнего автомобиля на следующем участке.
Движение последующих автомобилей зависит только от их положения на домене, скорости, ускорения и таких же характеристик для предыдущего автомобиля.
В конце обработки из всех возможных событий выбирается ближайшее и заносится в таблицу событий, которая предназначена для управления процессом моделирования движения автомобилей в имитационной модели.
Данные относительно сетевой геометрии необязательные и необходимы только, если требуется графический интерфейс для пользователя. Эти данные определяют геометрию из двух основных линий (левые и правые полосы с ограничениями) для каждого участка дороги.
Пересечение путей с круговым движением функционирует как однонаправленная циркулирующая система вокруг центрального изолированного участка, где управление происходит по маркировке и приоритету движению на пути с круговым движением.
ПРЕДСТАВЛЕНИЕ ДИНАМИЧЕСКИХ
ОБЪЕКТОВ
Обработка динамических объектов имитационной модели движения состоит из цикла обращения к набору модулей в определенные интервалы времени или при созда--нии некоторых событий (дискретный событийный подход).
Моделирование начинается по определенному сценарию с загрузки параметров моделирования и загрузки статических компонент сети дорог. Затем инициализируется итерационная процедура с заданным размером шага. Задачи, которые выполняются внутри каждой итерации, включают:
1. Модификацию состояния сигналов движения, признаков и особых ситуаций.
2. Модификацию самых коротких путей и таблиц маршрутов.
3. Чтение новых мест назначения, начала координат таблицы маршрутов и соответствующее место транспортных средств в виртуальных очередях.
4. Загрузка транспортных средств из виртуальных очередей в сеть.
5. Модификация возможностей ускорения транспортных средств и проверка, должны ли они изменять полосу или допустимые интервалы для желательного изменения полосы.
6. В соответствии с новыми позициями транспортных средств модифицируются их скорости. Соответствующие данные (скорость, размещение и др.) записываются модулем системы наблюдения. В конце участка дороги транспортное средство или удаляется из сети (если оно достигает своего места назначения) или помещается на находящийся далее по ходу участок дороги.
7. Модифицируется отображение на дисплеи, если допускается графический интерфейс пользователя.
8. Вычисляются меры эффективности (МЭ) или посылается состояние сети внешнему графическому интерфейсу пользователя (ГИП) или модулям.
9. Модифицируется время моделирования и возвращение на следующую итерацию.
Имитатор использует подход моделирования с временным разделением для обработки перемещений транспортных средств. В ответ на происходящие изменение полосы и получение информации от предыдущих автомобилей, связанные с изменением полосы, т.е. вызываются функции расчета динамических параметров для каждого транспортного средства каждые Ю секунд. Скорости и позиции транспортных средств модифицируются каждый Т секунд. Размер шага должен быть в расчетном модуле большим, чем Ю или равен размеру шага Т . Этот фиксированный размер шага принят для общего управления потоком данных. Для индивидуальных транспортных средств размер шага для вызова определенных функций моделирования может изменяться как время реакции водителя, встречающего специфические условия, например, резкое сокращение расстояния между транспортными средствами и др.
Модель выбора маршрута используется, чтобы фиксировать решения о выборе маршрута водителем в ответ на информацию о движении. В зависимости от доступа к информации в имитаторе приняты два типа водителей: информированные и не информированные. Поскольку водитель выбирает маршрут, то вычисляется вероятность выбора исходящей связи для каждого пересечения дорог. В настоящее время имитатор использует модель логического многочлена и рассматривает только задержку во времени движения при выборе маршрута (см. рис.2):
Рисунок 2 - Выбор маршрута
Множество выбора Ь , включает все соединение исходящих связей, находящихся далее по ходу узла текущей связи, которые могут выбрать транспортные средства поближе к его месту назначения. Таким образом, связь должна удовлетворить ограничению С к(г + С1 (г)) < С7(г) , чтобы
быть включенной в набор выбора. Это ограничение также предотвращает транспортные средства от выбора следующего пути, который содержит циклы.
Могут также использоваться более сложные модели, которые включают другие алгоритмы выбора маршрута. Модульная конструкция имитатора учитывает простую замену заданных по умолчанию моделей.
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ МИКРОИМИТАТОРА
Имитатор дорожного движения нижнего уровня (далее LLS - Low Level Simulator) состоит из следующих трех основных компонентов (рис. 3):
p(l\j, t) =
exp ( ul( t) ) Z exP(um(t))
m e L,
(1)
где р(г) - вероятность выбора связи I для транспортного средства, которое ожидает прибытия в узел ) во
время г; Ь■ - множество выходов из связи узла /; ы,(г) -7 1
выгода выбора следующей связи маршрута после связи I, которая определяется следующим образом:
ui = а ■ c(t) + р- Ck(t + ci(t)),
(2)
где С1 (г) - ожидаемое время для транспортного средства, чтобы пересечь связь I, которое вводит эту связь во время г; Ск(г + С;(г)) - ожидаемое время перемещения
для самого короткого пути из узла к (находящегося до узла связи I) к месту назначения транспортного средства, которое достигает узла ) во время г; а, в -модельные параметры.
Рисунок 3 - Структура и взаимодействие компонентов системы имитатора
1. Ядро имитатора (LLS Core) - основной компонент системы, производящий все вычисления и управляющий самим процессом моделирования. Графическая подсистема (LLS Graphic Engine) предназначена для визуального отображения процесса моделирования. Она реализована в виде Java приложения, исполняющийся Виртуальной Ява Машиной, входящий в состав современных программ-
броузеров (Netscape Navigator 4 и Internet Explorer 4 и выше). Использование технологии Java наделяет имитационный проект несколькими немаловажными качествами: продвинутые графические возможности (прорисовка объектов в трехмерном пространстве) и независимость от платформы.
2. Сетевая реляционная система управления базами данных, поддерживающая структурированный язык запросов SQL (DBMS with SQL-server), например, Interbase, MySql, PostgreSQL. СУБД служит для связи ядра и графической подсистемы имитатора.
Компоненты системы взаимодействуют между собой через локальную или глобальную компьютерную сеть с использованием протоколов семейства TCP/IP. Благодаря такой структуре компоненты системы могут размещаться как на одном компьютере, так и в взаимодействовать через Internet. В первом случае логика работы имитатора остается неизменной, используя в качестве сетевого интерфейса устройство lo0 (network loopback, фиктивный интерфейс "петля"). По прошествии каждого цикла (tick) моделирования ядро системы заносит данные о координатах объектов (автомобилей) в таблицу базы данных откуда эти данные в свою очередь считываются графической подсистемой. Каждая строка в таблице, соответствует положению некоего объекта в конкретный момент модельного времени. Очевидно, что в случае, когда в системе находится несколько объектов, то с конкретным моментом модельного времени связан набор записей в таблице с информацией о состоянии объектов. В качестве идентификаторов таких наборов выступает определенное поле таблицы, в которое заносится значение модельного времени.
Такой алгоритм связи выбран из соображений модульности, и возможности распределенной обработки (на нескольких компьютерах) имитационной модели. Модульность системы заключается в том, что выбор другого продукта базы данных приведет к потребности изменить код модуля связи с СУБД и не повлияет на всю систему в целом.
Распределенная обработка заключается в том, что объекты системы являются сетевыми приложениями и не привязаны к какому-либо физическому компьютеру. Например, ядро и СУБД могут быть установлены на сервере, а Вы можете наблюдать за процессом моделирования с любой рабочей станции.
Так как все перемещения объектов заносятся и хранятся с СУБД, то процесс моделирования может быть воспроизведен в любое время с любого момента внутреннего модельного времени.
Каждому запущенному процессу ядра назначается идентификатор сессии (Session ID). Назовем сессией множество записей, занесенных в СУБД в процессе работы одного конкретного экземпляра ядра. Другими словами сессия - это результаты моделирования конкретного участка дороги. Информация о запущенных и отработавших сессиях заносится в СУБД. Также в СУБД заносятся данные (IP-адрес и номер порта) всех запущенных процессов ядра.
Временная синхронизация между графической подсистемой и ядром осуществляется также по сети. Каждый
экземпляр графической подсистемы после запуска, связывается с процессом ядра, сообщая ему свой IP-адрес и номер порта, и начинает наблюдать за сессией, которую оно исполняет. После занесения очередного набора записей с информацией об объектах в СУБД, ядро посылает сетевой пакет зарегистрировавшимся у него клиентам -экземплярам графической подсистемы. Формат пакета определяется специальным протоколом синхронизации SSP (Simulator synchronization protocol). В пакет включается текущее значение модельного времени ядра. Графическая подсистема фиксирует у себя значение модельного времени, для последнего отображенного набора. Такой механизм позволит добиться последовательного отображения информации об объектах даже в перегруженных сетях, где высока вероятность потери синхронизационных пакетов. К тому же такой механизм позволит очередному клиенту включиться в наблюдение в любой момент работы ядра.
Ядро имитатора нижнего уровня (LSS Core) написано на языке C++. Так как сетевые механизмы протокола TCP/IP большинства современных операционных систем (FreeBSD, Linux, Win NT, Win 98) основываются на коде BSD Sockets, разработанном в университете Berkeley, то код ядра может быть перекомпилирован без особых усилий под любую из ОС, в которой используется механизм Sockets.
Рассмотрим структуру ядра имитатора нижнего уровня (рис. 4).
Рисунок 4
Основным компонентом ядра является класс-диспетчер. В его функции входит синхронизация работы всех компонентов ядра. Диспетчер содержит список указателей на домены. Класс таймер осуществляет контроль и учет модельного времени, запускает циклы моделирования.
Объект класса Домен, представляет основные параметры участка дороги. Такие как тип покрытия, длина
домена. Класс содержит указатель на список машин, находящихся на этом домене. Также класс содержит ряд служебных функций:
- drive - основная логика управления автомобилями. На каждом цикле пересчитывает координаты автомобилей, а также изменяет (по некоторому алгоритму) параметры автомобилей (ускорение) в зависимости от обстановки.
- car_in - функция вводящая в домен новый автомобиль.
- domain_exit_blocked - функция определяющая возможность покинуть домен.
class domain { uint len; int uklon;
int cover_type; // тип покрытия (асфальт, грунт, ямы) int code; // номер домена public:
int domain_exit_blocked();
clist *car_list; // список машин
void car_in( car * ); // новый автомобиль
}
По приходу сигнала от таймера функция-диспетчер запускает функцию drive для каждого домена из списка.
Алгоритм работы функции drive можно свести к следующему:
1. Пересчет координат и скорости автомобилей, на основании их свойств.
2. Изменение параметра ускорения, на основании дорожной обстановки.
Для входных доменов могут быть созданы экземпляры класса Generator, осуществляющие по определенной закономерности создание объектов-автомобилей с определенными характеристиками и включение этих автомобилей в домены.
Класс автомобиль представляет прообраз реальных автомобилей. Объект класса содержит указатель на домен, которому он принадлежит, основные текущие характеристики автомобиля (скорость, ускорение, позиция в домене), указатель на объект класса car_type, который определяет некоторые общие свойства, характерные для автомобиля данного типа. class car { int type; car_type Characteristics; domain *parent;
int speed, acc; // текущие характеристики
int x_position; // координаты передней части машины в домене
}
Класс car_type определяет основные свойства автомобиля. Набор классов типа car_type составляет библиотеку типов автомобилей. Основные свойства, такие как максимальная скорость, ускорение разгона и торможения, предпочитаемая скорость и ускорение торможения, ширина, длина, масса, цвет и тип кузова. class car_type { uint width, len; int max_speed, max_acc, max_deacc; int prf_speed, prf_deacc; // предпочитаемая скорость char color; // :-) char body_type;
}
Служебный класс ctype представляет собой интерфейс, для создания упорядоченных списков объектов. Является аналогом компонента Tlist из системы Delphi. class clist; { car *first; int item_number; public:
int max_car_num ();
car *get_by_num ( int index );
}
ЗАКЛЮЧЕНИЕ
Имитационный проект - удобное средство моделирования процесса автомобильного движения на различных участках дорог. Он достаточно просто может быть привязан к топографической карте района, города или области, так как имитатор подробно отображает сети дорог и моделирует индивидуальные перемещения транспортных средств с использованием изменения полос и логики сигналов движения. Наличие средств визуализации позволяет, как строить саму имитационную модель участков дорог, так и отображать процесс моделирования перемещения транспортных средств.
ПЕРЕЧЕНЬ ССЫЛОК
1. Томашевский В.Н., Печенежский Д.С. Концептуальные основы имитационного моделирования автомобильного дорожного движения / Прац П'ято!' УкрашськоТ конференцп з автоматичного управлшня "Автоматика-98":, - ч. ¡Ü - Ки'Тв: НТТУ "КП ", 1998. С. 317 - 323.