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

ММПП - пассажирский марсшрут

.pdf
Скачиваний:
15
Добавлен:
28.03.2015
Размер:
747 Кб
Скачать

Лабораторная работа №2.

Модель пассажирского маршрута.

Раздел 1. Создание новой модели.

1.Щелкните мышью по кнопке панели инструментов Создать. Появится диалоговое окно Новая модель.

2.Задайте имя новой модели. В поле Имя модели введите PassengerRoute (Пассажирский маршрут).

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

4.Щелкните мышью по кнопке Далее. Откроется вторая страница

Мастера создания модели.

5.Выберите Начать создание модели с «нуля», затем Готово.

Будет создана новая модель.

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

Раздел 2. Создание простейшей модели пассажирского маршрута.

Шаг 1. Создание транспортной сети.

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

Палитра.

2.Перетащите с закладки Презентация элемент Прямоугольник на поле Main графического редактора. Установите флажок

Отображать имя в панели Свойства.

Теперь уменьшите его размер, выбрав на панели Свойства вкладку Дополнительные. В поле Ширина впишите 20, и в поле Высота тоже 20. В графическом редакторе Вы увидите, как уменьшился размер прямоугольника.

3.Аналогично создайте ещедва таких же прямоугольника. Расположите их, как показано на рисунке.

4.Соедините прямоугольники ломаной линией. Для этого найдите элемент Ломаная на Палитре и щелкните на нем два раза левой клавишей мыши. Теперь рисуйте ломаную линию с вершинами в прямоугольниках.

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

5.Объедините фигуры сети в группу – удерживая левую клавишу мыши, обведите фигуры сети в рамочку, нажмите правую клавишу, выберите Группировка Создать группу. Вы можете видеть на панели Свойства, как созданной группе по умолчанию присвоено имя group. Измените его, введя в полеИмя route.

Шаг 2. Создание диаграммы процесса движения автобусов по маршруту.

1.Для начала необходимо нарисовать автобус. Это можно сделать «вручную», используя такие элементы презентации, как

Прямоугольник, Линия, Ломаная и т.д. Однако для ускорения процесса создания модели воспользуемся стандартными картинками Anylogic. Во вкладке Картинки панели Палитра выберите Грузовик (среди стандартных картинок нет изображения грузовика, но внешний вид автобуса не принципиально важен). Перенесите Грузовик на поле графического редактора, затем в его Свойствах измените в поле Имя lorry на bus. Уменьшите изображение, щелкнув по нему левой клавишей мыши и потянув за стрелочку в углу.

2.Создайте диаграмму процесса. На панели Палитра выберите вкладку Enterprise Library. Последовательно перетащите и выстроите в одну линию на поле графического редактора объекты Source, NetworkEnter, NetworkMoveTo, PickUp, Delay, NetworkMoveTo, Dropoff, NetworkExit и Sink.

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

Объект Source создает заявки. Заявками в создаваемой модели будут автобусы.

Объект NetworkEnter регистрирует заявку в сети и помещает ее в заданный узел сети. После добавления в сеть заявка может перемещаться по сети.

Объект NetworkMoveTo перемещает заявку в новое место сети. С помощью него будет осуществляться движение автобуса по маршруту от остановки к остановке.

Объект Pickup в нашей модели осуществляет вход пассажиров на остановках.

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

Объект Dropoff осуществляет выход пассажиров из автобуса. Объект NetworkExit удаляет заявку из сети.

Объект Dropoff удаляет заявки, необходим для завершения программы.

3.Задайте транспортную сеть. Перетащите с вкладки Enterprise Library объект Network. Он задает топологию сети. Измените его свойства. В панели Свойства данного объекта в поле Группа фигур сети введите route, снимите флажок в поле Прятать фигуры сети и поставьте флажок в строке Когда объект в центре, рисовать его - В центре.

4.Измените Свойства объекта Source. Заявки прибывают согласно Времени между прибытиями, поставьте флажок в соответствующей строке. В поле Фигура анимации введите имя автобуса – bus. Также поставьте флажок в строке Разрешить вращение для того, чтобы автобус мог перемещаться по маршруту, меняя по ходу движения своё направление.

