Опубликован: 15.02.2013 | Уровень: для всех | Доступ: платный
Лекция 3:

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

Модель в GPSS World

Решение прямой задачи

Постановка задачи

Изготовление в цехе детали начинается через случайное время T_п. Выполнению операций предшествует подготовка. Длительность подготовки зависит от качества заготовки, из которой будет сделана деталь. Всего различных видов заготовок n_1. Время подготовки подчинено экспоненциальному закону. Частота появления различных заготовок и средние значения времени их подготовки заданы табл. 2.1 дискретного распределения:

Таблица 2.1.
Частота 0,05 0,13 0,16 0,22 0,29 0,15
Среднее время 10 14 21 22 28 25

Для изготовления детали последовательно выполняются n операций со средними временамиT_1, T_2,…, T_n соответственно. После каждой операции в течение времениT_{x1}, T_{x2},…, T_{xn} следует контроль. Время выполнения операций и контроля - случайное. Контроль не проходят q_1, q_2,…, q_n \;\% деталей соответственно.

Забракованные детали поступают на пункт окончательного контроля и проходят на нем проверку в течение времени, распределённого по экспоненциальному закону со средним значениемT_x. В результате из общего количества не прошедших контроль деталей q_n+1\;\% идут в брак, а оставшиеся (1-q_{n+1})\% деталей подлежат повторному выполнению операций, после которых они не прошли контроль. Если деталь во второй раз не проходит контроль, она окончательно бракуется.

Исходные данные
n_1=6; Exponential(T_n)=Exponential(30); q_1=12\;\%, q_2=15\;\%;
n=3; Exponential(T_1)=Exponential(30); q_3=10\;\%, q_4=80\;\%;
Exponential(T_2)=Exponential(25); Exponential(T_3)=Exponential(35);
Exponential(T_{k1})=Exponential(4); Exponential(T_{k2})=Exponential(5);
Exponential(T_{k3})=Exponential(15); Exponential(T_k)=Exponential(8).
Задание на исследование

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

Модель должна также позволять определять относительное количество готовых и забракованных деталей, среднее время изготовления одной детали.

Результаты моделирования необходимо получить с точностью \varepsilon = 0,01 и доверительной вероятностью \alpha=0,99.

Уяснение задачи на исследование

Процесс изготовления в цехе деталей представляет собой процесс, протекающий в многофазной разомкнутой системе массового обслуживания с ожиданием (Рис. 2.1). Есть также признаки замкнутой системы - потоки брака для повторной обработки.

Цех как система массового обслуживания

увеличить изображение
Рис. 2.1. Цех как система массового обслуживания

Представим, что подготовка заготовки и операции 1, 2 и 3 производятся на станках - одноканальных устройствах (ОКУ) 1, 2, 3 и 4 соответственно. Пункт окончательного контроля можно также представить ОКУ. Необходимые для их имитации средства GPSS приведены на рис. 2.1.

Время подготовки заготовки и время выполнения операций даны в мин. Возьмём 1 ед. мод. вр. = 1мин.

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

N=t^{2}_{\alpha}\cdot\frac{\sigma^2}{\varepsilon^2}=2,58^2\cdot\frac{0,5\cdot(1-0,5)}{0,01^2}=6,656\cdot\frac{0,25}{0,0001}=16641

Программа модели прямой задачи приведена ниже.

Программа модели
;Модель процесса изготовления деталей. Прямая задача
;  Задание исходных данных
TimeMod  EQU  480; Время моделирования, 1 ед. мод. вр. = 1 мин
;      Среднее время
Tn_  EQU  35    ; между поступлениями заготовок
T1  EQU  30    ; выполнения 1-й операции, мин
T2  EQU  25    ; выполнения 2-й операции, мин
T3  EQU  35    ; выполнения 3-й операции, мин
Tk1  EQU  4    ; контроля после 1-й операции, мин
Tk2  EQU  5    ; контроля после 2-й операции, мин
Tk3  EQU  15    ; контроля после 3-й операции, мин
Tk  EQU  8    ; окончательного контроля, мин
q1_  EQU  .12  ; Доля брака после 1-й операции
q2_  EQU  .15  ; Доля брака после 2-й операции
q3_  EQU  .10  ; Доля брака после 3-й операции
q4_  EQU  .80  ; Доля окончательного брака
;  Описание функции времени подготовки заготовок
Pod  FUNCTION  RN10,D6
.05,10/.18,14/.34,21/.56,22/.85,28/1,25
; Сегмент имитации изготовления деталей
  GENERATE  (Exponential(23,0,Tn_))   ; Источник заготовок
