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

Группа эскалаторов

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

Группа эскалаторов состоит из одного или нескольких простых элементов разметки пространства Эскалатор. С его помощью можно задать направление движения для конкретного эскалатора в группе, а также выполнять другие задания в ходе выполнения модели, используя функции (включить/выключить эскалатор, изменить скорость и т.д.).

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

Группа эскалаторов во время выполнения модели в 3D анимации

Устройство эскалатора

Блокирование и включение/выключение эскалаторов

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

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

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

Рисование группы эскалаторов

Чтобы нарисовать группу эскалаторов

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

  2. Откройте Свойства фигуры группы эскалаторов. Укажите, сколько эскалаторов находится в данной группе, используя поле Кол-во эскалаторов. В нашем примере у нас два параллельных эскалатора.
  3. Вы увидите, что теперь группа состоит из двух эскалаторов:

  4. Если эскалатор перемещает пешеходов на другой уровень, который представлен в вашей модели как другой уровень, вам нужно указать имя данного уровня в параметре эскалатора Верхний уровень.
  5. Теперь вам нужно изменить размеры фигуры эскалаторов в графическом редакторе. Сделайте так, чтобы фигура в точности соответствовала изображению эскалаторов на плане. Первое, что нужно сделать, это Приблизить холст и отключить привязку к сетке графического редактора, нажав на кнопку Включить/Отключить сетку на панели управления для того, чтобы упростить изменение размеров компонент фигуры, которые выглядят довольно маленькими в стандартном приближении.
  6. Выберите фигуру щелчком мыши, и вы увидите маркеры, которые вы можете использовать для настройки ширины компонент эскалатора. Обратите внимание на то, что сделав еще один щелчок мыши по какому-нибудь из эскалаторов в группе, вы выберете данный конкретный эскалатор. Следующий же щелчок снова выбирает всю фигуру целиком. Для того, чтобы иметь возможность изменять размеры компонент группы эскалаторов, вы должны увидеть, что данная группа выбрана, как показано на рисунке ниже:

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

  8. Далее, настройте ширину эскалатора. Вы увидите, что оба эскалатора будут иметь одинаковую ширину:

  9. Теперь вам нужно изменить ширину внутренней балюстрады:

  10. Настройте ширину внешних балюстрад:

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

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

Свойства

Общие

Имя — Имя фигуры. Данное свойство используется для того, чтобы обращаться к этой фигуре из свойств блока PedEscalator и иметь доступ к группе эскалаторов из программного кода.

Исключить  — Если опция выбрана, то фигура будет исключена из модели.

Отображается на верхнем агенте — Если опция выбрана, то фигура будет видна на презентации типа агента, в который будет вложен данный агент.

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

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

Уровень — Нижний уровень. На этом уровне пешеходы заходят на эскалатор.

Верхний уровень — Верхний уровень. На этом уровне пешеходы сходят с эскалатора.

Кол-во эскалаторов — Количество эскалаторов в группе эскалаторов.

Скорость — Скорость движения ступеней эскалатора.

Ширина ступеньки — Глубина ступени эскалатора.

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

Угол — [Параметр виден и применяется, если выбрана опция Задает наклон как: угол] Угол наклона эскалатора (обычно равен 30 градусам).

Подъем — [Параметр виден и применяется, если выбрана опция Задает наклон как: подъем] Высота эскалатора, которая будет использоваться для расчета угла наклона эскалатора.

Поведение пешеходов

Поведение (Движение вверх) — Здесь вы можете выбрать, как пешеходы ведут себя при перемещении вверх. Возможные варианты: Все стоят, Все идут, Идут по левой стороне или Идут по правой стороне. По умолчанию выбрана опция Все стоят.

Поведение (Движение вниз) — Здесь вы можете выбрать, как пешеходы ведут себя при перемещении вниз. Возможные варианты: Все стоят, Все идут, Идут по левой стороне или Идут по правой стороне. По умолчанию выбрана опция Идут по левой стороне.

Идут, % (Вниз) — Доля пешеходов, которые будут идти, а не стоять, при перемещении вниз. Значение задается в интервале [0..1], где при значении 1 все пешеходы будут идти. По умолчанию задано значение 0.5.

