Образцовые пересечения трафика как сеть постановки в очередь

Этот пример показывает, как создать модель SimEvents®, чтобы представлять сеть трафика автомобиля и исследовать среднее время ожидания автомобилей, когда сеть находится в установившемся.

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

Уровень записей автомобиля в сеть представлен Пуассоновскими процессами с уровнями 0.5 для Записи 1 и 0.15 для Записи 2. Скорости обслуживания представляют автомобили времени, тратят на каждом пересечении, которые чертятся от экспоненциального распределения со средним 1. Значения стрелки являются вероятностями выбора маршрута для автомобилей в пересечении.

Образцовая сеть трафика

Чтобы представлять сеть трафика автомобиля, эта модель использует Генератор Сущности, Сервер Сущности, Очередь Сущности, Входной Переключатель Сущности, Переключатель Сущности Вывод и блоки Терминатора Сущности.

model = 'QueueServerTransportationNetwork';
open_system(model);

Образцовое прибытие автомобиля

Два блока Генератора Сущности представляют сетевые точки входа. Их время межгенерации сущности собирается создать процесс прибытия Пуассона.

Это - код в поле действия времени Межгенерации блока Entry 1.

% Random number generation
coder.extrinsic('rand');
ValEntry1 = 1;
ValEntry1 = rand();
% Pattern: Exponential distribution
mu = 0.5;
dt = -1/mu * log(1 - ValEntry1);

В коде mu является частотой поступления Пуассона. coder.extrinsic('rand') используется, потому что нет никакого уникального seed, присвоенного для рандомизации. Для получения дополнительной информации о генерации случайных чисел в действиях события, смотрите Языки Действия События и Генерацию случайных чисел. Чтобы узнать больше о внешних функциях, смотрите Работу с mxArrays (Simulink).

Образцовый выбор маршрута автомобиля

Сущности имеют атрибут Route, который принимает значение 1 или 2. Значение атрибута определяет выходной порт, из которого сущности отбывают из блока switch Сущности Вывод.

Этот код в действии Записи Сервера Сущности 1 представляет случайные выборы маршрута автомобилей на пересечении, представленном Узлом 1.

Coin1 = 1;
coder.extrinsic('rand');
Coin1 = rand;
if Coin1 <= 0.2
    entity.Route = 1;
else
    entity.Route = 2;
end

Это - пример случайных присвоений атрибута Route, когда сущности вводят блок Entity Server 1. Значение Route присвоено на основе значения случайной переменной rand, который принимает значения между 0 и 1. Route становится 1, если rand меньше чем или равен 0.2 или 2, если rand больше, чем 0.2.

Образцовые пересечения маршрута

Каждый синий узел представляет пересечение маршрута и включает бесконечную полную очередь и сервер со временем обслуживания, чертившим от экспоненциального распределения со средним 1.

Сервер сущности 1 содержит этот код.

% Pattern: Exponential distribution
coder.extrinsic('rand');
Val1 = 1;
Val1 = rand();
mu = 1;
dt = -mu * log(1 - Val1);

Вычислите среднее время ожидания автомобилей в сети

Сеть создается как открытая сеть Джексона, которая удовлетворяет эти условия.

  • Все прибывающие автомобили могут выйти из сети.

  • Прибытие автомобиля представлено Пуассоновским процессом.

  • Автомобили отбывают из пересечения как из метода "первым пришел - первым вышел". Время ожидания в пересечении экспоненциально распределяется со средним 1.

  • Автомобиль, отбывая из пересечения или следует доступным маршрутом или оставляет сеть.

  • Использование каждой перекрестной очереди трафика является меньше, чем 1.

В устойчивом состоянии каждая очередь в открытой сети Джексона ведет себя независимо как M/M/1 очередь. Поведение сети является продуктом отдельных очередей в дистрибутивах равновесия. Для получения дополнительной информации о M/M/1 очередях, см. M/M/1 Систему массового обслуживания.

Частота поступления автомобиля для каждого узла вычисляется с помощью этой формулы.

В формуле:

  • уровень внешнего прибытия для узла.

  • общее количество входящих стрелок к узлу.

  • вероятность выбора узла от узла.

  • общая частота поступления автомобиля к узлу.

Для всех узлов в сети уравнение принимает эту матричную форму.

Здесь, матрица маршрутизации, и каждый элемент представляет вероятность перехода от узла до узла.

Для сети, исследованной здесь, это - матрица маршрутизации.

вектор внешнего прибытия в каждый узел.

Используя эти значения, средняя частота поступления вычисляется для каждого узла.

Каждый узел ведет себя как независимая M/M/1 очередь, и среднее время ожидания каждого узла вычисляется этой формулой. См. M/M/1 Систему массового обслуживания.

Среднее время ожидания каждого узла вычисляется путем слияния каждого элемента.

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

Моделируйте модель и заметьте, что среднее время ожидания в каждой очереди в сети совпадает с расчетными теоретическими результатами.

  • Время ожидания очереди в узле 1 сходится к 1.

  • Время ожидания очереди в узле 2 сходится к 0.11.

  • Время ожидания очереди в узле 3 сходится к 0.88.

  • Время ожидания очереди в узле 4 сходится к 0.58.

Ссылки

[1] Джексон, Джеймс Р. Издание 5 исследования операций, № 4 (август 1957), стр 518-521.