Файл: Конспект лекций Для студентов специальности 080801. 65 - приклад.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 30.12.2025
Просмотров: 3298
Скачиваний: 0
СОДЕРЖАНИЕ
Федеральное агентство по образованию
Глава 5. Моделирование вычислительных и операционных систем 289
Глава 6. Основы моделирования процессов 305
Глава 7. Задания для самостоятельной работы 311
Глава 8. Проектирование имитационных моделей 335
Глава 9. Технология имитационного моделирования 361
Глава 10. Примеры принятия решений с помощью имитационного моделирования 433
Глава 11. Задания для имитационных проектов 451
Глава 1. Модели массового обслуживания
1.1. Системы массового обслуживания и их характеристики
1.2. Системы с одним устройством обслуживания
1.3. Основы дискретно-событийного моделирования смо
1.4. Многоканальные системы массового обслуживания
Глава 2. Вероятностные сети систем массового обслуживания
2.2. Операционный анализ вероятностных сетей
Глава 3. Вероятностное моделирование
3.1. Метод статистических испытаний
3.2. Моделирование дискретных случайных величин
3.3. Моделирование непрерывных случайных величин
3.4. Сбор статистических данных для получения оценок характеристик случайных величин
Для оценки дисперсии случайной величины ξ используют формулу
3.5. Определение количества реализаций при моделировании случайных величин
По формулам (3.18-3.20) находим
Задачи для самостоятельной работы
Глава 4. Система моделированияgpss
4.4. Внесение транзактов в модель. БлокGenerate
Задание для самостоятельной работы:
4.5. Удаление транзактов из модели. БлокTerminate
4.6. Элементы, отображающие одноканальные обслуживающие устройства
4.7. Реализация задержки во времени. БлокAdvance
Задания для самостоятельной работы:
4.8. Сбор статистики об ожидании. Блоки queue, depart
4.9. Переход транзакта в блок, отличный от последующего. БлокTransfer
Задания для самостоятельной работы:
4.10. Моделирование многоканальных устройств
4.11. Примеры построенияGpss-моделей
4.13. Определение функции вGpss
4.14. Стандартные числовые атрибуты, параметры транзактов. Блоки assign, mark, loop
4.15. Изменение приоритета транзактов. БлокPriority
4.16. Организация обслуживания с прерыванием. Блоки preempt и return
Задание для самостоятельной работы:
4.18. Проверка числовых выражений. Блок test
Задание для самостоятельной работы:
4.19. Определение и использование таблиц
Задания для самостоятельной работы:
4.21. Обработка транзактов, принадлежащих одному семейству
4.22. Управление процессом моделирования в системеGpss
4.24. Блоки управления потоками транзактовLogic,gatelr,gatelSиGate
7 Testne p1,p2,asn2 ; Повторить, если адресат
4.25. Организация вывода временных рядов изGpss-модели
4.26. Краткая характеристика языкаPlus
4.28. Диалоговые возможностиGpssWorld
4.29. Отличия между gpss World и gpss/pc
Глава 5. Моделирование вычислительных и операционных систем
5.1. Операционные системы компьютеров
5.2. Сети и системы передачи данных
5.3. Проблемы моделирования компьютеров и сетей
Глава 6. Основы моделирования процессов
6.1. Производственные процессы
6.2. Распределительные процессы
6.3. Процессы обслуживания клиентов
6.4. Процессы управления разработками проектов
Глава 7. Задания для самостоятельной работы Задание 1. Моделирование разливной линии
8.1. Структура интерактивной системы имитационного моделирования
8.2. Построение концептуальной схемы модели
8.3. Параметрическая настройка модели
8.6. Запуск эксперимента и обработка результатов моделирования
8.7. Управление проектами и общей настройкой системы
8.8. Пример построения модели средствамиIss2000
Глава 9. Технология имитационногомоделирования
9.2. Организация экспериментов
9.3. Проблемы организации имитационных экспериментов
9.4. Оценка точности результатов моделирования
9.6. Дисперсионный анализAnovAв планированииэкспериментов
9.7. Библиотечная процедураAnova
9.8. Технология проведение дисперсионного анализа в системеGpss World
9.9. Особенности планирования экспериментов
9.10. Нахождение экстремальных значений на поверхности отклика
9.11. Организация экспериментов вGpssWorld
9.12. Выбор наилучшего варианта структуры системы
Глава 10. Примеры принятия решений с помощью имитационного моделирования
10.1. Моделирование производственного участка
10.2. Моделирование технологического процесса ремонта и замены оборудования
Глава 11. Задания для имитационных проектов
D - второе пороговое значение (порог). Операндом D может быть имя, число, строка, выражение в скобках или СЧА.
Е - вторая метка. Операндом Е может быть имя, положительное целое число, выражение в скобках или СЧА. Операнды D и Е: или оба используются, или оба не используются.
Когда объект моделирования принимает команду INTEGRATE, он размещает ее в конце очереди команд.
При выполнении команд INTEGRATE переменная пользователя автоматически интегрируется с течением системного времени. Для интегрирования используется модифицированный метод Рунге-Кутта-Фельберга пятого порядка с переменным размером шага.
Всем переменным пользователя, используемым в интегрировании, до выполнения моделирования должны быть даны начальные значения. Это можно сделать с помощью операторов EQU или операторов присваивания в PLUS-процедуре.
Операнд А команды INTEGRATE используется для производной переменной пользователя по времени. Он может быть очень простым или весьма сложным. В последнем случае можно определить процедуру PLUS и разместить команду вызова в вводимом выражении, используемом для операнда А.
Каждая команда INTEGRATE может иметь ноль, один или: два числовых порога. Операнды В и С могут использоваться для определения первого порога, и (или) операнды D и Е могут использоваться для определения второго порога. В любом случае, первый операнд пары определяет значение порога, второй указывает метку блока, который принимает генерируемые транзакты.
Если в течение интегрирования значение интегрируемой переменной достигает значение порога (с любого направления), создается новый транзакт. Этому транзакту устанавливается приоритет 0, и он переходит в блок, связанный с этим порогом в команде INTEGRATE. Время входа транзакта в модель определяется линейной интерполяцией. Для увеличения точности при приближении к порогу шаг интегрирования уменьшается. Транзакты, генерируемые при пересечении порога, могут использоваться для того, чтобы изменить значение порога.
Оба порога равноправны, нет необходимости определять один как нижний, а второй как верхний. Новый транзакт генерируется при пересечении любого порога с любой стороны. Если направление пересечения важно для функционирования модели, то нужно следить за значением переменной либо проверять направление пересечения.
Интегрирование начинается автоматически в активном или «разрешенном» состоянии. Во время выполнения моделирования можно включать или выключать интегрирование, используя один или несколько блоков INTEGRATION.
Чтобы настроить автоматическое интегрирование переменной, необходимо:
1) объявить командой INTEGRATE интегрируемую переменную;
2) присвоить начальные значения используемым переменным.
Пусть имеется простое дифференциальное уравнение вида y’=f(Θ), где Θ- это выражение, в которое входят некоторые переменные и (или) значение системного времени (СЧА АС1). По определению f(Θ) - это производная переменной у по времени. Итак, для настройки интегрирования нужно:
1) объявить командой INTEGRATE интегрируемую переменную Y_ (не забыв при этом заключить выражение производной в скобки):
Y_ INTEGRATE (f(Θ))
2) присвоить переменной Y_ начальное значение, например,
Y_ EQU 100.3
3) присвоить начальные значение всем переменным, входящим в выражение 0 (с помощью операторов EQU или операторов присваивания в PLUS-процедурах).
Производная показывает, как быстро изменяется переменная во времени. Она указывает, на какую величину GPSS World автоматически увеличивает числовое значение интегрируемой переменной в процессе моделирования.
Пусть, например, некоторый склад строится со скоростью 2 блока в минуту, а единица модельного времени равна одной секунде [20]. В этом случае настройка автоматического интегрирования осуществляется так:
Inventory INTEGRATE (2.0/3600) Inventory EQU 100
Естественно, переменной Inventory может быть придано любое другое начальное значение.
Вычисление производной требует большего времени, чем вычисление аналитического выражения. В таком простом примере, как )тот, где переменная вычисляется как функция от времени, гораздо быстрее просто посчитать значение переменной во время моделирования, чем интегрировать переменную.
Интегрирование должно использоваться в случаях, когда не известно решение дифференциального уравнения.

