ЛАБОРАТОРНАЯ РАБОТА.
МОДЕЛИРОВАНИЕ ПРОСТЕЙШИХ СИСТЕМ СРЕДСТВАМИ ExtendSim
1. ЦЕЛИ ЛАБОРАТОРНОЙ РАБОТЫ:
· изучить инструментарии среды Extend для создания моделей систем массового обслуживания;
· получить навыки практической работы в среде Extend.
2. Задание к лабораторной работе
2.1. Постройте модель заполнения бассейна в Extend (задача 1), следуя инструкциям, приведенным в пояснениях к лабораторной работе.
2.2. Изучите реализацию в Extend модели работы переговорного пункта (задача 2, task 1-1). Измените условия задачи (задача 2-1) и реализуйте модель с новыми исходными данными.
2.3. Постройте модель для задачи 3.
2.4. Постройте модель для задачи 4.
2.5. Реализуйте 2D анимацию в каждой модели.
2.6. Реализуйте сохранение результатов моделирования в отчете.
3. Пояснения к лабораторной работе
Задача 1.
Моделируется процесс заполнения бассейна. Бассейн заполняется ежемесячно двумя входными потоками (дождевая вода и случайный входной поток). Время моделирования составляет 36 месяцев.
Вид модели приведен на рисунке 2.1

Рис. 2.1. Интерфейс модели «Бассейн»
Модели ExtendSim составлены из блоков и подключений. У модели Бассейна, например, есть пять блоков (можете видеть на рисунке 2.2). Информация входит в блок, обработана и/или изменена, и потом переслана к следующему блоку через подключение.

Рис. 2.2. Части модели
Блоки
Каждый блок в ExtendSim представляет часть процесса или системы, которая моделируется. У блоков есть названия, такие как Математика или Очередь, которые показывают функцию, которую они выполняют. У блока Queue, например, будет то же самое функциональное поведение в каждой модели, которую Вы встраиваете. Вы можете также добавить свою собственную метку к блоку, чтобы указать то, что она представляет в Вашей определенной модели, такой как блок Queue, маркированный при Линия ожидания.
Большинство блоков составлено из значка, соединителей, и диалога.
Значки
Значок блока обычно - иллюстрированное представление его функции. Например в модели Бассейна, маркированный Бассейн блока - блок Holding Tank. Маленькие квадраты, приложенные к сторонам значка, являются соединителями, которые обсуждаются более подробно в следующем разделе.
Соединители
У большинства блоков в ExtendSim есть соединители ввода и вывода (маленькие квадраты, приложенные к блоку). Потоки информации поступают в блок во входных соединителях и выходят из блока в соединителях вывода. Блок может иметь много входов и/или выходов; у некоторых блоков нет ни одного. Например, у маркированного Бассейна блока Holding Tank есть входной соединитель слева для значений. Соединитель вывода сообщает о результатах вычислений блока. Дополнительные входы для того, чтобы управлять определенным поведением блока.
Функция соединителя является определенной для блока; Вы можете получить информацию о функции соединителя, щелкая кнопкой Помощи в основании левого угла диалога, как рассказывается в "Диалогах", ниже. Так как соединители более важны, когда Вы встраиваете модель (по сравнению с тем, когда Вы выполняете это), то они обсуждаются более подробно в “Соединяющихся блоках”.
Диалоговые окна
Большинство блоков содержит диалоговые окна. Диалоговые окна используются, чтобы вводить значения и параметры настройки прежде, чем выполниться моделирования и видеть результаты как выполнения моделирования. Чтобы открыть диалог блока, дважды щелкните значок блока, или щелкните правой кнопкой мыши по значку и выберите Open Dialog. Например, если Вы дважды щелкаете значок Holding Tank, диалог открывается. Наверху диалога глобальный номер блока блока, его название, и, в скобах, библиотека, в которой это постоянно находится.
Глобальные номера блока - уникальные идентификаторы, назначенные последовательно на блоки, соответственно добавлению в модель. Внизу каждого диалога кнопка Помощи. Помощь блока предоставляет информацию о блоке, такую как его цель и использование, использование соединителя, описания каждого элемента диалога, и так далее. Около Помощи, кнопка - текстовое поле, где Вы можете ввести метку для блока, до 31 символа. Некоторые диалоги также вычисляют и отображают значения, которые сгенерированы как образцовые выполнения, так, если Вы оставляете диалог открытым во время моделирования, Вы можете смотреть воздействие на различные переменные. Эта интерактивная возможность моделирования означает, что Вы можете даже изменить некоторые из параметров настройки в диалоге во время выполненного моделирования, таких как выбирание различных кнопок или печатание новых значений.

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