5.Измените Свойства объекта NetworkEnter. В поле Сеть введите network,в поле Узел входа - rectangle, измените в поле

Скорость с 10 на 20.

6.Для удобства чтения программы изменим сначала свойства объекта NetworkMoveTo1, а не NetworkMoveTo.

Смените в поле Имя объекта NetworkMoveTo1 на NetworkMoveTo2. В поле Узел введите название узла назначения – rectangle2.

7.Измените Свойства объекта NetworkMoveTo. Смените Имя

объекта NetworkMoveTo на NetworkMoveTo1. В поле Узел

введите название узла назначения - rectangle1.

8.Измените Свойства объекта Pickup. В строке Подбирать выберите Все заявки. В автобус будут садиться все пассажиры, находящиеся на остановке.

9.Смоделируйте остановку. Для этого нарисуйте прямоугольник рядом с фигурой сетиrectangle1. В Свойствах во вкладке Дополнительные измените размеры прямоугольника, сделав его ширину 50, высоту 20.

10.Измените Свойства объекта Delay. Поставьте флажок в поле

Максимальная вместимость, тогда на остановке смогут находиться одновременно несколько автобусов. В полеФигура анимации напишите имя прямоугольника, являющегося местом остановки автобуса – rectangle1. В строке Тип анимации выберите из выпадающего меню Одиночная.

11.Измените Свойства объекта Dropoff. В строке Оставлять

выберите Все заявки.

12. Смоделируем подход пассажиров к остановке. Для этого к свободному порту объекта Pickup присоедините объекты Source (по умолчанию будет присвоено имяSource1) и Queue и соедините их, как показано на рисунке. Перетащите эти объекты с вкладки Enterprise Library на поле графического редактора.

Измените Свойства объекта Source1. В поле Интенсивность прибытия уменьшите ее значение. Например, 0.5.Вы можете в любой момент изменить её в соответствии с необходимым Вам количеством пассажиров.

Измените Свойства объекта Queue. Поставьте флажок в строке

Максимальная вместимость. В поле Фигура анимации

введите имя фигуры, где будут генерироваться пассажиры – rectangle3. В строке Тип анимации выберите из выпадающего меню Мешок. Это означает, что пассажиры на остановке будут возникать в любом месте прямоугольника rectangle3.

Присоедините к свободному порту объектаDropoff объект Sink (по умолчанию ему будет присвоено имяSink1), перетащив его с Палитры на поле графического редактора. Соедините объекты, как показано на рисунке. Объект Sink1 будет удалять из системы заявки, обозначающие вышедших из автобуса пассажиров.

13. Запустите модель. Для этого нажмите в верхней строке меню интерфейса Anylogic. Откроется страница настроек

эксперимента. Нажмите Запустить модель и открыть презентацию класса Main.

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

Простейшая модель пассажирского маршрута создана.

Раздел 3.

Шаг 1. Создание Java класса Passenger.

1.Выберите Файл Создать Java класс. В поле Имя введите Passenger. Из выпадающего меню Базовый класс выберите com.xj.anylogic.libraries.enterprise.Entity, нажмите Далее.

В графе Имя введите route, в графе Тип из выпадающего меню выберите int, в графе Доступ - default. Нажмите Готово.

Теперь нужно сделать, чтобы пассажиры, являющиеся по умолчанию заявками класса Entity, стали заявками класса Passenger. Это даст больше возможностей для работы с заявками. Пусть в нашей модели будут генерироваться пассажиры двух видов – 1 и 2. Пассажиры вида 1 будут садиться в автобус, а вида 2 – нет. Таким образом, можно осуществить выбор пассажирами нужного им автобуса. Итак, выберите в графическом редакторе объектSource1 и в поле Класс заявки измените Entity на Passenger. В поле Новая заявка введите new Passenger(1), что будет означать принадлежность пассажиров к виду 1. Чтобы отличать пассажиров одного вида от другого, задайте для них разные цвета. В поле Действие при выходе введите entity.setColor(Color.green), пассажиры будут создаваться в виде кружков зеленого цвета.

2.Теперь в модели есть только пассажиры вида 1. Для ввода в

модель пассажиров вида 2, создайте ещё один генератор заявок. Перетащите объект Source c вкладки Enterprise Library