Программа модели

В программе модели те же сегменты (п. 4.1.6), только вместо сегмента задания времени моделирования и расчета результатов включен сегмент организации завершения моделирования и расчета результатов моделирования.

Один прогон наблюдения завершается подготовкой N_ изделий, т. е. поступлением их на склад. Поэтому соответствующие этим изделиям транзакты не выводятся сразу из модели, как в прямой задаче, а поступают в сегмент организации завершения моделирования и расчета результатов моделирования.

В блоке

Met10 SAVEVALUE NIzd+,1

подсчитывается количество подготовленных изделий. Если это количество равно N_, т. е. выполняется условие

TEST E X$NIzd,N_,Term5

фиксируется один прогон.

С целью сокращения машинного времени расчет результатов моделирования производится один раз по накопленной статистике за все прогоны. Программа, как и в п. 3.2.2, построена так, чтобы расчет результатов моделирования не требовал ее изменения при различном числе прогонов, задаваемом пользователем.

Ниже приведена программа обратной задачи.

; Модель функционирования предприятия. Обратная задача; Замена имен МКУ номерамиKontr1 EQU 1; Замена имени МКУ Kontr1 номеромKontr2 EQU 2; Замена имени МКУ Kontr2 номеромKontr3 EQU 3; Замена имени МКУ Kontr3 номеромKontr4 EQU 4; Замена имени МКУ Kontr4 номером; Задание исходных данныхq11_ EQU 0.02; Доля забракованных блоков на постах n11q12_ EQU 0.03; Доля забракованных блоков на постах n12q13_ EQU 0.04; Доля забракованных блоков на постах n13q14_ EQU 0.06; Доля забракованных блоков на постах n14q2_ EQU 0.05; Доля брака изделий на пункте выходного контроляq4_ EQU 0.03; Доля забракованных изделий приемкойTipBl EQU 4; Максимальное количество типов блоков, изготавливаемых цехамиT1_ EQU 19; Средний интервал выпуска блоков типа 1T01_ EQU 6; Стандартное отклонение времени выпуска блоков типа 1T2_ EQU 11; Средний интервал выпуска блоков типа 2T3_ EQU 15; Средний интервал выпуска блоков типа 3T03_ EQU 8; Стандартное отклонение времени выпуска блоков типа 3T4_ EQU 18; Средний интервал выпуска блоков типа 4T11_ EQU 12; Среднее время контроля на постах n11T011_ EQU 6; Стандартное отклонение времени контроля на постах n11T12_ EQU 16; Среднее время контроля на постах n12 T13_ EQU 21; Среднее время контроля на постах n13 T14_ EQU 17; Среднее время контроля на постах n14 Tc_ EQU 22; Среднее время сборки изделияT0c_ EQU 2; Стандартное отклонение времени сборки изделияTp_ EQU 15; Среднее время проверки изделияTpr_ EQU 18; Среднее время приема изделияT0pr_ EQU 2; Стандартное отклонение времени приема изделияN_ EQU 122; Количество изделий, которое необходимо подготовить; Задание количества пунктов сборки и контроляSbor STORAGE 2; Количество пунктов сборкиKontr1 STORAGE 3; Количество постов n11 Kontr2 STORAGE 2; Количество постов n12 Kontr3 STORAGE 2; Количество постов n13 Kontr4 STORAGE 2; Количество постов n14 Kontsb STORAGE 2; Количество пунктов сборки; Сегмент имитации работы цеха 1 без постов контроля GENERATE T1_,T01_; Источник блоков типа 1 ASSIGN 1,1; Код 1 в параметре 1 транзакта - тип 1 блока ASSIGN 2,((T11_-T011_)+2#T011_#(RN27/1000)); Розыгрыш времени контроля и запись в Р2 ASSIGN 9,q11_; Запись в Р9 доли брака блоков после постов контроля TRANSFER,Met1; Сегмент имитации работы цеха 2 без постов контроля GENERATE (Exponential(32,0,T2_)); Источник блоков типа 2 ASSIGN 1,2; Код 2 в параметре 1 транзакта - тип 2 блока ASSIGN 2,(Exponential(23,0,T12_)); Розыгрыш времени контроля и запись в Р2 ASSIGN 9,q12_; Запись в Р9 доли брака блоков после постов контроля TRANSFER,Met1; Сегмент имитации работы цеха 3 без постов контроля GENERATE T3_,T03_; Источник блоков типа 3 ASSIGN 1,3; Код 3 в параметре 1 транзакта - тип 3 блока ASSIGN 2,(Exponential(22,0,T13_)); Розыгрыш времени контроля и запись в Р2 ASSIGN 9,q13_; Запись в Р9 доли брака блоков после постов контроля TRANSFER,Met1; Сегмент имитации работы цеха 4 без постов контроля GENERATE (Exponential(32,0,T4_)); Источник блоков типа 4 ASSIGN 1,4; Код 4 в параметре 1 транзакта - тип 4 блока ASSIGN 2,(Exponential(22,0,T14_)); Розыгрыш времени контроля блока и запись в Р2 ASSIGN 9,q14_; Запись в Р9 доли брака блоков после постов контроля; Сегмент имитации работы постов контроля блоковMet1 QUEUE P1; Встать в очередь с номером в Р1 ENTER P1; Занять МКУ с номером в Р1 DEPART P1; Покинуть очередь с номером в Р1 ADVANCE P2; Имитация контроля качества блока с временем контроля в Р2 LEAVE P1; Освободить МКУ с номером в Р1 ASSIGN 10,0; Подготовка к циклуMet21 ASSIGN 10+,1; Начало цикла по числу типов блоков TEST E P10,P1,Met21; Какой тип блока подготовлен? TRANSFER P9,,Met14; Отправить брак блоков к Met14 LINK P1,FIFO; Готовые блоки на склад с номером в Р1; Сегмент имитации сборки изделий GENERATE,,,1Met3 ASSIGN 1,0; Подготовка к циклуMet13 ASSIGN 1+,1; Начало цикла по числу типов блоков TEST L P1,TipBl,Met4; Все ли типы блоков? TEST NE CH*1,0; Есть на складе готовые блоки? UNLINK P1,Term5,1; Да TEST G P1,TipBl,Met13; Блоки всех типов есть? Если да,Met4 UNLINK P1,Met5,1; то отправить блоки на сборку TRANSFER,Met3; Вернуться для проверки наличия всех типов блоков для следующего изделияMet5 QUEUE Sbor; Занять очередь на пункты сборки ENTER Sb; Занять пункт сборки DEPART Sbor; Освободить очередь на пункт сборки ADVANCE (Normal(15,Tc_,T0c_)); Имитация сборки LEAVE Sb; Освободить пункт сборки; Cегмент имитации работы стендов выходного контроляMet9 QUEUE KSbor; Занять очередь на стенд выходного контроля ENTER KSb; Занять стенд выходного контроля DEPART KSbor; Освободить очередь на стенд выходного контроля ADVANCE (Exponential(11,0,Tp_)); Имитация работы стенда выходного контроля LEAVE KSb; Освободить стенд выходного контроля TRANSFER q2_,,Met5; Направить изделие в приемку, а брак -на замену на пункт сборки; Сегмент имитации работы приемки QUEUE Opr; Занять очередь на пункт приемки SEIZE KPr; Занять пункт приемки DEPART Opr;Освободить очередь пункта приемки ADVANCE (Normal(11,Tpr_,T0pr_)); Имитация работы приемки RELEASE KPr; Освободить пункт приемки TRANSFER q4_,,Met9; Готовые изделия - на склад; Сегмент организации завершения моделирования и расчета результатов моделирования TEST L X$Prog,TG1,Met10; Если X$Prog< содержимого счетчика завершений, то SAVEVALUE Prog,TG1; записать в X$Prog содержимое счетчика завершений - количество прогонов из TG1 SAVEVALUE NIzd,0 Met10 SAVEVALUE NIzd+,1; Счет и сохранение в ячейке NIzd количества принятых приемкой изделий TEST E X$NIzd,N_,Term5; Если принято N_изделий, зафиксировать один прогон TEST E TG1,1,Met12; Если содержимое счетчика завершений равно 1, то расчет результатов моделирования ASSIGN 1,0; Подготовка к циклу Met15 ASSIGN 1+,1; Начало цикла по числу типов блоков SAVEVALUE (10+P1),(INT(CH*1/X$Prog)); Количество готовых блоков всех типов, оставшихся на складах SAVEVALUE P1,(INT(X*1/X$Prog)); Количество забракованных блоков всех типов ASSIGN 11,(20+P1); Задание номера сохраняемой ячейки и запись его в Р11 TEST GE P1,TipBl,Met15; Все ли типы блоков для подготовки изделия имеются на складах цехов? SAVEVALUE TIzd,((AC1/X$Prog)/60); Расчет и сохранение в ячейке TIzd времени подготовки N_изделий, час SAVEVALUE STIzd,((X$TIzd/N_)#60); Расчет и сохранение в ячейке STIzd среднего времени подготовки одного изделия, мин Met12 SAVEVALUE NIzd,0; Обнуление X$NIzd - подготовка к очередному прогону TERMINATE 1 Met14 SAVEVALUE P1+,1; Количество брака блоков всех типов TERMINATE Term5 TERMINATE; Вывод вспомогательных транзактов

Отладьте модель. Запустите модель, указав в команде START 1000 прогонов. По окончании моделирования в отчете, фрагмент которого приведен ниже,

SAVEVALUE RETRY VALUETIZD 0 39.438STIZD 0 19.396

получите, что среднее время подготовки N_=122 изделий составляет 40 ч (39,438) при среднем времени подготовки одного изделия 20 мин (19,396). Как видно, эти результаты согласуются с исходными данными и результатами решения прямой задачи.

Результаты решения обратной задачи можно проверить. Найдите в самом начале отчета

START TIME END TIME BLOCKS FACILITIES STORAGES0.000 2366280.440 74 1 6

Разделите END TIME (абсолютное модельное время АС1) на количество прогонов и минут в одном часе, т. е. на 60 000, получите?40 ч.

Теперь в программе модели укажите командой EQU количество изделий N_=244:

N_ EQU 244

Выполните моделирование, указав, как и в предыдущем случае, в команде START 1000 прогонов. Из отчета

SAVEVALUE RETRY VALUE
TIZD   78.863
STIZD   19.393

видно, что время подготовки, как и число изделий, увеличивается в два раза при неизменном времени изготовления одного изделия.

Сделайте выводы: влияет ли стохастичность, как и при решении прямой задачи, на результаты моделирования.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: