Опубликован: 07.11.2014 | Доступ: свободный | Студентов: 442 / 37 | Длительность: 15:17:00
ISBN: 978-5-9556-0161-8
Тема: САПР
Лекция 3:

Модель процесса изготовления в цехе деталей

< Лекция 2 || Лекция 3: 12345 || Лекция 4 >

Добавление элементов для проведения исследований

Для удобства считывания статистических данных о коэффициентах использования (загрузки) пункта подготовки заготовок и пунктов выполнения операций 1…3 дополним модель элементами Переменная и необходимыми java-кодами.

  1. Из Презентации перетащите элемент Скругленный прямоугольник на диаграмму Kontrol и разместите как на Рис. 2.14. Можно было бы всё это сделать на диаграмме Main, но тогда бы пришлось каждый раз после проведения эксперимента для считывания результатов переключаться между областями просмотра.
  2. Перетащите элемент text, разместите и введите в поле Текст: Коэффициенты использования.
  3. Из библиотеки Основная перетащите элемент Переменная. Разместите и дайте имя коэфИспПодЗаг, как на Рис. 2.14. Оставьте тип double.
  4. Перетащите ещё один элемент Переменная и дайте ему имя коэфИспВыпОп1. Оставьте тип double.
  5. Скопируйте элемент с именем коэфИспВыпОп1. Вставьте ещё два таких элемента, которым системой будут присвоены имена коэфИспВыпОп2 и коэфИспВыпОп3 (см. Рис. 2.14). Тип будет double.
  6. Далее при вводе в свойства соответствующих объектов нужных кодов следует также на странице Специфические установливать флажки Включить сбор статистики.
    Добавлены элементы для вывода коэффициентов использования

    увеличить изображение
    Рис. 2.14. Добавлены элементы для вывода коэффициентов использования
  7. Выделите объект подЗаг. В поле Действия При выходе добавьте код:
    на_контроль.коэфИспПодЗаг=
    подЗаг.statsUtilization.mean();
  8. Выделите объект выпОп1. В поле Действия При выходе введите код:
    на_контроль.коэфИспВыпОп1=
    выпОп1.statsUtilization.mean()
  9. Выделите объект выпОп2. В поле Действия При выходе введите код:
    на_контроль.коэфИспВыпОп2=
    выпОп2.statsUtilization.mean()
  10. Выделите объект выпОп3. В поле Действия При выходе введите код:
    на_контроль.коэфИспВыпОп3=
    выпОп3.statsUtilization.mean()
  11. Время подготовки заготовки и время выполнения операций даны в мин. Возьмём 1 ед. мод. вр. = 1мин.

    Рассчитаем количество прогонов, которые нужно выполнить в каждом наблюдении. При этом примем относительное количество готовых деталей как ожидаемую вероятность. Поскольку она заранее не известна, то расчёт проведём для худшего случая:

    N=t^2_\alpha \cdot \frac{\sigma ^2}{\varepsilon ^2}=2,58^2\cdot \frac{0,5(1-0,5)}{0,01^2}=6,656\frac{0,25}{0,0001}\approx 66641.
  12. Перейдите на диаграмму Main. В панели Проекты выделите Simulation:Main.
  13. На странице Модельное время установите Виртуальное время (максимальная скорость). В поле Остановить: из выпадающего списка выберите В заданное время.
  14. В поле Конечное время введите 7987680 (480*16641 = 7987680).
  15. В AnyLogic начальное число генератора случайных чисел устанавливается один раз перед запуском модели. На странице Случайность установите Фиксированное начальное число (воспроизводимые прогоны). В поле Начальное число введите 23.

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

Мы провели эксперименты, увеличив в AnyLogic модельное время в 16641 раз (в GPSS World в каждом эксперименте выполнено 16641 прогонов).

Всего выполнено 8 экспериментов, результаты которых сведены в Табл. 2.6. Первый эксперимент соответствует постановке задачи. Результаты первого эксперимента представлены на Рис. 2.15 и в Табл. 2.6.

В каждом следующем эксперименте параметры, установленные в предыдущем эксперименте, либо остаются неизменными, либо изменяются. Указываются только новые значения параметров в строке, предшествующей результатам следующего эксперимента. Например, во втором эксперименте уменьшено среднее время поступления заготовок с T_n = 35 до T_n = 30, а остальные параметры остались неизменными (Табл. 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.

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

увеличить изображение
Рис. 2.15. Вариант результатов моделирования
Таблица 2.6. Показатели функционирования цеха
Показатели 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
\Delta_{11} доляГотДет 0,002
\Delta_{12} доляБрДет 0,002
\Delta_{13} срВрПодгДет 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
\Delta_{21} доляГотДет 0,002
\Delta_{22} доляБрДет 0,002
\Delta_{23} срВрПодгДет 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
\Delta_{31} доляГотДет 0,001
\Delta_{32} доляБрДет 0,001
\Delta_{33} срВрПодгДет 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
\Delta_{41} доляГотДет 0,001
\Delta_{42} доляБрДет 0,001
\Delta_{43} срВрПодгДет 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
\Delta_{51} доляГотДет 0,001
\Delta_{52} доляБрДет 0,001
\Delta_{53} срВрПодгДет 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
\Delta_{61} доляБрДет 0,002
\Delta_{62} доляГотДет 0,002
\Delta_{63} срВрПодгДет 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
\Delta_{71} доляГотДет 0,001
\Delta_{72} доляБрДет 0,001
\Delta_{73} срВрПодгДет 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
\Delta_{81} доляГотДет 0,001
\Delta_{82} доляБрДет 0,001
\Delta_{83} срВрПодгДет 0,063

Но уже по второму эксперименту видно, что коэфИспВыпОп1=0,879, а коэфИспВыпОп3=0,803, то есть приближаются к 1. Поэтому изменение других параметров ничего не даст. Нужно уменьшить среднее время выполнения операций 1 и 3. Третий эксперимент это подтвердил.

В экспериментах 5…7 коэффициент загрузки пункта подготовки заготовок равен 1. Изменение доли брака лишь немного увеличил искомые показатели. Поэтому дальнейший рост годных деталей и среднего времени подготовки одной детали возможен был лишь при сокращении средних времён подготовки заготовок в зависимости от их типов.

< Лекция 2 || Лекция 3: 12345 || Лекция 4 >
Игорь Маникин
Игорь Маникин

Коллеги, спасибо за очень информативный и полезный курс. Прошёл три лекции. Столкнулся с проблемой, что обе модели не могут закончить расчёт по причине ограничения бесплатной версии "создано максимально допустимое число динамически создаваемых агентов (50000)". По скриншотам Лекции 2 видно, что да, модель создает гораздо больше 50000 агентов. В принципе, мне то и диплом не особо нужен. Но хотелось бы выполнить практические работы. Нет ли возможности откорректировать эту проблему? Или может я чего не так делаю?

Еще раз спасибо за прекрасный курс!

Артём Нагайцев
Артём Нагайцев

Выдает ошибку "entity cannot be resolved to a variable" при попытке запуска. В чем может быть причина? Ошибка в строках

entity.time_vxod=time(); 

time_obrabotki.add(time()-entity.time_vxod);