Рис. 2.4. Блоки модели
Создание модели бассейна по шагам
Фундаментальное понятие модели Бассейна - моделировать то, что случается с водным уровнем бассейна за 36-месячный период. Нет никакой воды в бассейне в начале моделирования, и никакая вода не вытекает за край при переполнении. Изменение уровня воды происходит раз в месяц. Шаги, чтобы создать модель Бассейна:
Шаги:
1) Откройте новый модельный рабочий лист
2) Установите параметры моделирования
3) Постройте модель, используя блоки из библиотек
4) Выберите блочные параметры настройки и введите параметры диалога
Открытие нового модельного рабочего листа
Создайте новую модель:
Выберите File> New Model.
ExtendSim откроет, пустой модельный рабочий лист под названием Model-1.

Рис. 2.11. Создание новой модели
Задание параметров моделирования
Вы вводите параметры моделирования в команде Simulation Setup.
Выберите Run> Simulation Setup
Команда Simulation Setup открывает диалог для того, чтобы установить параметры моделирования и трехмерных параметров анимации, такие как, как долго и сколько времени производится моделирование, задание начального числа для генератора случайных чисел, режим взаимодействия между моделированием и трехмерным окном, и т. д. У диалога есть вкладки Setup, Continuous, Random Numbers, 3D Animation, and Comments. Самые общие параметры моделирования, которые Вы должны будете ввести в окно Simulation Setup (и часто единственные) является End time (Время окончания) и Global time units (Глобальные параметры модулей времени), расположенные на вкладке Setup. В большинстве целей требуется, чтобы моделирование началось вначале, таким образом используйте начальное время значения по умолчанию 0.
Настройте вкладку Setup, введя следующие параметры:
· Время окончания (End time): 36
· Начальное время (Start time): 0 (Значение по умолчанию)
· Выполнения (Runs): 1 (Значение по умолчанию)
· Глобальные модули времени (Global time units): Месяцы
· Нажмите OK
Эта модель выполнится в течение 36 месяцев (модельного времени), выполняя вычисления каждый месяц. Каждый раз, когда Вы выполняете моделирование, ExtendSim использует те же самые значения, введенные в окно Simulation Setup. Таким образом, Вы будете только конфигурировать параметры настройки в модели только один раз.

Рис. 2.12. Задание параметров моделирования
Построение модели
Модель Бассейна требует пять блоков. Есть два источника воды: ливень и поток; данные для ливня исходят из таблицы, в то время как поток вносит случайное количество. Также, Вы нуждаетесь в блоке, чтобы добавить два водных источника, другой блок, представляющий бассейн, и плоттер отображают результаты моделирования.
2.4.13 Основные шаги
Основные шаги для того, чтобы создать модель:
1. Откройте соответствующие библиотеки, в случае необходимости.
2. Добавьте блоки к модели.
3. Переместите их в желательные позиции.
4. Добавьте подключения между блоками.
О библиотеках
Блоки, используемые в модели, сохранены в архивах, названных библиотеками. Все определение для блока (его программа, значок, диалог, и так далее) сохранено в библиотеке. Когда Вы включаете блок в модель, сам блок не скопирован к модели. Вместо этого справочная информация на блок включена и сохранена с моделью. Любые данные, которые Вы вводите в диалог блока, также хранятся в пределах модели. Есть много преимуществ для этого метода использования справочной информации на библиотеки вместо фактических блоков в моделях. Если Вы изменяете определение блока в библиотеке, все модели, которые используют тот блок, автоматически обновлены. Кроме того, определения блока являются весьма большими, поэтому хранение только справочной информации в библиотеке сохраняет память и уменьшает продолжительность обработки.
Открытие соответствующих библиотек
Чтобы добавить блок к модели, библиотека, в которой постоянно находится тот блок, должна быть открытой. Для модели Бассейна Вы должны открыть библиотеки Value и Plotter.
Открыть библиотеку Value:
· Выберите Library> Open Library. ExtendSim откроет папку Библиотек.
· Выберите библиотеку Value.
· Щелкните Open.
· Повторите вышеупомянутые шаги, чтобы открыть библиотеку Plotter.
Открытые библиотеки перечислены в алфавитном порядке внизу в меню Library.
Добавление блоков к модели
Есть два метода для того, чтобы добавить новый блок к модели:
• Выберите блок из его библиотеки в пределах меню Library.
• Перетащите блок от окна Library.
Для этой Обучающей программы Вы будете использовать первый метод и выбирать блоки из меню Library.
Первый блок, необходимый для модели Бассейна, является блоком Lookup Table, который будет использоваться, чтобы ввести данные о количестве ливня, поступающего в бассейн.
Добавление блока Lookup Table к модельному рабочему листу:
От меню Library, прокрутитесь в библиотеку Value, которая перечислена внизу меню. Когда библиотека Value подсвечена, откроется вторичное меню, которое перечисляет несколько категорий, каждая из которых далее расширяется.
Под Математической категорией, щелкните Lookup Table. Значок для блока Lookup Table появляется в верхнем левом углу модельного окна. По умолчанию, значок выбран. Чтобы снять выделение блока, нажмите где-нибудь в окне. Чтобы переместить блок, выберите его и затем перетащите к желательной позиции в модельном окне или используйте Ваши клавиши курсора клавиатуры, чтобы переместить на один пиксель за один раз.
В Library меню выберите библиотеку, категорию, и блок (как обозначено ниже), чтобы добавить четыре остающихся блока к модели:
• Value library > Inputs category > Random Number block
• Value library > Math category > Math block
• Value library >Holding category > Holding Tank block
• Plotter library >Plotter I/O block
Когда Вы закончили, модель должна выглядеть подобной скриншоту. Самое время, чтобы сохранить модель (на всякий случай :)).
Выберите File> Save Model As и назовите файл My Reservoir (Имя может быть любым, желательно использовать буквы латинского алфавита и без пробелов).

Рис. 2.13. Выбор блока в библиотеке

Рис. 2.14. Добавленный блок

Рис. 2.15. Все блоки добавлены
Соединение блоков
Как упомянуто в части 1, подключения передают информацию от одного блока до другого. Блоки обычно связываются вместе на рисунке подключений с соединителя выхода одного блока на входной соединитель другого блока.
Соединители
В ExtendSim поведение большинства соединителей предопределено для каждого определенного блока. Например, когда Вы заставляете блок Math использовать функцию (добавьте, вычтите, разделите, и т. д.), это знает, что сделать со значениями, которые являются вводом в блок. Это делает разработку модели простой, так как Вы можете подключить блоки и выполнить моделирование, не имея необходимость писать уравнения, чтобы определить то, что каждый блок должен сделать с входами или выходами. Есть несколько типов соединителей в ExtendSim. Непрерывные модели, такие как Бассейн, используют только соединители входа и выхода значений, чтобы передать информацию от одного блока до другого. Другие типы соединителей будут обсуждаться в более поздних главах.

Рис. 2.16. Соединители блоков
Типы подключений
Есть два типа подключений в ExtendSim: подключения линии и названные подключения. Подключения линии соединяют выход одного блока с входом других линией подключения; названные подключения используют текстовые метки как выходы и входы, заставляя данные "спрыгнуть" с выхода к входу, не используя линии подключения.
Линии подключения могут быть нарисованы, используя три различных стиля: правый угол, прямо, и мультисегмент. Стиль значения по умолчанию - правый угол, который Вы будете использовать в следующем примере. Другие стили подключений линии, так же как названных подключений, будут обсуждаться в “Дополнительных способах подключения блоков”.
Соединение блока Lookup Table на переменный соединитель блока Math
В модели Бассейна два входных источника должны быть связаны с блоком Math так, чтобы количество воды, входящей в бассейн от ливня и от потока, могло быть добавлено вместе. Первый шаг, должен подключить блок Lookup Table с блоком Math. Как упомянуто ранее, блоки, у которого есть быть больше чем один источник входа, требуют отдельного входного соединителя для каждой информации. ExtendSim предусматривает это, помещая переменные соединители в блоки, которые, возможно, нуждаются в них. Это обычно обозначается черной стрелкой ниже соединителя, который можно перетащить, чтобы отобразить дополнительные соединители. У блока Math, например, есть переменный входной соединитель как обозначено черной стрелкой ниже ее ввода. Однако, так как блок Math отображает два ввода по умолчанию, Вы не должны разворачивать переменный соединитель.
· Подключение блока Lookup Table к блоку Math:
· Переместите курсор в соединитель выхода блока Lookup Table.
· Курсор изменится от стрелки до технического рейсфедера:
· Щелкните по соединителю выхода Lookup Table, затем перетащите линию на главный входной соединитель на блоке Math. Вы можете увидеть, когда соедините блоки, потому что линия, которую Вы тянете, становится более толстой.
· Отпустите кнопку мыши.


