Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

AnyLogic

.doc
Скачиваний:
13
Добавлен:
19.11.2019
Размер:
999.42 Кб
Скачать

Шаг 1. Створення моделі

Спочатку створюємо нову модель

 Создайте новую модель

  1. Клікніть «мишкою» по кнопці панелі інструментів Создать  . Появиться вікно Мастера создания модели.

  2. Задайте ім’я нової моделі. В полі Имя модели введіть Ophthalmology Department.

  1. Виберіть каталог, в якому будуть зберігатись файли моделі. Якщо Ви хочите змінити запропонований по замовчанню каталог на інший, Ви можете ввести шлях до нього в поле Местоположение або вибрати цей каталог з допомогою діалога навігації по файловій системі, що відкривається при натисненні на кнопку Выбрать.

  2. Клікніть «мишкою» по кнопці Далее. Відкриється друга сторінка Мастера создания модели.

  3. Тут Вам буде запропоновано вибрати шаблон моделі, на базі якого Ви будете розробляти Вашу модель. Оскільки ми створюємо модель «з нуля» , тому необхідно клікнути мишею по кнопці Готово.

Нова модель створена.

При работі с моделью не забувайте зберігати внесені Вами зміни з допомогою кнопки панелі інструментів Сохранить  .

Шаг 2. Створення анімації моделі

Розпочнем з зображення плану відділення, щоб потім будувати вузлы транспортной мережі нашої модели і сегменти транспортної мережі.

Вставим готове зображення плану в AnyLogic

 Добавте на презентацію план відділення

  1. Спочатку відкрийте закладку Презентация панелі Палитра, клікнувши по її заголовку.

  1. Палітра Презентация містить елементи, які використовуються для малювання презентацій моделей: фігури, за допомогою яких Ви можете малювати складні презентації, а також елементи управління, за допомогою яких Ви можете зробити Ваші презентації інтерактивними.

  1. Перетягніть елемент Изображение   із палитри Презентация на діаграму класа активного об’єкта. Помістіть його так, як показано на малюнку:

  1. Задайте властивості зображення в панели Свойства. Клікніть мишкою по кнопці Добавить і виберіть файл зображення плану відділення (<каталог AnyLogic>\resources\tutorials\Ophthalmology Department\layout.png)

  1. Щоб зберегти початковий розмір зображення, встановіть прапорець Исходный размер.

  2. Зображення повинно буде виглядати наступним чином:

Побудуємо анімацію моделі. На основі анімації будується транспортна мережа моделі: прямокутники відповідають вузлам мережі, а ламані лінії - зв'язкам між ними, що відображають шляхи руху заявок і ресурсів в модельованому просторі. 

Щоб створити необхідну транспортну мережу, ми повинні намалювати на анімації приміщення нашого відділення за допомогою прямокутників і з'єднати їх ламаними лініями.

 Побудуйте вузли мережі

  1. Намалюйте кожну кімнату відділення за допомогою прямокутника. Відділення офтальмології включає в себе приймальний предпокій, три процедурні, кімнату зберігання офтальмоскопії та кімнату для персоналу. 

  2. На наведеному нижче рисунку побудовані і підписані прямокутники, які Вам потрібно буде побудувати. Назвіть прямокутники саме так, як показано на рисунку. Це важливо, тому що надалі необхідно буде на них посилатися саме за іменами відповідних прямокутників.

  1. Щоб побудувати прямокутник, зробіть подвійний клік мишею по елементу Прямоугольник  в палитрі (при цьому його значок зміниться на: ). Потім клікніть мишею в тому місці діаграми, де Ви хочете прямокутник, і пересуньте її, не відпускаючи кнопки, поки контур створюваного прямокутника не прийме бажаний розмір, після чого відпустіть кнопку миші. 

  2. Малюйте прямокутники так, щоб вони поміщалися у відповідні області на плані відділення, як показано на рисунку нижче. Щоб полегшити малювання фігур потрібного Вам розміру, вимкніть прив'язку фігур до сітки діаграми, клацнувши по кнопці панелі інструментів Включить/Отключить сетку.

  1. Прямокутники в нашій моделі використовуються для завдання наступних областей:

    • прийомний предпокій - waitingHall

    • кімната для персонала - procRoom1, procRoom2, procRoom3

    • кімната зберігання офтальмоскопов - storageRoom

    • процедурні кімнати - staffRoom

  2. Щоб зробити шляху руху людей на анімації більш реалістичними, додайте додаткові вузли мережі, намалювавши ще кілька прямокутників і помістивши їх так, як показано на наведеному нижче рисунку: 

Тепер побудуємо сегменти мережі з допомогою ламаних ліній. Ці лінії будуть задавати шляху руху пацієнтів та персоналу лікарні. 

 Побудуйте шляхи (сегменти мережі)

  1. З допомогою елемента малювання Ломаная  , намалюйте ламані лінії, як показано на рисунку нижче. З'єднайте сусідні вузли мережі - тим самим Ви задасте потрібну транспортну мережу моделі: 

  1. Щоб намалювати ламану, зробіть подвійне клацання мишею по елементу Ломаная  в палітрі (при цьому цей значок повинен змінитись на: ). Тепер Ви можете малювати ламану точка за точкою, послідовно клікаючи мишею в тих точках діаграми, куди Ви хочете помістити вершини ламаної. Щоб завершити побудову, додайте останню точку ламаної подвійним клацанням миші. 

  2. Всі початкові і кінцеві точки ліній повинні обов'язково знаходитися всередині прямокутників, що з'єднуються (і в одному прямокутнику не може знаходитися більше однієї точки однієї і тієї ж ламаної).

 Добавте фігуры в группу

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

  1. Відпустіть кнопку миші. Виділені таким чином фігури будуть підсвічені синім кольором. Якщо якась з фігур виявилася не виділеної, Ви можете додати її в групу виділених фігур, натиснувши Ctrl, і не відпускаючи її, клацнути мишею по тій фігурі, яку Ви хочете додати. Фігура буде додана в виділення.

  1. Коли Ви виділите усі фігури, зробіть клікання правою кнопкою миші по виділених фігур і виберіть Создать группу із контекстного меню.

 Задайте місце знаходження процедурних кімнат

  1. Намалюйте ламану лінію, що з’єднує прямокутники, що представляють собою процедурні кімнати. Вона знадобиться нам трохи пізніше. Помістіть точки ламаної точно всередину прямокутників procRoom1, procRoom2 и procRoom3. 

  1. Назвіть її roomsLocation і виберіть для неї інший колір. 

  1. Зробіть ламану невидимою під час виконання моделі. перейдіть на сторінку Динамические панелі властивостей ламаної і введіть false в полі Видимость.

Шаг 3. Анимація ресурсів

 Створіть зображення лікаря і пацієнта

  1. Ви можете або самі намалювати фігурку лікаря, або використовувати одну зі стандартних картинок, що поставляються разом з AnyLogic.Відкрийте палітру Картинки.

  1. Перетягніть елемент Врач з палітри на діаграму графічного редактора: 

  1. По замовчуванням ця картинка буде називатися doctor.

  2. Перетягніть елемент Пациент з палітри на діаграму графічного редактора: 

  1. По замовчуванням ця картинка буде називатися patient

  2.  Намалюйте офтальмоскоп

  1. Намалюйте офтальмоскоп, як показано на рисунку нижче:

 Помістіть картинки ресурсів за кордон видимій області презентації

Шаг 4. Задання мережі і ресурсів

 Задайте властивості мережі

  1. Додайте на діаграму об'єкт Network. Цей об'єкт задає транспортну мережу моделі та її властивості.

  2.   Щоб додати на діаграму об'єкт бібліотеки Enterprise Library, потрібно відкрити в панелі Палитра палітру цієї бібліотеки, клацнувши мишею по панелі з її заголовком, а потім перетягнути потрібний Вам об'єкт з палітри на діаграму класу.

  1. В параметрі Группа фигур сети введіть ім'я групи фігур анімації: group. Цей параметр дозволяє вказати цьому об'єкту Network, які саме фігури анімації задають логічну структуру, що задається цим об'єктом мережі.  Щоб перевірити назву групи фігур, просто клацніть по будь-якій фігурі цієї групи і ім'я групи буде відображено в панелі Свойства.

Тепер ми додамо об'єкти, що задають мережні ресурси. Мережеві ресурси можуть бути трьох видів: рухомі, переносні і статичні. У нашому випадку лікарі будуть задані рухомими ресурсами, офтальмоскопи - портативними ресурсами, а процедурні кімнати - статичними. 

 Задайте ресурси типу "врач"

  1. Добавте на діаграму класу Main об’єкт бібліотеки Enterprise Library NetworkResourcePool. Об’єкт NetworkResourcePool описує ресурси певного типу. Цей об'єкт буде задавати властивості ресурсів, що представляють в нашій моделі лікарів. Задайте наступні властивості об'єкта:

    • Назвіть об’єкт doctors.

    • Вкажіть, скільки лікарів буде присутній у Вашій моделі. Введіть в поле Количество ресурсов: 5.

    • Задайте базове місце знаходження ресурсів. Рухомі ресурси повертаються в заданий тут вузол, коли вони стають вільними. У нашій моделі всі лікарі повинні повертатися в ординаторську, тому залиште вибраним в поле Базовое местоположение зається як опція Один узел і введіть в поле Базовый узел ім'я прямокутника, який представляє на анімації ординаторську: staffRooom.

    • Вкажіть, якою фігуркою відображати лікаря на анімації. Введіть ім'я доданої нами раніше картинки лікаря doctor в полях Фигура анимации свободного ресурса и Фигура анимации занятого ресурса.

 Задайте ресурси типу "процедурна кімната"

  1. Добавьте об’єкт  NetworkResourcePool. Цей об'єкт буде задавати властивості ресурсів, що представляють в нашій моделі процедурні кімнати. Задайте наступні властивості:

    • Назвіть об'єкт procRooms.

    • Змініть Тип ресурса на Статический.

    • Задайте розташування кімнат. Статичні ресурси завжди знаходяться в місці, вказаному як базове. Ви можете задати кілька таких місць, для цього потрібно намалювати ламану лінію з точками, що лежать у відповідних прямокутниках і вказати її у властивостях об'єкта. Оскільки в моделі три таких кімнати, то необхідно скористатися саме цим способом. Для цього виберіть Шлях через вузли зі списку Базовое местоположение задается как і введите в поле Путь через узлы ім.’я раніше створеної лінії: roomsLocation. 

    • Вкажіть, що кількість ресурсів, що задається цим об'єктом, так само, як і кількість точок зазначеної ламаної. Для цього виберіть з групи кнопок Количество задано опцію Фигурой базового местоположения.

 

 Задайте ресурси типу "офтальмоскоп"

  1. Добавьте об’єкт   NetworkResourcePool. Цей об'єкт буде задавати властивості ресурсів, що представляють в нашій моделі офтальмоскопи. Задайте наступні властивості:

  • Назвіть об'єкт scopes.

  • Змініть Тип ресурса на Переносной.

  • Задайте кількість офтальмоскопом - введіть у полі Количество ресурсов: 5.

  • Задайте базовое местоположение ресурсов. Статические ресурсы будут помещены в указанный узел сети при запуске модели. Оставьте без изменения параметр Базовое местоположение задается как і введіть в поле Базовый узел і’мя прямокутника, що задає в моделі кімнату зберігання обладнання: storageRooom.

  • Вкажіть, якою фігурою відображати офтальмоскоп на анімації. Введіть ім'я намальованою раніше фігури scope в полях Фигура анимации свободного ресурса і Фигура анимации занятого ресурса

 

 З'єднайте всі об'єкти NetworkResourcePool з об’єктом Network

  1. Щоб додати задані ресурси в мережу, потрібно з'єднати порти об'єктів NetworkResourcePool з портом об’єкта Network. З'єднайте їх, як показано на показаному нижче малюнку:

Щоб з'єднати порти об'єктів, зробіть подвійне клікання мишею по одному порту, потім клікніть в тих місцях діаграми, де хочете додати точку вигину з'єднувача, і зробивши подвійне клацання мишею по другому порту завершіть створення. При цьому між портами з'явиться з'єднувач заданої форми.

Шаг 5. Діаграма процесу 

 Створіть діаграму процесу

  1. Створіть наступну діаграму процесу, додавши на діаграму класу Main нові блоки Enterprise Library і з'єднавши їх так, як показано на малюнку нижче: 

Ця діаграма буде описувати модельований процес. Давайте побіжно ознайомимося з тим, з яких блоків складається. Попутно ми будемо змінювати параметри блоків відповідно до моделируемой нами завданням. 

Першим слід об'єкт Source. Об’єкт Source створює заявки. Зазвичай він використовується в якості початкової точки потоку заявок. У нашому випадку заявки будуть представляти собою пацієнтів, і цей блок буде моделювати надходження пацієнтів на відділення.

 Змініть властивості об'єкта source

  1. В полі Интенсивность прибытия задайте інтенсивність надходження пацієнтів на відділення: 0.05.

  2. В полі Фигура анимации заявки введіть ім'я раніше доданої нами фігурки пацієнта: patient.

За цим об'єктом слідує блок NetworkEnter. Цей об'єкт додає заявки в задане місце мережі, в даному випадку він поміщатиме пацієнтів в приймальний препокій. 

 Змініть властивості об'єкта networkEnter

  1. Введіть waitingHall в полі Узел входа. Тут waitingHall - це ім'я раніше намальованого прямокутника, який розташовується на плані відділення прямо поверх приймального покою. Заявки-пацієнти будуть прибувати в зазначений вузол мережі, що задає в нашій моделі приймальний спокій.

  2. В поле Сеть Вы можете увидеть введенное Мастером создания модели имя объекта Network (network). Именно в сеть, заданную этим объектом, и будут помещаться заявки этим блоком.

