Уровень системы мультиузла 802.11ax жилого сценария с использованием MATLAB

В этом примере показано, как смоделировать производительность сети 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);

Figure contains an axes. The axes contains 40 objects of type patch, line, text, scatter. These objects represent AP, STA.

Этот пример использует жилую модель распространения 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);

Figure MAC State Transitions Over Time contains an axes and another object of type uicontrol. The axes contains 1115 objects of type bar, rectangle. These objects represent Contention, Transmission, Reception(destined to others), Idle/EIFS/SIFS, Reception(destined to node).

% 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);

Figure contains 3 axes. Axes 1 with title Throughput at each transmitter contains an object of type bar. Axes 2 with title Packet loss at each transmitter contains an object of type bar. Axes 3 with title Average packet latency experienced at each receiver contains an object of type bar.

% Remove the folder from the path
rmpath(genpath(fullfile(pwd, 'mlWLANSystemSimulation')));

Дальнейшие исследования

Чтобы наблюдать изменение пропускной способности, когда STA перемещается в комнате, можно запустить симуляцию для различных положений STA с фиксированной AP. Можно наблюдать изменение пропускной способности относительно расстояния от его AP. Набор пропускных способностей, захваченных во всех различных положениях, может использоваться для построения тепловой карты, подобной показанной здесь.

Ссылки

  1. P802.11ax™/D4.1 IEEE. «Поправка 6: Усовершенствования для высокой Эффективности WLAN».. Проект стандарта на информационные технологии - Телекоммуникации и обмен информацией между системами Локальные и столичные сети - Особые требования - Часть 11: Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического слоя (PHY).

  2. «Сценарии симуляции TGax», док. IEEE 802.11-14/0980r16.

  3. «Методика оценки 11ax», док. IEEE 802.11-14/0571r12.