AnyLogic
Развернуть
Размер шрифта

Навигация по заданному пути

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

В отличие от ресурсов, задаваемых с помощью блока ResourcePool, транспортеры, двигающиеся по заданным путям, избегают столкновений и уступают дорогу на перекрестках. В случае столкновения, транспортеры должны выждать некоторое время, прежде чем возобновить движение. Эти параметры вы можете настроить в блоке TransporterControl Библиотеки производственных систем.

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

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

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

Особенности навигации по заданному пути

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

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

Медленно двигающийся или остановившийся транспортер
Обгоняющий транспортер
Возможное наложение транспортеров друг на друга в соответствии с прежним алгоритмом движения

Наложение друг на друга

Ранее

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

Теперь

Обгоняющий транспортер видит транспортеры перед собой и останавливается на расстоянии, указанном в свойстве Мин расстояние до препятствий блока TransporterFleet. Такое поведение осуществляется всегда, вне зависимости от того, двигаются транспортеры по одному пути или по разным. Обгоняющий транспортер также замедляется, как только видит перед собой другой транспортер.

Столкновение на перекрестке

Ранее

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

Теперь

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

Столкновение на близко расположенных путях

Ранее

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

Теперь

В подобной ситуации транспортеры остановятся, чтобы обработать столкновение.

Обработка столкновений

Ранее

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

Теперь

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

Нестандартная маршрутизация

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

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

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

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

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

Демо-модель: Rack System with AGV Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.
Как мы можем улучшить эту статью?