Рис. 2.17. Соединение блоков
Соединение от блока Random Number
Следующий шаг должен подключить второй выходной источник, блок Random Number, к входу блока Math. Сделайте это:
Потяните линию подключения между соединителем выхода на блоке Random Number и вторым входным соединителем на блоке Math, так же, как Вы сделали это для блока Lookup Table ранее.

Рис. 2.18. Соединение блоков
Соединение остающихся блоков
Подключите другие блоки в модели следующим образом:
Потяните линию подключения между соединителем выхода на блоке Math и входным соединителем на Корпусе

Рис. 2.19. Соединение блоков
Блок корпуса
Чтобы контролировать уровень бассейна, потяните линию подключения между соединителем выхода Корпуса и главным входным соединителем на блоке Plotter.

Рис. 2.20. Соединение блоков
Работа с блочными диалогами
Теперь, когда все блоки были помещены и связаны в модели, Вы можете ввести данные и выбрать опции в блочных диалогах. Данные для этой модели исходят из таблицы значений и от случайной выборки. Разделы ниже опишут параметры настройки, используемые в диалоге каждого блока.
Источник ливня
Количество ливня, входящего в бассейн, определено блоком Lookup Table, который содержит ожидаемый ливень каждого месяца. В реальной ситуации, например, эти числа, возможно, были определены ежегодными зарегистрированными средними числами.
Дважды щелкните блок Lookup Table, чтобы открыть его диалог.
По умолчанию, блок Lookup Table установлен в Lookup the: input value. В этом режиме блок выводит значение, которое соответствует значению, которое он получает при его вводе. Однако, если Вы хотите, чтобы блок Lookup Table вывел значение - количество ливня в течение месяца, который соответствует текущему времени моделирования, то:
Настройте вкладку Table диалога, устанавливая поведение блока искать время моделирования каждый месяц:
· Lookup the: time
· Output is: stepped (Значение по умолчанию)
· Time units: months (Модельное значение по умолчанию)
Time означает, что блок сравнит текущее время моделирования со временем в таблице и выведет соответствующее значение. Stepped означает, что ExtendSim будет использовать точные значения, которые Вы вводите в таблицу, а не интерполированные.
· Увеличьте число строк, чтобы таблица имела двенадцать месяцев данных:
· Нажмите +/-, зеленый квадрат в правой нижней части таблицы.
· Введите 12 для числа строк и 2 (значение по умолчанию) для числа столбцов.
· Нажать OK
· Введите данные в таблицу как показано в скриншоте.

Рис. 2.21. Данные по месяцам
Проверьте Repeat table every переключатель и введите 12 в блок months. Это позволяет определить ежемесячный ливень на последующие года.
В блоке входа метки около кнопки Помощи, напечатайте Ливень. У меток может быть максимум 31 символа, включая пробелы.
![]()
Рис. 2.22. Задание меток
На вкладке Options, введите следующий текст в блок меток столбца, чтобы дать более значимые заголовки таблице (убедитесь, что включали точку с запятой):
· Месяц; Ливень (дюймы)
· Возвратитесь к вкладке Table
Левый столбец таблицы теперь определяет месяц, и правый столбец определяет количество ожидаемого ливня в дюймах. При каждом шаге ExtendSim проверит таблицу блока и выведет соответствующее значение (дюймы ливня). Например, в течение четвертого месяца блок выведет 1.9.
· Нажмите OK, чтобы закрыть диалог этого блока.
Потоковый источник
В этой модели блок Random Number используется, чтобы определить случайное распределение воды, входящей бассейн от потока. Распределение - вещественное число между 0 и 1, указывает, что поток добавит между 0 и 1 дюйм воды к уровню бассейна каждый месяц.
Откройте диалог блока Random Number.
По умолчанию у параметров диалога уже есть параметры настройки, введите следующие:
· Distribution: Uniform Real (Значение по умолчанию)
· Minimum: 0 (Значение по умолчанию)
· Maximum: 1 (Значение по умолчанию)
· Введите Поток в поле метки рядом с кнопкой Помощи.
· Нажать OK.