;  Подготовка заготовок для деталей
  QUEUE    Pod      ; Встать в очередь
  SEIZE    Pod      ; Начать подготовку заготовки
  DEPART    Pod      ; Покинуть очередь
  ADVANCE    (Exponential(34,0,FN$Pod)); Подготовка
  RELEASE    Pod  ; Закончить подготовку заготовки
;  Имитация выполнения 1-й операции
DCount  ASSIGN  1,1  ; Код 1 - проходит первый раз
  ASSIGN    2,1  ; Код 1 в Р2-признак 1-й операции
Oper1  QUEUE  P2        ; Встать в очередь
  SEIZE    Konveer1  ; Начать 1-ю операцию
  DEPART    P2        ; Покинуть очередь
  ADVANCE    (Exponential(23,0,T1)); 1-я операция
  RELEASE    Konveer1  ; Закончить 1-ю операцию
  ADVANCE    (Exponential(23,0,Tk1)); Контроль 1-й операции
  TRANSFER  q1_,,Sboi ; Брак на пункт контроля
;  Имитация выполнения 2-й операции
  ASSIGN    2,2  ; Код 2 в Р2-признак 2-й операции
Oper2  QUEUE  P2        ; Встать в очередь
  SEIZE    Konveer2  ; Начать вторую операцию
  DEPART  P2          ; Покинуть очередь
  ADVANCE  (Exponential(23,0,T2))  ; 2-я операция
  RELEASE    Konveer2  ; Закончить 2-ю операцию
  ADVANCE  (Exponential(23,0,Tk2))  ; Контроль 2-й операции
  TRANSFER  q2_,,Sboi   ; Брак на пункт контроля
;  Имитация выполнения 3-й операции
  ASSIGN    2,3  ; Код 3 в Р2-признак 3-й операции
Oper3 QUEUE    P2          ; Встать в очередь
  SEIZE    Konveer3    ; Начать третью операцию
  DEPART    P2          ; Покинуть очередь
  ADVANCE    (Exponential (23,0,T3)) ; 3-я операция
  RELEASE    Konveer3    ; Закончить 3-ю операцию
  ADVANCE    (Exponential(23,0,Tk3)); Контроль 3-й операции
  TRANSFER  q3_,,Sboi   ; Брак на пункт контроля
EndOper1  TERMINATE        ; Счёт готовых деталей
; Сегмент имитации работы пункта контроля
Sboi  TEST E  P1,1,EndOper  ; Если второй раз, то в окончательный брак
  QUEUE    Kont  ; В очередь на пункт контроля
  SEIZE    Kontr    ; Занять пункт контроля
  DEPART    Kont      ; Покинуть 
  ADVANCE    (Exponential(23,0,Tk)); Окончательный контроль
  RELEASE    Kontr    ; Освободить пункт контроля
  TRANSFER  q4_,,EndOper  ; В окончательный брак
  ASSIGN    1,2        ; Код 2 в Р1-деталь пойдёт второй раз
Met1  TRANSFER  ,(Met1+P2)
  TRANSFER  ,Oper1    ; Повторно на 1-ю операцию
  TRANSFER  ,Oper2    ; Повторно на 2-ю операцию
  TRANSFER  ,Oper3    ; Повторно на 3-ю операцию
EndOper  TERMINATE    ; Счет брака
; Cегмент задания времени моделирования и расчета результатов моделирования
  GENERATE  TimeMod  ; Время моделирования
  TEST L    X$Prog,TG1,Met11  ; Если условие выполняется, то
  SAVEVALUE Prog,TG1  ;  X$Prog=TG1 содержимому счетчика завершений
Met11  TEST E   TG1,1,Met12  ; Если содержимое счетчика равно 1, то расчет результатов моделирования
  SAVEVALUE NDet,(N$EndOper1/X$Prog)  ; Количество готовых деталей, шт.
  SAVEVALUE Brak,(N$EndOper/X$Prog)  ; Количество забракованных деталей, шт.
  SAVEVALUE   DoljaBrak,(X$Brak/(X$Brak+X$NDet))  
; Общая доля брака
  SAVEVALUE   DoljaDet,(X$NDet/(X$Brak+X$NDet))  
