- •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. Работа с приложением
7.3.5. Программа модели
; Модель изготовления деталей. Обратная задача
; Задание исходных данных
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