Внешний вид

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

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

Местоположение и размер

X — X-координата фигуры.

Y — Y-координата фигуры.

Z — Z-координата фигуры.

Ширина — Ширина фигуры, в пикселях.

Длина — Длина фигуры, в пикселях.

Длина нижней платформы — Длина платформы, находящейся на нижнем уровне, в пикселях.

Длина верхней платформы — Длина платформы, находящейся на верхнем уровне, в пикселях.

Ширина левой балюстрады — Ширина левой балюстрады группы эскалаторов, в пикселях.

Ширина правой балюстрады — Ширина правой балюстрады группы эскалаторов, в пикселях.

Ширина внутренней балюстрады — Ширина внутренней балюстрады между соседними эскалаторами группы, в пикселях.

Поворот — Угол поворота фигуры.

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

Отображать в — Здесь вы можете выбрать, будет ли фигура отображаться В 2D и в 3D, Только в 2D или Только в 3D.

Отображать имя — Если опция выбрана, то имя фигуры будет отображаться в графическом редакторе.

Направление движения эскалатора

Фигура разметки пространства Группа Эскалаторов состоит из заданного числа фигур Эскалатор.

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

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

Чтобы изменить направление движения эскалатора

  1. Щелкните по фигуре группы эскалаторов.
  2. Выберите один эскалатор из данной группы эскалаторов щелчком мыши.
  3. В секции Свойства установите параметр Направление: Вверх или Вниз. Вы увидите, что стрелка изменила свое направление.

Функции

Эскалаторы
Функция Описание
List<Escalator> getEscalators() Возвращает список эскалаторов в этой группе. На момент вызова функции группа должна быть уже проинициализирована.
Блокировка эскалаторов

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

Функция Описание
block() Блокирует все эскалаторы в данной группе.
block(int index) Блокирует эскалатор с номером index.
unblock() Разблокирует все эскалаторы в данной группе.
unblock(int index) Разблокирует эскалатор с заданным индексом index.
boolean isBlocked(int index) Проверяет, является ли эскалатор с заданным индексом indexзаблокированным или нет. Если эскалатор заблокирован, то функция возвращает значение true, в противном случае функция возвращает значение false.
Включение/выключение эскалатора
Функция Описание
turnOff() Выключает все эскалаторы в данной группе.
turnOff(int index) Выключает эскалатор с заданным индексом index.
turnOn() Включает все эскалаторы в данной группе.
turnOn(int index) Включает эскалатор с заданным индексом index.
boolean isRunning(int index) Проверяет, движется ли в данный момент эскалатор с заданным индексом indexили нет. Если эскалатор движется, то функция возвращает значение true, в противном случае функция возвращает значение false.
Скорость эскалаторов
Функция Описание
double getSpeed(int index) Возвращает скорость эскалатора с заданным индексом (в метрах в секунду).

index — индекс эскалатора в группе эскалаторов
double getSpeed(int index, SpeedUnits units) Возвращает скорость эскалатора с заданным индексом (в единицах измерения скорости, заданных с помощью аргумента units).

index — индекс эскалатора в группе эскалаторов
units — одна из констант AnyLogic, задающих единицы измерения скорости
void setSpeed(double speedInMPS) Задает скорость (в метрах в секунду) для всех эскалаторов в группе.

speedInMPS — новое значение скорости
void setSpeed(double speed, SpeedUnits units) Задает скорость для всех эскалаторов в группе (в единицах измерения скорости, заданных с помощью аргумента units).

speed — скорость эскалатора
units — одна из констант AnyLogic, задающих единицы измерения скорости
void setSpeed(int index, double speedInMPS) Задает скорость эскалатора с заданным индексом (в метрах в секунду).

index — индекс эскалатора в группе эскалаторов
speedInMPS — скорость эскалатора (в метрах в секунду)
void setSpeed(int index, double speed, SpeedUnits units) Задает скорость эскалатора (в единицах измерения скорости, заданных с помощью аргумента units).

