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

В этом примере показано, как к производительности модели сети IEEE® 802.11ax™ [1] в жилом сценарии при помощи WLAN Toolbox™.

Используя этот пример, вы можете -

  • Смоделируйте жилой сценарий путем конфигурирования параметров канала и сети.

  • Симулируйте мультиузел система WLAN и визуализируйте связанную с сетью статистику.

Раздел Results строит показатели производительности, такие как пропускная способность, задержка и пакетная потеря.

Жилое описание сценария

Этот пример демонстрирует симуляцию уровня системы, чтобы оценить эффективность 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.

Параметры конфигурации

Параметры симуляции

Установите seed для генератора случайных чисел к 1. Для большей точности в результатах симуляции измените seed и насчитайте результаты по нескольким симуляциям. Задайте время симуляции в микросекундах с помощью simulationTime переменная. Чтобы визуализировать живой график изменения состояния для всех узлов, установите showLiveStateTransitionPlot переменная к истине. Чтобы визуализировать таблицу, содержащую сетевую статистику в конце симуляции, установите displayStatsInUITable переменная к истине.

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: Задает количество станций на комнату

Пример принимает один 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
    PHYAbstractionType
      ⋮

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

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

Этот пример использует жилую модель распространения TGax, чтобы определить pathloss между узлами. Потеря пути является функцией количества стенок, этажей и расстояния между узлами. Создайте модель пути потерь использование 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);

Симуляция

Инициализируйте визуализацию и симуляцию parameters.

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

Результаты

Получите статистику и сохраните их в матовом файле. Таблица UI показывает все статистические данные, собранные во время симуляции.

% 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 функция помощника анализирует собранные статистические данные и строит пропускную способность, пакетное отношение потерь и средние пакетные значения задержки в каждом узле. График показывает пропускную способность и пакетное отношение потерь в каждом передатчике (APS). График также показывает среднюю пакетную задержку, испытанную в каждом узле приемника (STAs). Пропускная способность показывает достигнутую скорость передачи данных в каждом AP в модулях мегабит в секунду (Мбит/с). Пакетное отношение потерь показывает отношение неудачных передач данных к общим передачам данных. Средняя пакетная задержка показывает среднюю задержку, испытанную в каждом 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. IEEE P802.11ax™/D4.1. "Поправка 6: Улучшения для Высокой эффективности WLAN.." Спроектируйте Стандарт для Информационных технологий - Телекоммуникаций и обмена информацией между системными Локальными сетями и городскими компьютерными сетями - Конкретными требованиями - Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Технические требования.

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

  3. “11ax методология оценки”, документ. IEEE 802.11-14/0571r12.