Этот пример определяет систему из двух дифференциально-разностных уравнений первого порядка, точное решение которой таково:

Выражения в командах INTEGRATE используются как производные по времени. Начальные значения непрерывных переменных установлены командами EQU.
В процессе моделирования интегрирование автоматически выполняется между моментами дискретного времени. Порог установлен для пользовательской переменной Х_*. Когда эта переменная пересекает значение 0,707 (с любого направления), создается новый транзакт и направляется в блок, помеченный меткой WAKE_UP.
* Обозначение X используется для СЧА сохраняемых величин и не может использоваться как имя переменной, поэтому в данной модели используется имя Х_.
При использовании интегрирования моделирование выполняется поочередно в непрерывных и дискретных стадиях. В процессе имитации при планировании событий выполняется дискретная стадия моделирования. В этом случае часы модельного времени продвигаются от события к событию. Между моментами наступления событий выполняется непрерывная стадия моделирования, в течение которой интегрирование осуществляется с маленькими приращениями времени, называемыми минишагами. График переменной интегрирования выводит промежуточные значения в концах минишагов. Когда происходит пересечение порога, генерируется транзакт и моделирование переходит в дискретную стадию. Непрерывная и дискретная стадии могут взаимодействовать. Например, интегрируемым переменным пользователя в дискретной стадии могут быть назначены новые значения. Это можно сделать, используя операторы EQU или вызывая предназначенные для этого PLUS-процедуры.
Пример 4.69
Пусть PLUS-процедура определена следующим образом:
PROCEDURE SetPop(PopLevel) BEGIN
Foxes=PopLevel;
END;
Можно повторно инициализировать переменную пользователя, введя, например, блок PLUS в модель
PLUS (SetPop (200))
или используя ввод выражения, которое вызывает SetPop() в некотором другом блоке.
Уравнения высокого порядка [20]. При необходимости использования в модели дифференциального уравнения высокого порядка, необходимо уменьшить его порядок до первого. Для этого нужно переписать это уравнение как систему уравнений первого порядка. Это выполняется достаточно просто путем ввода новой переменной для каждой промежуточной производной.
Например, пусть имеем дифференциальное уравнение третьего порядка:

Для уравнений еще большего порядка нужно продолжить введение новых переменных. После подстановки новых переменных в начальное уравнение получим дифференциальное уравнение первого порядка:
25v'-6u + y = 0.
Теперь у нас есть следующая система дифференциальных уравнений:

В системе Grab World это будет выглядеть так:
Y_ INTEGRATE U_
U_ INTEGRATE V_
V_ INTEGRATE ((6/25) # U_-(1/25)#Y_)
Y_ EQU 10.0
U_ EQU 1.0
U_ EQU 1.0
Начальные значения для U_, V_ и Y_, определенные при помощи оператора EQU, задаются в зависимости от начальных условий моделирования.
Пример 4.70 [20]
Постановка задачи «Хищник-Жертва». На маленьком острове бесконтрольно растет популяция кроликов. Проблема стоит так остро, что местные фермеры прикладывают значительные усилия, чтобы прекратить увеличение популяции кроликов. Для контроля над ситуацией они хотят завести популяцию лис.
Для моделирования этого явления используется модель «хищник - жертва». При моделировании изучается такой вопрос: «Что произойдет, если выпустить 80 лис?».
******************************************************************
* Модель Lotka-Volterra Хищник-Жертва
* Действия:
* График "Лисы и Кролики": X 12000; Y 0-3000
* START 1
******************************************************************
*
* Не забывайте выражения производных заключать в скобки Foxes INTEGRATE (FoxRateQ)
Rabbits INTEGRATE (RabbitRateQ)
*
* Начальные условия
*
Foxes EQU 80
Rabbits EQU 1000
*
* Параметры модели
*
K_ EQU 0.2000 ; Эффективность хищников А_ EQU 0.0080 ; Уровень смертности хищников В_ EQU 0.0002 ; Фактор охоты С_ EQU 0.0400 ; Уровень рождаемости кроликов
*
* Управляющий сегмент дискретного моделирования
*
GENERATE 10000
TERMINATE 1
PROCEDURE FoxRateO BEGIN
*
* Скорость роста популяции лис
*
TEMPORARY BirthRate, Death Rate, TotRe3(» =
* Граничные значения для переменной *
IF (Foxes < 0) THEN Foxes = 0;
IF (Foxes > 10e50) THEN Foxes = 10e50 ;
BirthRate = K_ # B_ # Foxes # Rabbits;
DeathRate = A_ # Foxes;
TotRate = BirthRate - DeathRate;
RETURN TotRate; END;
*
PROCEDURE RabbitRateQ BEGIN
*
* Скорость роста популяции кроликов
*
TEMPORARY BirthRate, DeathRate, TotRate;
* Граничные значения для переменной
IF (Rabbits < 0) THEN Rabbits = 0;
IF (Rabbits > lOeSO) THEN Rabbits = 10e50 ;
BirthRate = C_ # Rabbits;
DeathRate = B_ # Foxes # Rabbits ;
TotRate = BirthRate - DeathRate;
RETURN TotRate; END;
На рис. 4.15 представлен отчет по результатам моделирования при условии, что начальное значение количества лис равно 80. На рис. 4.16 дан график изменения размеров популяций кроликов и лис для этого начального значения.

Команда REPORT. Выводит стандартный статистической отчет о работе модели.
Формат команды:
REPORT [A][,B]
Операнд А не используется (оставлен для совместимости с предыдущими версиями).
Операнд В - признак немедленного создания стандартного отчета. Может иметь значение NOW.
Пример 4.71
REPORT
Эта команда немедленно создает стандартный отчет.
REPORT ,NOW
Этот формат команды сохранен для совместимости с версией GPSS/PC. Как и в предыдущем случае, она немедленно создает стандартный отчет.
Команда REPORT ставится в конец очереди команд. Способ выдачи информации в стандартный отчет может быть настроен в параметрах системы Edit/Settings/Report. Если в параметрах указан вывод в окно «In Windows», то стандартный отчет создается в новом окне и может быть сохранен в файле. В противном случае стандартный отчет создается, ему присваивается последовательный номер, и он автоматически помещается в файл.
Команда REPORT больше не использует операнд А и всегда предполагает, что операнд В имеет значение NOW. Она игнорирует параметр «Создать стандартный отчет» (Create Standard Report), который используется для автоматического создания отчета, и операнд В команды START, используемой для текущей имитации. Обычно нет необходимости использовать команду REPORT, так как отчет создается автоматически в соответствии с параметрами настройки отчета, которые задаются в меню Edit/Settings/Report.