В этом примере показано, как смоделировать производительность сети IEEE ® 802.11ax™ [1] в жилом сценарии с помощью WLAN Toolbox™ .
Используя этот пример, вы можете -
Моделируйте жилой сценарий путем конфигурирования параметров сети и канала.
Симулируйте многочленовую систему WLAN и визуализируйте статистику, связанную с сетью.
В разделе Results отображаются такие показатели эффективности, как пропускная способность, задержка и потеря пакетов.
Этот пример демонстрирует симуляцию уровня системы для оценки эффективности сети 802.11ax в жилом сценарии. Жилой сценарий состоит из создания с 3 этажами. Между этажами интервала 1,5 метра. Каждый этаж состоит из четырех комнат, каждая из которых имеет размерности 10м x 10м x 3м. В каждом номере есть точка доступа (AP) и две станции (STA), расположенные в случайных местоположениях x и y на высоте 1,5 метра от пола. Каждая AP имеет данные для STA, присутствующих в одной комнате. Сценарий симуляции задает модель потерь пути на основе расстояния между узлами и количества стенок и перекрытий, пройденных сигналом WLAN. Этот рисунок показывает жилой сценарий, моделируемый в этом примере.
Этот пример моделирует слой управления доступом к среде (MAC) и физический слой (PHY) всех узлов (AP и STA) с помощью абстракций. MAC- слоя реализует расширенную функциональность доступа к распределенному каналу (EDCA). MAC- слоя использует абстракцию для генерации системы координат и декодирования. Абстракция относится к тому факту, что MAC- слоя отправляет и получает систему координат метаданные вместо того, чтобы отправлять или получать закодированные MAC- системы координат бит. Точно так же PHY использует абстракцию для генерации и декодирования сигнала WLAN. Для получения дополнительной информации об абстракции PHY смотрите Пример абстракции физического слоя для симуляции уровня системы.
Этот пример калибруется по Box-3 и Box-5 сценариям, заданным в методологии оценки TGax [2]. Пропускная способность сети, рассчитанная для сценариев, упомянутых в документе [3] сценариев симуляции TGax, проверяется на соответствие опубликованным результатам калибровки TGax Task Group, чтобы подтвердить податливость с IEEE 802.11.
Установите seed генератора случайных чисел равным 1. Для большей точности в результатах симуляции измените начальное и среднее значения результатов за несколько симуляций. Задайте время симуляции в микросекундах, используя simulationTime
переменная. Чтобы визуализировать график перехода реального состояния для всех узлов, установите showLiveStateTransitionPlot
переменная - true. Чтобы визуализировать таблицу, содержащую сетевую статистику в конце симуляции, установите displayStatsInUITable
переменная - true.
rng(1,'twister'); % Seed for random number generator simulationTime = 0.1*1e6; % Simulation time in microseconds showLiveStateTransitionPlot = true; % Show live state transition plot for all nodes displayStatsInUITable = true; % Display table of statistics % Add the folder to the path for access to all helper files addpath(genpath(fullfile(pwd, 'mlWLANSystemSimulation')));
The ScenarioParameters
структура определяет размер и размещение жилого создания, используя эти параметры.
BuildingLayout
: Определяет размещение создания с точки зрения количества комнат в каждом из трех направлений
RoomSize
: Определяет размер каждой комнаты в метрах
NumRxPerRoom
: Количество станций в каждом помещении
Пример принимает одну передающую AP и две приемные STA в каждой комнате. The hDropNodes
функция случайным образом генерирует положения AP и STA в каждой комнате.
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);
The hLoadConfiguration
функция загружает строения MAC и PHY для узлов, заданных nodeConfigs
и загружает строение трафика приложения для передающих узлов, заданную в trafficConfigs
. Эта функция присваивает идентификаторы (идентификаторы) и позиции всем узлам в сети.
% Get the IDs and positions of each node
[nodeConfigs, trafficConfigs] = hLoadConfiguration(ScenarioParameters, apPositions, staPositions);
The wlanNodeConfig.mat
файл задает структуру для определения строений MAC и PHY узла. Для получения дополнительной информации о детальных параметрах конфигурации в этом файле MAT используйте команду hConfigurationHelp('wlanNodeConfig')
. The 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
PHYAbstractionType
⋮
The wlanTrafficConfig.mat
файл определяет структуру для определения строения трафика приложения. Для получения дополнительной информации о детальных параметрах конфигурации в этом файле MAT используйте команду hConfigurationHelp('wlanTrafficConfig')
. The trafficConfigs
выход hLoadConfiguration
функция является массивом этих структур. Каждая структура соответствует определенному узлу STA назначения. Можно изменять такие параметры, как размер пакета, скорость передачи данных или категория доступа для каждого приложения в массиве. Сценарий симуляции в этом примере конфигурирует трафик Best Effect (AC0) от AP к STA. Для примера первая структура в массиве задает трафик приложения для узел-1 (AP) до узел-13 (STA). Для примера этот код конфигурирует передачу 1000 пакетов приложений размером с байт от узел-1 до узел-13. Все другие передатчики используют пакет по умолчанию размером 1500 байт.
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, чтобы определить путь между узлами. Потеря пути является функцией от количества стенок, перекрытий и расстояния между узлами. Создайте модель потерь пути с помощью hTGaxResidentialPathLoss
функция. Создайте указатель на функцию, который возвращает потери пути между каждой парой узлов в сети с помощью модели распространения и сайтов передатчика и приемника. The hCreateWLANNodes
функция создает сконфигурированные узлы WLAN.
% Generate propagation model and lookup table propModel = hTGaxResidentialPathLoss('Triangulation',tri,'ShadowSigma',0,'FacesPerWall',1); [pl,tgaxIndoorPLFn] = hCreatePathlossTable(txs,rxs,propModel); % Create WLAN nodes wlanNodes = hCreateWLANNodes(nodeConfigs, trafficConfigs, simulationTime, tgaxIndoorPLFn);
Инициализируйте параметры визуализации и симуляции .
% Initialize visualization parameters and create an object for % hStatsLogger which is a helper for retrieving, and displaying % the statistics. visualizationInfo = struct; visualizationInfo.DisablePlot = ~showLiveStateTransitionPlot; visualizationInfo.Nodes = wlanNodes; statsLogger = hStatsLogger(visualizationInfo); % Object that handles retrieving and visualizing statistics networkSimulator = hWirelessNetworkSimulator; % Object that handles network simulation
Запустите все узлы в сети для заданного simulationTime
время.
% Run the simulation
run(networkSimulator, wlanNodes, simulationTime, statsLogger);
% Cleanup the persistent variables used in functions clear edcaPlotStats;
Получите статистику и сохраните ее в файле mat. В таблице пользовательского интерфейса показаны все статистические данные, собранные во время симуляции.
% Retrieve the statistics and store them in a mat file
statistics = getStatistics(statsLogger, ~displayStatsInUITable);
statisticsTable=101×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
AppTx 12500 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
AppRx 0 0 0 0 0 0 0 0 0 0 0 0 43 0 32 32 96 32 64 64 64 64 0 0 5 32 0 0 64 64 35 64 32 0 96 64
AppRxBytes 0 0 0 0 0 0 0 0 0 0 0 0 43000 0 48000 48000 1.44e+05 48000 96000 96000 96000 96000 0 0 7500 48000 0 0 96000 96000 52500 96000 48000 0 1.44e+05 96000
AppAvgPacketLatency 0 0 0 0 0 0 0 0 0 0 0 0 28509 0 67720 78853 58339 45246 34367 75986 34050 70382 0 0 997 34062 0 0 70228 70233 21354 17515 95524 0 50997 64829
MACInternalCollisionsAC1 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
MACInternalCollisionsAC2 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
MACInternalCollisionsAC3 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
MACInternalCollisionsAC4 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
MACBackoffAC1 261 378 486 396 261 297 459 135 351 567 261 378 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
MACBackoffAC2 0 9 135 90 0 0 99 0 90 144 117 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
MACBackoffAC3 18 72 162 135 126 27 117 0 126 171 18 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
MACBackoffAC4 27 45 63 45 27 18 27 0 27 63 0 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
MACDataTx 72 96 192 128 128 32 69 0 160 163 32 192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
MACTxAC1 72 96 192 128 128 32 69 0 160 163 32 192 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
MACTxAC2 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');
The hPlotNetworkStats
Функция helper анализирует собранную статистику и строит графики пропускной способности, коэффициента потерь пакетов и средних значений задержки пакетов на каждом узле. График показывает пропускную способность и коэффициент потерь пакетов у каждого передатчика (AP). График также показывает среднюю задержку пакета, испытываемую в каждом узле приемника (STA). Пропускная способность показывает достигнутую скорость передачи данных в каждой AP в единицах мегабит в секунду (Mbps). Коэффициент потерь пакетов показывает отношение неудачных передач данных к общему количеству передач данных. Средняя задержка пакета показывает среднюю задержку, испытываемую в каждом 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. Набор пропускных способностей, захваченных во всех различных положениях, может использоваться для построения тепловой карты, подобной показанной здесь.
P802.11ax™/D4.1 IEEE. «Поправка 6: Усовершенствования для высокой Эффективности WLAN».. Проект стандарта на информационные технологии - Телекоммуникации и обмен информацией между системами Локальные и столичные сети - Особые требования - Часть 11: Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического слоя (PHY).
«Сценарии симуляции TGax», док. IEEE 802.11-14/0980r16.
«Методика оценки 11ax», док. IEEE 802.11-14/0571r12.