Функции WLAN Toolbox™ позволяют вам визуализировать время, проведенное узлом в каждом состоянии в симуляции уровня системы WLAN. Используя этот пример, вы можете:
Создайте и сконфигурируйте с четырьмя узлами 802.11ax™ сеть, состоящая из двух точек доступа (APS) и двух станций (STAs).
Симулируйте сеть путем конфигурирования восходящего и нисходящего трафика.
Визуализируйте время, проведенное узлами в конкуренции, передаче, приеме и состояниях времени простоя во время симуляции.
Для получения информации о параметрах конфигурации узла см. Состав Узла WLAN и Настройку.
Чтобы получить доступ к файлам помощника, которые использует этот пример, добавьте mlWLANSystemSimulation
папка к пути MATLAB.
addpath(genpath(fullfile(pwd,'mlWLANSystemSimulation')));
Установите время симуляции в миллисекундах.
simulationTime = 0.02*1e3;
Позвольте опции показать живой график изменения состояния для всех узлов.
showLiveStateTransitionPlot = true;
Задайте общее количество узлов (APS и STAs) в сети. Этот пример использует два APS и два STAs.
numNodes = 4;
Задайте x-, y-, и z-координаты узлов WLAN в Декартовой системе координат. Этот пример рассматривает первые два узла как APS и следующие два узла как STAs.
nodePositions = [10 0 0; 20 0 0; 15 5 0; 13 8 0];
Загрузите настройку по умолчанию для узлов WLAN.
load('wlanNodeConfig.mat');
Установите параметры конфигурации узла.
wlanNodeConfig.TxMCS = 5; % Modulation and coding scheme index wlanNodeConfig.DisableRTS = true; % Disable RTS/CTS exchange wlanNodeConfig.NumTxChains = 3; % Number of transmit chains wlanNodeConfig.MaxSubframes = 64; % Maximum number of subframes that can be aggregated in an A-MPDU wlanNodeConfig.Bandwidth = 80; % Channel bandwidth (in MHz) wlanNodeConfig.TxFormat = 'HE_SU'; % Frame transmission format
Скопируйте настройку по умолчанию для всех узлов.
nodeConfig = repmat(wlanNodeConfig,1,numNodes);
Инициализируйте положение узла APS и STAs.
for idx = 1:1:numNodes nodeConfig(idx).NodePosition = nodePositions(idx,:); end
Загрузите настройку трафика приложения по умолчанию для узлов WLAN.
load('wlanTrafficConfig.mat');
Инициализируйте узлы восходящей и нисходящей настройкой трафика путем копирования настройки по умолчанию для узлов WLAN.
trafficConfig = repmat(wlanTrafficConfig,1,3);
Сконфигурируйте трафик максимальных усилий по восходящему каналу AP в первом AP от первого STA. Идентификаторы узла 1 и 2 представляют первый и второй APS, соответственно. Идентификаторы узла 3 и 4 представляют первый и второй STAs, соответственно.
trafficConfig(1).SourceNode = 3; % STA node ID trafficConfig(1).DestinationNode = 1; % AP node ID trafficConfig(1).AccessCategory = 0; % Best Effort (0), Background (1), Video (2), and Voice (3)
Сконфигурируйте нисходящий видео трафик AP во втором AP к первому STA.
trafficConfig(2).SourceNode = 2; % AP node ID trafficConfig(2).DestinationNode = 3; % STA node ID trafficConfig(2).AccessCategory = 2;
Сконфигурируйте речевой трафик нисходящего канала AP в первом AP к второму STA.
trafficConfig(3).SourceNode = 1; % AP node ID trafficConfig(3).DestinationNode = 4; % STA node ID trafficConfig(3).AccessCategory = 3;
Создайте сценарий WLAN при помощи hCreateWLANNodes
функция помощника. Пример конфигурирует каждый узел с предыдущим физическим уровнем (PHY), слоем среднего управления доступом (MAC) и настройкой трафика приложения.
wlanNodes = hCreateWLANNodes(nodeConfig,trafficConfig);
Инициализируйте параметры визуализации.
visualizationInfo = struct; visualizationInfo.Nodes = wlanNodes; visualizationInfo.NodeNames = ["AP1","AP2","STA1","STA2"];
Сконфигурируйте визуализацию изменения состояния при помощи hPlotStateTransition
функция помощника.
if showLiveStateTransitionPlot hPlotStateTransition(visualizationInfo); end
Симулируйте сеть при помощи hWirelessNetworkSimulator
объект помощника.
networkSimulator = hWirelessNetworkSimulator(wlanNodes); % Object that handles network simulation
Сетевое средство моделирования обеспечивает гибкость, чтобы запланировать пользовательские события в симуляции при помощи scheduleEvent
объектная функция. Например, когда вы вызываете средство моделирования, можно запланировать событие, чтобы обновить визуализацию изменения состояния. Задайте указатель на функцию, входной параметр, время вызова и периодичность коллбэка.
scheduleEvent(networkSimulator, @() pause(0.001), [], 0, 5); % Refresh visualization after every 5 milliseconds
Запустите все узлы в сети для заданного времени симуляции. Визуализируйте время, проведенное узлами в конкуренции, передаче, приеме и состояниях времени простоя во время симуляции.
run(networkSimulator,simulationTime);
title('State Transitions for All Nodes');
В конце симуляции удалите mlWLANSystemSimulation
папка от пути.
rmpath(genpath(fullfile(pwd,'mlWLANSystemSimulation')));