Накопитель

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

Ниже приведем примеры накопителей и потоков:

Накопитель Входящие потоки Исходящие потоки
банковский баланс      пополнение депозита
снятие средств
население             рождения
иммиграция
смерти
эмиграция   
бак с горючим    заправка потребление горючего

 Чтобы создать накопитель

  1. Перетащите элемент Накопитель  из палитры Системная динамика на диаграмму агента.
  1. Перейдите в панель Свойства и введите имя накопителя в поле Имя.
  2. Задайте начальное значение накопителя в поле Начальное значение. Вы можете ввести здесь какое-то значение, либо формулу, 

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

Для удобства работы AnyLogic поддерживает механизм быстрого добавления отсутствующих связей - когда вы закончите написание формулы, то увидите, что слева от строки формулы будет отображаться индикатор ошибки:

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

  1. Формула, определяющая, как значение накопителя изменяется с течением времени, по умолчанию не редактируется - она создается автоматически, в соответствии с потоками, втекающими в накопитель и/или вытекающими из него. Но если вам нужно иметь возможность изменять формулу накопителя (например, если вы используете его как элемент системы дифференциальных уравнений в модели динамической системы), то вы можете выбрать в группе кнопок Режим задания уравнения опцию Произвольный -  тогда вы сможете редактировать уравнение накопителя, используя в выражении любые функции и переменные модели, самостоятельно задавая правую часть дифференциального уравнения, определяющего значение накопителя, в поле d(имя_накопителя)/dt =.
  2. Если у этого накопителя несколько размерностей, объявите его массивом и задайте начальные значения для его элементов, как описано здесь.
  3. Если вы задаете для переменных диаграммы потоков и накопителей единицы измерения, сделайте это и для этого накопителя, выбрав флажок Единицы измерения (сист. динамика) в секции Специфические и введя название единицы в этом поле. Более полную информацию о задании единиц измерения и проверке их соответствия в рамках модели вы можете найти здесь.
  4. Если нужно, вы можете изменить цвет и размер значка накопителя, см. ниже.

Свойства

Основные свойства

Имя – Имя накопителя. Имя используется для идентификации накопителя и доступа к нему из формул других переменных.

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

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

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

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

Цвет – Здесь вы можете изменить цвет значка накопителя.

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

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

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

d(имя_накопителя)/dt = – [Доступно, если Режим задания уравнения - Произвольный] Здесь вы можете задать правую часть дифференциального уравнения, определяющего, как будет изменяться значение накопителя с течением времени.
Если это переменная - массив, то вы можете добавить дополнительные поля, позволяющие задать формулы для каких-то определенных элементов или подмассивов данного массива. Чтобы добавить новый раздел свойств для задания еще одной формулы, щелкните по кнопке Добавить формулу. Задание формул для элементов массивов и подмассивов описано здесь

Размерности массива

Свойства, расположенные на странице Массив, доступны только в том случае, если данная переменная уже объявлена массивом. Для этого нужно установить флажок Массив в секции выше.

Возможные размерности – Список доступных в модели размерностей.

Выбранные размерности – Список размерностей, которые будут играть роль размерностей этого массива.

С помощью этих свойств задаются размерности массива.
Более подробная информация дана в разделе Задание переменной-массива.

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

Единицы измерения (сист. динамика)Если опция выбрана, то вы можете задать для потока единицы измерения.

Обычно в накопители (и/или из них) ведут потоки. Вы можете найти всю информацию о потоках и их добавлении здесь. Полностью процесс создания несложной модели системной динамики описан в соответствующем Учебном пособии.

Классический и произвольный режимы задания формулы

AnyLogic поддерживает два режима задания формулы для накопителя: Классический и Произвольный

Классический

В классическом режиме AnyLogic автоматически создает формулу для накопителя в соответствии с задаваемой пользователем диаграммой потоков и накопителей. 

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

входящий_поток1 + входящий_поток2 … - исходящий_поток1 - исходящий_поток2 …

В классическом режиме формула накопителя сделана нередактируемой, в ней могут фигурировать только потоки.

Произвольный

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

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

Изменение внешнего вида накопителя

 Чтобы изменить цвет накопителя
  1. Выделите накопитель, щелкнув по нему в графическом редакторе или в панели Проекты.
  2. Перейдите в панель Свойства и выберите нужный вам цвет с помощью параметра Цвет.
 Чтобы изменить размер значка накопителя
  1. Выделите накопитель, щелкнув по нему в графическом редакторе.
  1. Вы увидите маленький прямоугольник - маркер в нижнем правом углу значка накопителя. Перетаскивая мышью этот маркер, вы можете изменять размер накопителя:

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

Простая демо модель: Stock of Money Animation


См. также

 Системная динамика

 Потоки

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

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