Лб 1. Лабораторная работа 1 Знакомство с ведущим инструментом имитационного моделирования AnyLogic Цель работы
Скачать 1.08 Mb.
|
Добавление 3D анимации Первым делом нам будет нужно добавить на диаграмму типа агента 3D Окно. 3D Окно используется для задания на диаграмме агента области, в которой во время запуска модели будет отображаться трехмерная анимация этой модели. Добавьте 3D окно Перетащите элемент 3D Окно из секции 3D палитры Презентация в графический редактор. Вы увидите в графическом редакторе закрашенную серым область. Поместите ее туда, где вы хотите видеть 3D анимацию во время запуска модели: Рис. 16. Закрашенная серым область Перемещение в 3D анимации Теперь вы можете запустить модель и наблюдать простую 3D анимацию. При создании 3D окна, AnyLogic добавляет область просмотра, которая позволяет легко переключаться к сцене 3D анимации во время выполнения модели. Чтобы переключиться к 3D анимации в запущенной модели, откройте панель разработчика, щелкнув по кнопке Показать/скрыть панель разработчика в правом углу панели управления. В открывшейся панели разработчика раскройте список Выбрать область и показать и выберите опцию [window3d]. Рис. 17. Опция [window3d]. Вы можете перемещаться по 3D сцене с помощью мыши и следующих клавиш:
Добавление 3D объектов Теперь мы хотим задать фигуру клиента банка. По умолчанию клиенты в нашей модели обозначались цветными точками и отображались цветными цилиндрами в 3D анимации. Если мы хотим задать нестандартный тип клиента и выбрать для него красивую фигуру анимации, нам нужно создать новый тип агента. Создайте новый тип агента Откройте Библиотеку моделирования процессов в панели Палитра. Перетащите элемент Тип агента в графический редактор. Рис. 18. Тип агента Откроется диалоговое окно Мастера создания агентов на шаге Создание нового типа агента. Введите Customer в поле Имя нового типа, оставьте опцию Создать новый тип агента "с нуля" выбранной. Нажмите Далее. Рис. 19. Создание нового типа агента Выберите опцию 3D для типа анимации и фигуру анимации Человек из списка 3D фигур. Рис. 20. Фигура анимация Человек Щелкните Готово. Диаграмма нового агента Customerоткроется автоматически. Вы можете найти 3D фигуру Человек в начале координат. Настройте использование нового типа агентов в блок-схеме На диаграмме Main, выделите блок source в графическом редакторе. Выберите тип агента Customer в выпадающем списке параметра Новый агент. Рис. 21. Тип агента Customer Откройте панель Свойства точечного узла и переключите элемент управления Видимость в значение нет. Таким образом разметка пространства не будет видна на анимации во время выполнения модели. Повторите эти действия для элемента path. Запустите модель, чтобы увидеть анимацию клиентов в очереди. Рис. 22. Анимация клиентов в очереди Добавьте объект банкомата Откройте палитру 3D Объекты в панели Палитра. Перетащите 3D фигуру Банкомат из секции палитры Супермаркет в графический редактор и поместите ее на точечный узел. Рис. 23. 3D-фигура Банкомат Если вы сейчас запустите модель и проверите 3D анимацию в режиме просмотра window3D, вы заметите, что банкомат стоит не той стороной по направлению к очереди клиентов, и нам необходимо развернуть его в правильную сторону. Выделите 3D объект банкомата atm в графическом редакторе и откройте секцию свойств Расположение. Выберите из выпадающего списка параметра Поворот Z 0 градусов. Запустите модель, чтобы убедиться, что фигура банкомата стоит "лицом" к клиентам. Рис. 24. Фигура банкомата Шаг 3. Добавление клерков Теперь мы усложним нашу модель, добавив в нее служащих – банковских кассиров. Мы могли бы промоделировать кассиров, как и банкомат, с помощью объекта Delay. Но куда более удобным представляется моделирование кассиров с помощью ресурсов. Ресурс – это специальный объект Библиотеки моделирования процессов, который может потребоваться агенту для выполнения какой-то задачи. В каждый момент времени ресурс может быть занят только одним агентом. В нашем примере посетителям банковского отделения (агентам) необходимо получить помощь у банковских служащих (ресурсов). Изменения в диаграмме процесса Добавьте обслуживание Откройте Библиотеку моделирования процессов в панели Палитра и перетащите на диаграмму Main блок Service. Объект Service захватывает для агента заданное количество ресурсов, задерживает агента, а затем освобождает захваченные им ресурсы. Рис. 25. Объект Service Перейдите в панель Свойства блока service. Измените параметры объекта следующим образом: Ко всем кассирам будет вести одна общая очередь. Задайте максимальное количество человек в этой очереди в поле Вместимость очереди: 20. Мы полагаем, что время обслуживания имеет треугольное распределение с минимальным значением равным 2.5, средним - 6, и максимальным - 11 минутам. Введите в поле Время задержки: triangular (2.5, 6, 11 ) Рис. 26. Время задержки Смоделируйте выбор клиентов Откройте Библиотеку моделирования процессов в панели Палитра и перетащите на диаграмму процесса Main блок SelectOutput в свободное место между блоками source и queue. Возможно, вам понадобится переместить несколько блоков, чтобы увеличить длину соединителя между ними. Вы можете выделить несколько блоков диаграммы процесса и переместить их все вместе или перемещать блоки по одному. SelectOutput является блоком принятия решения. В зависимости от заданного вами условия, агент, поступивший в объект, будет поступать на один из двух выходных портов объекта. Рис. 27. Выходные порты объекта Выделите блок selectOutput в диаграмме процесса. В панели Свойства этого блока выберите опцию При выполнении условия в параметре Выход true выбирается. Убедитесь, что в поле Условие стоит выражение randomTrue(0.5). В этом случае к кассирам и банкомату будет приходить примерно равное количество клиентов. Соедините блоки selectOutput и service с другими блоками так, как показано на рисунке ниже: Рис. 28. Блоки selectOutput и service Добавьте ресурсы для сервиса Откройте Библиотеку моделирования процессов в панели Палитра и перетащите блок ResourcePool на диаграмму агента Main. Объект ResourcePool задает ресурсы определенного типа (в нашей модели это будут банковские клерки). Поместите его, например, под блоком service и перейдите в панель Свойства. Назовите объект tellers. Рис. 29. Объект tellers Задайте число кассиров в поле Кол-во ресурсов: 4. Рис. 30. Количество ресурсов Блок ResourcePool указывается в объектах, использующих ресурсы, в нашем случае это блок Service. Поэтому нам необходимо изменить свойства блока service диаграммы процесса. Выделите блок service и перейдите в панель Свойства. Выберите опцию Ресурсы одного типа в параметре Захватить ресурсы. Затем укажите блок tellers, который мы добавили на диаграмму, в параметре Блок ResourcePool. Вы можете выбрать его из выпадающего списка подходящих объектов, щелкнув стрелку "вниз", или выбрать фигуру из графического редактора, предварительно щелкнув кнопку справа от параметра (в таком случае все неподходящие объекты в графическом редакторе будут обесцвечены). Рис. 31.Ресурсы одного типа Поскольку наша модель изменилась, мы должны изменить и ее анимацию. Добавление фигур разметки пространства Теперь давайте нарисуем область для ожидания и место обслуживания клиентов кассирами. Задайте фигуру разметки для электронной очереди В этот раз мы будем рисовать место ожидания клиентами, используя прямоугольный узел. Вначале откройте палитру Разметка пространства панели Палитра. Двойным щелчком выделите элемент Прямоугольный узел палитры Разметка пространства, чтобы перейти в режим рисования. Щелкните мышью в графическом редакторе, чтобы задать вершину верхнего левого угла, затем тащите прямоугольник, не отпуская кнопки мыши. Отпустите, когда прямоугольный узел достигнет нужной формы. Вы можете редактировать фигуру и после того, как ее рисование завершено Назовите эту область waitingArea. Переключите элемент управления Видимость в положение нет. Таким образом разметка пространства не будет видна на анимации во время выполнения модели. Рис. 32. Элемент управления Видимость Выделите щелчком блок service block в диаграмме процесса и перейдите в его свойства. Выберите только что нарисованный нами узел waitingArea в параметре Место агентов (queue) Рис. 33. Место агентов (queue) Задайте фигуру разметки места обслуживания клиентов Клиентам банка требуется место, на котором они могли бы находиться во время обслуживания у кассиров. Мы нарисуем такую область, используя прямоугольный узел. Вначале откройте палитру Разметка пространства панели Палитра. Двойным щелчком выделите элемент Прямоугольный узел палитры Разметка пространства, чтобы перейти в режим рисования. Щелкните мышью в графическом редакторе, чтобы задать вершину верхнего левого угла, затем тащите прямоугольник, не отпуская кнопки мыши. Отпустите, когда прямоугольный узел имеет нужную форму. Вы можете редактировать фигуру и после того, как ее рисование завершено. Назовите эту область customerPlaces. Переключите элемент управления Видимость в положение нет. Рис. 34. Элемент управления Видимость Мы будем использовать аттракторы, чтобы задать местоположение тех клиентов, которые будут обслуживаться у кассиров. Выделите узел customerPlaces в графическом редакторе и щелкните кнопку Аттракторы... в свойствах узла. В открывшемся окне Аттракторы укажите число аттракторов 4 в режиме создания Количество аттракторов, затем щелкните OK. Вы увидите, что четыре аттрактора появились в узле customerPlaces на равном расстоянии друг от друга. Рис. 35. Узел customerPlaces Теперь нам необходимо сослаться на эту фигуру в диаграмме процесса. Щелкните блок service и перейдите в панель Свойства этого блока. Выберите нарисованный нами узел customerPlaces в параметре Место агентов (delay) Рис. 36. Параметр Место агентов (delay) Задайте фигуру разметки для кассиров Кассирам банка также требуется место, где они могли бы находиться во время обслуживания клиентов. Мы нарисуем такую область, используя прямоугольный узел. Вначале откройте палитру Разметка пространства панели Палитра. Двойным щелчком выделите элемент Прямоугольный узел палитры Разметка пространства, чтобы перейти в режим рисования. Щелкните мышью в графическом редакторе, чтобы задать вершину верхнего левого угла, затем тащите прямоугольник, не отпуская кнопки мыши. Отпустите, когда прямоугольный узел имеет нужную форму. Вы можете редактировать фигуру и после того, как ее рисование завершено. Назовите эту область tellerPlaces. Переключите элемент управления Видимость в положение нет. Рис. 37. Элемент управления Видимость Мы будем использовать аттракторы, чтобы задать местоположение клерков. Выделите узел tellerPlaces в графическом редакторе и щелкните кнопку Аттракторы... в свойствах узла. В открывшемся окне Аттракторы укажите число аттракторов 4 в режиме создания Количество аттракторов, затем щелкните OK. Вы увидите, что четыре аттрактора появились в узле tellerPlaces на равном расстоянии друг от друга, но они направлены не в ту сторону. Выделите все аттракторы, зажав клавишу Shift и щелкнув по ним мышью, и потом выберите 180.0 в параметре Ориентация секции свойств Местоположение и размер. Рис. 38. Параметре Ориентация Щелкните объект tellers в диаграмме процесса и перейдите в его свойства. Выберите нарисованный нами узел tellerPlaces в параметре Базовое местоположение (узлы) Рис. 39. Параметр Базовое местоположение Вы можете запустить модель и наблюдать, как клиенты обслуживаются у банкоматов и проходят к кассирам. |