Параметры объектов библиотек

Параметры объектов всех библиотек AnyLogic (Библиотеки моделирования процессов, Пешеходной, Железнодорожной библиотеки, Библиотеки дорожного движения и Библиотеки моделирования потоков) делятся на три разных типа:

Примеры

Тип параметра

Объект

Параметр

Пример значения

Статический

Queue

Вместимость

15

Delay

Место агентов pathDelay

Динамический

SelectOutput

Условие

randomTrue(0.7)

PedService

Время задержки

2.5 uniform( 2, agent.complexity * 60 )

Кодовый

Sink

Действие при входе

dataset.add( time() - agent.timestamp );
serviced ;

TrainSource

Инициализация вагона if( carindex == 0 ) {
car.setShape( locomotive );
}
else {
car.setShape( boxCar );
}

Как отличить параметры одного типа от другого?

Если вы обратите внимание, то увидите, что после имен некоторых параметров в панели Свойства отображаются специальные значки . Такой значок означает, что соответствующий параметр - динамический. В документации у таких параметров есть метка [динамический]

Аналогично, если стоит значок , то в поле этого параметра задается код.

Если же у названия параметра отображается , то этот параметр - статический.

Значки, помеченные треугольником, означают, что вы можете переключиться в редактор динамического значения для параметра - .

Локальные переменные

Как в выражениях динамических параметров, так и в коде кодовых парметров вы можете использовать локальные переменные. Например, в Библиотеке моделирования процессов наиболее часто поддерживается локальная переменная agent, которая ссылается на того агента, для которого в текущий момент вычисляется значение динамического параметра или выполняется код. Аналогичная переменная в Пешеходной библиотеке - ped - ссылается на текущего пешехода. В Железнодорожной библиотеке вы встретите такие локальные переменные, как train, track и т.д.

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


Изменение значений статических параметров во время выполнения модели

Вы можете динамически изменять значения параметров объектов библиотеки во время выполнения модели.

Чтобы изменить значение какого-то параметра, вы должны вызвать генерируемый автоматически метод set_кодовоеИмяПараметра(), передав значение, которое вы хотите присвоить, в качестве значения аргумента метода.

Например, чтобы изменить значение Вместимости объекта queue на 50, вы должны вызвать функцию queue.set_capacity(50);

У вас может возникнуть естественный вопрос - как узнать кодовое имя параметра, если в свойствах объекта отображаются только названия параметров, такие, как Интенсивность прибытия. Чтобы узнать кодовое имя параметра, откройте документ с описанием соответствующего объекта в Справочном руководстве по библиотеке. Там вы можете найти полное описание всех параметров объекта. Например, чтобы найти кодовое имя параметра Интенсивность прибытия объекта Source, найдите этот параметр в документе по объекту Source. И вы увидите искомое кодовое имя параметрва в строке Синтаксис (перед именем параметра указан тип значения этого параметра):


В данном конкретном случае имя функции, меняющей значение этого параметра, будет set_rate()

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