Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.009 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию