Предположим, что вы моделируете очередь, которая может физически содержать 100 сущностей, и вы хотите определить, какую пропорцию времени длина очереди превышает 10. Можно смоделировать длинную очередь как пару более коротких очередей, соединенных последовательно. У более коротких очередей есть длина 90 и 10.
Несмотря на то, что деление длинной очереди в две более коротких очереди не имеет никакого основания в физической действительности, это позволяет вам собрать статистику, связанную с одной из более коротких очередей. В частности, можно просмотреть длину очереди (n) очереди, имеющей длину 90. Если сигнал положителен по ненулевому временному интервалу, то длина, 90 очередей содержат сущность, которая не может усовершенствовать к длине 10 очередей. Это означает, что длина 10 очередей полна. В результате физическая длина 100 очередей содержит больше чем 10 элементов. Определение пропорции времени, которое физическая длина очереди превышает 10, эквивалентно определению пропорции времени сигнал длины очереди логической длины, которую 90 очередей превышают 0.
Можно варьироваться время обслуживания сервера с помощью одного из следующих методов:
Постоянный источник, где вы варьируетесь константа
Рандомизированный источник
Произвольный источник
Основанный на времени источник
Используйте параметр Service time source блока Entity Server, чтобы применить эти методы. Можно выбрать из:
Dialog
Введите постоянное значение в параметр Service time value.
Signal port
Соедините источник времени с получившимся портом сигнала.
Attribute
Введите имя атрибута, который содержит данные, которые будут интерпретированы как сервис.
MATLAB action
В разделе Service time action введите код MATLAB®, чтобы варьироваться время обслуживания. Присвойте переменную dt, которую модель использует в качестве времени обслуживания.
Этим примером является простая система массового обслуживания, в которой сущности прибывают в фиксируемую детерминированную ставку. Они затем ожидают в очереди и переходят к серверу, который обслуживает сущности наугад интервалы. Это иллюстрирует использование Service time from random distribution design
шаблон.
В новой модели перетащите блоки, показанные в примере, и повторно пометьте и соедините их как показано. Для удобства начните с Service time from random distribution
шаблон разработки
Генерировать сущности каждые.5 секунды, в блоке Entity Generator:
Во вкладке Entity Generation измените Period в .5
.
Во вкладке Statistics выберите Number of entities departed, d.
В блоке Entity Queue выберите Number of entities in block, n.
В блоке Entity Server:
Проверьте, что сервер сконфигурирован в течение случайного времени обслуживания. В противном случае скопируйте блок Server из Service time from random distribution
шаблон разработки.
Во вкладке Statistics выберите Number of entities in block, n.
В блоке Entity Terminator, во вкладке Statistics, выбирают Number of entities arrived, a.
Сохраните и запустите модель. В частности, наблюдайте шаблон сущностей, оставляя блок Entity Generator и сущности наугад сервисными временами.
Чтобы определить, хранит ли очередь какие-либо сущности, используйте этот метод:
Включите выходной сигнал n блока очереди. В диалоговом окне блока, на вкладке Statistics, устанавливают флажок Number of entities in block, n.
От библиотеки Sinks в наборе библиотеки Simulink® вставьте блок Scope в модель. Соедините выходной порт n блока очереди к входному порту блока Scope.
Осциллограф показывает, пуста ли очередь.