Пояснительная записка(21.06) новая (1214932), страница 9
Текст из файла (страница 9)
<type id="highway.trunk_link" numLanes="1" speed="22.22" priority="10" oneway="false" disallow="pedestrian bicycle rail rail_urban rail_electric tram ship"/>
Как следует из представленной структуры, скорость задаётся как один из параметров соответствующего типа дороги. Таким образом для создания требуемого файла настроек достаточно изменить все данные о скорости для разных типов дорог на требуемые. Сделать это можно воспользовавшись поиском с заменой значений скорости по регулярному выражению определяемому следующей маской:
(?:speed=")(1|2|3|4|5|6|7|8|9|0)(1|2|3|4|5|6|7|8|9|0)(.)(1|2|3|4|5|6|7|8|9|0)(1|2|3|4|5|6|7|8|9|0)
После замены файл следует сохранить в каталоге, содержащем информацию о карте с тем же именем что носил оригинальный файл настроек дороги. Стоит отметить что в файлах настроек указывается максимальная скорость передвижения, что в целом отвечает требования симуляции относительно реалистичной городской среды, так как в условиях города трафик должен реагировать на светофоры и в целом редко движется с постоянной и высокой скорость в отличие от магистрали, где скорость для всех случаев задавалась постоянной величиной.
Для учёта нужного файла настроек вместо файла по умолчанию, нужно добавить в команду запуска параметр «--xml-type-files» со значением «osmNetconvert.typ.xml». После этого можно выполнить команду для конвертации данных о карте в формат SUMO из каталога хранящего данные карты.
Далее для возможности лучшего восприятия карты в SUMO выполняется генерация данных об объектах на карте, для этого используется команда:
polyconvert --net-file map.net.xml --osm-files map.osm -o map.poly.xml
Эта команда, используя стандартные настройки цветов для типов объектов на карте создаст файл map.poly, который будет задавать множество многоугольников с разными цветовыми обозначениями, представляющими разные объекты.
Далее, используя утилиту SUMO для генерации машин и случайных маршрутов для них «randomTrips.py», следует выполнить создание файла описывающего машины. Описание машин производится посредством указания уникального идентификатора для каждой машины, а также места появления на карте и времени появления.
python /usr/share/sumo/tools/randomTrips.py -n map.net.xml -r map.rou.xml -e 150 –l,
где параметр -e определяет максимально возможное количество машин, которые будут сгенерированы, а -l отвечает за вероятность появления машины на краю дороги в зависимости от её длины.
После выполнения команды, будет сгенерирован файл отвечающий за определение машин, и задающий их маршруты. После генерации обычно получается несколько меньшее количество машин чем определённое максимальное количество. Для симуляции городской среды приближённой к реалистичной, и в то же время обладающей приемлемым временем выполнения, количество машин в симуляции мобильности будет установлено в 100, такое количество позволит относительно адекватно воссоздать городскую среду, а также не будет слишком затягивать время выполнения симуляций. При этом совсем не обязательно удалять лишние машины, установку количества автомобилей для симуляции можно будет провести во время настройки параметров симуляции.
Также по умолчанию для всех машин задаётся время появления на 1 секунду больше чем у предыдущей машины, таким образом машины в симуляции движения появляются постепенно. Однако в NS3 при симуляции с использованием файла движения все узлы появляются на карте одновременно, вне зависимости от указанного для каждого узла времени планового появления, при этом они также, как и остальные узлы могут участвовать в передаче данных, создавая некорректную картину трафика, ведь узлы должны двигаться с определённой скоростью. В связи этим время появления для всех машин следует установить равным нулю. В структуре файла задающего машины и их маршруты, параметр «depart», отвечает за время появления машины в симуляции. Таким образом, для установки времени появления равным нулю следует выполнить поиск по регулярному выражению:
(?:depart=")(1|2|3|4|5|6|7|8|9|0)(1|2|3|4|5|6|7|8|9|0)(1|2|3|4|5|6|7|8|9|0|.)
с последующей заменой всех значений, попадающих под это выражение. Стоит заметить, что поиск с заменой по данному регулярному выражению позволяет заменить без ошибок только значения времени от 10 до 99, не затрагивая, в то время как значения выше 99 будут содержать ошибки, которые нужно будет исправить при помощи похожего регулярного выражения. После выполнения этих операций файлы, определяющие движение машин готовы к работе.
Теперь, когда все файлы для симуляции движения подготовлены, можно составить файл конфигурации отвечающий за проведение симуляции с определёнными параметрами. Структура такого файла приведена ниже:
<configuration>
<input>
<net-file value=" map.net.xml"/>
<route-files value=" map.rou.xml"/>
<additional-files value=" map.poly.xml"/>
</input>
</configuration>
где net-file – это конвертированный файл с информацией о карте, route-files – файл с информацией о маршрутах машин, а additional-files – это параметр указывающий на вспомогательные файлы которые могут быть использованы в симуляции движения, в данном случае это файл с информацией для определения объектов на карте. Помимо этого, понадобится задать время симуляции. В NS3 после завершения времени симуляции прекращается считывание файла движения и вся прочая работа, поэтому для наличия большого количества вариантов установки времени симуляции, следует задать время симуляции равным 1000 секунд. Для этого, после определения входных файлов, достаточно дописать код по типу:
<time>
<begin value="0"/>
<end value="1000"/>
</time>
После выполнения всех предыдущих операций имеются все необходимые файлы для проведения симуляции движения. Запустить симуляцию можно используя команду «sumo-gui» с флагом «-c» значением которого является созданный ранее файл конфигурации симуляции.
В результате выполнения команды запустится графический интерфейс приложения и после нескольких секунд симуляции можно наблюдать появление всех узлов и их движение, как показано на рисунке 21.
Рисунок 21 – Симуляция движения в SUMO
Теперь можно выполнить последний этап работы с симулятором движения, а именно получение файлов движения. Получение файла движения в SUMO осуществляется в два этапа:
– получение файла, описывающего движение машин в формате SUMO;
– перевод файла, описывающего движение в формат NS3.
Для получения файла движения в формате SUMO выполняется обычный запуск SUMO, без графической оболочки с указанием файла конфигурации для симуляции имени файла вывода:
sumo -c map.sumo.cfg --fcd-output sumoTrace.xml
Далее выполняется команда преобразования формата, на вход которой поступает файл движения в формате SUMO и указывается тип выходного файла и его название. Для выполнения этой операции используется инструмент SUMO, называемый «traceExporter.py». Так как работа по симуляции сети ведётся в NS3 использующем класс помощник перешедший из NS2 для чтения файлов движения, то указать нужно соответствующий формат. Формат файла вывода указывается в качестве флага инструмента преобразования. Полностью команда для преобразования формата файла движения выглядит следующим образом:
python /usr/share/sumo/tools/traceExporter.py --fcd-input sumoTrace.xml --ns2mobility-output ns2mobility.tcl
Таким образом можно создать все файлы движения кроме варианта для стационарного положения машин, потому что в SUMO предельное значение скорости не может быть равным нулю. Для этого варианта достаточно сгенерировать файл движения с произвольным пределом скорости после чего изменить значения скорости на нуль, используя поиск с заменой по регулярному выражению:
(1|2|3|4|5|6|7|8|9|0)(1|2|3|4|5|6|7|8|9|0)(.)(1|2|3|4|5|6|7|8|9|0)(1|2|3|4|5|6|7|8|9|0)("),
так как структура файла движения в формате NS3 уже была описана ранее и значение скорости попадает под описанное выражение.
Итак, составлено 4 файла описывающих движение по участку города и на этом подготовка файлов движения завершена, следовательно, можно перейти описанию настройки сценария симуляции.
2.2.4 Настройка сценария симуляции
NS3 содержит готовый пример кода сценария симуляции для сетей VANET, который можно модифицировать по своему усмотрению, меняя режимы работы канала передачи данных, протоколы маршрутизации, используемые для симуляции, размер пакетов, данных и многие другие параметры.
Для выполнения симуляции с целью анализа выбранных протоколов файл сценария следует модифицировать следующим образом:
– добавить модель коллизий;
– установить модель распространения сигнала;
– добавить код отвечающий за сбор статистики;
– модифицировать стратегию установки приёмников;
– установить параметры, связанные с картой (время симуляции, количество узлов, файл движения);
– добавить в код выбранные для анализа протоколы;
– установить размер пакетов данных и частоту отправки пакетов.
Но перед модификацией данных параметров следует сначала определить значения которые необходимо им задать.
2.2.4.1 Описание параметров симуляции
Для начала следует отметить что часть параметров зависит от используемой карты, в то время как часть остаётся неизменной вне зависимости от неё. Для начала следует определить параметры которые зависят от типа сценария.
Как уже упоминалось ранее для сценария магистрали, её длина составляет 5000 м. и количество узлов определено как 50. Для данного сценария время симуляции следует выбрать таким образом, чтобы машины расположенные на краях магистрали успели доехать до противоположного края при среднем значении скорости (27,78 м/с). Это время можно вычислить как
. Это позволит обеспечить приемлемое время симуляции, а также возможность для узлов пройти достаточное расстояние для получения различных данных, при этом обеспечив возможность использовать одно время для всех скоростей установленных в сценарии магистрали, ведь со скоростью 13,89 м/с узлы достигнут противоположного конца только через 360 с, а за это время узлы двигаясь со скоростью 56,56 м/с уже закончат движение, что потребует установки разного времени симуляции для разных скоростей движения и нарушит чистоту эксперимента. Таким образом время симуляции для сценария магистрали устанавливается в 180 с.
В целом данные специфичные для этого сценария могут быть сведены в таблицу 2.
Таблица 2 – Параметры симуляции для сценария магистрали
| Параметр | Значение |
| Длина магистрали | 5000 м |
| количество узлов | 50 |
| Время симуляции | 180 с |
Для моделирования условий города выбрана карта размерами 2000x1200 м. и с количеством узлов равным 100. Для городской симуляции время рекомендуется выбрать сопоставимое с временем симуляции сценария магистрали. Однако учитывая, что количество узлов в два раза превышает количество машин в сценарии магистрали, время следует сделать немного меньше, так как общее время симуляции увеличивается прямо пропорционально количеству участвующих узлов. При этом для городского сценария движение не линейно в отличие от сценария магистрали, поэтому незначительное уменьшение времени симуляции не слишком сильно скажется на точности результатов, но позволит значительно сократить время, затрачиваемое на симуляцию. В связи с этим время симуляции для городского сценария устанавливается в 150 с. С учётом этого параметры уникальные для городского сценария можно привести в таблице 3.
Таблица 3 – Параметры симуляции для сценария города
| Параметр | Значение |
| Размер карты города | 2000x1200 м |
| количество узлов | 100 |
| Время симуляции | 150 с |
Далее следует описать параметры симуляций, не зависящие от типа используемой карты. Для начала следует указать что в симуляциях в качестве узлов выступают только машины, так как связь «машина-машина» является основной в сетях VANET, и хорошо подходит для сравнения работы протоколов в условиях приближенных к реальным.
В качестве стандарта связи используется «802.11p», с частотой 5,9 ГГц. В качестве модели сигнала используется OFDM с частотой передачи 6 Мбит/с и шириной канала в 10 МГц.
Для моделирования реалистичных условий передачи пакетов устанавливается мощность передачи, немного ниже максимально возможной, равная 22,5 ДБм [ CITATION Eurdf \l 1049 ]. Для сценария моделирующего неблагоприятные условия для передачи мощность устанавливается значительно меньше чем при нормальных условиях и равна 7,5 ДБм.














