- •0. Лекция: Введение
- •1. Лекция: Понятие модели и моделирования:
- •1.1. Общее определение модели
- •1.2. Классификация моделей и моделирования
- •1.2.1. Классификация моделей и моделирования по признаку "характер моделируемой стороны объекта"
- •1.2.2. Классификация моделей и моделирования по признаку "характер процессов, протекающих в объекте"
- •1.2.3. Классификация моделей и моделирования по признаку "способ реализации модели"
- •1.3. Этапы моделирования
- •1.4. Адекватность модели
- •1.5. Требования, предъявляемые к моделям
- •2.1. Дискретные марковские процессы
- •2.2. Моделирование по схеме непрерывных марковских процессов
- •2.3. Схема гибели и размножения
- •2.4. Элементы смо, краткая характеристика
- •2.5. Моделирование смо в классе непрерывных марковских процессов
- •2.5.1. Многоканальная смо с отказами
- •2.5.2. Многоканальная смо с ожиданием
- •2.5.3. Одноканальная смо с ограниченной очередью
- •2.5.4. Одноканальная замкнутая смо
- •2.5.5. Одноканальная смо с конечной надежностью
- •2.6. Метод динамики средних. Сущность и содержание метода
- •2.7. Принцип квазирегулярности
- •2.8. Элементарные модели боя
- •2.8.1. Модель высокоорганизованного боя
- •2.8.2. Высокоорганизованный бой с пополнением группировок
- •2.8.3. Высокоорганизованный бой с упреждением ударов
- •2.8.4. Модель боя с неполной информацией
- •2.8.5. Учет запаздывания в переносе и открытии огня
- •3. Лекция: Статистическое моделирование:
- •3.1. Сущность имитационного моделирования
- •3.2. Общая характеристика метода имитационного моделирования
- •3.3. Статистическое моделирование при решении детерминированных задач
- •3.4. Моделирование равномерно распределенной случайной величины
- •3.5. Моделирование случайной величины с произвольным законом распределения
- •3.6. Моделирование единичного события
- •3.7. Моделирование полной группы несовместных событий
- •3.8. Моделирование совместных независимых событий
- •3.8.1. Определение совместных исходов по жребию
- •3.8.2. Последовательная проверка исходов
- •3.9. Моделирование совместных зависимых событий
- •3.10. Классификация случайных процессов
- •3.11. Способы продвижения модельного времени
- •3.12. Модель противоборства двух сторон
- •3.13. Модель противоборства как процесс блуждания по решетке
- •3.14. Типовая схема имитационной модели с продвижением времени по событиям
- •3.15. Имитационная модель системы массового обслуживания
- •4. Лекция: Планирование экспериментов
- •4.1. Сущность и цели планирования эксперимента
- •4.2. Элементы стратегического планирования экспериментов
- •4.3. Стандартные планы
- •4.4. Формальный подход к сокращению общего числа прогонов
- •4.5. Элементы тактического планирования
- •4.6. Точность и количество реализаций модели при определении средних значений параметров
- •4.6.1. Определение оценки матожидания
- •4.6.2. Определение оценки дисперсии
- •4.7. Точность и количество реализаций модели при определении вероятностей исходов
- •4.8. Точность и количество реализаций модели при зависимом ряде данных
- •4.9. Проблема начальных условий
- •5. Лекция: Обработка результатов имитационного эксперимента
- •5.1. Характеристики случайных величин и процессов
- •5.2. Требования к оценкам характеристик
- •5.3. Оценка характеристик случайных величин и процессов
- •5.4. Гистограмма
- •5.4. Элементы дисперсионного анализа. Критерий Фишера
- •5.6. Критерий Вилькоксона
- •5.7. Однофакторный дисперсионный анализ
- •5.8. Выявление несущественных факторов
- •5.9. Сущность корреляционного анализа
- •5.10. Обработка результатов эксперимента на основе регрессии
- •6. Лекция: Моделирование в gpss World
- •6.1. Основы построения и принципы функционирования языка имитационного моделирования
- •6.2. Построение моделей с устройствами
- •6.2.1. Организация поступления транзактов в модель и удаления транзактов из нее
- •6.2.1.1. Поступление транзактов в модель
- •6.2.1.2. Удаление транзактов из модели и завершение моделирования
- •6.2.1.3. Изменение значений параметров транзактов
- •6.2.2. Занятие и освобождение одноканального устройства
- •6.2.3. Имитация обслуживания посредством задержки во времени
- •6.2.4. Проверка состояния одноканального устройства
- •6.2.5. Методы сбора статистики в имитационной модели
- •6.2.5.1. Регистратор очереди
- •6.2.5.1. Статистические таблицы
- •6.2.6. Методы изменения маршрутов движения транзактов в модели
- •6.2.6.1. Блок transfer
- •6.2.6.2. Блок displace
- •6.2.7. Прерывание функционирования одноканального устройства
- •6.2.7.1. Прерывание в приоритетном режиме
- •6.2.7.2. Прерывание в режиме "захвата"
- •6.2.7.3. Проверка состояния одноканального устройства, функционирующего в приоритетном режиме
- •6.2.8. Недоступность одноканального устройства
- •6.2.8.1. Перевод в недоступное состояние и восстановление доступности
- •6.2.8.2. Проверка состояний недоступности и доступности одноканального устройства
- •6.2.9. Сокращение машинного времени и изменение дисциплин обслуживания методом применения списков пользователя
- •6.2.9.1. Ввод транзактов в список пользователя в безусловном режиме
- •6.2.9.2. Вывод транзактов из списка пользователя в условном режиме
- •6.2.10. Построение моделей систем с многоканальными устройствами и переключателями
- •6.2.10.1. Занятие многоканального устройства и его освобождение
- •6.2.10.2. Перевод многоканального устройства в недоступное состояние и восстановление его доступности
- •6.2.10.3. Проверка состояния многоканального устройства
- •6.2.10.4. Моделирование переключателей
- •6.3. Решение прямой и обратной задач в системе моделирования
- •6.3.1. Постановка прямой и обратной задач
- •6.3.2. Решение прямой задачи
- •6.3.2.1. Блок-диаграмма модели
- •6.3.2.2. Программа модели
- •6.3.2.3. Ввод текста программы модели, исправление ошибок и проведение моделирования
- •6.3.3. Решение обратной задачи
- •6.4. Пример построения моделей с оку, мку и списками пользователя
- •6.4.1. Модель процесса изготовления изделий на предприятии. Прямая задача
- •6.4.1.1. Постановка задача
- •6.4.1.2. Исходные данные
- •6.4.1.3. Задание на исследование
- •6.4.1.4. Уяснение задачи на исследование
- •6.4.1.5. Блок-диаграмма модели
- •6.4.1.6. Программа модели
- •6.4.2. Модель процесса изготовления изделий на предприятии. Обратная задача
- •6.4.2.1. Постановка задачи
- •6.4.2.2. Программа модели
- •6.5. Уменьшение числа объектов в модели
- •6.5.1. Постановка задачи
- •6.5.2. Исходные данные
- •6.5.3. Задание на исследование
- •6.5.4. Блок-диаграмма модели
- •6.5.5. Программа модели
- •6.6. Применение матриц, функций и изменение версий модели
- •6.6.1. Постановка задачи бизнес-процесса
- •6.6.2. Уяснение задачи
- •6.6.3. Программа модели
- •6.7. Моделирование неисправностей одноканальных устройств
- •6.7.1. Постановка задачи
- •6.7.2. Исходные данные
- •6.7.3. Задание на исследование
- •6.7.4. Уяснение задачи
- •6.7.5. Программа модели
- •6.8. Моделирование неисправностей многоканальных устройств
- •6.8.1. Постановка задачи
- •6.8.2. Программа модели
- •7. Лекция: Организация компьютерных экспериментов
- •7.1. Дисперсионный анализ (отсеивающий эксперимент). Прямая задача
- •7.2. Регрессионный анализ (оптимизирующий эксперимент). Прямая задача
- •7.3. Дисперсионный анализ (отсеивающий эксперимент). Обратная задача
- •7.3.1. Постановка задачи
- •7.3.2. Исходные данные
- •7.3.3. Задание на исследование
- •7.3.4. Уяснение задачи на исследование
- •7.3.5. Программа модели
- •7.3.6. Проведение экспериментов
- •8. Лекция: Разработка имитационных моделей в виде приложений с интерфейсом
- •8.1. Применение текстовых объектов и потоков данных
- •8.1.1. Блок open
- •8.1.2. Блок close
- •8.1.3. Блок read
- •8.1.4. Блок write
- •8.1.5. Блок seek
- •8.2. Разработка модели в gpss World
- •8.2.1. Постановка задачи
- •8.2.2. Программа модели
- •8.3. Создание стартовой формы приложения - имитационной модели
- •8.3 Добавление компонент в стартовую форму имитационной модели
- •8.3.1. Добавление полей редактирования
- •8.3.2. Добавление меток
- •8.3.3. Добавление компонент для ввода и вывода данных, представленных в виде таблиц
- •8.3.4. Добавление командных кнопок
- •8.4. События и процедуры обработки событий
- •8.4.1. События
- •8.4.2. Разработка процедур обработки событий для кнопок
- •8.4.3. Разработка процедур обработки событий для полей редактирования
- •8.4.4. Модификация программы имитационной модели
- •8.5. Работа с приложением
6.4.2. Модель процесса изготовления изделий на предприятии. Обратная задача
6.4.2.1. Постановка задачи
Постановка задачи аналогична постановке задачи п. 6.4.1.1 при тех же исходных данных (п. 6.4.1.2).
Отличие состоит в том, что нужно построить имитационную модель для определения оценки математического ожидания времени, за которое будет изготовлено предприятиемN изделий, и оценки математического ожидания времени изготовления одного изделия. Поэтому в исходных данных нет времени моделирования, а вводится переменная пользователя N_ - количество изделий, время изготовления которых нужно оценить.
6.4.2.2. Программа модели
В программе модели те же сегменты (п. 6.4.1.6), только вместо сегмента задания времени моделирования и расчета результатов включен сегмент организации завершения моделирования и расчета результатов моделирования.
Один прогон наблюдения завершается подготовкой N_ изделий, т. е. поступлением их на склад. Поэтому соответствующие этим изделиям транзакты не выводятся сразу из модели, как в прямой задаче, а поступают в сегмент организации завершения моделирования и расчета результатов моделирования.
В блоке
Met10 SAVEVALUE NIzd+,1
подсчитывается количество подготовленных изделий. Если это количество равно N_, т. е. выполняется условие
TEST E X$NIzd,N_,Term5
фиксируется один прогон.
С целью сокращения машинного времени расчет результатов моделирования производится один раз по накопленной статистике за все прогоны. Программа, как и в п. 6.3.2.2, построена так, чтобы расчет результатов моделирования не требовал ее изменения при различном числе прогонов, задаваемом пользователем.
Ниже приведена программа обратной задачи.
; Модель функционирования предприятия. Обратная задача ; Замена имен МКУ номерами
Kontr1 EQU 1 ; Замена имени МКУ Kontr1 номером
Kontr2 EQU 2 ; Замена имени МКУ Kontr2 номером
Kontr3 EQU 3 ; Замена имени МКУ Kontr3 номером
Kontr4 EQU 4 ; Замена имени МКУ Kontr4 номером
; Задание исходных данных
q11_ EQU 0.02 ; Доля забракованных блоков на постах n11
q12_ EQU 0.03 ; Доля забракованных блоков на постах n12
q13_ EQU 0.04 ; Доля забракованных блоков на постах n13
q14_ EQU 0.06 ; Доля забракованных блоков на постах n14
q2_ EQU 0.05 ; Доля брака изделий на пункте выходного контроля
q4_ EQU 0.03 ; Доля забракованных изделий приемкой
TipBl EQU 4 ; Максимальное количество типов блоков, изготавливаемых цехами
T1_ EQU 19 ; Средний интервал выпуска блоков типа 1
T01_ EQU 6 ; Стандартное отклонение времени выпуска блоков типа 1
T2_ EQU 11 ; Средний интервал выпуска блоков типа 2
T3_ EQU 15 ; Средний интервал выпуска блоков типа 3
T03_ EQU 8 ; Стандартное отклонение времени выпуска блоков типа 3
T4_ EQU 18 ; Средний интервал выпуска блоков типа 4
T11_ EQU 12 ; Среднее время контроля на постах n11
T011_ EQU 6 ; Стандартное отклонение времени контроля на постах n11
T12_ 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 ,,,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_,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 VALUE
TIZD 0 39.438
STIZD 0 19.396
получите, что среднее время подготовки N_=122 изделий составляет 40 ч (39,438) при среднем времени подготовки одного изделия 20 мин (19,396). Как видно, эти результаты согласуются с исходными данными и результатами решения прямой задачи.
Результаты решения обратной задачи можно проверить. Найдите в самом начале отчета
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 2366280.440 74 1 6
Разделите END TIME (абсолютное модельное время АС1) на количество прогонов и минут в одном часе, т. е. на 60 000, получите ?40 ч.
Теперь в программе модели укажите командой EQU количество изделий N_=244:
N_ EQU 244
Выполните моделирование, указав, как и в предыдущем случае, в команде START 1000 прогонов. Из отчета
SAVEVALUE |
RETRY |
VALUE |
TIZD |
0 |
78.863 |
STIZD |
0 |
19.393 |
видно, что время подготовки, как и число изделий, увеличивается в два раза при неизменном времени изготовления одного изделия.
Сделайте выводы: влияет ли стохастичность, как и при решении прямой задачи, на результаты моделирования.