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

Программа модели построена в соответствии с блок-диаграммой (см. рис. 3). В ней, кроме, как уже отмечалось, раскрытия методов использования ОКУ, МКУ и списков пользователя демонстрируется применение номеров МКУ вместо их имен.

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

Обратите внимание, что в программе присвоение номеров именам МКУ указывается в самом начале и только потом, не обязательно следом, определение МКУ командой STORAGE. Если вы построите программу так, что поменяете порядок: вначале определение МКУ командой STORAGE, а потом - присвоение командойEQU номеров именам МКУ, то на этапе выполнения программы модели возникнет ошибка: "Обращение к несуществующей памяти". На этапе создания объекта "Процесс моделирования" ошибка изменение этого порядка не обнаруживается.

; Модель функционирования предприятия. Прямая задача; Замена имен МКУ номерамиKontr1 EQU 1Kontr2 EQU 2Kontr3 EQU 3Kontr4 EQU 4; Задание исходных данных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; Максимальное количество типов блоковVrMod EQU 2400; Время моделирования, 1 ед. мод. вр. = 1 мин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; Среднее время контроля на постах n12T13_ EQU 21; Среднее время контроля на постах n13T14_ EQU 17; Среднее время контроля на постах n14Tc_ EQU 22; Среднее время сборки изделияT0c_ EQU 2; Стандартное отклонение времени сборки изделияTp_ EQU 15; Среднее время проверки изделияTpr_ EQU 18; Среднее время приема изделияT0pr_ EQU 2; Стандартное отклонение времени приема изделия; Коэффициенты изменения параметров законов распределенияK1_ EQU 1; Коэффициент изменения T1_ и T01_K2_ EQU 1; Коэффициент изменения T2_ и T02_K3_ EQU 1; Коэффициент изменения T3_ и T03_K4_ EQU 1; Коэффициент изменения T4_ и T04_Kc_ EQU 1; Коэффициент изменения Tс_ и T0с_Kp_ EQU 1; Коэффициент изменения Tp_ и T0p_Kpr_ EQU 1; Коэффициент изменения Tpr_ и T0pr_; Задание количества пунктов сборки и постов контроляSbor STORAGE 2; Количество пунктов сборкиKontr1 STORAGE 3; Количество постов n11Kontr2 STORAGE 2; Количество постов n12Kontr3 STORAGE 2; Количество постов n13Kontr4 STORAGE 2; Количество постов n14Kontsb STORAGE 2; Количество стендов выходного контроля; Описание арифметических выраженийKolIzd VARIABLE INT(N$Term7/X$prog); Количество готовых изделийKolGotBl VARIABLE (INT(CH*1/X$Prog)); Количество готовых блоков всех типов, оставшихся на складахKolBrBl VARIABLE (INT(X*1/X$Prog)); Количество забракованных блоков всех типовTIzd VARIABLE (AC1/X$Prog)/X$KolIzd; Среднее время подготовки одного изделия;Сегмент имитации работы цеха 1 без постов контроля GENERATE (T1_#K1_),(T01_#K1_) ASSIGN 1,1; Код 1 в параметре 1 транзакта - тип 1 блока ASSIGN 2,((T11_-T01_)+2#T011_#(RN27/1000)); Розыгрыш времени контроля и запись в Р2 ASSIGN 9,q11_; Запись в Р9 доли брака блоков после постов контроля TRANSFER,Met1; Сегмент имитации работы цеха 2 без постов контроля GENERATE (Exponential(32,0,(T2_#K2_))) ASSIGN 1,2; Код 2 в параметре 1 транзакта - тип 2 блока ASSIGN 2,(Exponential(23,0,T12_)); Розыгрыш времени контроля и запись в Р2 ASSIGN 9,q12_; Запись в Р9 доли брака блоков после постов контроля TRANSFER,Met1; Сегмент имитации работы цеха 3 без постов контроля GENERATE (T3_#K3_),(T03_#K3_) 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_#K4_))) 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,,,1 Met3 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_#Kc_),(T0c_#Kc_))); Имитация сборки LEAVE Sb; Освободить пункт сборки; Сегмент имитации работы стендов выходного контроляMet9 QUEUE KSbor; Занять очередь на стенд выходного контроля ENTER KSb; Занять стенд выходного контроля DEPART KSbor; Освободить очередь на стенд выходного контроля ADVANCE (Exponential(11,0,(Tp_#Kp_))); Имитация работы стенда выходного контроля LEAVE KSb; Освободить стенд выходного контроля TRANSFER q2_,,Met5; Направить в приемку, а брак - для замены на пункт сборки; Сегмент имитации работы приемки QUEUE Opr; Занять очередь на пункт приемки SEIZE KPr; Занять пункт приемки DEPART Opr; Освободить очередь пункта приемки ADVANCE (Normal(11,(Tpr_#Kpr_),(T0pr_#Kpr_))); Имитация работы приемки RELEASE KPr; Освободить пункт приемки TRANSFER q4_,,Met9; Готовые изделия - на склад; Сегмент счета блоков и изделийTerm7 TERMINATE; Количество готовых изделийMet14 SAVEVALUE P1+,1; Количество брака блоков всех типов TERMINATE Term5 TERMINATE; Задание времени моделирования и расчет результатов моделирования GENERATE VrMod; Задание времени моделирования TEST L X$Prog,TG1,Met10; Если X$Prog< содержимого счетчика завершений, то SAVEVALUE Prog,TG1; записать в X$Prog содержимое счетчика завершенийMet10 TEST E TG1,1,Met12; Если содержимое счетчика завершений равно 1, то расчет результатов моделирования SAVEVALUE KolIzd,V$KolIzd; Количество готовых изделий ASSIGN 1,0; Подготовка к циклуMet15 ASSIGN 1+,1; Начало цикла по числу типов блоков SAVEVALUE (10+P1),V$KolGotBl; Количество готовых блоков всех типов, оставшихся на складах SAVEVALUE P1,V$KolBrBl; Количество забракованных блоков всех типов ASSIGN 11,(20+P1); Задание номера Х и запись его в Р11 TEST GE P1,TipBl,Met15; Все ли типы блоков? SAVEVALUE TIzd,V$TIzd; Среднее время подготовки одного изделия Met12 TERMINATE 1

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

SAVEVALUE RETRY VALUEKOLIZD 0 122.000TIZD 0 19.512

найдите, что за 40 часов подготовлено 122 изделия, а среднее время подготовки одного изделия? 20 мин (19,51 мин).

После изучения материала главы 7 вернитесь к данной задаче и проведите два отсеивающих эксперимента (дисперсионных анализа). Для первого эксперимента используйте данные, приведенные втабл. 2, а для второго - в табл. 3.

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


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



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