Рис. 2.23. Диалог генератора случайных чисел
Объединение источников
Блок Math комбинирует значения из двух входных источников. Это обозначено знаком "плюс" на его значке, когда Вы поместили блок в модель, блок Math собирается по умолчанию добавить его входы. Нет никакой потребности изменять его параметры настройки диалога.
Вода в бассейне
Блок Holding Tank представляет уровень воды в бассейне. В этой модели Корпус не имеет никаких информационных наполнений и не выводит ни одного из его информационных наполнений.
Откройте диалог блока Holding Tank.
В диалоге, наберите:
· Initial contents: 0 (Значение по умолчанию)
· Inputs are: integrated (delay)
· Введите Бассейн в поле метки рядом с кнопкой Помощи.
· Щелкните OK.

Рис. 2.24. Диалог блока Математика
Демонстрация результатов
Блок ввода - вывода Плоттера контролирует общую сумму воды в бассейне. (Позже в этой главе Вы изучите различные методики для того, чтобы подключить блоки Поисковой таблицы и Случайного числа с Плоттером, также контролировать количество, втекающее от ливня и потока).
Дважды щелкните Плоттер, чтобы открыть его окно плоттера.
Обратите внимание, что первый столбец в таблице - назван Contents. Плоттер автоматически назвал его, когда Вы соединялись от выхода информационных наполнений блока Holding Tank. Далее индивидуализируем окно плоттера:
· Щелкните текстовую метку Value в верхнем левом углу графа Плоттера, чтобы выбрать его текстовое поле.
· Напечатайте Дюймы в текстовом поле и щелкните Клавишей ENTER.
· Используя тот тот же самый процесс, измените другие метки Плоттера в области окна графа следующим образом:
· Plotter I/O (расположенный наверху графа) измените на Модель Бассейна.
· Time (расположенный ниже графа) измените на Месяц.
· Закройте окно плоттера
· Сохраните модель.

Рис. 2.25. Диалог блока Корпус
Выполнение моделирования
Теперь, когда Вы поместили блоки в модель, подключили их, и сконфигурировали их диалоги с данными, пришло время выполнить моделирование.
Выберите Run> Run Simulation или щелкните кнопкой Run Simulation на панели инструментов.
Справа появится график процесса моделирования. На нем будет только одна линия, потому что только Holding Tank в настоящее время связывается с блоком Plotter.

Рис. 2.26. Выполнение моделирования
Дополнительные способы подключить блоки
Для этого моделирования Вы должны также подключить ливень и потоковые блоки на Плоттер, таким образом Вы можете сравнить их выводы с полной водой, собранной в бассейне. Когда Вы собирали модель, Вы использовали право-угловой тип линии подключения, чтобы подключить блоки. Это - настройка по умолчанию для всех новых моделей. Вы можете также подключить блоки, используя прямые и мультисегментированные типы линий подключения.
Прямое подключение линии
Вы тянете этот тип линии точно тем же самым способом как право-угловой стиль, но это отображает по-другому.
· Выберите Model> Connection Lines и выберите straight line опцию (второй элемент).
· Чертите линию от соединителя вывода на блоке Lookup Table на второй входной соединитель на Plotter.
И у прямой линии и у право-угловых линий подключений есть недостаток - модель трудную читать.
Удалите прямое подключение линии Delete или Backspace.
Подключение линии мультисегмента
Этот стиль имеет преимущество, разрешая Вам потянуть линии так, чтобы они пошли вокруг блоков, а не по ним.
С опцией прямой линии, все еще выбранной, щелкните соединителем выхода Поисковой таблицы и перетащите Ваш курсор до участка над Holding Tank.
Отпустите мышь.
Это создаст первый сегмент. Курсор остается техническим пером, потому что Вы указываете на начало выделения.

Рис. 2.27. Первый сегмент
Немедленно щелкните еще раз и перетащите курсор на второй входной соединитель на Плоттере, отпустите кнопку мыши.

Рис. 2.28. Мультисегмент
У Вас теперь есть подключение мультисегмента. (Отметьте, что право-угловое подключение, которое автоматически создано приложением - проще подключения мультисегмента).
Удалите подключение мультисегмента, дважды щелкая сегмент, пока вся линия подключения не станет толще, затем нажмите Delete или Backspace. (Чтобы удалить только один сегмент линии, щелкните на сегменте один рази нажмите клавишу DELETE).
Именные подключения
Именые подключения - текстовые метки, которые используются, чтобы представить выход блока во многих местоположениях в Вашей модели. Если у Вас есть две метки с тем же самым текстом, Вы можете использовать их, чтобы поток данных переходил с одной части модели к другой. Именные подключения часто используются, когда Вы не хотите загромождать Вашу модель многими линиями. Вы можете поместить названия около блоков, к которым они относятся и оставить большую часть области Вашей модели свободной от линий подключения.
Создание именного подключения между Поисковой таблицей и Плоттером
Добавить текстовую метку для именного подключения:
· Выберите Model> Connection Lines и выберите или право-угловой или прямой тип линии.
· Дважды щелкните в модельном окне, немного выше и правее от соединителя выхода блока Lookup Table. Откроется текстовое поле.
· Напечатайте Rainfall в текстовом поле.
![]()
Рис. 2.29. Текстовая метка
· Закончив печатать, нажмите где-нибудь в модельном окне.
· Соедините соединитель выхода Поисковой таблицы со словом Rainfall, перетаскивая линию от соединителя до текста и, когда линия станет жирной, отпустите мышь.

Рис. 2.30. Соединение блока и метки
· Щелкните по тексту Rainfall, чтобы выбрать его, затем выберите Edit> Duplicate.
· Перетащите дублированный текст к Плоттера.
· Начертите линию между этим текстом и вторым входным соединителем на Плоттере.
![]()
Рис. 2.31. Соединение метки и блока
Именное подключение между Случайным числом и Плоттером
Повторите процесс выше, чтобы создать именное подключение между блоком Random Number и Плоттером:
· Создайте метку с текстом Stream и поместите ее около выхода блока Random Number.
· Соедините выход блока Random Number и текстовую метку.
· Дублируйте текстовую метку и перетащите ее к Плоттеру.
· Соедините текстовую метку и третий входной соединитель на Плоттере.
Построение графика на нескольких осях
· Щелкните кнопкой Run Simulation на панели инструментов.
У Плоттера, который появляется, теперь есть три линии: синия отображает количество воды в бассейне в течение долгого времени, красная отображает количество, входящее в бассейн от ливня, и зеленая линия отображает вход воды от потока. В конце выполненного моделирования Плоттер автоматически масштабирует свою ось, чтобы отобразить все значения для обоих столбцов данных. Однако, потому что у общей суммы воды в бассейне намного больший диапазон, чем у количества входящей воды каждый месяц, линии, представляющие ливень и поток, могут неясно отобразиться. Они просто будут похожи на горизонтальные линии через основание графика.

Рис. 2.32. Три графика на одном плоттере
Чтобы решить эту проблему, Вы можете добавить отдельную ось (Y2) на правой стороне графика и заставить Плоттер отображать ливень и потоковые значения на той оси.
· Если Плоттер не открыт, дважды щелкните по нему, чтобы открыть.
· Щелкните кнопкой Trace properties
, которая является крайней левой кнопкой на панели инструментов наверху окна графика. Откроется диалог с инструментами.
· Во второй строке, с именем Rainfall, щелкните кнопкой Y1/Y2
(вторая справа). Рисунок на кнопке зеркально отразится
.
· В третьей строке, названной Stream, щелкните кнопкой Y1/Y2 (вторая справа). Рисунок на кнопке зеркально отразится.
· Закройте диалоговое окно Tools.
· Щелкните кнопкой Run Simulation на панели инструментов.
График теперь отображает Ливень и Поток с использованием правой оси.

Рис. 2.33. Многоосный график
Законченная модель Бассейна
Если Вы следовали всем шагам, Ваша модель должна выглядеть подобно модели Бассейна, на рисунке.

Рис. 2.34. Модель бассейна
Дополнительные возможности
Теперь, когда Вы знаете, как создать модель, Вы можете исследовать некоторые другие особенности, такие как иерархия и дублирование, которые просто сделать и они очень увеличат функционально Ваши модели.
Введение в иерархию
Модель Бассейна использует принцип "один блок - одна функция". Для такой простой модели это работает прекрасно. Однако, модели, созданные для реальных моделирований, могут вовлечь тысячи блоков.
Чтобы упрощать и разъяснять модели, ExtendSim позволяет Вам создавать иерархические блоки (H-blocks), которые собирают несколько блоков в один блок, тем не менее разрешая Вам получать доступ в более низкие уровни.
Создание иерархического блока от существующих блоков
В модели Бассейна Вы можете сгруппировать блоки, которые представляют источники воды вместе в один иерархический блок. Этот процесс чрезвычайно прост.
· Зажмите Shift и кликните мышкой Lookup Table, Random Number, и Math блоки, чтобы выбрать их.
· Выберите Model> Make Selection Hierarchical. Диалог спросит Вас название для иерархического блока.
· Введите Water Sources.
· Щелкните Make H-Block.

Рис. 2.35. Иерархический блок
Три индивидуальных блока заменены единственным иерархическим блоком с белым прямоугольником для значка. По умолчанию, у иерархических блоков есть тени, чтобы отличить их от других блоков; Вы можете изменить эту опцию, выбирая Edit> Options > вкладка Model.
Отметьте, что есть три соединителя, включая Ливень и Поток, на значке иерархического блока.
· Дважды щелкните иерархический блок, чтобы видеть подмодель, и индивидуальные компоненты в ней.

Рис. 2.36. Подмодель и ее компоненты
Область заголовка окна отображает название иерархического блока. Отметьте, что подключения для того, чтобы передать данные изнутри иерархического блока к внешней модели, представлены в подмодели как именные подключения с красными границами вокруг текста. Эти подключения соответствуют трем соединителям на значке блока.
· Закройте окно Water Sources.
ExtendSim обеспечивает еще много особенностей создания и использования иерархических блоков, включая строительство иерархических блоков на пустом месте, использование индивидуальных значков к ним.
Навигатор ExtendSim
Навигатор - подобное эксплореру окно, которое может использоваться во множественных целях:
· Чтобы передвигаться через иерархическую структуру модели
· Чтобы обратиться к любым базам данных, используемым в модели
· Чтобы добавить блоки к модельному рабочему листу, как альтернатива использования меню Library
Навигация в модели Бассейна
Так как у Вашей модели бассейна теперь есть иерархический блок (блок Water Sources, который Вы создали ранее), Вы можете видеть, как Навигатор полезен для того, чтобы рассматривать модель.
Открытие Навигатора:
· Выберите Window> Navigator или щелкните Open Navigator на панели инструментов.
По умолчанию, Навигатор открывается в режиме Model Navigator, со словом, "Model", выбранным в крайнем левом всплывающем меню. Название активной модели перечислено наверху окна и ниже крайнего левого всплывающего меню Навигатора, и отображены значок каждого блока и информация (название, метка, и глобальный номер блока).
· Щелкните знаком "плюс" около иерархического блока Water Sources. Иерархический блок раскроется, чтобы показать блоки внутри него.
· Выберите блок Lookup Table в Навигаторе. Соответствующий блок выберется в модельном окне.
· Дважды щелкните блок Lookup Table в Навигаторе. Откроется Диалог блока.
Как Вы можете видеть, Навигатор необходим для того, чтобы работать со сложными моделями, моделями со многими уровнями или экземплярами класса иерархии.

Рис. 2.37. Навигация в модели
Дублирование
В “Выполнении Модели” Вы видели, как Отчет организовывает, контролирует, и взаимодействует с данными во время моделирований. ExtendSim позволяет Вам добавлять диалог, и элементы плоттера в Ваш Отчет, используя методику под названием Дублирование. Аналоги - точные копии элементов диалога, ведут себя точно также как оригинал. Когда дублируемое значение изменяется, оригинальный элемент диалога или график также изменяются.
Дублирование график с блока Plotter в Отчет:
· Выберите Window> Notebook или выберите Open Notebook на панели инструментов. Откроется пустое окно Notebook.
· Дважды щелкните блок Plotter в своей модели бассейна.
· Используя инструмент Clone layer
на панели инструментов, щелкните график на плоттере и перетащите это в окно Notebook.
· Выполните моделирование снова. График в Отчете - тот же самый, что и на Плоттере.

