В этом примере показано, как к производительности модели сети IEEE® 802.11ax™ [1] в жилом сценарии при помощи WLAN Toolbox™.
Используя этот пример, вы можете:
Смоделируйте жилой сценарий путем конфигурирования параметров канала и сети.
Симулируйте мультиузел система WLAN и визуализируйте связанную с сетью статистику.
Симулируйте сеть путем переключения между абстрактной и полной моделью среднего управления доступом (MAC) и физическим уровнем (PHY).
Результаты симуляции показывают показатели производительности, такие как пропускная способность, задержка и пакетная потеря.
Этот пример демонстрирует симуляцию уровня системы, чтобы оценить эффективность 802.11ax сеть в жилом сценарии. Жилой сценарий состоит из создания с 3 этажами. Это характеристики жилого сценария:
Интервал между этажами составляет 1,5 метра.
Каждый пол состоит из четырех комнат, каждый имеющий размерности 10 м x 10 м x 3 м.
Каждая комната имеет точку доступа (AP) и две станции (STAs), помещенный в случайный x-и y-местоположения на высоте 1,5 метров от пола.
Каждый AP имеет данные для STAs, существующего в той же комнате.
Сценарий симуляции задает потерю на пути, основанную на модели на расстоянии между узлами и количестве стен и этажей, пересеченных сигналом WLAN. Этот рисунок показывает жилой сценарий, симулированный в этом примере.
Этот пример демонстрирует слой MAC и PHY всех узлов (APS и STAs) использование абстракций. Слой MAC реализует функциональность улучшенного распределенного доступа к каналу (EDCA). Слой MAC использует абстракцию для генерации системы координат и декодирования. Абстракция относится к тому, что слой MAC отправляет и получает метаданные системы координат вместо того, чтобы отправить или получить закодированные байты системы координат MAC. Точно так же PHY использует абстракцию для генерации сигнала WLAN и декодирования. Для получения дополнительной информации об абстракции PHY смотрите Абстракцию Физического уровня для примера Симуляции Уровня системы.
Этот пример калибруется против сценариев Поля 3 и Поля 5, заданных в методологии [2] оценки TGax. Сетевая пропускная способность, вычисленная для сценариев, упомянутых в документе [3] сценариев симуляции TGax, подтверждена против опубликованной калибровки, следует из Исследовательской группы TGax, чтобы подтвердить податливость с IEEE 802.11.
Задайте время симуляции (в миллисекундах) при помощи simulationTime
переменная. Чтобы визуализировать живой график изменения состояния для всех узлов, установите showLiveStateTransitionPlot
переменная к истине. Чтобы визуализировать таблицу, содержащую сетевую статистику в конце симуляции, установите displayStatistics
переменная к истине.
Установите seed для генератора случайных чисел к 1. Начальное значение управляет шаблоном генерации случайных чисел. Случайное число, сгенерированное начальным значением, влияет на выбор счетчика возврата в MAC и моделирование потери на пути в PHY. Для высококачественных результатов симуляции измените начальное значение и насчитайте результаты по нескольким симуляциям.
rng(1, 'combRecursive'); % Seed for random number generator simulationTime = 100; % Simulation time in milliseconds showLiveStateTransitionPlot = true; % Show live state transition plot for all nodes displayStatistics = true; % Display statistics at the end of the simulation % Add the folder to the path for access to all helper files addpath(genpath(fullfile(pwd, 'mlWLANSystemSimulation')));
ScenarioParameters
структура задает размер и размещение жилого создания с помощью этих параметров.
BuildingLayout
: Задает размещение создания в терминах количества комнат в каждом из этих трех направлений
RoomSize
: Задает размер каждой комнаты в метрах
NumRxPerRoom
: Задает количество станций на комнату
Пример принимает один AP передачи и два получения STAs в каждой комнате. hDropNodes
функция случайным образом генерирует положения AP и STAs в каждой комнате.
ScenarioParameters = struct; % Number of rooms in [x,y,z] directions ScenarioParameters.BuildingLayout = [2 2 3]; % Size of each room in meters [x,y,z] ScenarioParameters.RoomSize = [10 10 3]; % Number of STAs per room ScenarioParameters.NumRxPerRoom = 2; % Obtain random positions for placing nodes [apPositions, staPositions] = hDropNodes(ScenarioParameters);
hLoadConfiguration
функционируйте загружает MAC и настройки PHY для узлов, заданных nodeConfigs
и загружает настройку трафика приложения для узлов передачи, заданных trafficConfigs
. Эта функция присваивает идентификаторы (идентификаторы) и положения ко всем узлам в сети.
% Get the IDs and positions of each node
[nodeConfigs, trafficConfigs] = hLoadConfiguration(ScenarioParameters, apPositions, staPositions);
wlanNodeConfig.mat
файл задает структуру для определения MAC и настройки PHY узла. Для получения дополнительной информации о подробных параметрах конфигурации в этом файле MAT, используйте команду hConfigurationHelp('wlanNodeConfig')
. nodeConfigs
выход hLoadConfiguration
функция является массивом этих структур. Можно изменить параметры конфигурации MAC, такие как формат, полоса пропускания канала, модуляция и схема кодирования (MCS) индекс, для переданных пакетов. Можно также изменить параметры физического уровня, такие как степень передачи, усиление передачи, получить усиление, шумовую мощность. Например, этот код конфигурирует узел 1, чтобы передать пакеты с фиксированным MCS-6.
nodeConfigs(1).TxMCS = 6
nodeConfigs=1×36 struct array with fields:
NodePosition
TxFormat
Bandwidth
TxMCS
NumTxChains
MPDUAggregation
DisableAck
MaxSubframes
RTSThreshold
DisableRTS
MaxShortRetries
MaxLongRetries
BasicRates
Use6MbpsForControlFrames
BandAndChannel
CWMin
CWMax
AIFSSlots
RateControl
PowerControl
TxPower
TxGain
RxGain
EDThreshold
RxNoiseFigure
ReceiverRange
FreeSpacePathloss
⋮
wlanTrafficConfig.mat
файл задает структуру для определения настройки трафика приложения. Для получения дополнительной информации о подробных параметрах конфигурации в этом файле MAT, используйте команду hConfigurationHelp('wlanTrafficConfig')
. trafficConfigs
выход hLoadConfiguration
функция является массивом этих структур. Каждая структура соответствует определенному целевому узлу STA. Можно изменить параметры как пакетный размер, скорость передачи данных или категория доступа для каждого приложения в массиве. Сценарий симуляции в этом примере конфигурирует Максимальные усилия (AC0) трафик от APS до STAs. Например, первая структура в массиве задает трафик приложения для узла 1 (AP) к узлу 13 (STA). Например, этот код конфигурирует передачу 1 000 пакетов приложения размера байта от узла 1 к узлу 13. Все другие передатчики используют пакетный размер по умолчанию 1 500 байтов.
trafficConfigs(1).PacketSize = 1000
trafficConfigs=1×24 struct array with fields:
SourceNode
DestinationNode
PacketSize
DataRateKbps
AccessCategory
Создайте сайты передатчика и приемника из настроек узла. Создайте геометрию создания из параметров сценария.
% Create transmitter and receiver sites [txs,rxs] = hCreateSitesFromNodes(nodeConfigs); % Create triangulation object and visualize the scenario tri = hTGaxResidentialTriangulation(ScenarioParameters); hVisualizeScenario(tri,txs,rxs,apPositions);
Этот пример использует жилую модель распространения TGax, чтобы определить pathloss между узлами. Потеря на пути является функцией количества стен, количества этажей и расстояния между узлами. Создайте модель потери на пути при помощи функции hTGaxResidentialPathLoss.
propModel = hTGaxResidentialPathLoss('Triangulation',tri,'ShadowSigma',0,'FacesPerWall',1);
Получите потерю на пути между каждой парой узлов в сети при помощи hCreatePathlossTable функции помощника.
[pl,tgaxIndoorPLFn] = hCreatePathlossTable(txs,rxs,propModel);
hCreateWLANNodes
функция помощника позволяет:
Создайте узлы WLAN с APP, MAC и слоями PHY, сконфигурированными предыдущими параметрами
Добавьте пользовательские алгоритмы в APP, MAC и слоях PHY путем изменения кода, связанного с настройкой алгоритма в hCreateWLANNodes
По умолчанию, hCreateWLANNodes
функция помощника конфигурирует абстрагированный MAC и PHY в каждом узле WLAN.
В передатчике и приемнике, моделируя полную обработку MAC включает полную генерацию системы координат MAC на слое MAC. Точно так же моделирующая полная обработка PHY включает полные операции, связанные с передачей формы волны и приемом через исчезающий канал. Когда симуляция больших сетей, полного MAC и обработки PHY является в вычислительном отношении дорогой.
В абстрактном MAC узел не генерирует или декодирует любые системы координат на слое MAC. Точно так же в абстрактном PHY, узел не генерирует или декодирует любые формы волны в PHY. MAC и абстракция PHY позволяют вам минимизировать сложность и длительность симуляций уровня системы. Для получения дополнительной информации об абстракции PHY смотрите Абстракцию Физического уровня для примера Симуляции Уровня системы.
hCreateWLANNodes
функция помощника позволяет вам переключиться между абстрактным и полным MAC или PHY путем конфигурирования MACFrameAbstraction
и PHYAbstractionType
введите параметры. Допустимые значения для этих параметров:
MACFrameAbstraction
: TRUE или FALSE
PHYAbstractionType
: ‘Приложение 1 методологии оценки TGax’ (значение по умолчанию), ‘калибровка MAC сценариев симуляции TGax’ или 'ни один'
Если вы устанавливаете PHYAbstractionType
к 'Приложению 1 Методологии Оценки TGax', PHY оценивает эффективность ссылки с моделью канала TGax при помощи эффективного сигнала к интерференции плюс шумовое отношение (SINR) отображение. В качестве альтернативы 'Калибровочное значение' MAC Сценариев Симуляции TGax PHYAbstractionType
принимает пакетный отказ на интерференции, на самом деле не вычисляя эффективность ссылки. Чтобы использовать полный PHY устанавливает значение PHYAbstractionType
ни к 'Одному'.
MACFrameAbstraction = true; PHYAbstractionType = "TGax Evaluation Methodology Appendix 1"; wlanNodes = hCreateWLANNodes (nodeConfigs, trafficConfigs, ... 'CustomPathLoss', tgaxIndoorPLFn, 'MACFrameAbstraction', MACFrameAbstraction, 'PHYAbstractionType', PHYAbstractionType);
Эта таблица показывает вас, как переключиться между абстрактным и полным MAC или PHY путем конфигурирования значений MACFrameAbstraction
и PHYAbstractionType
введите параметры.
Чтобы инициализировать параметры визуализации и симулировать сценарий WLAN, используйте hStatsLogger
и hWirelessNetworkSimulator
помощник функционирует, соответственно.
% Initialize visualization parameters visualizationInfo = struct; visualizationInfo.Nodes = wlanNodes; statsLogger = hStatsLogger(visualizationInfo); if showLiveStateTransitionPlot hPlotStateTransition(visualizationInfo); % Configure state transition visualization end % Initialize wireless network simulator networkSimulator = hWirelessNetworkSimulator(wlanNodes);
Сетевое средство моделирования обеспечивает гибкость, чтобы запланировать пользовательские события в симуляции при помощи scheduleEvent
объектная функция.
Например, каждый раз, когда вы вызываете средство моделирования, можно запланировать событие, чтобы обновить визуализацию изменения состояния. Задайте указатель на функцию, входной параметр, время вызова и периодичность вызова назад. Для получения дополнительной информации о планировании событий введите эту команду в командной строке MATLAB.
help hWirelessNetworkSimulator.scheduleEvent
% When you run the script from the MATLAB command prompt, pause the % execution to refresh visualization after every 5 milliseconds scheduleEvent(networkSimulator, @() pause(0.001), [], 0, 5);
Запустите все узлы в сети для заданного simulationTime
время. Визуализируйте периоды изменения состояния узлов.
% Simulate wireless network
run(networkSimulator, simulationTime);
% Cleanup the persistent variables used in functions clear hPlotStateTransition;
Получите статистику и сохраните их в матовом файле. Таблица UI показывает все статистические данные, собранные во время симуляции.
% Retrieve the statistics and store them in a mat file
statistics = getStatistics(statsLogger, displayStatistics);
Statistics table for band 2.4 and channel number 6
statisticsTable=113×36 table
Node1 Node2 Node3 Node4 Node5 Node6 Node7 Node8 Node9 Node10 Node11 Node12 Node13 Node14 Node15 Node16 Node17 Node18 Node19 Node20 Node21 Node22 Node23 Node24 Node25 Node26 Node27 Node28 Node29 Node30 Node31 Node32 Node33 Node34 Node35 Node36
__________ _______ _______ _______ _______ _______ _______ _______ _______ _______ _______ _______ ______ ______ ______ ______ ________ ________ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______
ActiveOperationInFreq 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
AppTxAC_BE 12143 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
AppTxAC_BK 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
AppTxAC_VI 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
AppTxAC_VO 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
AppTxBytes 1.4643e+07 1.5e+07 1.5e+07 1.5e+07 1.5e+07 1.5e+07 1.5e+07 1.5e+07 1.5e+07 1.5e+07 1.5e+07 1.5e+07 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
AppRxAC_BE 0 0 0 0 0 0 0 0 0 0 0 0 43 29 32 32 96 96 0 0 32 0 32 0 3 32 0 0 32 32 64 32 32 32 32 64
AppRxAC_BK 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
AppRxAC_VI 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
AppRxAC_VO 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
AppRxBytes 0 0 0 0 0 0 0 0 0 0 0 0 43000 43500 48000 48000 1.44e+05 1.44e+05 0 0 48000 0 48000 0 4500 48000 0 0 48000 48000 96000 48000 48000 48000 48000 96000
AppTxOverflow 11559 9424 9296 9488 9456 9456 9453 9488 9424 9392 9424 9392 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
AppAvgPacketLatency 0 0 0 0 0 0 0 0 0 0 0 0 39252 89520 5862 11397 44180 59051 0 0 83625 0 17016 0 596 44774 0 0 11466 50321 63871 55863 33621 61404 5895 86096
AppAvgPacketLatencyAC_BE 0 0 0 0 0 0 0 0 0 0 0 0 39252 89520 5862 11397 44180 59051 0 0 83625 0 17016 0 596 44774 0 0 11466 50321 63871 55863 33621 61404 5895 86096
AppAvgPacketLatencyAC_BK 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
AppAvgPacketLatencyAC_VI 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
⋮
Можно получить доступ ко всей статистике из вышеупомянутой таблицы путем исследования statistics.mat
файл.
% Save the statistics to a mat file save('statistics.mat', 'statistics');
hPlotNetworkStats
функция помощника анализирует собранные статистические данные и строит пропускную способность, пакетное отношение потерь и средние пакетные значения задержки в каждом узле. График показывает пропускную способность и пакетное отношение потерь в каждом передатчике (APS). График также показывает среднюю пакетную задержку, испытанную в каждом узле приемника (STAs). Пропускная способность показывает достигнутую скорость передачи данных в каждом AP в модулях мегабит в секунду (Мбит/с). Пакетное отношение потерь показывает отношение неудачных передач данных к общим передачам данных. Средняя пакетная задержка показывает среднюю задержку, испытанную в каждом STA, чтобы получить его нисходящий трафик от AP.
% Plot the throughput, packet loss ratio, and average packet latency at each node
hPlotNetworkStats(statistics, wlanNodes);
% Remove the folder from the path rmpath(genpath(fullfile(pwd, 'mlWLANSystemSimulation')));
Чтобы наблюдать изменение пропускной способности, когда STA перемещается в комнате, можно запустить симуляцию для различных положений STA с фиксированным AP. Можно наблюдать изменение пропускной способности относительно расстояния от его AP. Набор пропускной способности, полученной во всех различных положениях, может использоваться, чтобы построить тепловую карту как один показанный здесь.
IEEE P802.11ax™/D4.1. "Поправка 6: Улучшения для Высокой эффективности WLAN.." Спроектируйте Стандарт для Информационных технологий - Телекоммуникаций и обмена информацией между системными Локальными сетями и городскими компьютерными сетями - Конкретными требованиями - Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Технические требования.
“Сценарии симуляции TGax”, документ. IEEE 802.11-14/0980r16.
“11ax методология оценки”, документ. IEEE 802.11-14/0571r12.