Создает автомобили и пытается поместить их в указанное место дорожной сети. Автомобиль можно поместить на указанную дорогу или парковку (это задается параметром Появляется).
Аналогично блоку Source, автомобили могут создаваться согласно:
- заданной интенсивности
- времени между прибытиями
- изменяющейся во времени интенсивности, заданной с помощью расписания
- расписанию, задающему точные времена и количество прибывающих автомобилей
- вызову функции блока inject()
Количество создаваемых автомобилей можно ограничить (выбрав опцию Ограниченное кол-во прибытий и задав Максимальное кол-во прибытий).
Чтобы создавать автомобили заданного вами типа, выберите этот тип в параметре Новый автомобиль.
Если в качестве места появления автомобиля указана дорога, необходимо дополнительно указать направление дороги. Автомобили будут появляться в начале указанной дороги, после чего будут начинать движение в указанном направлении. По умолчанию, выбран параметр Случайная полоса, поэтому автомобили будут появляться на случайных полосах дороги (если на указанной дороге больше одной полосы в выбранном направлении). Можно явно указать номер полосы, на которой будут появляться автомобили. Для этого необходимо снять флажок с опции Случайная полоса и указать номер в параметре Номер полосы.
Если в качестве места появления автомобилей указана парковка, то они будут появляться в свободных парковочных местах указанной парковки и ждать либо пока не покинут дорожную сеть, либо пока не начнут движение, поступив в блок CarMoveTo. Если все места заняты, будет показано сообщение об ошибке.
Демо-модель: CarSource Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.- Прибывают согласно
-
Определяет, будут ли автомобили прибывать согласно:
Интенсивности — автомобили прибывают согласно заданной интенсивности прибытия (эквивалентной экспоненциально распределенному времени между прибытиями со средним значением, равным 1/Интенсивность прибытия).
Времени между прибытиями — время между двумя последовательными прибытиями определяется заданным выражением (используйте эту опцию для периодической генерации автомобилей или для генерации автомобилей с интервалами времени, не подчиняющимся экспоненциальному закону распределения).
Таблице базы данных — агенты прибывают согласно данным таблицы БД, которую пользователь указывает в параметре Таблица базы данных. Выберите столбец, содержащий моменты прибытий из раскрывающегося списка Столбец дат прибытий. Блок будет создавать одного агента для каждой записи данных в указанной таблице.
Расписанию интенсивностей — автомобили генерируются согласно указанному расписанию, в котором задано, как интенсивность прибытия автомобилей изменяется с течением времени.
Расписанию прибытий — автомобили генерируются согласно указанному расписанию, в котором заданы моменты появления автомобилей и количество автомобилей, прибывающее в каждый указанный в расписании момент времени.
Вызовам функции inject() — автомобили создаются не автоматически, а только при вызове функции inject().Имя параметра: arrivalType
Изменить значение: set_arrivalType(новое значение)
Допустимые значения:
CarSource.RATE
CarSource.INTERARRIVAL_TIME
CarSource.RATE_SCHEDULE
CarSource.ARRIVAL_SCHEDULE
CarSource.MANUAL - Интенсивность прибытия
-
[Параметр виден, если выбрана опция Прибывают согласно: Интенсивности]
Интенсивность прибытия автомобилей. Если значение интенсивности становится равным нулю, то следующее появление автомобиля не будет запланировано до тех пор, пока значение интенсивности не примет положительное значение.Синтаксис: double rate
Изменить значение: set_rate(новое значение) -
[Параметр виден, если выбрана опция Прибывают согласно: Времени между прибытиями]
Выражение, вычисляющее время до прибытия следующего автомобиля.Тип значения: double - Таблица базы данных
-
[Параметр виден, если выбрана опция Поезда прибывают согласно: Таблице базы данных]
Выберите таблицу базы данных, которая содержит данные о прибытиях агентов. - Столбец дат прибытий
-
[Параметр виден, если выбрана опция Поезда прибывают согласно: Таблице базы данных]
Выберите столбец Таблицы базы данных, который содержит отметки времени прибытия агентов. - Расписание прибытий
-
[Параметр виден, если выбрана опция Прибывают согласно: Расписанию прибытий]
Имя расписания, в котором заданы моменты появления автомобилей. Обычно в столбце значения в расписании будут введены значения "1", поскольку в каждый момент времени в модели должна будет появиться одна машина.Синтаксис: Schedule<Integer> arrivalSchedule
Изменить значение: set_arrivalSchedule(новое значение) - Расписание интенсивностей
-
[Параметр виден, если выбрана опция Прибывают согласно: Расписанию интенсивностей]
Имя расписания, в котором задано, как интенсивность прибытия автомобилей изменяется с течением времени.Синтаксис: Schedule<Integer> rateSchedule
Изменить значение: set_rateSchedule(новое значение) - Изменять интенсивность
-
[Параметр виден, если в свойстве Прибывают согласно не выбрана опция Расписанию интенсивностей]
Если опция выбрана, появится параметр Согласно выражению, в котором вы можете задать выражение, изменяющее интенсивность прибытия автомобилей.Синтаксис: boolean modifyRate
Изменить значение: set_modifyRate(новое значение) -
[Параметр виден, если выбрана опция Изменять интенсивность]
Выражение, согласно которому изменяется интенсивность.Тип значения: double
Локальная переменная: double baseRate — текущее значение интенсивности, взятое из расписания интенсивностей - Считать параметры агентов из БД
-
[Параметр виден, если в свойстве Прибывают согласно не выбрана опция Таблице базы данных или Вызовам функции inject()]
Если опция выбрана, то вы сможете инициализировать создаваемые автомобили данными из базы данных модели. Подобный подход описан здесь для блока Source, считывающего параметры создаваемых агентов из встроенной базы данных модели.Синтаксис: boolean setAgentParametersFromDB
Изменить значение: set_setAgentParametersFromDB(новое значение) - Таблица базы данных
-
[Параметр виден, если выбрана опция Считать параметры агентов из БД]
Укажите таблицу базы данных, которая содержит данные об автомобилях.Синтаксис: TableInput databaseTable
Изменить значение: set_databaseTable(новое значение) - Ограниченное кол-во прибытий
-
[Параметр виден, если в параметре Прибывают согласно не выбрано Вызовам функции inject()]
Если опция выбрана (true), то количество автомобилей, генерируемое этим блоком, будет ограничено параметром Максимальное количество прибытий, расположенным ниже.Синтаксис: boolean limitArrivals
Изменить значение: set_limitArrivals(новое значение) - Максимальное кол-во прибытий
-
[Параметр виден, если выбрана опция Ограниченное количество прибытий]
Максимальное количество автомобилей, которое сможет сгенерировать этот блок.Синтаксис: int maxArrivals
Изменить значение: set_maxArrivals(новое значение) - Появляется
-
[Параметр виден, если выбрана опция Появляется на: дороге]
В этом пункте вы указываете, будут ли создаваемые этим блоком автомобили появляться на дороге или на парковке. на дороге — автомобили будут расположены в начале дороги, указанной ниже в параметре Дорога.
на парковке — автомобили будут расположены на случайно выбранном парковочном месте на парковке, указанной ниже в параметре Парковка.Получить значение: appears
Установить новое значение во время выполнения: set_appears(новое значение)
Допустимые значения:
CarSource.ON_ROAD
CarSource.IN_PARKING_LOT -
[Параметр виден, если выбрана опция Появляется на:дороге]
Дорога, на которой будет расположен автомобиль после начала движения. Автомобиль помещается на полосу дороги, заданную в параметре Помещается на полосу (основного движения или встречного движения). Полоса либо выбирается случайным образом (если выбрана опция Случайная полоса), либо явно задается пользователем в параметре Номер полосы.
Автомобиль не сразу появляется в указанной точке. Автомобиль появляется и начинает движение только когда:- в указанной точке дороги достаточно места, чтобы избежать столкновения, и
- Блок CarMoveTo отправляет автомобиль в другое место дорожной сети.
Тип значения: Road
Локальная переменная: car — созданный блоком автомобиль - Помещается на полосу
-
[Параметр виден, если выбрана опция Появляется на: дороге]
Определяет направление полосы (основного движения или встречного движения), на которую будет помещен автомобиль. Если у дороги нет указанного направления (т.е. это дорога с односторонним движением), вы увидите сообщение об ошибке.Получить значение: laneDirection
Установить новое значение во время выполнения: set_laneDirection(новое значение)
Допустимые значения:
CarSource.FORWARD_LANE
CarSource.BACKWARD_LANE - Случайная полоса
-
[Параметр виден, если выбрана опция Появляется на: дороге]
Указывает, будет ли автомобиль помещен на случайно выбранную полосу дороги. Если эта опция не выбрана, то автомобиль будет помещен на полосу с номером, указанном в параметре Номер полосы.Синтаксис: boolean isRandomLane
Изменить значение: set_isRandomLane(новое значение) -
[Параметр виден, если не выбрана опция Случайная полоса]
Здесь задается номер полосы дороги, на которую будет помещен автомобиль (нумерация полос начинается с нуля). Номера полос начинаются с внешней полосы. Если у выбранной Дороги нет полосы с указанным здесь номером, то вы увидите сообщение об ошибке.Тип значения: int
Локальная переменная: car — созданный блоком автомобиль -
[Параметр виден, если выбрана опция Появляется на: парковке]
Парковка, на которой, после поступления в этот блок, сразу появляется автомобиль. Если на парковке нет свободных мест, вы увидите ошибку. Автомобиль не покинет парковочное место, пока блок CarMoveTo не направит его в другое место дорожной сети.Тип значения: ParkingLot
Локальная переменная: car — созданный блоком автомобиль
-
Тип автомобиля, созданный блоком CarSource. (У созданного типа должна быть выбрана опция, что он будет использоваться в диаграммах процессов как автомобиль).
Значение по умолчанию: Agent
-
Длина созданного автомобиля, должна быть > 0.
Тип значения: double
Локальная переменная: car — созданный блоком автомобиль -
Начальная скорость созданного автомобиля. Начальная скорость должна быть >= 0. Если начальная скорость меньше предпочитаемой скорости, автомобиль начнет ускоряться до предпочитаемой скорости, как только блок CarMoveTo направит его в другое место дорожной сети.
Тип значения: double
Локальная переменная: car — созданный блоком автомобиль -
Предпочитаемая скорость созданного автомобиля. Предпочитаемая скорость должна быть >= 0. Если предпочитаемая скорость и начальная скорость равны 0, автомобиль не начнет движение, даже если блок CarMoveTo направит его в другое место дорожной сети. Автомобиль может начать движение, только если при вызове функции setPreferredSpeed( speed ) задана положительная начальная скорость.
Автомобиль всегда пытается ехать со скоростью, равной предпочитаемой. Следующие факторы не позволяют автомобилю двигаться с предпочитаемой скоростью:- Отсутствие возможности немедленно ускориться или замедлиться до предпочитаемой скорости
- Автомобиль впереди, движущийся со скоростью меньшей, чем предпочитаемая скорость этого автомобиля
- Стоп-линия с красным сигналом светофора впереди
- Близость к парковке или автобусной остановке, у которой автомобиль должен замедлиться, чтобы припарковаться или остановиться
- Скоростное ограничение
Тип значения: double
Локальная переменная: car — созданный блоком автомобиль -
Максимальное ускорение созданного автомобиля. Максимальное ускорение должно быть > 0.
Тип значения: double
Локальная переменная: car — созданный блоком автомобиль -
Максимальное торможение созданного автомобиля. Максимальное торможение должно быть > 0. Автомобиль замедляется с максимальным торможением только в экстремальных случаях. В остальных случаях используется определенная доля максимального торможения.
Тип значения: double
Локальная переменная: car — созданный блоком автомобиль
- Добавить автомобили в
-
Здесь вы можете указать, куда будут помещены автомобили, созданные этим блоком: в популяцию по умолчанию или в другую популяцию (указанную ниже в поле Популяция агентов ).
Синтаксис: boolean addToCustomPopulation
Изменить значение: set_addCarToCustomPopulation(новое значение) -
[Параметр виден, если выбрана опция Добавить автомобили в: другую популяцию]
Имя популяции агентов, куда будут помещены агенты-автомобили, созданные этим блоком.Тип значения: AgentList
Локальная переменная: car — созданный блоком автомобиль
- При выходе
-
Здесь вы можете задать код, который будет выполняться, когда автомобиль покинет блок.
Локальная переменная: car — автомобиль, покидающий блок
Функция | Описание |
---|---|
void inject() | Создает один новый автомобиль (во время вызова функции). Используется, когда в параметре Прибывают согласно выбрана опция Вызовам функции inject(). |
void inject(int n) | Создает новый автомобиль (во время вызова функции). Используется, когда в параметре Прибывают согласно выбрана опция Вызовам функции inject(). В качестве аргумента функции передается количество создаваемых за 1 вызов автомобилей. |
- out
- Выходной порт.
-
Как мы можем улучшить эту статью?
-