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

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

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

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

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

  • Симулируйте сеть путем переключения между абстрактной и полной моделью среднего управления доступом (MAC) и физическим уровнем (PHY).

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

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

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

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

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

Задайте время симуляции (в миллисекундах) при помощи simulationTime переменная. Чтобы визуализировать живой график изменения состояния для всех узлов, установите showLiveStateTransitionPlot переменная к истине. Чтобы визуализировать таблицу, содержащую сетевую статистику в конце симуляции, установите displayStatistics переменная к истине.

Установите seed для генератора случайных чисел к 1. Начальное значение управляет шаблоном генерации случайных чисел. Случайное число, сгенерированное начальным значением, влияет на выбор счетчика возврата в MAC и моделирование потери на пути в PHY. Для высококачественных результатов симуляции измените начальное значение и насчитайте результаты по нескольким симуляциям.

rng(1, 'combRecursive');                % Seed for random number generator
simulationTime = 100;                   % Simulation time in milliseconds
showLiveStateTransitionPlot = true;     % Show live state transition plot for all nodes
displayStatistics = true;               % Display statistics at the end of the simulation

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

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 object. The axes object contains 40 objects of type patch, line, text, scatter. These objects represent AP, STA.

Этот пример использует жилую модель распространения TGax, чтобы определить pathloss между узлами. Потеря на пути является функцией количества стен, количества этажей и расстояния между узлами. Создайте модель потери на пути при помощи функции hTGaxResidentialPathLoss.

propModel = hTGaxResidentialPathLoss('Triangulation',tri,'ShadowSigma',0,'FacesPerWall',1);

Получите потерю на пути между каждой парой узлов в сети при помощи hCreatePathlossTable функции помощника.

[pl,tgaxIndoorPLFn] = hCreatePathlossTable(txs,rxs,propModel);

hCreateWLANNodes функция помощника позволяет:

  • Создайте узлы WLAN с APP, MAC и слоями PHY, сконфигурированными предыдущими параметрами

  • Добавьте пользовательские алгоритмы в APP, MAC и слоях PHY путем изменения кода, связанного с настройкой алгоритма в hCreateWLANNodes

По умолчанию, hCreateWLANNodes функция помощника конфигурирует абстрагированный MAC и PHY в каждом узле WLAN.

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

В абстрактном MAC узел не генерирует или декодирует любые системы координат на слое MAC. Точно так же в абстрактном PHY, узел не генерирует или декодирует любые формы волны в PHY. MAC и абстракция PHY позволяют вам минимизировать сложность и длительность симуляций уровня системы. Для получения дополнительной информации об абстракции PHY смотрите Абстракцию Физического уровня для примера Симуляции Уровня системы.

hCreateWLANNodes функция помощника позволяет вам переключиться между абстрактным и полным MAC или PHY путем конфигурирования MACFrameAbstraction и PHYAbstractionType введите параметры. Допустимые значения для этих параметров:

  • MACFrameAbstraction: TRUE или FALSE

  • PHYAbstractionType: ‘Приложение 1 методологии оценки TGax’ (значение по умолчанию), ‘калибровка MAC сценариев симуляции TGax’ или 'ни один'

Если вы устанавливаете PHYAbstractionType к 'Приложению 1 Методологии Оценки TGax', PHY оценивает эффективность ссылки с моделью канала TGax при помощи эффективного сигнала к интерференции плюс шумовое отношение (SINR) отображение. В качестве альтернативы 'Калибровочное значение' MAC Сценариев Симуляции TGax PHYAbstractionType принимает пакетный отказ на интерференции, на самом деле не вычисляя эффективность ссылки. Чтобы использовать полный PHY устанавливает значение PHYAbstractionType ни к 'Одному'.

MACFrameAbstraction = true;
PHYAbstractionType = "TGax Evaluation Methodology Appendix 1";

wlanNodes = hCreateWLANNodes (nodeConfigs, trafficConfigs, ...
'CustomPathLoss', tgaxIndoorPLFn, 'MACFrameAbstraction', MACFrameAbstraction, 'PHYAbstractionType', PHYAbstractionType);

Эта таблица показывает вас, как переключиться между абстрактным и полным MAC или PHY путем конфигурирования значений MACFrameAbstraction и PHYAbstractionType введите параметры.

Симуляция

Чтобы инициализировать параметры визуализации и симулировать сценарий WLAN, используйте hStatsLogger и hWirelessNetworkSimulator помощник функционирует, соответственно.

% Initialize visualization parameters
visualizationInfo = struct;
visualizationInfo.Nodes = wlanNodes;
statsLogger = hStatsLogger(visualizationInfo);

