В этом примере показано, как моделировать производительность сети IEEE ® 802.11ax™ [1] с использованием Toolbox™ WLAN .
Используя этот пример, можно -
Моделирование сценария размещения путем конфигурирования параметров сети и канала.
Моделирование многорежимной системы WLAN и визуализация статистики, связанной с сетью.
В разделе Результаты представлены такие показатели производительности, как пропускная способность, задержка и потеря пакетов.
В этом примере показано моделирование на уровне системы для оценки производительности сети 802.11ax в сценарии жилого помещения. Жилой сценарий состоит из здания с 3 этажами. Расстояние между этажами - 1,5 метра. Каждый этаж состоит из четырех комнат, каждая из которых имеет размеры 10м x 10м x 3м. Каждая комната имеет точку доступа (AP) и две станции (STA), расположенные в случайных x- и y- местах на высоте 1,5 метра от пола. Каждая точка доступа имеет данные для STA, присутствующих в одной комнате. Сценарий моделирования определяет модель потери пути на основе расстояния между узлами и количества стен и перекрытий, пересекаемых сигналом WLAN. На этом рисунке показан сценарий размещения, смоделированный в этом примере.

В этом примере моделируется уровень управления доступом к среде (MAC) и физический уровень (PHY) всех узлов (AP и STA) с использованием абстракций. Уровень MAC реализует расширенные функциональные возможности доступа к распределенному каналу (EDCA). Уровень MAC использует абстракцию для формирования и декодирования кадров. Абстракция относится к тому факту, что уровень MAC посылает и принимает метаданные кадра вместо отправки или приема кодированных битов кадра MAC. Аналогично, PHY использует абстракцию для генерации и декодирования сигнала WLAN. Дополнительные сведения об абстракции PHY см. в разделе Пример абстракции физического уровня для моделирования на уровне системы.
Этот пример откалиброван по сценариям Box-3 и Box-5, указанным в методологии оценки TGax [2]. Пропускная способность сети, рассчитанная для сценариев, упомянутых в документе [3] о сценариях моделирования TGax, проверяется на соответствие опубликованным результатам калибровки, полученным от группы задач TGax, для подтверждения соответствия стандарту IEEE 802.11.
Установите начальное число для генератора случайных чисел равным 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')));
ScenarioParameters структура определяет размер и планировку жилого дома с использованием этих параметров.
BuildingLayout: Задает компоновку здания с точки зрения количества комнат в каждом из трех направлений
RoomSize: Указывает размер каждой комнаты в метрах
NumRxPerRoom: Указывает количество пикетов на комнату
В примере предполагается, что одна передающая точка доступа и две принимающие STA в каждой комнате. 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);
hLoadConfiguration функция загружает конфигурации MAC и PHY для узлов, указанных nodeConfigs и загружает конфигурацию трафика приложения для передающих узлов, указанных в trafficConfigs. Эта функция присваивает идентификаторы (ID) и позиции всем узлам сети.
% 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
PHYAbstractionType
⋮
wlanTrafficConfig.mat файл определяет структуру для задания конфигурации трафика приложения. Для получения дополнительной информации о подробных параметрах конфигурации в этом файле MAT используйте команду hConfigurationHelp('wlanTrafficConfig'). trafficConfigs выходные данные hLoadConfiguration функция является массивом этих структур. Каждая структура соответствует определенному целевому узлу STA. Для каждого приложения массива можно изменить такие параметры, как размер пакета, скорость передачи данных или категория доступа. Сценарий моделирования в этом примере настраивает трафик Best Effort (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 функция. Создайте дескриптор функции, который возвращает потери тракта между каждой парой узлов в сети, используя модель распространения и узлы передатчика и приемника. 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;
Извлеките статистику и сохраните ее в файле мата. В таблице пользовательского интерфейса отображаются все статистические данные, собранные в ходе моделирования.
% 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');
hPlotNetworkStats вспомогательная функция анализирует собранную статистику и строит график пропускной способности, коэффициента потери пакетов и средних значений задержки пакетов на каждом узле. График показывает пропускную способность и коэффициент потери пакетов в каждом передатчике (AP). График также показывает среднюю задержку пакетов в каждом узле приемника (STA). Пропускная способность показывает достигнутую скорость передачи данных на каждой точке доступа в единицах мегабит в секунду (Мбит/с). Коэффициент потери пакетов показывает отношение неудачных передач данных к общей передаче данных. Средняя задержка пакета показывает среднюю задержку, наблюдаемую на каждом 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 с фиксированной точкой доступа. Можно наблюдать изменение пропускной способности относительно расстояния от точки доступа. Набор значений пропускной способности, зафиксированных во всех различных положениях, можно использовать для построения тепловой карты, подобной показанной здесь.

P802.11ax™/D4.1 IEEE. «Поправка 6: Усовершенствования для высокоэффективной БЛС». Проект стандарта на информационные технологии - Связь и обмен информацией между системами Локальные и городские сети - Особые требования - Часть 11: Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического уровня (PHY).
«Сценарии моделирования TGax», док. IEEE 802.11-14/0980r16.
«Методология оценки 11ax», документ IEEE 802.11-14/0571r12.