; Доля готовых деталей
  SAVEVALUE NDet,(INT(X$NDet))    ; Количество готовых деталей (целое), шт.
  SAVEVALUE Brak,(INT(X$Brak))    ; Количество забракованных деталей (целое), шт.
  SAVEVALUE SDet,((AC1-X$AC2)/N$EndOper1)  ; Среднее время изготовления одной детали, мин
  SAVEVALUE  AC2,AC1
Met12  TERMINATE  1
  START  1000,NP    ; Число предварительных прогонов
  RESET          ; Сброс статистики 
  START  16641    ; Число основных прогонов
Замечание. В программе при обращении несколько раз к встроенному генератору экспоненциально распределённых случайных чисел взято одно и тоже начальное число 23, хотя рекомендуется брать различные начальные числа. Сделано это для чистоты эксперимента - сравнения в последующем результатов моделирования GPSS World с результатами AnyLogic.

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

Для задания исходных данных - времени подготовки заготовок - использована дискретная функция Pod. Это позволяет сократить программу по сравнению с тем, если применять команду EQU. Кроме того, упрощается событийная часть модели, так как в блоке имитации подготовки заготовок

ADVANCE    (Exponential(23,0,FN$Pod)); Имитация подготовки заготовки

достаточно указать только ссылку FN$Pod на функцию.

Коды 1 и 2, записываемые в параметр 1 транзакта, служат признаками не прохождения деталью контроля первый и второй раз соответственно. Признак 2 является основанием отправки детали в брак и исключения её из производства.

Начало сегмента задания времени моделирования и расчёта результатов моделирования построено аналогично этому же сегменту модели п. 1.1.

Для счёта количества готовых и забракованных деталей введены метки EndOper1 и EndOper соответственно. Поскольку эти количества накапливаются за все прогоны, то для получения средних значений они делятся на число прогонов X$Prog, округляются до целого процедурой INT и заносятся в сохраняемые ячейки NDet и Brak соответственно. Далее эти средние значения используются для вычисления относительных долей готовых DoljaDet и забракованных DoljaBrak деталей.

Среднее время SDet изготовления одной детали определяется как отношение абсолютного модельного времени AC1 к количеству подготовленных деталей за все прогоны, т.е. к N$EndOper1.

Это было бы правильно, если бы не было предварительных прогонов модели. Модельное время этих прогонов не должно учитываться при определении среднего времени изготовления детали. Его нужно запомнить по завершении предварительных прогонов. Для этого введена команда

SAVEVALUE  AC2,AC1  ; Время предварительных прогонов

После окончания основных прогонов производится расчёт:

SAVEVALUE SDet,((AC1-X$AC2)/N$EndOper1)  ; Среднее время изготовления одной детали, мин
Проведение исследований

Полагаем, что вы ввели программу модели, исправили ошибки и выполнили указанное количество прогонов модели. Фрагмент отчёта приведен ниже.

SAVEVALUE       RETRY        VALUE
 PROG             0      16641.000
 NDET             0          9.000
 BRAK             0          3.000
 DOLJABRAK        0          0.279
 DOLJADET         0          0.721
 SDET             0         48.559

В результате решения прямой задачи получим, что за 8 часов цехом будет изготовлено NDet = 9 деталей, относительная доля готовых деталей составит DoljaDet = 0,721, а среднее время изготовления одной детали SDet = 48,559 мин. При этом будет забраковано Brak = 3 детали, относительная доля которых составит DoljaBrak = 0,2279.

Фрагмент отчёта, если не использовать процедуру INT, т.е. не округлять до целого количество изготовленных и количество забракованных деталей:

SAVEVALUE       RETRY        VALUE
 PROG             0      16641.000
 NDET             0          9.885
 BRAK             0          3.821
 DOLJABRAK        0          0.279
 DOLJADET         0          0.721
 SDET             0         48.559

За 8 часов цехом будет изготовлено Ndet = 9,885 деталей, относительная доля готовых деталей DoljaDet = 0,721 и среднее время изготовления одной детали SDet = 48,559 мин останутся такими же. При этом будет забраковано Brak = 3,821 деталей, относительная доля которых от общего количества готовых и забракованных DoljaBrak = 0,279 также не изменится.

Замечание. Если вы вместо 1000 укажите 100 предварительных прогонов и запустите модель, то получите тот же результат.
Алексей Гроссман
Алексей Гроссман

Здравствуйте, прошел курс "Концептуальное проектирование систем в AnyLogic и GPSS World". Можно ли получить по нему сертификат? У нас в институте требуют сертификаты для создания портфолио.

Елена Блинаева
Елена Блинаева