Пример моделирования деятельности

Исходные данные:

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

Задача: смоделировать эту деятельность.


Создание модели деятельности

Создаем два объекта в справочнике "Функциональные объекты": "Бензин" и "Заправочная колонка". В Окне свойств этих объектов на вкладке Параметры имитации задаем параметры в соответствии с Рис.1 и Рис.2.

Рисунок 1. Заполненные параметры объекта "Бензин" (Окно свойств объекта → вкладка Параметры имитации)
Рисунок 2. Заполненные параметры объекта "Заправочная колонка" (Окно свойств объекта → вкладка Параметры имитации)


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

Рисунок 3. Диаграмма процесса «Обслуживание клиента»


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

Рисунок 4. Диаграмма процесса «Пополнение хранилища бензина»


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

Рисунок 5. Структура дерева процессов


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

Рисунок 6. Правила возникновения экземпляров стартового события «Приехал клиент»


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

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


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

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

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


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

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


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

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


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

Рисунок 11. Моделирование моментов возникновения экземпляров стартового события


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

Рисунок 12. Параметры объекта "Заправка машины" справочника "Деятельность" (Окно свойств → вкладка Параметры имитации)


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

Рисунок 13. Заполненные параметры стрелки (Окно свойств стрелки → вкладка Параметры имитации)


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

Рисунок 14. Параметры объекта "Заливка бензина в хранилище" справочника "Деятельность" (Окно свойств → вкладка Параметры имитации)


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

Рисунок 15. Настройка имитации


Анализ результатов имитации

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

Рисунок 16. Окно Ход имитации, вкладка Переменные


По окончании имитации проанализируем полученное в результате значение экземпляра переменной "Количество", оно оказалось довольно большим.

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

Рисунок 17. Окно Ход имитации, вкладка Процессы


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

Рисунок 18. Изменение значений экземпляра переменной "Количество" имитирующего материального ресурса "Бензин"


Что может быть причиной столь частого запуска экземпляров имитирующей операции "Заливка бензина в хранилище"?

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

Изменение модели по результатам имитации

Внесем изменения в модель по результатам имитации.

Объявим новую переменную "Флажок с требованием наполнить хранилище" для объекта "Бензин" справочника "Материальные объекты" (Рис.19):

Рисунок 19. Окно свойств объекта "Бензин" справочника "Материальные объекты", вкладка Переменные


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

Рисунок 20. Заполненные параметры вкладки Действия с переменными объекта "Сообщение о необходимости пополнить хранилище бензина" справочника "Деятельность"


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

Рисунок 21. Заполненные параметры вкладки Действия с переменными объекта "Заливка бензина в хранилище" справочника "Деятельность"


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

Рисунок 22. Заполненные параметры вкладки Условия в Окне свойств стрелки


Таким образом, мы модифицировали модель. Теперь как только значение экземпляра переменной "Количество" имитирующего материального ресурса "Бензин" становится меньше 1000 литров, запускается на выполнение экземпляр имитирующего процесса "Пополнение хранилища бензина" и меняется значение экземпляра переменной "Флажок с требованием наполнить хранилище". Новые экземпляры имитирующего процесса "Пополнение хранилища бензина" не будут запускаться до тех пор, пока значение экземпляра переменной "Флажок с требованием наполнить хранилище" не вернется в начальное состояние и не станет равным 0.

Запустим имитацию измененной модели, оставив без изменения настройки в Окне свойств имитации.

Анализ результатов имитации измененной модели

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

Рисунок 23. Окно Ход имитации, вкладка Переменные


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

Рисунок 24. Окно Ход имитации, вкладка Процессы


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

Рисунок 25. Изменение значений экземпляра переменной "Количество" имитирующего материального ресурса "Бензин"


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

Рисунок 26. Хронология выполнения экземпляров имитирующего процесса "Пополнение хранилища бензина"


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

Рисунок 27. Окно Статистика переменной, динамика изменения значений экземпляра переменной "Количество"


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

Рисунок 28. Хронология выполнения экземпляра имитирующей операции "Заправка машины" под номером 201


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

  1. Время технологического ожидания,
  2. Время ожидания имитирующих материальных ресурсов,
  3. Совершение действий с экземпляром переменной (в начале выполнения экземпляра имитирующей операции),
  4. Время ожидания имитирующих временных ресурсов,
  5. Время выполнения,
  6. Совершение действий с экземпляром переменной (в конце выполнения экземпляра имитирующей операции).


Далее на примере статистики по имитирующему процессу "Обслуживание клиента" проанализируем полученные статистические данные (Рис.29):

Рисунок 29. Окно Статистика имитирующего процесса имитирующего процесса "Обслуживание клиента"


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

Рисунок 30. Гистограмма распределения длительностей


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

Рисунок 31. Гистограмма распределения времен в очереди


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

Рисунок 32. Гистограмма распределения времен в ожидании имитирующего материального ресурса


« ПредыдущаяНа уровень вышеСледующая »
 
Driven by DokuWiki