Пример моделирования деятельности
Исходные данные:
- Существует заправочная станция для заправки легковых автомобилей бензином марки А-92.
- На заправочной станции есть емкость для хранения бензина объемом 5 куб. м.
- В среднем машины заправляются на 20 литров.
- Известно распределение количества обращающихся клиентов в сутки и известно, что в сутки на заправочную станцию приезжает 600 машин.
- Известно, что как только в хранилище бензина остается менее 1000 литров, необходимо начать подготовку к наполнению хранилища бензином. Процесс подготовки занимает 1 час и ровно через час новая порция бензина в размере 4000 литров залита в емкость для хранения бензина и готова к дальнейшей раздаче.
Задача: смоделировать эту деятельность.
Создание модели деятельности
Создаем два объекта в справочнике «Функциональные объекты»: «Бензин» и «Заправочная колонка». В Окне свойств этих объектов на вкладке Параметры имитации задаем параметры в соответствии с Рис.1 и Рис.2.


Создаем диаграмму процесса «Обслуживание клиента» (Рис.3):

Создаем диаграмму процесса «Пополнение хранилища бензина» (Рис.4):

В итоге, должна получиться следующая структура дерева объектов справочника «Деятельность» в Навигаторе (Рис.5):

Моделируем правила возникновения экземпляров стартового события «Приехал клиент». Для этого заполняем параметры на вкладке Правила возникновения (Окно свойств объекта справочника «События» → вкладка Параметры имитации) в соответствии с Рис.6:

Настройки Интервала возникновения экземпляров стартового события будут одинаковыми для всех трех правил возникновения экземпляров стартового события (Рис.7):

Распределение моментов времени возникновения экземпляров стартового события зададим законом распределения.
Закон распределения для первого правила возникновения экземпляров стартового события представлен на Рис.8:

Закон распределения для второго правила возникновения экземпляров стартового события представлен на Рис.9:

Закон распределения для третьего правила возникновения экземпляров стартового события представлен на Рис.10:

В итоге, при нажатии на гиперссылку Смоделировать моменты возникновения событий, должна получиться следующая гистограмма (Рис.11):

Задаем параметры в Окне свойств объекта «Заправка машины» справочника «Деятельность» в соответствии с Рис.12:

Задаем параметры стрелки, следующей после оператора «Исключающее ИЛИ» (Рис.13). Вторая стрелка, следующая после оператора «Исключающее ИЛИ», имеет тип «Поток управления по умолчанию», ее параметры не заполняются.

Задаем параметры в Окне свойств объекта «Заливка бензина в хранилище» справочника «Деятельность» в соответствии с Рис.14:

Запускаем имитацию двух моделей процессов «Обслуживание клиента» и «Пополнение хранилища бензина». В Окне свойств имитации задаем параметры в соответствии с Рис.15:

Анализ результатов имитации
Анализ данных имитации начнем еще во время ее проведения. В окне Ход имитации будем наблюдать за изменением значений экземпляра системной переменной «Количество» имитирующего материального ресурса «Бензин» на вкладке Переменные (Рис.16):

По окончании имитации проанализируем полученное в результате значение экземпляра переменной «Количество», оно оказалось довольно большим.
Для того чтобы выяснить причины такого большого значения экземпляра переменной «Количество», перейдем на вкладку Процессы и проанализируем количество экземпляров имитирующей операции «Заливка бензина в хранилище» (Рис.17). Очевидно, что количество запущенных экземпляров данной имитирующей операции также слишком велико.

Закроем окно Ход имитации и продолжим анализ результатов имитации в Окне свойств имитации. Для этого нажмем гиперссылку Статистика по переменным и проанализируем динамику изменения значений экземпляра переменной «Количество» имитирующего материального ресурса «Бензин» (Рис.18):

Что может быть причиной столь частого запуска экземпляров имитирующей операции «Заливка бензина в хранилище»?
Мы не до конца продумали условия перехода к следующему шагу экземпляра имитирующего процесса «Обслуживание клиента» в точке ветвления (см. Рис.3). По заданным нами условиями получается, что как только значение экземпляра переменной «Количество» имитирующего материального ресурса «Бензин» становится меньше 1000, то каждый новый экземпляр имитирующего процесса «Обслуживание клиента» в точке ветвления запускает выполнение экземпляра имитирующего процесса «Пополнение хранилища бензином». А так быть не должно, это логическая ошибка. Необходимо задать условия таким образом, чтобы запуск экземпляра имитирующего процесса «Пополнение хранилища бензином» осуществлялся только один раз по достижении экземпляром переменной «Количество» значения 1000. И в течение времени выполнения экземпляра имитирующего процесса «Пополнение хранилища бензином» новые экземпляры этого имитирующего процесса не запускались.
Изменение модели по результатам имитации
Внесем изменения в модель по результатам имитации.
Объявим новую переменную «Флажок с требованием наполнить хранилище» для объекта «Бензин» справочника «Материальные объекты» (Рис.19):

В Окне свойств объекта «Сообщение о необходимости пополнить хранилище бензина» справочника «Деятельность» на вкладке Действия с переменными укажем действие, которое необходимо совершить с экземпляром переменной «Флажок с требованием наполнить хранилище» во время имитации (Рис.20):

В Окне свойств объекта «Заливка бензина в хранилище» справочника «Деятельность» на вкладке Действия с переменными также зададим действие, которое во время имитации необходимо совершить с экземпляром переменной «Флажок с требованием наполнить хранилище» (Рис.21):

В Окне свойств стрелки, следующей за шлюзом на диаграмме процесса «Обслуживание клиента», добавим еще одно условие на вкладке Условия (Рис.22):

Таким образом, мы модифицировали модель. Теперь как только значение экземпляра переменной «Количество» имитирующего материального ресурса «Бензин» становится меньше 1000 литров, запускается на выполнение экземпляр имитирующего процесса «Пополнение хранилища бензина» и меняется значение экземпляра переменной «Флажок с требованием наполнить хранилище». Новые экземпляры имитирующего процесса «Пополнение хранилища бензина» не будут запускаться до тех пор, пока значение экземпляра переменной «Флажок с требованием наполнить хранилище» не вернется в начальное состояние и не станет равным 0.
Запустим имитацию измененной модели, оставив без изменения настройки в Окне свойств имитации.
Анализ результатов имитации измененной модели
Во время имитации проанализируем изменение значений экземпляра системной переменной «Количество» имитирующего материального ресурса «Бензин» в окне Ход имитации на вкладке Переменные (Рис.23):

Откроем вкладку Процессы и проанализируем количество запущенных экземпляров имитирующего процесса «Пополнение хранилища бензина». Теперь количество запущенных экземпляров данного имитирующего процесса гораздо меньше (Рис.24):

Динамику изменения значений экземпляра переменной «Количество» имитирующего материального ресурса «Бензин» проанализируем в Окне свойств имитации по гиперссылке Статистика по переменным (Рис.25):

В окне Статистика переменной видно, что «лишние» экземпляры имитирующего процесса «Пополнение хранилища бензина» не запускаются на выполнение. Подробно выполнение запущенных экземпляров имитирующего процесса «Пополнение хранилища бензина» посмотрим в окне Хронология выполнения экземпляров процесса (Рис.26):

В окне Статистика переменной также видно, что некоторые экземпляры имитирующей операции «Заправка машины», пытались изменить значение экземпляра переменной «Количество», но не смогли по причине того, что значение экземпляра переменной достигло нижнего допустимого предела (Рис.27):

Проанализируем хронологию выполнения одного из таких экземпляров имитирующей операции, например, экземпляра под номером 201 (Рис.28). Количество экземпляров имитирующего процесса «Обслуживание клиента» и экземпляров имитирующей операции «Заправка машины» совпадает, поэтому рассматриваемый нами экземпляр имитирующей операции имеет такой же номер, как и экземпляр имитирующего процесса, номер которого мы видим в окне «Статистика по переменным» в параметре «Экземпляр процесса» - 201.

Необходимо помнить, что порядок событий, которые происходят при выполнении экземпляра имитирующей операции, определяется следующими временными интервалами и событиями:
- Время технологического ожидания,
- Время ожидания имитирующих материальных ресурсов,
- Совершение действий с экземпляром переменной (в начале выполнения экземпляра имитирующей операции),
- Время ожидания имитирующих временных ресурсов,
- Время выполнения,
- Совершение действий с экземпляром переменной (в конце выполнения экземпляра имитирующей операции).
Далее на примере статистики по имитирующему процессу «Обслуживание клиента» проанализируем полученные статистические данные (Рис.29):

Откроем гистограмму распределения длительностей экземпляров имитирующего процесса «Обслуживание клиента» (Рис.30):

Откроем гистограмму распределения времен, проведенных экземплярами имитирующего процесса «Обслуживание клиента» в очереди к имитирующему временному ресурсу «Заправочная колонка» (Рис.31):

Откроем гистограмму распределения времен, проведенных экземплярами имитирующего процесса «Обслуживание клиента» в ожидании имитирующего материального ресурса «Бензин» (Рис.32):