Рис. 2.38. Дублирование объектов
Задача 2. В переговорном пункте установлено четыре телефона. Поток посетителей, приходящих на переговорный пункт, простейший пуассоновский с интенсивностью λ =0,2 (человек в минуту). Время разговора посетителей по телефону составляет в среднем:
=15 минут (закон распределения интервалов между событиями показательный). При имитационном моделировании задайте время работы переговорного пункта равным 800 часам (100 рабочим дням).
Задача 2-1. В переговорном пункте установлено пять телефонов. Поток посетителей, приходящих на переговорный пункт, простейший пуассоновский с интенсивностью λ =0,4 (человека в минуту). Время разговора посетителей по телефону распределено по нормальному закону (среднее
=20 минут, СКО – 1 минута). При имитационном моделировании задайте время работы переговорного пункта равным 900 часам.
Вид модели (задача 2.) представлен на рисунке

В модели используются следующие блоки: Create, Exit, Queue, Executive, Activity, Statistics, Plotter Discrete Event. Далее остановимся подробнее на каждом из них.
Блок Executive ![]()
Представляет собой таймер и позволяет управлять процессом моделирования. Всегда должен находиться раньше всех остальных блоков!!! С его помощью можно прекратить моделирование досрочно по числу событий!
Блок Create ![]()
Генерирует события согласно выбранному закону распределения или таблицы значений. Может генерировать за раз несколько событий.
Блок Exit ![]()
Удаляет события из системы безвозвратно. Имеет возможность увеличения входов по необходимости. Для этого достаточно подвести курсор к черному треугольнику под входом и, зажав левую кнопку, потянуть вниз до тех пор, пока не получите нужное количество входов. Имеет информационные коннекторы для получения информации, например, о количестве событий, прошедших через блок.
Блок Queue 
Является очередью. Позволяет имитировать различные дисциплины обслуживания. Имеет информационные коннекторы, благодаря которым можно выводить информацию на графики.
Блок Activity 
Обрабатывает события, поступившие на вход, и пересылает их на выход после обработки. Имеет возможность задания числа одновременно обрабатываемых событий. Можно задать закон распределения времени обработки событий, взять значения из таблицы, сделать константой, использовать параметр события или получить характеристику с информационного коннектора D, что бывает полезно при изменении интенсивности с течением суток.
Блок Plotter Discrete Event ![]()
Выполняет функции графопостроения. Имеет 4 входа и возможности настройки отображения графиков.
Блок Statistics ![]()
Собирает статистику по блокам Activity. Позволяет экспортировать в сторонние приложения. Не требует подключения.
Задача 3. На обработку в вычислительную систему поступают задания с интенсивностью λ=6 (заданий в секунду). Задания обрабатываются одним из 5-ти компьютеров. Время обработки имеет интенсивность μ=1 (заданий в секунду). Если в очереди на обработку 3 задания, то для обработки задания подключается шестой компьютер. Все потоки, протекающие в системе, простейшие пуассоновские. Время имитационного моделирования – 2000 секунд.
Пример реализации подобной модели с ограничением очереди приведен на рисунке.

Блок Decision block анализирует длину очереди или время ожидания. Если линия не удовлетворяет условиям, блок Select Item Out block направляет заявки на выход модели, игнорируя очередь.
В данной модели Decision block показывает длину очереди. Если длина очереди меньше чем или равна пороговой величине, определенной в диалоговом окне Decision block (10 заявок) на выходе Y будет 1. Это подскажет блоку Select Item направлять заявки через нижний выходной коннектор. Если длина очереди больше порогового значения, выход N Decision block выдаст 0 , который направит заявки на выход, игнорируя очередь.
Задача 4. На заправке есть три вида топлива для автомобилей: низкооктановый, высокооктановый бензины и дизельное топливо. Для каждого вида топлива есть своя колонка. Прибытие автомобилей на заправку распределено согласно нормальному закону со средним значением 20 мин. и СКО - 1 мин. Низкооктановым бензином заправляются 30% автомобилей, высокооктановым – 50% и дизельным топливом – 20%. Время заправки на каждой из колонок распределено по равномерному закону с параметрами соответственно: 6 ± 3 мин., 10±2 мин., 11±3 мин. Промоделировать работу заправки по обслуживанию 2000 автомобилей.
Для реализации модели, кроме блоков, которые были описаны ранее, понадобятся блоки:
Блоки Select Item Out и Select Item In
![]()
Позволяют соединять и разделять потоки событий. Обладают набором критериев соединения и разделения. Например, можно задать процент событий, приходящийся на каждый выход, или разделять события по уникальному свойству. Имеют возможность изменения количества выходов/входов аналогично блоку Exit.


