exponenta event banner

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

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

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

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

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;

Результаты

Извлеките статистику и сохраните ее в файле мата. В таблице пользовательского интерфейса отображаются все статистические данные, собранные в ходе моделирования.

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

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 с фиксированной точкой доступа. Можно наблюдать изменение пропускной способности относительно расстояния от точки доступа. Набор значений пропускной способности, зафиксированных во всех различных положениях, можно использовать для построения тепловой карты, подобной показанной здесь.

Ссылки

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

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

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