index — индекс эскалатора в группе эскалаторов
speed — скорость эскалатора
units — одна из констант AnyLogic, задающих единицы измерения скорости
Направление движения
Функция Описание
getMovementDirection(int index) Возвращает текущее направление движения эскалатора c заданным индексом index. Возможные возвращаемые значения:
EscalatorMovementDirection.UP
EscalatorMovementDirection.DOWN
setMovementDirection(EscalatorMovementDirection movementDirection) Задает новое направление движения всем эскалаторам данной группы. Вы задаете новое значение, передавая одно из следующих значений в качестве аргумента функции: EscalatorMovementDirection.UP или EscalatorMovementDirection.DOWN.
setMovementDirection(int index, EscalatorMovementDirection movementDirection) Задает новое направление движения эскалатору с заданным индексом index. Вы задаете новое значение, передавая одно из следующих значений в качестве второго аргумента функции: EscalatorMovementDirection.UP или EscalatorMovementDirection.DOWN.
Поведение пешеходов
Функция Описание
EscalatorPedestrianBehavior getPedestrianBehaviorDown() Возвращает тип поведения пешеходов, которые перемещаются эскалатором вниз.
Возможные значения:

EscalatorPedestrianBehavior.ESCALATOR_STAY_ALL — Все стоят
EscalatorPedestrianBehavior.ESCALATOR_WALK_ALL — Все идут
EscalatorPedestrianBehavior.ESCALATOR_WALK_ON_LEFT_SIDE — Идут по левой стороне
EscalatorPedestrianBehavior.ESCALATOR_WALK_ON_RIGHT_SIDE — Идут по правой стороне
EscalatorPedestrianBehavior getPedestrianBehaviorUp() Возвращает тип поведения пешеходов, которые перемещаются эскалатором вверх.
Возможные значения:

EscalatorPedestrianBehavior.ESCALATOR_STAY_ALL — Все стоят
EscalatorPedestrianBehavior.ESCALATOR_WALK_ALL — Все идут
EscalatorPedestrianBehavior.ESCALATOR_WALK_ON_LEFT_SIDE — Идут по левой стороне
EscalatorPedestrianBehavior.ESCALATOR_WALK_ON_RIGHT_SIDE — Идут по правой стороне
void setPedestrianBehaviorDown(EscalatorPedestrianBehavior pedestrianBehaviorDown) Задает тип поведения пешеходов, которые перемещаются эскалатором вниз.

pedestrianBehaviorDown — новый тип поведения
Возможные значения:

EscalatorPedestrianBehavior.ESCALATOR_STAY_ALL — Все стоят
EscalatorPedestrianBehavior.ESCALATOR_WALK_ALL — Все идут
EscalatorPedestrianBehavior.ESCALATOR_WALK_ON_LEFT_SIDE — Идут по левой стороне
EscalatorPedestrianBehavior.ESCALATOR_WALK_ON_RIGHT_SIDE — Идут по правой стороне
void setPedestrianBehaviorUp(EscalatorPedestrianBehavior pedestrianBehaviorUp) Задает тип поведения пешеходов, которые перемещаются эскалатором вверх.

pedestrianBehaviorDown — новый тип поведения
Возможные значения:

EscalatorPedestrianBehavior.ESCALATOR_STAY_ALL — Все стоят
EscalatorPedestrianBehavior.ESCALATOR_WALK_ALL — Все идут
EscalatorPedestrianBehavior.ESCALATOR_WALK_ON_LEFT_SIDE — Идут по левой стороне
EscalatorPedestrianBehavior.ESCALATOR_WALK_ON_RIGHT_SIDE — Идут по правой стороне
Размеры
Функция Описание
double getLength() Возвращает длину фигуры (в пикселях).
double getWidth() Возвращает ширину фигуры (в пикселях).
void setLength(double length) Задает длину фигуры (в пикселях). На момент вызова функции группа не должна быть проинициализирована.

length — длина фигуры.
void setWidth(double width) Задает ширину фигуры (в пикселях). На момент вызова функции группа не должна быть проинициализирована.

length — ширина фигуры.
double getLowerLandingLength() Возвращает длину нижней платформы (в пикселях).
double getUpperLandingLength() Возвращает длину верхней платформы (в пикселях).
void setLowerLandingLength(double lowerLandingLength) Задает длину нижней платформы (в пикселях). На момент вызова функции группа не должна быть проинициализирована.

lowerLandingLength — длина нижней платформы
void setUpperLandingLength(double upperLandingLength) Задает длину верхней платформы (в пикселях). На момент вызова функции группа не должна быть проинициализирована.

upperLandingLength — длина верхней платформы
double getLeftBalustradeWidth() Возвращает ширину левой балюстрады (в пикселях).
double getRightBalustradeWidth() Возвращает ширину правой балюстрады (в пикселях).
double getInternalBalustradeWidth() Возвращает ширину внутренней балюстрады (в пикселях).
void setLeftBalustradeWidth(double leftBalustradeWidth) Задает ширину левой балюстрады (в пикселях). На момент вызова функции группа не должна быть проинициализирована.

leftBalustradeWidth — ширина левой балюстрады (в пикселях)
void setRightBalustradeWidth(double rightBalustradeWidth) Задает ширину правой балюстрады (в пикселях). На момент вызова функции группа не должна быть проинициализирована.

rightBalustradeWidth — ширина правой балюстрады (в пикселях)
void setInternalBalustradeWidth(double internalBalustradeWidth) Задает ширину внутренней балюстрады (в пикселях). На момент вызова функции группа не должна быть проинициализирована.

internalBalustradeWidth — ширина внутренней балюстрады (в пикселях)
double getStepWidth() Возвращает ширину шага (глубину шага) эскалатора (в метрах).
double getStepWidth(LengthUnits units) Возвращает ширину шага (глубину шага) эскалатора (в заданных единицах измерения длины).

units — константа, задающая единицы измерения длины
void setStepWidth(double stepWidthInMeter) Задает ширину шага (глубину шага) эскалатора (в метрах). На момент вызова функции группа не должна быть проинициализирована.

stepWidthInMeter — ширина шага, в метрах
void setStepWidth(double stepWidth, LengthUnits units) Задает ширину шага (глубину шага) эскалатора (в заданных единицах измерения длины). На момент вызова функции группа не должна быть проинициализирована.

stepWidth — ширина шага эскалатора (в заданных единицах измерения длины).
units — константа, задающая единицы измерения длины
Угол наклона
Функция Описание
double getAngle() Возвращает угол наклона эскалаторов к горизонтальной плоскости.
void setAngle(double angle) Задает угол наклона эскалаторов к горизонтальной плоскости. На момент вызова функции группа не должна быть проинициализирована.

angle — угол наклона.
Местоположение
Функция Описание
double getX() Возвращает X-координату фигуры.
void setX(double x) Задает X-координату фигуры.

x — новая X-координата
double getY() Возвращает Y-координату фигуры.
void setY(double y) Задает Y-координату фигуры.

y — новая Y-координата
double getZ() Возвращает Z-координату фигуры.
void setZ(double z) Задает Z-координату фигуры.

z — новая Z-координата
Поворот
Функция Описание
double getRotation() Возвращает угол поворота фигуры, в радианах.
void setRotation(double rotation) Задает угол поворота фигуры, в радианах.

rotation — новый угол поворота.
Видимость
Функция Описание
boolean isVisible() Проверяет, отображается ли фигура на анимации во время выполнения модели. Если функция возвращает true — значит, фигура отображается, если false — нет.
void setVisible(boolean v) Задает видимость группы эскалаторов.

v — видимость. Если значение v равно true, то фигура будет отображаться, если равно false — то нет.
Уровни
Функция Описание
Level getLevel() Возвращает уровень, на котором расположена данная группа эскалаторов.
Level getLowerLevel() Возвращает нижний уровень этой группы эскалаторов.
Level getUpperLevel() Возвращает верхний уровень этой группы эскалаторов.
Удаление
Функция Описание
void remove() Удаляет группу эскалаторов из презентации. Если группа не является частью презентации, функция не выполняет ничего. Обратите внимание, что удаление из презентации не обязательно подразумевает удаление из логики модели, поскольку логические сети и маршруты могли быть заданы еще до удаления элемента и не исчезают.
Как мы можем улучшить эту статью?