В этом примере показано, как к производительности модели сети 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);
Этот пример использует жилую модель распространения 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);
% 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);
% Remove the folder from the path rmpath(genpath(fullfile(pwd, 'mlWLANSystemSimulation')));
Чтобы наблюдать изменение пропускной способности, когда STA перемещается в комнате, можно запустить симуляцию для различных положений STA с фиксированным AP. Можно наблюдать изменение пропускной способности относительно расстояния от его AP. Набор пропускной способности, полученной во всех различных положениях, может использоваться, чтобы построить тепловую карту как один показанный здесь.
IEEE P802.11ax™/D4.1. "Поправка 6: Улучшения для Высокой эффективности WLAN.." Спроектируйте Стандарт для Информационных технологий - Телекоммуникаций и обмена информацией между системными Локальными сетями и городскими компьютерными сетями - Конкретными требованиями - Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Технические требования.
“Сценарии симуляции TGax”, документ. IEEE 802.11-14/0980r16.
“11ax методология оценки”, документ. IEEE 802.11-14/0571r12.