Параметры блоков всех библиотек AnyLogic бывают трех типов: статические, динамические и кодовые.
У статического параметра есть значение, которое задается в поле параметра в панели Свойства. Это значение будет неизменно на протяжении всего выполнения модели, если только пользователь не изменит значение путем вызова соответствующей функции. Пример статического параметра: Вместимость блока Delay.
В панели свойств блока статические параметры помечаются иконкой .
В поле динамического параметра вы можете ввести как значение, так и выражение. Выражение должно возвращать результат типа, который может быть приведен к типу этого параметра. У динамического параметра нет постоянного значения. Значение параметра вычисляется заново для каждого нового агента в момент поступления агента в блок.
Пример динамического параметра: Время задержки блока Delay.
Вы можете задать в поле параметра как значение, например, 5, так и Java выражение, которое вернет значение требуемого типа. Это может быть, например, вызов функции вероятностного распределения: exponential(0.1) или вызов функции, заданной самим пользователем.
В панели свойств блока динамические параметры помечаются иконкой . Чтобы отличить динамические параметры от статических, в документации у имени каждого динамического параметра добавлена похожая иконка.
Кодовые параметры обычно располагаются в секции свойств Действия. Имя кодового параметра обычно начинается со слова При, например, При входе. Если соединить эти слова вместе: Действие при входе, станет понятнее смысл этого параметра. Кодовый параметр по сути представляет собой место, где пользователь может задать Java код, который будет выполняться в соответствующий ключевой момент жизни агента внутри этого блока, например, при поступлении агента в блок, при окончании обслуживания агента, при освобождении ресурса, при выходе поезда из железнодорожной сети и т.д. Наш пример - Действие при входе - будет выполняться каждый раз, когда в блок поступает новый агент.
Каждая строка кода в поле кодового параметра отделяется точкой с запятой (в отличие от строки в поле задания значения динамического параметра).
В панели свойств кодовые параметры помечаются иконкой .
Тип параметра | Блок | Параметр | Пример значения |
Статический | Queue | Вместимость | 15 |
Статический | Delay | Место агентов | pathDelay |
Динамический | SelectOutput | Условие | randomTrue(0.7) |
Динамический | Service | Время задержки | agent.amount * 60 |
Кодовый | Sink | При входе |
|
Кодовый | TrainSource | Инициализация вагона |
|
Как в выражениях динамических параметров, так и в коде кодовых параметров вы можете использовать локальные переменные. Например, в Библиотеке моделирования процессов наиболее часто поддерживается локальная переменная agent, которая ссылается на того агента, для которого в текущий момент вычисляется значение динамического параметра или выполняется код. Аналогичная переменная в Пешеходной библиотеке - ped - ссылается на текущего пешехода. В Железнодорожной библиотеке вы встретите такие локальные переменные, как train, track и т.д.
Чтобы увидеть список всех локальных переменных, доступных в поле параметра, щелкните мышью в этом поле и затем наведите курсор мыши на значок лампочки, который появится на левой границе поля.
Вы можете изменять значения статических параметров блоков библиотеки во время выполнения модели.
Чтобы изменить значение параметра, вызовите автоматически генерируемую функцию set_кодовоеИмяПараметра(), передав новое значение параметра в качестве аргумента этой функции.
Например, чтобы изменить значение параметра Вместимость блока Queue на 50, вам следует вызвать queue.set_capacity(50);
Кодовое имя параметра - это не имя параметра, которое отображается в панели Свойства. Кодовое имя можно узнать, обратившись к разделу Справочные руководства по библиотекам. Найдя нужный параметр блока в соответствующей статье, щелкните по метке . Нужное вам имя будет указано в появившейся ниже строке Синтаксис.
-
Как мы можем улучшить эту статью?
-