Файл: Лабораторная работа 1 Знакомство с ведущим инструментом имитационного моделирования AnyLogic Цель работы.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 12.01.2024

Просмотров: 387

Скачиваний: 6

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

Объекты диаграммы.

Объект Source генерирует агентов определенного типа. Обычно он используется в качестве начальной точки диаграммы процесса, формализующей поток агентов. В нашем примере агентами будут посетители банка, а объект Source будет моделировать их приход в банковское отделение.

Объект Queue моделирует очередь агентов, ожидающих приема объектами, следующими за данным в диаграмме процесса. В нашем случае он будет моделировать очередь клиентов, ждущих освобождения банкомата.

Объект Delay задерживает агентов на заданный период времени, представляя в нашей модели банкомат, у которого посетитель банковского отделения тратит свое время на проведение необходимой ему операции.

Объект Sink уничтожает поступивших агентов. Обычно он используется в качестве конечной точки потока агентов (и диаграммы процесса соответственно).

За детальным описанием объектов Библиотеки моделирования процессов обращайтесь к Справочному руководству по Библиотеке моделирования процессов.

Настройте блоки диаграммы

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

  2. Выделите блок source. В панели Свойства укажите, как часто должны прибывать клиенты. Введите0.3 и выберите в минуту в поле Интенсивность прибытия.



Рис. 5. Панель «Свойства»


  1. Измените свойства блока queue. Введите в поле Вместимость 15. В очереди будут находиться не более 15 человек.




Рис. 6. Свойства блока queue


  1. Измените свойства блока delay. Назовите объект ATM. Задайте время обслуживания в поле Время задержки, распределенное по треугольному закону со средним значением, равным 1.5, минимальным - равным 0.8 и максимальным - 3.5 минутам.



Рис. 7. Свойства блока delay
Функция triangular() является стандартной функцией генератора случайных чисел AnyLogic. AnyLogic предоставляет функции и других случайных распределений, таких как нормальное, равномерное, треугольное, и т.д.

Запуск модели

Мы закончили моделирование простейшей системы очереди и готовы запустить созданную модель. Сначала постройте вашу модель с помощью кнопки панели инструментов Построить модель (при этом в рабочей области AnyLogic должен быть выбран какой-то элемент именно этой модели). Если в модели есть какие-нибудь ошибки, то построение не будет завершено, и в панель Ошибки будет выведена информация об ошибках, обнаруженных в модели. Двойным щелчком мыши по ошибке в этом списке вы можете перейти к месту ошибки, чтобы исправить ее.

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

Запустите модель

  1. Щелкните мышью по кнопке панели инструментов Запустить и выберите из открывшегося списка эксперимент, который вы хотите запустить. Эксперимент этой модели будет называться Bank/Simulation.




Рис. 8. Запуск модели
На момент запуска этого конкретного эксперимента наша модель - единственная открытая модель в рабочем пространстве. В дальнейшем будет запускаться тот эксперимент, который запускался вами в последний раз. Чтобы выбрать какой-то другой эксперимент, вам будет нужно щелкнуть правой кнопкой мыши по этому эксперименту в панели Проекты

и выбрать Запустить из контекстного меню.

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

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



Рис. 9. Блок-схема с наглядной визуализацией процесса
Вы можете изменить скорость выполнения модели с помощью кнопок панели инструментов Замедлить и Ускорить.

Вы можете следить за состоянием любого блока диаграммы процесса во время выполнения модели с помощью окна инспекта этого объекта. Чтобы открыть окно инспекта, щелкните мышью по значку блока. В окне инспекта будет отображена базовая информация по выделенному блоку: например, для блока Queue будет отображена вместимость очереди, количество агентов, прошедших через каждый порт объекта, и т.д.

Строка Содержит отображает количество агентов, находящихся в данный момент на объекте вместе с ID этих агентов.



Рис. 10. Отображение строки

Шаг 2. Создание анимации модели

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

Поскольку в нашем случае нас не интересует конкретное расположение объектов в пространстве, то мы можем просто добавить чисто схематическую анимацию интересующих нас объектов - в нашем случае мы хотим видеть на анимации банкомат и ведущую к нему очередь клиентов.

Анимация модели рисуется в той же диаграмме (в графическом редакторе), в которой задается и диаграмма моделируемого процесса.

Добавление фигур разметки пространства


Задайте фигуру анимации банкомата

  1. Нарисуем точечный узел, обозначающий банкомат. Вначале откройте палитру Разметка пространства панели Палитра.

  2. Перетащите элемент Точечный узел из палитры Разметка пространства в графический редактор и поместите его под блок-схемой процесса.



Рис. 11. Элемент Точечный узел


  1. Выделите щелчком точечный узел в графическом редакторе, чтобы открыть для него панель Свойства. Мы с вами хотим, чтобы во время моделирования менялся цвет нашей фигуры, поэтому введите выражение, которое будет постоянно вычисляться заново при выполнении модели, в поле Цвет:
    ATM.size() > 0 ? red : green

Здесь ATM – это имя нашего объекта Delay. Функция size() возвращает число человек, обслуживаемых в данный момент времени. Если банкомат занят, то цвет кружка будет красным, в противном случае - зеленым.

  1. Выделите щелчком блок delay, названный нами ATM, в диаграмме процесса, чтобы открыть его свойства.

  2. Выберите точечный узел point, который мы только нарисовали в параметре Место агентов. Вы можете выбрать его из выпадающего списка подходящих объектов, щелкнув стрелку "вниз", или выбрать фигуру из графического редактора, предварительно щелкнув кнопку справа от параметра (в таком случае все неподходящие объекты в графическом редакторе будут обесцвечены).



Рис. 12. Точечный узел point

Задайте фигуру анимации очереди к банкомату


  1. Нарисуем путь, обозначающий очередь к банкомату. Вначале откройте палитру Разметка пространства панели Палитра.

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

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





Рис. 13. Путь точка за точкой


  1. Выделите щелчком блок queue в диаграмме процесса, чтобы открыть для него панель Свойства.

  2. Выберите путь path, который мы только нарисовали в параметре Место агентов. Вы можете выбрать его из выпадающего списка подходящих объектов, щелкнув стрелку "вниз", или выбрать фигуру из графического редактора, предварительно щелкнув кнопку справа от параметра (в таком случае все неподходящие объекты в графическом редакторе будут обесцвечены).




Рис. 14. Выбор пути path
Теперь вы можете запустить модель и изучить ее поведение. Для ускорения работы модели, переключитесь в режим виртуального времени, щелкнув мышью по кнопке панели инструментов Реальное/виртуальное время. В режиме виртуального времени модель будет выполняться максимально быстро, без привязки модельного времени к реальному.

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



Рис. 15. Запуск модели