Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Одиноков.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
2 Мб
Скачать
☆

2. Построение дискретно — событийных моделей

Подобная модель представляет собой взаимодействие прибывающих с фиксированной скоростью сущностей, которые потом отправляются на сервер, обслуживающий каждую сущность с фиксированной скоростью. Такие системы относятся к типу D/D/1. При построении подобных систем необходимо сначала добавить блоки в рабочую область и задать им параметры. Simelink позволяет отобразить графически поведение пакетов и использовать отладчик для обработки определенных стадий работы компонентов.

2.1 Рабочая область

Прежде чем, приступать к построению модели, необходимо рассмотреть рабочую область данного пакета. Основное окно пакета разделено на 3 области. Левая из них предназначена для определения рабочей директории, она так и называется Current Folder, что значит текущий каталог. Он содержит поля названия каталога и даты изменения. Все команды в пакете вводятся в центральный и самый большой раздел окна, именуемый Command Window, что значит командное окно. В окне всегда горит значок приветствия >> , после которого вводят команду. Чтобы открыть существующий файл, необходимо после знака приветствия ввести следующую команду simeventsdocex(doc_dd1). Данный процесс представлен на рисунке 11. В скобках указано название модели.

Рисунок 11 — Иллюстрация открытия модели.

Для открытия библиотек Simevents в командной строке необходимо ввести команду simeventslib. Как говорилось ранее, все компоненты библиотеки уже определены и включают различные блоки с параметрами. При вводе вышеописанной команды появится окно, представленное на рисунке 12.

Рисунок 12 — Библиотека компонентов SimEvents.

Рассмотрим эту библиотеку подробнее. Она включает в себя следующие компоненты:

  • Generators – источники, именно эти компоненты воспроизводят сущности

  • SimEvents Sinks – заявки

  • Attributes – атрибуты

  • Queues – очереди

  • Servers -серверы, обслуживающие поступающие сущности

  • Routing – маршрутизация

  • Gates - ворота

  • Entity Management – управление сущностями

  • Signal Management – управление сигналами

  • SimEvents Ports and Subsystems – порты и подсистемы

  • Timing – время обслуживания

  • Gateways - очереди

  • Demos – демо - версии

Для того чтоб открыть компоненты библиотеки ,необходимо щелкнуть дважды по иконке библиотеки.

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

3 Описание блоков

3.1 Генераторы сущностей

Этот блок предназначен для производства сущностей, которые будут появляться с промежутками времени интеграции и удовлетворять указанным пользователем параметрам и представлен на рисунке 13.

Рисунок 13 — Блок генератора сущностей

Интеграционное время представляет собой разницу между двумя успешными событиями. Интеграционное время может зависеть от некоторого параметра или вырабатываться с порта t. После выработки сущности, она отправляется дальше на выходной порт, который соединен с входным портом сервера. Этот порт может быть занят. На это может несколько причин, например, время вырабатывания сущности больше или меньше времени обработки их сервером и т. д. Если выходной порт заблокирован, а генератор сущностей создал новую сущность, существует несколько моделей его поведения.

  1. При блокировке вывести ошибку. В этом случае, система немедленно выдаст сообщение об ошибке

  2. При блокировке уйти в режим паузы. В этом случае, блок удерживает сущность, и она автоматически становиться ожидающей.

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

Порты

Сигнальные входные порты. Их два, первый из них — это порт t , упоминавшийся ранее в описании интеграционного времени. Этот порт предназначен для выработки сигнала между успешных событием и следующим за ним событием. Последующий блок читает значение с этого порта и обновляет свои выходные сигналы, если таковые имеются. Этот порт появляется только в том случае, если в блоке генерации сущности будет выбрана опции интеграционного времени через порт t. Второй порт OUT – порт, через который отправляются сущности.

Входные порты

  • #d - этот порт подсчитывает количество сущностей, которые уже прошли через блок с начала симуляции. Значение на порту меняется после каждой отправленной сущности

  • pe - порт будет иметь значение 1 ,если блок хранит хотя бы одну сущность, которая уже пыталась отправиться и не отправилась. В этом случае сущность становиться ожидающей. Значение будет равным нулю, если таких сущностей в блоке не было

  • w – значение на этом порте равно среднему значению времени всех успешно отправившихся сущностей. После отправки первой сущности, значение равно нулю, значение смениться до 1 после отправки второй сущности.

Стоит отметить, что перед началом симуляции, время на всех выбранных портах равно нулю.

Окно параметров блока

При двойном клике на любой блок открывается его окно параметров. Это окно настройки блока пользователем. Для блока генерации сущностей, оно выглядит следующим образом:

Р исунок 14 — Окно параметров блока генерации сущностей.

Это окно включает в себя 4 вкладки, на каждой из которых устанавливаются значения, соответствующие категории вкладки. Рассмотрим каждую вкладку:

  1. Генерация сущностей. На этой вкладке определяются интеграционное время, будет ли оно зависеть от параметра или порта t, Если выбран первый вариант ,появляется окно для ввода этого параметра, приоритет выполнения операций и условие для того, начинать ли генерацию сущностей со стартом симуляции или нет. Вышеописанные параметры приведены на рисунке 15.

Р исунок 15 — Варианты выбора параметров.

После выбора времени, нужно выбрать закон распределения. Он может быть постоянным с константой, равномерным или по экспоненте. Если выбран постоянный с константой, необходимо ввести значение константы в графе Period — интервал между двумя выработками сущностей. Если выграть равномерный закон или по экспоненте появится поле Inital Seed - первоначальное значение, оно формируется генератором случайных чисел. Так же необходимо будет указать верхние и нижние временные границы. Пр экспоненциальном законе появляется поле ожидаемого значения распределения, именуемое mean.

Следующая вкладка — это вкладка поведения блока при блокировке. Здесь необходимо выбрать описанные выше варианты ответа генератора сущностей, если следующий порт заблокирован. Можно выбрать значение приостановки выработки сущностей(pause generation) или вывод ошибки(error).

Рисунок 16 — Демонстрация ответа блока генерации сущностей, если следующий порт занят.

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

Р исунок 17 - Демонстрация ответа блока генерации сущностей, если следующий порт освободился.

Следующая вкладка предназначена для определения типа сущности. Есть варианты новой сущности без атрибутов (blank) и стандартный вариант с атрибутами. Следующей вкладкой явялется вкладка ведения статистики. Предлагается выбрать порты из вариантов, #d, pe, w, все эти порты уже были ранее описаны.