Различия

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

Ссылка на это сравнение

ru:simulation_fca:simulation_activity:use_variables [2023/03/16 12:20] (текущий)
Строка 1: Строка 1:
 +====== Использование переменных для моделирования временных и логических связей между экземплярами объектов ======
  
 +Помимо моделирования временных связей между экземплярами операций с помощью диаграммы процесса перед аналитиком часто встают задачи моделирования более сложных логических или временных связей между экземплярами операций, например:
 +  *приостановка выполнения экземпляра процесса до момента, пока не появятся в наличии необходимые материальные ресурсы или экземпляры временных ресурсов;
 +  *регулирование частоты запуска экземпляров операций в зависимости от выполнения условия.
 +
 +Для моделирования таких связей метод имитационного моделирования предлагает следующие способы:
 +  -Моделирование конкуренции за ограниченное количество экземпляров временных ресурсов; 
 +  -Моделирование конкуренции за ограниченное количество материальных ресурсов;
 +  -Использование переменных для управления траекторией выполнения экземпляров имитирующих процессов.
 +
 +Первый способ реализован путем задания значений параметров на вкладке **Смены** (см. главу [[ru/simulation_fca/simulation_activity/fca_resource_options#параметры_вкладки_смены| Параметры вкладки "Смены"]]) и в **Окне свойств** объекта справочника **Деятельность** (вкладка **Параметры имитации** -> вкладка {{bslink>Ресурсы|ShowOnForm?a14299f2-18ea-4c7f-aa99-4efad0c49e5c;p=faad0e1f-9a5f-4f6e-b45a-480550cdcdfa,sp=76da4747-4142-47ea-8ea9-38da1ab0075c,o=Param}}, см. главу [[ru/simulation_fca/simulation_activity/resources_process]]).
 +
 +Для реализации двух оставшихся способов используется следующий механизм: аналитик объявляет переменную у объекта справочника, а затем во время имитации движок имитации по заданным аналитиком данным создает экземпляр(ы) переменной. \\
 +Переменные делятся на два типа: глобальные и локальные. При проведении имитации глобальная переменная создается в единственном экземпляре для всех экземпляров имитирующих процессов и существует в течение всей имитации. В случае с локальными переменными, во время имитации создается множество экземпляров локальной переменной - по одному для каждого экземпляра имитирующего процесса, и экземпляр локальной переменной существует, пока существует экземпляр соответствующего имитирующего процесса.\\ 
 +Изменение значений экземпляра переменной происходит по правилам, заданным аналитиком на вкладке {{bslink>Действия с переменными|ShowOnForm?a14299f2-18ea-4c7f-aa99-4efad0c49e5c;p=faad0e1f-9a5f-4f6e-b45a-480550cdcdfa,sp=4c3349d5-13f0-4396-b684-45e0fa18765d,o=Param}} объектов справочника **Деятельность** (см. главу [[ru/simulation_fca/simulation_activity/use_variables#действия_с_переменными | Действия с переменными]]).  \\
 +
 +Далее рассмотрим различные способы объявления переменных.
 +
 +===== Переменные, объявляемые для объектов справочников "Оргединицы" и "Функциональные объекты" =====
 +
 +Для объектов справочников "Оргединицы" и "Функциональные объекты" переменные объявляются аналитиком на вкладке **Переменные** (**Окно свойств** объекта справочника {{bslink>Субъекты|ShowOnForm?1792102b-f4af-4d18-b2f3-c70b38a3c282;p=c8da24e8-6fd3-4d86-b69a-8499b399d9c3,sp=a065bf88-682f-4367-8f8c-b9eff9d1f48b,o=Param}} или  {{bslink>Функциональные объекты|ShowOnForm?4bd8e404-e521-49a4-a62b-72d2a7d08b83;p=01a2b7c3-72f9-4c78-9575-930ae53384fb,sp=586d4ea7-26d2-4c62-a0e3-5cbf5fff710f,o=Param}} -> вкладка **Параметры имитации**) (//Рис.1//). 
 +
 + 
 +[{{ ru/simulation_fca/stages_simulation_fca/use_variables/autot_use_variables_067.png?nolink |Рисунок  1. Объявление переменной для объекта справочника "Оргединицы" или "Функциональные объекты"}}]
 +\\
 +
 +Стартовое значение переменной может быть задано в виде константы, случайной величины или значения другой переменной (//Рис.2//).
 +
 + 
 +[{{ ru/simulation_fca/stages_simulation_fca/use_variables/autot_use_variables_068.png?nolink |Рисунок 2. Задание стартового значения переменной}}]
 +
 +\\
 +
 +Если стартовое значение переменной должно быть представлено в виде константы, оно задается в параметре "Значение" (//Рис.2//).
 +
 +Если стартовое значение переменной должно быть представлено в виде закона распределения, оно задается в параметре "Случайная величина" (//Рис.2//). В открывшемся окне выбирается закон распределения и заполняются необходимые параметры этого закона. На //Рис.3// представлен пример задания закона распределения стартового значения переменной.
 +
 + 
 +[{{ ru/simulation_fca/stages_simulation_fca/use_variables/autot_use_variables_070.png?nolink |Рисунок 3. Задание стартового значения переменной в виде закона распределения}}]
 +
 +\\
 +
 +Если в качестве стартового значения переменной необходимо подставить значение другой переменной, используется параметр "Переменная" (//Рис.2//). При нажатии на кнопку {{common/3dot.png?nolink}} открывается **Окно справочника** "Переменные имитации" ({{bslink>Главное меню → Анализ процессов → Переменные имитации|ShowRibbonPageOrItem?a0d2b11c-e589-4e95-b15e-f90662ea28fd;60431888-12e2-4900-b5ca-c690804ab919:Item}}) (//Рис.4//). 
 +
 +\\
 +Параметр {{bslink>Тип ресурса|ShowOnForm?4bd8e404-e521-49a4-a62b-72d2a7d08b83;p=01a2b7c3-72f9-4c78-9575-930ae53384fb,sp=b48f755a-28ec-4162-80bd-69354ab88256,o=Param}} группы параметров **Материальный ресурс** (//Рис.1//) определяет количество и область видимости экземпляров переменных, создаваемых во время имитации:
 +
 +<startTableBox>
 +^  **Тип ресурса**  ^  **Количество экземпляров и область видимости**  ^
 +| Глобальный | Создается один экземпляр переменной. \\ Область видимости - экземпляры всех имитирующих процессов и операций. |
 +| Локальный | Создается множество экземпляров переменной. \\ Область видимости - экземпляр имитирующего процесса, при выполнении экземпляров имитирующих операций которого с экземпляром переменной совершаются действия, но не экземпляры его имитирующих подпроцессов. |
 +<endTableBox|Таблица 2. Описание зависимости количества экземпляров переменной и области их видимости от типа ресурса>
 +
 +\\
 +На основании этих данных во время имитации движок имитации создает экземпляр глобальной или экземпляры локальной переменной.
 +
 +==== Системные переменные модели материального ресурса ====
 +Для модели материального ресурса может быть объявлена системная переменная **Количество**. Переменная **Количество** объявляется на вкладке **Переменные** (**Окно свойств** объекта справочника {{bslink>Функциональные объекты|ShowOnForm?4bd8e404-e521-49a4-a62b-72d2a7d08b83;p=01a2b7c3-72f9-4c78-9575-930ae53384fb,sp=586d4ea7-26d2-4c62-a0e3-5cbf5fff710f,o=Param}} или {{bslink>Оргединицы|ShowOnForm?1792102b-f4af-4d18-b2f3-c70b38a3c282;p=c8da24e8-6fd3-4d86-b69a-8499b399d9c3,sp=a065bf88-682f-4367-8f8c-b9eff9d1f48b,o=Param}} -> вкладка **Параметры имитации**) путем нажатия на гиперссылку **Создать системные переменные материального ресурса**. Значения параметров "Стартовое значение" и "Нижняя граница" для этой переменной по умолчанию устанавливаются равными 0, при необходимости, эти значения можно изменить.
 +
 +Для системной переменной "Количество", объявленной у объекта справочника "Оргединицы" или "Функциональные объекты", во время имитации уменьшение и увеличение значения экземпляра (значений экземпляров) происходит автоматически. Изменение значения (значений) происходит при выполнении экземпляров имитирующих операций, в рамках которых используются имитирующие материальные ресурсы или производятся имитирующие продукты на заданное в параметре "Количество" значение (см. главы [[ru/simulation_fca/simulation_activity/resources_process]] и [[ru/simulation_fca/simulation_activity/products_process]]). \\ Дополнительные действия по изменению значения экземпляра (значений экземпляров) этой переменной также могут совершаться в соответствии с правилами, заданными аналитиком на вкладке **Действия с переменными** объекта справочника "Деятельность" (//Рис.6//). 
 +\\
 +Параметр "Тип ресурса" группы параметров **Материальный ресурс** (//Рис.1//) определяет количество и область видимости экземпляров переменной "Количество", создаваемых во время имитации (//Табл.3//).
 +
 +<startTableBox>
 +^  **Тип ресурса**  ^  **Количество экземпляров и область видимости**  ^
 +| Глобальный | Во время имитации для всех экземпляров имитирующих процессов создается общий запас имитирующего материального ресурса, который потребляется всеми экземплярами всех имитирующих процессов. \\ Глобальный тип выбирается для модели материального ресурса, если необходимо смоделировать конкуренцию между экземплярами операций разных процессов за ограниченное количество материального ресурса. Примером модели глобального материального ресурса может служить объект справочника "Функциональные объекты" - "Бензин". Если необходимо смоделировать конкуренцию между экземплярами операций за ограниченное количество бензина, то для модели данного ресурса следует выбрать тип ресурса "Глобальный". |
 +| Локальный | Во время имитации для каждого экземпляра имитирующего процесса создается свой запас имитирующего материального ресурса, который потребляется только в рамках одного экземпляра имитирующего процесса. \\ Локальный тип выбирается, если нет необходимости моделировать конкуренцию между экземплярами операций разных процессов за ограниченное количество материального ресурса. Примером модели локального материального ресурса может служить объект справочника "Функциональные объекты" - "Лист бумаги". Если нет необходимости моделировать конкуренцию между экземплярами операций разных процессов за листки бумаги, то для модели данного ресурса следует выбрать тип ресурса "Локальный". |
 +<endTableBox|Таблица 3. Описание зависимости количества экземпляров переменной "Количество" и области их видимости от типа ресурса>
 +
 +Вне зависимости от того, объявил или нет аналитик системную переменную "Количество" для объекта справочника "Оргединицы" или "Функциональные объекты" на вкладке **Переменные** (//Рис.1//), во время имитации для соответствующего имитирующего материального ресурса и/или продукта экземпляр(ы) переменной с наименованием "Количество" будет создан (будут созданы) автоматически. Это делается для обеспечения возможности наблюдать за изменением динамики потребления имитирующих ресурсов и производства имитирующих продуктов. При этом экземпляр(ы) переменной "Количество" создается (создаются) со стартовым значением, равным нулю, и не имеет (не имеют) ограничений на принимаемые значения. Это значит, что в процессе имитации не будет производиться проверка на ограничения значений данного экземпляра (экземпляров) переменной. Если необходимо, чтобы стартовое значение экземпляра (экземпляров) переменной было отличным от нуля, или же необходимо задать ограничения на принимаемые значения, аналитик должен явно объявить системную переменную "Количество" на вкладке **Переменные** объекта справочника "Оргединицы" или "Функциональные объекты" (//Рис.1//). 
 +
 +
 +
 +==== Системные переменные модели временного ресурса ====
 +Для модели временного ресурса могут быть объявлены системные переменные "Количество экземпляров", "Количество свободных экземпляров", "Количество занятых экземпляров". Переменные объявляются на вкладке **Переменные** (**Окно свойств** объекта справочника "Функциональные объекты" или "Оргединицы" -> вкладка **Параметры имитации**) путем нажатия на гиперссылку **Создать системные переменные временного ресурса**.
 +
 +Рассматриваемые переменные всегда являются глобальными вне зависимости от значения параметра "Тип ресурса" (**Окно свойств** объекта справочника "Функциональные объекты" или "Оргединицы" -> вкладка **Параметры имитации** -> группа параметров **Материальный ресурс**).
 +
 +Значения параметра "Стартовое значение" для этих переменных устанавливаются равными 0. Во время имитации изменение стартовых значений экземпляров переменных "Количество экземпляров", "Количество свободных экземпляров" и "Количество занятых экземпляров" происходит автоматически. Изменение значений происходит в соответствии с графиком работы экземпляров имитирующего ресурса, а также при старте и окончании выполнения экземпляров имитирующих операций, в рамках которых участвуют экземпляры имитирующего временного ресурса, на заданное в параметре "Количество" значение (см. главу [[ru/simulation_fca/simulation_activity/resources_process]]). \\ 
 +
 +Системные переменные, объявленные для моделей временных ресурсов, используются для управления траекторией выполнения экземпляров имитирующих процессов: объявленные переменные используются для задания логических условий в точках ветвлений (см. главу [[ru/simulation_fca/simulation_activity/description_processes/description_flow/branchpoint_conditions#задание_условий | Задание условий]]).
 +
 +===== Переменные, объявляемые для объектов справочника "Деятельность" =====
 +Для объектов справочника "Деятельность" переменные объявляются аналитиком на вкладке **Переменные** (//Рис.5//). На основании этих данных во время имитации движок имитации создает экземпляры локальной переменной. Область видимости экземпляра переменной - экземпляр процесса и экземпляры всех имитирующих подпроцессов всех уровней.
 +
 + 
 +[{{ ru/simulation_fca/stages_simulation_fca/use_variables/autot_use_variables_220.png?nolink |Рисунок 5. Задание переменной для объекта справочника "Деятельность"}}]
 +
 +\\
 +
 +В отличие от переменных, объявляемых для объектов справочников "Функциональные объекты" и "Оргединицы", для переменных, объявляемых для объектов справочника "Деятельность", не задаются верхняя и нижняя границы.
 +===== Системные переменные и переменные, объявляемые в разделе "Переменные глобальные и системные" =====
 +В разделе **Переменные глобальные и системные** справочника **Переменные имитации** ({{bslink>Главное меню → Анализ процессов → Переменные имитации|ShowRibbonPageOrItem?a0d2b11c-e589-4e95-b15e-f90662ea28fd;60431888-12e2-4900-b5ca-c690804ab919:Item}}) по умолчанию объявлены системные переменные. Дополнительно здесь также могут быть объявлены пользовательские глобальные переменные. Все они могут быть использованы для управления ходом выполнения экземпляров имитирующих процессов. 
 +
 +  *Системные переменные //Текущее время// и //Текущая дата// являются глобальными. Переменные не могут быть модифицированы аналитиком.
 +
 +  *Системные переменные //Текущая длительность процесса// и //Текущая стоимость процесса// являются локальными. Область видимости экземпляра такой переменной - экземпляр имитирующего процесса. Переменные не могут быть модифицированы аналитиком. 
 +
 +  *Любые другие переменные, объявляемые аналитиком в этом разделе, считаются глобальными и доступными как для чтения, так и для модификации в любом месте имитации. Для этих переменных не задаются верхняя и нижняя границы. 
 +
 +===== Сводная таблица по способам объявления глобальных и локальных переменных =====
 +
 +
 +Ниже приведена сводная таблица по способам объявления глобальных и локальных переменных (//Табл.4//).
 +
 +\\
 +
 +<startTableBox>
 +^    ^  Место объявления переменной  ^^^ 
 +^ ::: ^ Объекты справочника "Деятельность" ^ Объекты справочника "Оргединицы" или "Функциональные объекты" ^ Справочник "Переменные имитации"/\\ раздел "Переменные глобальные и системные" ^ 
 +| **Глобальные** | Не поддерживается | Поддерживается.\\ Параметр "Тип ресурса" должен иметь значение "Глобальный"\\ (**Окно свойств** объекта справочника -> вкладка\\ **Параметры имитации** -> группа параметров **Материальный ресурс**)\\ либо\\ должны быть объявлены системные переменные\\ для модели временного ресурса | Поддерживается.\\ Также доступны системные переменные:\\ //Текущее время//, //Текущая дата//. |
 +| **Локальные** | Поддерживается.\\ __Область видимости экземпляра переменной__ -\\ экземпляр имитирующего процесса и экземпляры\\ имитирующих подпроцессов всех уровней.  | Поддерживается.\\ Параметр "Тип ресурса" должен иметь значение "Локальный"\\ (**Окно свойств** объекта справочника -> вкладка\\ **Параметры имитации** -> группа параметров **Материальный ресурс**).\\ __Область видимости экземпляра переменной__ - экземпляр\\ имитирующего процесса, при выполнении экземпляров имитирующих\\ операций которого с экземпляром переменной совершаются действия,\\ но не экземпляры его имитирующих подпроцессов.  | Не поддерживается.\\ Доступны системные переменные:\\ //Текущая длительность процесса//,\\ //Текущая стоимость процесса//.\\ __Область видимости экземпляра переменной__ -\\ экземпляр имитирующего процесса. |   
 +<endTableBox|  Таблица 4. Способы объявления глобальных и локальных переменных>
 +
 +
 +\\
 +
 +
 +
 +===== Действия с переменными =====
 +
 +Во время выполнения экземпляров имитирующих операций с экземпляром переменной совершаются действия, в результате которых его стартовое значение изменяется. Действия, которые необходимо совершить с экземпляром переменной во время имитации, задаются аналитиком на вкладке **Действия с переменными** (**Окно свойств** объекта справочника "Деятельность" -> вкладка **Параметры имитации**) (//Рис.6//).
 +
 + 
 +[{{ ru/simulation_fca/stages_simulation_fca/use_variables/autot_use_variables_076.png?nolink |Рисунок 6. Вкладка **Действия с переменными**}}]
 +
 +\\
 +
 +Тип переменной определяет перечень операторов, которыми можно воспользоваться для совершения действия с экземпляром переменной (//Табл.6//).
 +
 +\\
 +
 +<startTableBox>
 +
 +^  **Тип**  ^  **Используемые операторы**  ^
 +| Целый | (= ), (+), (-), %%(*%%), %%(/%%). |
 +| Вещественный | (= ), (+), (-), %%(*%%), %%(/%%). |
 +| Строка | (= ), (+). |
 +| Логика | (= ), (+), %%(*%%). |
 +| Дата | (= ), (+), (-). |
 +| Время | (= ), (+), (-). |
 +| Длительность | (= ), (+), (-). |
 +<endTableBox|Таблица 6. Операторы, используемые для совершения действий с экземплярами переменных>
 +
 +
 +\\
 +
 +===== Пример использования переменных для управления ходом выполнения экземпляра имитирующего процесса =====
 +
 +Моделируется деятельность по обработке партии деталей. Каждый день в 9 утра поступает партия деталей на обработку (количество деталей в партии: 10-15 шт.). При обработке детали с вероятность 20% может возникнуть брак, и деталь будет отправлена на повторную обработку. Количество экземпляров операции "Обработка детали", таким образом, носит случайный характер и, в общем случае, больше, чем количество деталей в партии. После обработки всех деталей задание закрывается (//Рис.7//).
 +
 + 
 +[{{ ru/simulation_fca/stages_simulation_fca/use_variables/lang_use_variables_224.png?nolink |Рисунок 7. Диаграмма процесса «Обработка партии деталей»}}]
 +
 +\\
 +
 +1. Зададим правила возникновения экземпляров имитирующего стартового события "Поступила партия деталей" (//Рис.8// и //Рис.9//). 
 +
 + 
 +[{{ ru/simulation_fca/stages_simulation_fca/use_variables/autot_use_variables_221.png?nolink |Рисунок 8. Настройки правил возникновения экземпляров стартового события}}]
 +
 + 
 +[{{ ru/simulation_fca/stages_simulation_fca/use_variables/autot_use_variables_223.png?nolink |Рисунок 9. Настройки интервала возникновения экземпляров стартового события}}]
 +
 +\\
 +
 +2. Создадим объект в справочнике "Функциональные объекты" с наименованием "Партия деталей". Для данного объекта справочника объявим переменную "Количество деталей" (//Рис.10//).
 +
 + 
 +[{{ ru/simulation_fca/stages_simulation_fca/use_variables/autot_use_variables_225.png?nolink |Рисунок 10. Объявление переменной у объекта "Партия деталей"}}]
 +
 +\\
 +Обратите внимание, что значение параметра "Тип ресурса" в группе параметров **Материальный ресурс** - "Локальный". Это значит, что для каждого экземпляра имитирующего процесса будет создана своя партия деталей.
 +
 +3. Зададим параметры вкладки **Действия с переменными** объекта "Обработка детали" справочника "Деятельность(//Рис.11//). 
 +
 + 
 +[{{ ru/simulation_fca/stages_simulation_fca/use_variables/autot_use_variables_226.png?nolink |Рисунок 11. Параметры вкладки **Действия с переменными** объекта "Обработка детали" справочника "Деятельность"}}]
 +
 +\\
 +
 +4. Зададим параметры вкладки **Действия с переменными** объекта "Оформление брака" справочника "Деятельность(//Рис.12//). 
 +
 + 
 +[{{ ru/simulation_fca/stages_simulation_fca/use_variables/autot_use_variables_227.png?nolink |Рисунок 12. Параметры вкладки **Действия с переменными** объекта "Оформление брака" справочника "Деятельность"}}]
 +
 +\\
 +
 +
 +5. Зададим вероятность возникновения брака (//Рис.13//). 
 +
 + 
 +[{{ ru/simulation_fca/stages_simulation_fca/use_variables/autot_use_variables_228.png?nolink |Рисунок 13. Параметры стрелки "Брак"}}]
 +
 +\\
 +
 +6. Зададим вероятность того, что брак не возникнет (//Рис.14//). 
 +
 + 
 +[{{ ru/simulation_fca/stages_simulation_fca/use_variables/autot_use_variables_229.png?nolink |Рисунок 14. Параметры стрелки "Не брак"}}]
 +
 +\\
 +
 +7. Зададим условия возникновения экземпляра события "Обработаны все детали". Для этого зададим параметры стрелки, ведущей к фигуре события "Обработаны все детали" (//Рис.15//). 
 +
 + 
 +[{{ ru/simulation_fca/stages_simulation_fca/use_variables/autot_use_variables_230.png?nolink |Рисунок 15. Параметры стрелки, ведущей к фигуре события "Обработаны все детали"}}]
 +
 +\\
 +
 +Таким образом, мы смоделировали управление ходом выполнения экземпляра имитирующего процесса "Обработка партии деталей" в зависимости от значения переменной "Количество деталей".
 +
 +
 +
 +
 +[<contextnavigator>]
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +{(rater>id=ru_simulation_fca_simulation_activity_use_variables|name=Использование переменных для моделирования временных и логических связей между экземплярами объектов|type=vote|trace=ip|headline=off)}
Driven by DokuWiki