Лабораторная работа № 5 Модель « Пионерлагерь»
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Цель работы:

· освоение методов дискретно-событийного моделирования;

· знакомство с Пешеходной библиотекой;

· построение модели детского спортивно-оздоровительного лагеря.

Содержание

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

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

Модель

Создайте новую модель Пионерлагерь без использования шаблона. В свойствах модели на вкладке Основные в поле Единицы модельного времени выберите Секунды.

Анимация модели

а) Начнем с анимации модели, для того, чтобы графически задать объекты среды модели. Для этого добавим изображение плана лагеря. Мы не будем рисовать план в графическом редакторе, а просто вставим уже готовое изображение. Для этого откройте закладку Презентация панели Палитра. Перетащите элемент Изображение  из палитры Презентация на диаграмму класса Main. Задайте свойства изображения в окне Свойства. Щелкните мышью по кнопке Добавить и выберите файл изображения плана лагеря schema.jpg. Вы увидите добавленное изображение в области предварительного просмотра в окне Свойства. Защитите изображение от редактирования, установив флажок Блокировать. Вы не сможете выбрать заблокированную фигуру в графическом редакторе до тех пор, пока Вы не снимете с нее блокировку, рисунок 5.1

 

Рисунок 5.1 – окно свойств объекта Изображение

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

Рисунок 5.2 – границы моделируемой среды

Нарисуйте с помощью элемента Целевая линия  вход в модель и выход из модели для пионеров, как показано на рисунке 5.3. Назовите их Вход и Вход_в_корпус соответственно. Обе линии должны находиться полностью внутри фигуры, задающей границу моделируемой среды, рисунок 5.3. После того как мы на диаграмму нарисуем первый объект разметки пространства, в структуре нашей модели автоматически появится группа графических объектов group, содержащая все элементы разметки среды (стены и целевые линии, сервисы и т.д.) и в дальнейшем в нее будут попадать все вновь вносимые элементы Разметки пространства из Пешеходной библиотеки.

 

Рисунок 5.3 – расположение целевых линий Вход и Вход_в_корпус

Диаграмма процесса

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

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

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

Добавьте на диаграмму класса Main следующие объекты Пешеходной библиотеки:

PedSource

PedGoTo

PedSink

Разместите объекты так, как показано на рисунке 6.4, и соедините их порты.

Рисунок 5.4 – объекты диаграммы процесса

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

Теперь необходимо сконфигурировать каждый добавленный нами библиотечный объект.

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

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

Интенсивность, пешеходов в ед. времени – установите 250 т.е. пионеры будут прибывать в лагерь с интенсивностью 250 человек в час.

Поставьте галочку напротив пункта Количество прибытий ограничено, и укажите 20 в следующем пункте: Максимальное количество прибытий, т.е. прибудет 20 пионеров.

Поскольку наши пионеры – дети, скорректируем их размер, для этого в поле Диаметр, в метрах введите: uniform(0.45,0.45), а среднюю скорость их перемещения установим в поле Комфортная скорость, в м/с с помощью функции uniform(0.7,1.2).

Рисунок 5.5 – окно свойств компонента pedSourse

 

Следующий объект в созданной нами диаграмме процесса – PedGoTo. Этот объект моделирует перемещение пешеходов из текущего местоположения в другое (заданное параметром этого объекта). С помощью этого объекта мы будем моделировать то, как пионеры перемещаются от входа в ворота лагеря к жилому корпусу.

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

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

 

Рисунок 5.6 – окно свойств компонента pedGoTo

Выделите каждый по очереди компонент группы group и установите в окне Свойства переключатель Видимость в положение «Нет» (рисунок 5.7), чтобы не отображать на анимации фигуры, которые использовались для задания моделируемой среды (стен, различных областей, сервисов и т.д.).

Рисунок 5.7 – свойства одного компонента wall

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

Моделирование медпункта

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

Вытащите компонент Сервис с очередями в место где изображен медпункт, сервис назовите Мед_очередь, рисунок 5.8. В окне Свойства этого компонента укажите Количество сервисов – 1, Количество очередей – 1, Тип сервиса – Точечный, рисунок 5.9.

 

 

Рисунок 5.8 – графическое изображение сервиса Мед_пункт

 

Рисунок 5.9 – параметры компонента Сервис с очередями

