Задание 1. Создание железнодорожного узла



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

Мы начнем с топологии железнодорожной сети, как на рисунке ниже:

Создайте новую модель. Назовите ее Hump Yard и укажите минуты в качестве единиц модельного времени.

Задайте топологию путей. Сначала нарисуйте ж/д пути.

Начните с прямого пути. На этом пути будут появляться поезда, поэтому мы назовем его trackEntry. Мы будем давать осмысленные имена только тем путям, на которые будут ссылаться блоки диаграммы процесса. Остальные пути могут остаться названными по умолчанию.

Нарисуйте прямой ж/д путь

1. Сначала выделите двойным щелчком элемент Ж/д путь в секции Разметка пространства палитры Железнодорожная библиотека.

2. Щелкните в любой точке графического редактора, чтобы начать рисовать путь.

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

4. Завершите рисование двойным щелчком.

5. Назовите этот ж/д путь trackEntry.

Если это первый ж/д путь в модели, вы увидите сообщение с предложением сменить масштаб модели на: 2,0 пикселя в 1 метре. Мы советуем согласиться, так как предлагаемый масштаб часто используется в железнодорожных моделях.

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

Нарисуйте ж/д путь дуговой формы

1. Совершите двойной щелчок по элементу Ж/д путь  в палитре Железнодорожная библиотека. Затем щелкните по ранее нарисованному пути (см. рисунок ниже, пункт 1), чтобы начать рисовать новый ж/д путь. Круг, обозначающий стрелку, появится автоматически.

2. Последовательно щелкая мышью, нарисуйте несколько сегментов пути, чтобы получился путь, как на рисунке ниже. Чтобы добавить дуговой элемент, не отпускайте кнопку мыши после щелчка, а переместите курсор, удерживая кнопку мыши. При этом вы увидите, как меняется радиус дуги. Отпустите кнопку мыши, когда посчитаете, что сегмент приобрел нужную форму. Завершите рисование ж/д пути двойным щелчком рядом с фигурой первого пути (см. пункт 2 на рис. ниже). Сразу поставить конечную точку на тот же путь, с которого начали рисовать (trackEntry), не получится.

3. Перетащите конечную точку (2) на ранее нарисованный путь (trackEntry), чтобы создать стрелку.

Отредактируйте ж/д путь дуговой формы

1. Выделите путь, который хотите отредактировать, щелкнув по нему.

2. Щелкните правой кнопкой мыши по выделенному пути и выберите Редактировать направляющие из контекстного меню.

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

4. Чтобы изменить радиус кривизны, перемещайте круглую метку-манипулятор на конце пунктирной направляющей линии.

Железнодорожные стрелки

· Железнодорожная сеть состоит из путей и стрелок. Железнодорожные стрелки появляются автоматически в виде круга в точках соединения ж/д веток с существующими путями. В существующую точку соединения нельзя добавить дополнительные ж/д пути.

· Два из трех образованных стрелкой углов должны быть тупыми. Это необходимо для определения возможных путей движения на данной стрелке (см. рисунок ниже).

Модифицируйте железнодорожный узел

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

Сейчас мы дадим осмысленное имя сегменту ж/д пути между железнодорожными стрелками и добавим элементы Точка ж/д пути в наш железнодорожный узел.

1. Назовите этот путь trackArrival, так как он обозначает место прибытия поезда.

2. Перетащите элемент Точка ж/д пути из палитры Железнодорожная библиотека и расположите его, как показано на рисунке ниже. Назовите его stopLineEntry. Он будет определять место появления поездов.

3. Добавьтеэлемент Точка ж/д пути: stopLineArrival. В этой точке поезд остановится, чтобы отцепить все вагоны, что позволит локомотиву продолжить путь уже без вагонов.

4. Добавьтеэлемент Точка ж/д пути: stopLineHump. Здесь будет производиться сортировка вагонов.

Точка ж/д пути

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

· позицию на пути, где появляется поезд;

· позицию на пути, где поезд должен остановиться.

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

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

Задание 2. Задаем логику

Задайте логику процесса с помощью блоков Железнодорожной библиотеки

1. Добавьте следующие блоки на диаграмму процесса: TrainSource, TrainMoveTo, TrainDecouple, TrainCouple, TrainDispose. С помощью этих блоков мы зададим логику, согласно которой будет передвигаться наш поезд.

Начните диаграмму с блока TrainSource, который создает поезда, затем добавьте блок TrainMoveTo, расположив его рядом с первым блоком таким образом, чтобы они могли автоматически соединиться. Добавьте оставшиеся блоки на диаграмму процесса, как показано на рисунке ниже.

2. В свойствах блоков TrainSource и trainMoveTo укажите следующее:

Сначала мы укажем, чтобы поезда появлялись у ж/д точки stopLineEntry каждые 15 минут.

TrainSource:

Время между прибытиями: 15 минут

Кол-во вагонов (включая локомотив): 11

Точка ж/д пути: stopLineEntry

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

TrainMoveTo:

Маршрут: Вычисляется автоматически от текущего пути до пути назначения

Цель движения: Заданная точка пути

Точка ж/д пути: stopLineArrival

При окончании движения: Затормозить и остановиться

3. Мы также добавили блок TrainDecouple, задача которого отцеплять заданное количество вагонов от поступающего поезда. В свойствах блока можно увидеть, что по умолчанию он отцепляет один вагон от поезда, а именно первый (в нашем случае - это локомотив). Локомотив будет покидать блок через нижний порт outDecoupled (мы добавим это соединение на следующем шаге).

4. Блок TrainCouple нужен для сцепления локомотива и вагонов в один состав.

Ниже приведены описания блоков Железнодорожной библиотеки, которые мы используем.

Блок Железнодорожной Библиотеки Описание
Train Source Создает поезда, выполняет начальную настройку и помещает их в железнодорожную сеть. Начинает любую ж/д диаграмму процесса. Поддерживает несколько типов расписаний прибытия.
Train Dispose Удаляет поезда из модели.
Train Move To Моделирует движение поездов. Может рассчитывать маршрут и положение стрелок по ходу движения поезда по маршруту. Поддерживает функции ускорения и торможения.
Train Couple Сцепляет два поезда, которые «касаются» друг друга, в один.
Train Decouple Расцепляет вагоны поступающего в блок поезда и создает из них новый поезд.
Train Enter Помещает поступающего в блок агента-поезд на заданный путь ж/д сети.
Train Exit Извлекает поступающий в объект поезд из ж/д сети и передает агента-поезд далее в обычную диаграмму процесса.
RailSettings Задает специфические настройки для железнодорожной сети.

 Продолжим рисование диаграммы процесса

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

Начните с присоединения блока TrainMoveTo к портуoutDecoupled (который находится внизу) блока TrainDecouple, так как мы будем задавать логику для отсоединенного локомотива.

1. Добавьте еще один блок TrainMoveTo на диаграмму процесса (trainMoveTo1). Задайте параметры нового блока, согласно которым локомотив направится к stopLineHump и остановится там.

Маршрут: Вычисляется автоматически от текущего пути до пути назначения
Цель движения: Заданная точка пути
Точка ж/д пути: stopLineHump
При окончании движения: Затормозить и остановиться

Создайте еще два блока TrainMoveTo (trainMoveTo2, trainMoveTo3) путем Ctrl+перетаскивания (Mac OS: Cmd+перетаскивания) блока, который вы только что редактировали.

2. Измените свойства блока trainMoveTo2. В данный момент локомотив отцеплен и нам нужно, чтобы он затолкал вагоны на горку, т.е. ему нужно вернуться к stopLineEntry и произвести сцепку с концом поезда. Так как мы не можем его развернуть на рельсах, локомотив поедет назад мимо пути trackArrival, на котором стоят вагоны:

Направление движения: Назад
Маршрут не должен содержать (...): trackArrival
Точка ж/д пути: stopLineEntry

3. Обратите внимание на количество соединений, ведущих от блока trainMoveTo3 к блоку trainCouple. Нижний порт блока TrainMoveTo, в отличие от порта out, который находится справа, используется поездами, которые сталкиваются с другими поездами. В нашем случае, сталкивание является сцеплением локомотива, прибывающего к точке ж/д пути stopLineArrival, с вагонами, которые мы предварительно отцепили от этого локомотива.

Теперь внесите изменения в свойства блока trainMoveTo3, чтобы этот блок направлял поезд из его текущего местоположения к точке stopLineArrival:

Точка ж / д пути: stopLineArrival

Теперь, когда мы смоделировали передвижение локомотив к концу состава, нужно добавить еще один блок TrainMoveTo путем Ctrl+перетаскивания (Mac OS: Cmd+перетаскивания)блокаtrainMoveTo1. Он будет моделировать процесс толкания вагонов локомотивом к горке, представленной в нашей модели элементом Точка ж/д пути stopLineHump.

4. Измените свойства блока trainMoveTo4:

Точка ж/д пути: stopLineHump

5. Добавьте блок Delay из Библиотеки моделирования процессов, чтобы смоделировать задержку. Измените свойства блока, задав время этой задержки:

Время задержки: 15 секунд

Мы завершили Шаг 2. Можете запустить модель и посмотреть, как по ж/д путям передвигаются товарные составы.

Если вы увидите ошибку «The car being created must fully be on one track», значит на пути недостаточно места для помещения поезда перед элементом Точка ж/д пути stopLineEntry. В этом случае вам нужно будет увеличить длину пути trackEntry и отодвинуть дальше элемент Точка ж/д пути stopLineEntry от начальной точки ж/д пути.

Локомотив подъезжает к составу, состоящему из вагонов, чтобы сцепиться с ним.

Мы также видим, как локомотив толкает вагоны на горку, после чего останавливается, вагоны отцепляются и сортируются.


Дата добавления: 2020-04-25; просмотров: 186; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!