Простые переменные

Активный объект может содержать переменные.  Переменные обычно используются для моделирования изменяющихся характеристик объекта или для хранения результатов работы модели. AnyLogic поддерживает два типа переменных – простые переменные и коллекции

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

Переменная представляет собой переменную любого скалярного типа или Java класса. 

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

Вы можете динамически изменять значение переменной во время выполнения модели с помощью оператора присваивания. Следующая строка кода присваивает целочисленной( int) переменной myVariable значение 5:

myVariable = 5;

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

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

Если Вам нужна переменная, изменяющая свое значение согласно алгебраической формуле, то используйте Динамическую переменную

Вы также можете объявить Java переменные в поле свойства Дополнительный код класса класса активного объекта. Такие переменные будут также доступны из кода активного обеъкта, но мы рекомендуем задавать их визуально с помощью простых переменных.

Типы переменных

Как и многие другие инструменты имитационного моделирования, AnyLogic поддерживает переменные простых типов: вещественные переменные (double), целочисленные (integer) и логические (boolean).

Но только AnyLogic предоставляет уникальную возможность создания переменных любых Java классов (например, класса String для хранения текстовых строк), в том числе и переменных Ваших собственных классов, созданных Вами в рамках модели.

Создание переменной

 Чтобы создать переменную
  1. Перетащите элемент Переменная  из палитры Основная на диаграмму класса активного объекта (или эксперимента).
  2. Перейдите на страницу Основные панели Свойства.
  3. Введите имя переменной в поле Имя. Это имя будет использоваться для идентификации и доступа к переменной.
  4. Задайте тип переменной. Вы можете как выбрать один из наиболее часто используемых типов (intdouble, booleanString) с помощью соответствующей кнопки переключателя Тип, так и задать значение любого другого Java класса (в этом случае Вам нужно будет выбрать опцию Другой и ввести имя класса в расположенном справа поле).
  5. Если Ваша переменная будет всегда иметь одно и то же значение в течение всего моделируемого периода времени, можете объявить ее константой, выбрав флажок Константа. Сделав переменную константой, Вы защищаете ее от изменения во время моделирования.
  6. Вы можете задать начальное значение переменной в поле Начальное значение. Это значение может быть впоследствии изменено во время работы модели. Если начальное значение не будет задано явно, то переменная будет проинициализирована в соответствии с правилами  Java, то есть, например, начальное значение переменной типа double будет равно 0. 
     Если Вы объявили эту переменную константой, то Вы не сможете использовать в выражении, задаваемом в поле Начальное значение, параметры, накопители, потоки и вспомогательные переменные.
Основные свойства

Имя – Имя переменной. 

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

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

На презентации – Если опция выбрана, то переменная будет отображаться на презентации во время выполнения модели.

Уровень доступа – Уровень доступа к коллекции. Есть четыре уровня доступа:
    private – 
коллекция доступна только из этого класса активного объекта
    protected
коллекция доступна из этого класса активного объекта и его подклассов
    default
коллекция доступна из любого места модели
    public
коллекция доступна из всех открытых моделей.

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

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

Сохранять при сохранении состояния модели – Если опция выбрана, то переменная будет сохраняться при сохранении состояния модели.

Тип – Тип переменной. Выберите один из наиболее часто используемых типов (intdouble, booleanString) или же, если Вам нужно создать переменную другого Java класса - выберите опцию Другой и введите имя класса в расположенном справа поле.

Начальное значение – Здесь Вы можете задать начальное значение переменной. Это значение может быть впоследствии изменено во время работы модели. Если начальное значение не будет задано явно, то переменная будет проинициализирована в соответствии с правилами  Java, то есть, например, начальное значение переменной типа double будет равно 0. 
 Если Вы объявили эту переменную константой, то Вы не сможете использовать в выражении, задаваемом в поле Начальное значение, параметры, накопители, потоки и вспомогательные переменные.


См. также

 Просмотр значений и графиков переменных

 Изменение значений переменных