Теперь необходимо внести небольшие изменения в диаграмму процесса.

Добавьте в модель объект именем p edService типа PedService и соедините последний, как показано на рисунке 5.10

 

Рисунок 5.10 – диаграмма действий пешеходов

 

Сервис p edService задает группу одинаковых физических объектов обслуживания (например, несколько турникетов или автоматов по продаже билетов). Объект позволяет задавать очереди и сервисы в любой комбинации и задавать правила выбора сервисов – какую очередь выбрать, какой сервис выбрать, к какой очереди должен обращаться сервис, может ли сервис обслуживать несколько очередей и т.д.).

В окне свойств элемента p edService в поле Сервисы: выбереите из списка имя очереди Мед_очередь, задающего очередь, через который должны пройти пионеры (медпункт).

Укажите Время задержки: uniform(20.0, 60.0), рисунок 5.11. Это значит, что пионеры задержатся в медпункте на время от 20 до 60 секунд.

 

Рисунок 5.11 – настройка параметров pedService

 

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

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

Объект PedSelectOutput является блоком принятия решения Пешеходной библиотеки. Пешеход, вошедший в блок PedSelectOutput, будет перенаправляться в один из пяти выходных портов в зависимости от заданных для этих портов коэффициентов предпочтения.

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

Добавьте на диаграмму объекты PedSelectOutput и PedGoTo, и соедините их, как показано на рис. 5.12.

 

Рисунок 5.12 – логическая схема действий пешеходов

Измените свойства объекта pedSelectOutput:

• Имя: pedSelectOutput_med;

• Поставьте галочку в поле Использовать значение Вероятности;

• Коэффициенты предпочтения для пионеров, имеющих медицинский допуск (Коэфф. предпочтения 1) и не имеющих такового (Коэфф. предпочтения 2) установите 93 и 7, соответственно, рисунок 5.13. То есть, около 7% от общего числа пионеров не пройдет медосмотр.

Рисунок 5.13 – окно свойств компонента pedSelectOutput

Измените свойства объектов pedGoTo и pedGoTo1:

· Имя: на_Вход и на_Выход;

· Цель (точка, линия): Вход и Вход_в_корпус.

Запустив модель, мы увидим, что некоторые пионеры не прошли медосмотр и направились к выходу.

Модельное время

В Пешеходной библиотеке, предоставляемой в версиях Anylogic PLE 7, есть ряд ограничений, среди которых ограничение на длительность эксперимента – 1 час. Для того чтобы программа не выдавала ошибку ограничим выполнение модели временем 60 минут.

В панели Проекты, выделите эксперимент Simulation: Main щелчком мыши, перейдите на страницу Модельное время панели Свойства. Здесь задаются установки модельного времени. Для того, чтобы модель останавливалась в заданное время выберите из выпадающего списка Остановить пункт В заданное время. Так как по умолчанию в качестве единиц модельного времени заданы секунды, можно просто установить конечное время 3600 единиц (секунд) в поле Конечное время.

Зададим интервал моделирования с помощью календарных дат, для этого установите флажок Использовать календарь, выберите из выпадающего списка Остановить пункт В заданную дату и установите начальную и конечную дату моделирования с помощью элементов управления Начальная дата и Конечная дата: 30.11.2015 в 10:00:00 и 30.11.2015 в 11:00:00 соответственно, рисунок 5.14.

 

Рисунок 6.14 – модельное время

Проверьте правильность работы модели.

Персонализация пешеходов

Определим новый тип Пешехода, путем перетаскивания соответствующего элемента Пешеходной библиотеки в диаграмму класса Main. Имя пусть остается по умолчанию Pedestrian. В поле Выберите анимацию агента поставим галочку на значение нет. Заведем в нем переменную division типа Color с начальным значением

uniform() < 0.33 ? red : uniform() < 0.66 ? blue : green;.

Мы хотим, чтобы в 2D наши агенты изображались кружками трех цветов и в соответствии переменной division. Для этого на диаграмму класса Pedestrian с помощью палитры Презентация нарисуем круг с радиусом 3 и динамическим значением поля Цвет заливки равным division. А статическое значение этого поля может быть любым.

Окно класса Pedestrian должно выглядеть как на рисунке 5.15

 

 

Рисунок 5.15 – Окно класса Pedestrian

 

Дата: 2019-03-05, просмотров: 301.