Коллеги, спасибо за очень информативный и полезный курс. Прошёл три лекции. Столкнулся с проблемой, что обе модели не могут закончить расчёт по причине ограничения бесплатной версии "создано максимально допустимое число динамически создаваемых агентов (50000)". По скриншотам Лекции 2 видно, что да, модель создает гораздо больше 50000 агентов. В принципе, мне то и диплом не особо нужен. Но хотелось бы выполнить практические работы. Нет ли возможности откорректировать эту проблему? Или может я чего не так делаю? Еще раз спасибо за прекрасный курс! |
Модель процесса изготовления в цехе деталей
Добавление элементов для проведения исследований
Для удобства считывания статистических данных о коэффициентах использования (загрузки) пункта подготовки заготовок и пунктов выполнения операций 1…3 дополним модель элементами Переменная и необходимыми java-кодами.
- Из Презентации перетащите элемент Скругленный прямоугольник на диаграмму Kontrol и разместите как на Рис. 2.14. Можно было бы всё это сделать на диаграмме Main, но тогда бы пришлось каждый раз после проведения эксперимента для считывания результатов переключаться между областями просмотра.
- Перетащите элемент text, разместите и введите в поле Текст: Коэффициенты использования.
- Из библиотеки Основная перетащите элемент Переменная. Разместите и дайте имя коэфИспПодЗаг, как на Рис. 2.14. Оставьте тип double.
- Перетащите ещё один элемент Переменная и дайте ему имя коэфИспВыпОп1. Оставьте тип double.
- Скопируйте элемент с именем коэфИспВыпОп1. Вставьте ещё два таких элемента, которым системой будут присвоены имена коэфИспВыпОп2 и коэфИспВыпОп3 (см. Рис. 2.14). Тип будет double.
- Далее при вводе в свойства соответствующих объектов нужных кодов следует также на странице Специфические установливать флажки Включить сбор статистики.
- Выделите объект подЗаг. В поле Действия При выходе добавьте код:
на_контроль.коэфИспПодЗаг= подЗаг.statsUtilization.mean();
- Выделите объект выпОп1. В поле Действия При выходе введите код:
на_контроль.коэфИспВыпОп1= выпОп1.statsUtilization.mean()
- Выделите объект выпОп2. В поле Действия При выходе введите код:
на_контроль.коэфИспВыпОп2= выпОп2.statsUtilization.mean()
- Выделите объект выпОп3. В поле Действия При выходе введите код:
на_контроль.коэфИспВыпОп3= выпОп3.statsUtilization.mean()
- Время подготовки заготовки и время выполнения операций даны в мин. Возьмём 1 ед. мод. вр. = 1мин.
Рассчитаем количество прогонов, которые нужно выполнить в каждом наблюдении. При этом примем относительное количество готовых деталей как ожидаемую вероятность. Поскольку она заранее не известна, то расчёт проведём для худшего случая:
- Перейдите на диаграмму Main. В панели Проекты выделите Simulation:Main.
- На странице Модельное время установите Виртуальное время (максимальная скорость). В поле Остановить: из выпадающего списка выберите В заданное время.
- В поле Конечное время введите 7987680 (480*16641 = 7987680).
- В AnyLogic начальное число генератора случайных чисел устанавливается один раз перед запуском модели. На странице Случайность установите Фиксированное начальное число (воспроизводимые прогоны). В поле Начальное число введите 23.
Интерпретация результатов моделирования
Мы провели эксперименты, увеличив в AnyLogic модельное время в 16641 раз (в GPSS World в каждом эксперименте выполнено 16641 прогонов).
Всего выполнено 8 экспериментов, результаты которых сведены в Табл. 2.6. Первый эксперимент соответствует постановке задачи. Результаты первого эксперимента представлены на Рис. 2.15 и в Табл. 2.6.
В каждом следующем эксперименте параметры, установленные в предыдущем эксперименте, либо остаются неизменными, либо изменяются. Указываются только новые значения параметров в строке, предшествующей результатам следующего эксперимента. Например, во втором эксперименте уменьшено среднее время поступления заготовок с до , а остальные параметры остались неизменными (Табл. 2.6).
В экспериментах изменялись значения шести параметров. Кроме того, в восьмом эксперименте были уменьшены средние времена подготовки вариантов заготовок (значения элементов одномерного массива).
Сравнительный анализ результатов экспериментов свидетельствует об адекватности GPSS World и AnyLogic7, так как их различия несущественны.
Например, относительная доля готовых изделий и относительная доля забракованных отличаются на 0 … 0,002, а среднее время изготовления одной детали - на 0,023 … 0,238.
Коэффиценты использования пункта подготовки заготовок и пунктов выполнения операций 1…3 в некоторых экспериментах или одинаковы, или различаются на 0,001 … 0,006.
По результатам экспериментов (Табл. 2.6) можно сделать выводы об эффективности работы цеха по изготовлению деталей и обнаружить "узкие" места.
Изменение параметров в каждом следующем эксперименте преследовало цель увеличения количества годных деталей и сокращения времени подготовки одной детали. Если в первом эксперименте готовых деталей было 9,916 (9,885), а среднее время изготовления одной детали 48,407 (48,559), то в последнем восьмом эксперименте цель была достигнута - 21,220 (21,161) и 22,620 (22,683) соответственно. При этом доля брака уменьшилась с 0,277 до 0,116.
Показатели | GPSS World | AnyLogic6 | AnyLogic7 |
---|---|---|---|
1) согласно постановке задачи | |||
готДетали | 9,885 | 9,882 | 9,916 |
доляГотДет | 0,721 | 0,723 | 0,723 |
бракДетали | 3,821 | 3,778 | 3,804 |
доляБрДет | 0,279 | 0,277 | 0,277 |
срВрПодгДет | 48,559 | 48,573 | 48,407 |
коэфИспПодЗаг | 0,639 | 0,638 | 0,64 |
коэфИспВыпОп1 | 0,879 | 0,877 | 0,879 |
коэфИспВыпОп2 | 0,662 | 0,658 | 0,664 |
коэфИспВыпОп3 | 0,801 | 0,801 | 0,803 |
доляГотДет | 0,002 | ||
доляБрДет | 0,002 | ||
срВрПодгДет | 0,152 | ||
2) Tn = 30 | |||
готДетали | 11,284 | 11,333 | 11,294 |
доляГотДет | 0,722 | 0,723 | 0,724 |
бракДетали | 4,338 | 4,343 | 4,312 |
доляБрДет | 0,278 | 0,277 | 0,276 |
срВрПодгДет | 42,538 | 42,353 | 42,5 |
коэфИспПодЗаг | 0,749 | 0,746 | 0,746 |
коэфИспВыпОп1 | 1 | 1 | 1 |
коэфИспВыпОп2 | 0,752 | 0,762 | 0,755 |
коэфИспВыпОп3 | 0,915 | 0,916 | 0,916 |
доляГотДет | 0,002 | ||
доляБрДет | 0,002 | ||
срВрПодгДет | 0,038 | ||
3) T1 = 25, T3 = 30 | |||
готДетали | 11,552 | 11,555 | 11,558 |
доляГотДет | 0,722 | 0,724 | 0,723 |
бракДетали | 4,459 | 4,414 | 4,437 |
доляБрДет | 0,278 | 0,276 | 0,277 |
срВрПодгДет | 41,553 | 41,542 | 41,53 |
коэфИспПодЗаг | 0,748 | 0,746 | 0,748 |
коэфИспВыпОп1 | 0,852 | 0,852 | 0,852 |
коэфИспВыпОп2 | 0,774 | 0,77 | 0,77 |
коэфИспВыпОп3 | 0,802 | 0,801 | 0,802 |
доляГотДет | 0,001 | ||
доляБрДет | 0,001 | ||
срВрПодгДет | 0,023 | ||
4) Tn = 25, T1 = 20, T2 = 15, T3 = 25 | |||
готДетали | 13,845 | 13,9 | 13,882 |
доляГотДет | 0,723 | 0,724 | 0,724 |
бракДетали | 5,314 | 5,305 | 5,303 |
доляБрДет | 0,277 | 0,276 | 0,276 |
срВрПодгДет | 34,669 | 34,532 | 34,577 |
коэфИспПодЗаг | 0,895 | 0,899 | 0,897 |
коэфИспВыпОп1 | 0,817 | 0,822 | 0,818 |
коэфИспВыпОп2 | 0,555 | 0,558 | 0,557 |
коэфИспВыпОп3 | 0,801 | 0,803 | 0,801 |
доляГотДет | 0,001 | ||
доляБрДет | 0,001 | ||
срВрПодгДет | 0,112 | ||
5) Tn = 20, T3 = 20 | |||
готДетали | 15,453 | 15,499 | 15,572 |
доляГотДет | 0,723 | 0,724 | 0,724 |
бракДетали | 5,932 | 5,915 | 5,925 |
доляБрДет | 0,277 | 0,276 | 0,276 |
срВрПодгДет | 31,063 | 30,969 | 30,825 |
коэфИспПодЗаг | 1 | 1 | 1 |
коэфИспВыпОп1 | 0,911 | 0,913 | 0,918 |
коэфИспВыпОп2 | 0,619 | 0,621 | 0,623 |
коэфИспВыпОп3 | 0,716 | 0,718 | 0,72 |
доляГотДет | 0,001 | ||
доляБрДет | 0,001 | ||
срВрПодгДет | 0,238 | ||
6) q3 = 0,05 | |||
готДетали | 16,2 | 16,206 | 16,219 |
доляГотДет | 0,755 | 0,757 | 0,757 |
бракДетали | 5,246 | 5,192 | 5,202 |
доляБрДет | 0,245 | 0,243 | 0,243 |
срВрПодгДет | 29,629 | 29,619 | 29,595 |
коэфИспПодЗаг | 1 | 1 | 1 |
коэфИспВыпОп1 | 0,916 | 0,911 | 0,913 |
коэфИспВыпОп2 | 0,622 | 0,62 | 0,621 |
коэфИспВыпОп3 | 0,71 | 0,711 | 0,711 |
доляБрДет | 0,002 | ||
доляГотДет | 0,002 | ||
срВрПодгДет | 0,034 | ||
7) q1= 0,05, q2 = 0,05 | |||
готДетали | 18,903 | 18,856 | 18,991 |
доляГотДет | 0,883 | 0,883 | 0,884 |
бракДетали | 2,504 | 2,491 | 2,491 |
доляБрДет | 0,117 | 0,117 | 0,116 |
срВрПодгДет | 25,393 | 25,456 | 25,275 |
коэфИспПодЗаг | 1 | 1 | 1 |
коэфИспВыпОп1 | 0,901 | 0,896 | 0,907 |
коэфИспВыпОп2 | 0,65 | 0,646 | 0,651 |
коэфИспВыпОп3 | 0,828 | 0,829 | 0,833 |
доляГотДет | 0,001 | ||
доляБрДет | 0,001 | ||
срВрПодгДет | 0,018 | ||
8) T1=15, срВрПодгЗаг={7,11,18,19,23,22,0,0,0,0} | |||
готДетали | 21,161 | 21,25 | 21,22 |
доляГотДет | 0,883 | 0,884 | 0,884 |
бракДетали | 2,801 | 2,785 | 2,795 |
доляБрДет | 0,117 | 0,116 | 0,116 |
срВрПодгДет | 22,683 | 22,588 | 22,62 |
коэфИспПодЗаг | 0,939 | 0,94 | 0,938 |
коэфИспВыпОп1 | 0,756 | 0,76 | 0,759 |
коэфИспВыпОп2 | 0,725 | 0,729 | 0,728 |
коэфИспВыпОп3 | 0,929 | 0,932 | 0,931 |
доляГотДет | 0,001 | ||
доляБрДет | 0,001 | ||
срВрПодгДет | 0,063 |
Но уже по второму эксперименту видно, что коэфИспВыпОп1=0,879, а коэфИспВыпОп3=0,803, то есть приближаются к 1. Поэтому изменение других параметров ничего не даст. Нужно уменьшить среднее время выполнения операций 1 и 3. Третий эксперимент это подтвердил.
В экспериментах 5…7 коэффициент загрузки пункта подготовки заготовок равен 1. Изменение доли брака лишь немного увеличил искомые показатели. Поэтому дальнейший рост годных деталей и среднего времени подготовки одной детали возможен был лишь при сокращении средних времён подготовки заготовок в зависимости от их типов.