Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Программа модели. ; Модель изготовления деталей
; Модель изготовления деталей. Обратная задача ; Задание исходных данных Tn_ EQU 35; Среднее время между поступлениями заготовок T1 EQU 30; Среднее время выполнения 1-й операции, мин T2 EQU 25; Среднее время выполнения 2-й операции, мин T3 EQU 35; Среднее время выполнения 3-й операции, мин To3 EQU 6; Среднеквадратическое отклонение времени выполнения 3-й операции, мин Tk1 EQU 4; Среднее время контроля после 1-й операции, мин Tk2 EQU 5; Среднее время контроля после 2-й операции, мин Tk3 EQU 15; Среднее время контроля после 3-й операции, мин Tok3 EQU 2; Среднеквадратическое отклонение времени контроля после 3-й операции, мин Tk EQU 8; Среднее время окончательного контроля, мин q1_ EQU.12; Доля брака после 1-й операции q2_ EQU.15; Доля брака после 2-й операции q3_ EQU.10; Доля брака после 3-й операции q4_ EQU.80; Доля окончательного брака Det EQU 4; Количество деталей, которые нужно изготовить ; Описание функции времени подготовки заготовок для детали Pod FUNCTION RN10,D6 .05,10/.18,14/.34,21/.56,22/.85,28/1,25 ; Сегмент имитации изготовления деталей GENERATE (Exponential(1,0,Tn_)); Источник заготовок ; Подготовка заготовок для деталей QUEUE Pod; Встать в очередь SEIZE Pod; Начать подготовку заготовки DEPART Pod; Покинуть очередь ADVANCE (Exponential(34,0,FN$Pod)); Имитация подготовки RELEASE Pod; Закончить подготовку заготовки ; Имитация выполнения 1-й операции DCount ASSIGN 1,1; Код 1 в Р1-деталь проходит первый раз ASSIGN 2,1; Код 1 в Р2-признак 1-й операции Oper1 QUEUE P2; Встать в очередь SEIZE Konveer1; Начать первую операцию 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 (Normal(20,(T3#K1),(To3#K1))); Имитация 3-й операции RELEASE Konveer3; Закончить 3-ю операцию ADVANCE (Normal(20,Tk3,Tok3)); Контроль 3-й операции TRANSFER q3_,,Sboi; Отправить брак на пункт контроля TRANSFER,Met2; Готовые детали ; Сегмент имитации работы пункта контроля Sboi QUEUE Kont; Встать в очередь на пункт контроля SEIZE Kontr; Занять пункт контроля DEPART Kont; Покинуть очередь на пункт контроля ADVANCE (Exponential(23,0,Tk)); Окончательный контроль RELEASE Kontr; Освободить пункт контроля TRANSFER q4_,,EndOper; Отправить в окончательный брак TEST E P1,1,EndOper; Если второй раз, то в окончательный брак ASSIGN 1,2; Код 2 в Р1-деталь проходит второй раз Met1 TRANSFER,(Met1+P2) TRANSFER,Oper1; На повторное выполнение 1-й операции TRANSFER,Oper2; На повторное выполнение 2-й операции TRANSFER,Oper3; На повторное выполнение 3-й операции EndOper TERMINATE; Счет брака ; Сегмент завершения моделирования и расчета результатов Met2 TEST L X$Prog,TG1,Met3; Если условие выполняется, то SAVEVALUE Prog,TG1; X$Prog=TG1 счетчику завершений SAVEVALUE NDet,0; Обнуление X$NDet Met3 SAVEVALUE NDet+,1; Счет количества готовых деталей TEST E X$NDet,Det,Ter1; Если готово Det деталей, зафиксировать один прогон TEST E TG1,1,Met4; Если содержимое счетчика завершений равно 1, то расчет результатов моделирования SAVEVALUE Brak,(INT(N$EndOper/X$Prog)); Количество забракованных деталей, шт. SAVEVALUE DoljaBrak,(X$Brak/(X$Brak+Det)); Общая доля брака SAVEVALUE DoljaDet,(Det/(X$Brak+Det)); Доля готовых деталей SAVEVALUE AC3,(AC1-X$AC2) SAVEVALUE TDet,((X$AC3/X$Prog)/60); Среднее время изготовления Det деталей, час SAVEVALUE SDet,((X$TDet/N_)#60); Среднее время изготовления одной детали, мин SAVEVALUE AC2,AC1 SAVEVALUE X$Prog,0 Met4 SAVEVALUE NDet,0; Обнуление X$NDet TERMINATE 1; Вычитание из счетчика завершений 1 Ter1 TERMINATE; Вывод вспомогательных транзактов Программа модели имеет достаточно подробный комментарий. Поэтому остановимся только на особенностях сегмента завершения моделирования и расчета результатов. Поскольку результатом моделирования является оценка математического ожидания времени TDet изготовления Det деталей, то в ее вычислении используется абсолютное модельное время АС1 (системный числовой атрибут). При проведении дисперсионного анализа встроенный генератор эксперимента имеет две команды START, а между ними - команда RESET. Команда RESET не влияет на абсолютное модельное время. Поэтому АС1 будет суммой абсолютного модельного времени предварительных прогонов до установившегося режима, обозначим его АС2, и абсолютного модельного времени, пусть АС3, основных прогонов, в ходе которых собирается интересующая нас статистика. Нам для расчетов нужно АС3. Для его получения в программу введены строки: SAVEVALUE AC3,(AC1-X$AC2) SAVEVALUE AC2,AC1 После предварительных прогонов в ячейке X$Prog сохранится указанное в первой команде START количество прогонов. Эта ячейка используется в первой строке рассматриваемого сегмента и ее содержимое должно быть равным нулю. В противном случае модель будет работать неверно. Для предотвращения ошибки введена строка: SAVEVALUE X$Prog,0 Date: 2015-07-17; view: 464; Нарушение авторских прав |