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

PedWait

Заставляет пешеходов перейти в заданное место и ожидать там в течение определенного периода времени.

Задание места ожидания

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

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

Демо-модель: Pedestrian Attractors Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.

Задание времени ожидания

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

Параметры

Место ожидания
Тип места ожидания:
Область — место ожидания выбирается внутри прямоугольного узла или многоугольного узла, указанного ниже в параметре Область. Конкретная точка ожидания внутри данной области может как выбираться случайно, так и задаваться явно с помощью аттрактора (аттракторов), см. параметр Использовать аттракторы ниже.
Линия — место ожидания задается целевой линией. Пешеходы будут ожидать в случайно выбранной точке данной линии.
Точка (x,y) — пешеходы будут ожидать в точке с указанными координатами. Поскольку координаты задаются с помощью динамических параметров, они могут меняться по ходу моделирования, например, в зависимости от атрибутов пешехода.
Имя: locationType
Возможные значения:
LOCATION_LINE — линия
LOCATION_POINT — точка (x,y)
LOCATION_AREA — прямоугольный узел или многоугольный узел
Область
[Виден, если Место ожидания: область]
Здесь нужно выбрать элемент разметки Прямоугольный узел или Многоугольный узел, в котором пешеходы будут ожидать.
Тип значения: AreaNode
Локальная переменная: ped — пешеход
Использовать аттрактор
[Виден, если Место ожидания: Область]
Здесь вы можете выбрать, к какому аттрактору пешеходы будут приходить для ожидания: случайному, свободному или заданному. Конкретный аттрактор задается ниже, в параметре Аттрактор.
Имя: attractorChoice
Возможные значения:
PedWait.ATTRACTOR_CHOICE_NONE — нет
PedWait.ATTRACTOR_CHOICE_RANDOM — случайный
PedWait.ATTRACTOR_CHOICE_FREE — свободный
PedWait.ATTRACTOR_CHOICE_CUSTOM — заданный
Аттрактор
[Виден, если Место ожидания: Область и Использовать аттрактор: Заданный]
Укажите здесь имя аттрактора — элемента, задающего точку, которая будет притягивать пешеходов на время их ожидания.
Тип значения: Attractor
Локальные переменные:
ped — пешеход
AreaNode areaNode — область
Целевая линия
[Виден, если Место ожидания: линия]
Здесь нужно выбрать элемент разметки — целевую линию, в одной из точек которой пешеходы будут ожидать.
Тип значения: TargetLine
Локальная переменная: ped — пешеход
X, Y
[Виден, если Место ожидания: точка (x,y)]
X (Y) координата точки, в которой будут ожидать пешеходы.
Тип значения: double
Локальная переменная: ped — пешеход
Ожидание заканчивается
Задает, будут ли пешеходы ожидать в области в течение указанного времени (опция По истечении заданного времени) или же они будут ожидать, пока пользователь не вызовет метод free() (опция По вызову функции free().
Имя: delayType
Возможные значения:
DELAY_TIMEOUT — По истечении заданного времени
DELAY_MANUAL — По вызову функции free()
Время задержки
[Виден, если Ожидание заканчивается: По истечении заданного времени]
Выражение, вычисляющее время ожидания для пешехода.
Тип значения: double
Локальная переменная: ped — пешеход
Задержка начинается когда
[Виден, если выбран Ожидание заканчивается: По истечении заданного времени]
Параметр задает, при каком событии будет начинаться время ожидания. Возможны следующие варианты:
Пешеход входит в объект — ожидание начинается, когда пешеход входит в блок PedWait
Пешеход останавливается у точки — ожидание начинается, когда пешеход останавливается у точки заданного места ожидания
Пользователь вызывает функцию activate() —  ожидание инициируется пользователем
Имя: delayStartsWhen
Изменить значение: set_delayStartsWhen(новое значение)
Возможные значения:
DELAY_STARTS_SINCE_ENTER_BLOCK — Пешеход входит в объект
DELAY_STARTS_SINCE_BEGIN_WAIT — Пешеход останавливается у точки
DELAY_STARTS_SINCE_MANUAL_CALL — Пользователь вызывает функцию activate()
Члены группы уходят вместе
[Виден, если Ожидание заканчивается: По истечении заданного времени]
Если опция выбрана, то по завершении времени ожидания пешеход останется в области ожидания, пока все остальные члены его группы не освободятся, и вся группа целиком покинет блок. В противном случае пешеход покинет блок один. Вы можете инициировать выход из блока для пешехода в любом случае с помощью вызова функции free().
Имя: waitForGroup
Тип значения: boolean
Изменить значение: set_waitForGroup(новое значение)
Максимальная вместимость
Если опция выбрана, то вместимость блока будет максимальной, ограничений на вместимость не будет. Если же вам нужно ограничить вместимость блока, сбросьте этот флажок и задайте значение вместимости в расположенном ниже поле.
Имя: maximumCapacity
Тип значения: boolean
Изменить значение: set_maximumCapacity(новое значение)
Вместимость
[Виден, если не выбрана опция Максимальная вместимость]
Вместимость очереди — максимальное количество пешеходов, которые могут единовременно ожидать, выполняя заданную этим блоком команду.
Имя: capacity
Тип значения: int
Изменить значение: set_capacity(новое значение)

Специфические

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

Действия

При входе
Код, который выполняется, когда пешеход поступает в блок.
Локальная переменная: ped — пешеход
При начале ожидания
Код, который выполняется, когда пешеход начинает ожидание.
Локальная переменная: ped — пешеход
При подходе к выходу
Код, который выполняется, когда пешеход решает, что он скорее всего покинет этот блок.
Локальная переменная: ped — пешеход
При выходе
Код, который выполняется, когда пешеход покидает блок через выходной порт out в случае успешного завершения команды.
Локальная переменная: ped — пешеход
При отмене
Код, который выполняется, когда пешеход покидает блок через выходной порт ccl (аварийный сценарий).
Локальная переменная: ped — пешеход
При извлечении
Код, выполняемый, когда пешеход умышленно извлекается из блока посредством вызова функции блока remove().
Локальная переменная: ped — пешеход

Функции

Функция Описание
long countPeds() Возвращает количество всех прошедших через блок пешеходов.
Attractor getRandomAttractor(AreaNode areaNode) Возвращает один случайно выбранный аттрактор, находящийся внутри переданной в качестве аргумента области.
Attractor getFreeAttractor(AreaNode areaNode) Возвращает один свободный аттрактор, находящийся внутри переданной в качестве аргумента области.
void free(Agent ped) Прерывает выполнение команды для заданного пешехода и заставляет его покинуть блок через порт out. Для каждого пешехода, покидающего блок, вызывается код параметра Действие при выходе.
void freeAll() Прерывает выполнение команды для всех пешеходов в блоке и заставляет их покинуть блок через порт out. Для каждого пешехода, покидающего блок, вызывается код параметра Действие при выходе.
void freeAllWaitingPeds() Прерывает ожидание пешехода и заставляет его покинуть блок через порт out. Для каждого пешехода, покидающего блок, вызывается код параметра Действие при выходе. Если функция вызывается для участника пешеходной группы, ожидание будет прервано для всей группы целиком.
void cancel(Agent ped) Прерывает команду для заданного пешехода и заставляет его покинуть блок через порт ccl. Для каждого пешехода, покидающего блок, вызывается код параметра Действие при отмене.
void cancelAll() Прерывает выполнение команды для всех пешеходов и заставляет их покинуть блок через порт ccl. Для каждого пешехода, покидающего блок, вызывается код параметра Действие при отмене.
void activate(Agent ped) Начинает ожидание для заданного пешехода (в случае, если выбран режим Задержка начинается когда: Пользователь вызывает функцию activate()).
int size() Возвращает количество пешеходов, находящихся внутри этого блока.
boolean contains(Agent ped) Возвращает true, если заданный пешеход находится в блоке.
Set<Agent> getPeds() Возвращает неизменяемую переменную типа коллекция, содержащую пешеходов, находящихся в этом блоке.
Agent remove(Agent agent) Извлекает указанного агента из блока.

Порты

in
Входной порт.
out
Выходной порт, через который пешеходы покидают блок в случае успешного завершения команды.
ccl
Выходной порт, через который пешеходы покидают объект в случае события "отмены", которое возникло в результате вызова функции cancel() или функции cancelAll().
Как мы можем улучшить эту статью?