if showLiveStateTransitionPlot
    hPlotStateTransition(visualizationInfo); % Configure state transition visualization
end

% Initialize wireless network simulator
networkSimulator = hWirelessNetworkSimulator(wlanNodes);

Сетевое средство моделирования обеспечивает гибкость, чтобы запланировать пользовательские события в симуляции при помощи scheduleEvent объектная функция.

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

help hWirelessNetworkSimulator.scheduleEvent

% When you run the script from the MATLAB command prompt, pause the
% execution to refresh visualization after  every 5 milliseconds
scheduleEvent(networkSimulator, @() pause(0.001), [], 0, 5);

Запустите все узлы в сети для заданного simulationTime время. Визуализируйте периоды изменения состояния узлов.

% Simulate wireless network
run(networkSimulator, simulationTime);

Figure MAC State Transitions Over Time contains an axes object and another object of type uicontrol. The axes object contains 1500 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 hPlotStateTransition;

Результаты

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

% Retrieve the statistics and store them in a mat file
statistics = getStatistics(statsLogger, displayStatistics);
Statistics table for band 2.4 and channel number 6
statisticsTable=113×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 
    AppTxAC_BE                       12143      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 
    AppTxAC_BK                           0          0          0          0          0          0          0          0          0          0          0          0        0         0         0         0            0           0      0         0           0       0           0       0           0         0       0         0           0         0         0         0         0         0         0         0 
    AppTxAC_VI                           0          0          0          0          0          0          0          0          0          0          0          0        0         0         0         0            0           0      0         0           0       0           0       0           0         0       0         0           0         0         0         0         0         0         0         0 
    AppTxAC_VO                           0          0          0          0          0          0          0          0          0          0          0          0        0         0         0         0            0           0      0         0           0       0           0       0           0         0       0         0           0         0         0         0         0         0         0         0 
    AppTxBytes                  1.4643e+07    1.5e+07    1.5e+07    1.5e+07    1.5e+07    1.5e+07    1.5e+07    1.5e+07    1.5e+07    1.5e+07    1.5e+07    1.5e+07        0         0         0         0            0           0      0         0           0       0           0       0           0         0       0         0           0         0         0         0         0         0         0         0 
    AppRxAC_BE                           0          0          0          0          0          0          0          0          0          0          0          0       43        29        32        32           96          96      0         0          32       0          32       0           3        32       0         0          32        32        64        32        32        32        32        64 
    AppRxAC_BK                           0          0          0          0          0          0          0          0          0          0          0          0        0         0         0         0            0           0      0         0           0       0           0       0           0         0       0         0           0         0         0         0         0         0         0         0 
    AppRxAC_VI                           0          0          0          0          0          0          0          0          0          0          0          0        0         0         0         0            0           0      0         0           0       0           0       0           0         0       0         0           0         0         0         0         0         0         0         0 
    AppRxAC_VO                           0          0          0          0          0          0          0          0          0          0          0          0        0         0         0         0            0           0      0         0           0       0           0       0           0         0       0         0           0         0         0         0         0         0         0         0 
    AppRxBytes                           0          0          0          0          0          0          0          0          0          0          0          0    43000     43500     48000     48000     1.44e+05    1.44e+05      0         0       48000       0       48000       0        4500     48000       0         0       48000     48000     96000     48000     48000     48000     48000     96000 
    AppTxOverflow                    11559       9424       9296       9488       9456       9456       9453       9488       9424       9392       9424       9392        0         0         0         0            0           0      0         0           0       0           0       0           0         0       0         0           0         0         0         0         0         0         0         0 
    AppAvgPacketLatency                  0          0          0          0          0          0          0          0          0          0          0          0    39252     89520      5862     11397        44180       59051      0         0       83625       0       17016       0         596     44774       0         0       11466     50321     63871     55863     33621     61404      5895     86096 
    AppAvgPacketLatencyAC_BE             0          0          0          0          0          0          0          0          0          0          0          0    39252     89520      5862     11397        44180       59051      0         0       83625       0       17016       0         596     44774       0         0       11466     50321     63871     55863     33621     61404      5895     86096 
    AppAvgPacketLatencyAC_BK             0          0          0          0          0          0          0          0          0          0          0          0        0         0         0         0            0           0      0         0           0       0           0       0           0         0       0         0           0         0         0         0         0         0         0         0 
    AppAvgPacketLatencyAC_VI             0          0          0          0          0          0          0          0          0          0          0          0        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 objects. Axes object 1 with title Throughput at Each Transmitter contains an object of type bar. Axes object 2 with title Packet-loss at Each Transmitter contains an object of type bar. Axes object 3 with title Average Packet Latency 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.

Похожие темы