Наступний блок в діаграмі процеса - NetworkMoveTo. Об’єкт NetworkMoveTo переміщує заявку в нове місце мережі. З допомогою даного процесу моделюємо, як пацієнти переходять з прийомного передпокою в процедурнц кімнату.

 Змініть властивості об’єкта networkMoveTo

  1. Введіте в поле Узел procRoom1 (і’мя прямокутника, який задає одну з процедурних кімнат). Пацієнти будуть переміщатися у вказаний указанный вузел мережі. На даний момент всі пацієнти будуть оглядатись в першій процедурній кімнаті.

Об’єкт Delay затримує заявку на заданий час. В даній моделі цей об’єкт моделює затримку, що пов’язана з проведенням процедури. 

 Змініть властивості об’єкта  delay

  1. Задайте наступні властивості об’єкта:

    • В полі Вместимость введіть 5. Даний параметр визначає скільки пацієнтів може бути оглянуто одночасно.

Блок NetworkMoveTo буде моделювати, як пацієнти направляються до виходу після проведення процедури.

 Змініть властивості об’єкта  networkMoveTo

  1. Необхідно, що даний об’єкт переміщав пацієнтів у вказаний вузол мережі.

    • Введіть в поле Узел exit (і’мя прямокутника,що задає вихід з відділення).

Об’єкт NetworkExit видаляє заявку з мережі. Заявка при цьому перестає відображатись на анімації мережі. В даному він моделює вихід пацієнтів з відділення. Властивості об’єкта NetworkExit не змінюйте. Об’єкт Sink знищує заявки, що надходять. Властивості об’єкта  Sink не змінюйте.

Шаг 6. Запуск моделі

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

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

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

Панель Ошибки

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

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

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

 

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

Запустив модель, Вы увидите окно презентации этой модели. В нем будет отображена презентация запущенного эксперимента. AnyLogic автоматически помещает на презентацию каждого простого эксперимента заголовок и кнопку, позволяющую запустить модель и перейти на презентацию, нарисованную Вами для главного класса активного объекта этого эксперимента (Main).

Щелкните по этой кнопке. Тем самым Вы запустите модель и перейдете к презентации корневого класса активного объекта запущенного эксперимента.

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

При желании Вы можете изменить скорость выполнения модели с помощью кнопок панели управления окна презентации Замедлить и Ускорить .

Шаг 7. Занятие процедурной комнаты

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

Измените диаграмму процесса

  1. Добавьте в диаграмму процесса объект NetworkSeize. Объект NetworkSeize занимает (захватывает) для заявки заданное количество сетевых ресурсов. Мы добавляем этот объект для того, чтобы смоделировать то, как пациент занимает процедурную комнату (заданную в нашей модели статическим ресурсом).

  1. Задайте следующие свойства объекта:

    • В поле Список ресурсов {pool1, ...} введите список ресурсов, которые мы хотим занять с помощью этого блока. Список составляется следующим образом: Вы перечисляете имена объектов типа NetworkResourcePool, которые задают те ресурсы, которые будут захватываться данным блоком. Имена объектов пишутся через запятую, а весь список заключается в фигурные скобки. Поскольку нам нужно, чтобы этот блок занимал одну процедурную комнату, напишите здесь {procRooms} Если Вам нужно захватить несколько ресурсов одного типа, то Вам нужно будет написать имя задающего эти ресурсы объекта столько раз, сколько ресурсов Вы хотите захватить.

  1. Измените свойства объекта moveToProcRoom. Мы хотим, чтобы этот блок перемещал пациентов не в первую процедурную комнату, а в ту комнату, которая была ранее выделена для этого пациента.  Задайте следующие свойства объекта:

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

    • Укажите имя захваченного ресурса, к которому будут перемещаться пациенты. Введите procRooms в поле Ресурс. Здесь procRooms - это имя нашего объекта NetworkResourcePool, задающего статические ресурсы - процедурные комнаты.

  1. Добавьте в диаграмму процесса объект NetworkRelease. Этот объект освобождает ранее захваченные сетевые ресурсы. С помощью этого блока мы будем освобождать процедурные комнаты после проведения офтальмоскопии для того, чтобы там смогли быть осмотрены и другие пациенты. Иначе после того, как будет промоделирован осмотр трех пациентов, последующие пациенты не смогут быть осмотрены в силу того, что все наши ресурсы - процедурные комнаты будут заняты и недоступны.

  1. Задайте следующие свойства объекта:

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

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

Шаг 8. Моделирование вызова врача

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]