Файл: Конспект лекций Для студентов специальности 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.1. Общие сведения о сетях

2.2. Операционный анализ вероятностных сетей

2.3. Операционные зависимости

2.4. Анализ узких мест в сети

Глава 3. Вероятностное моделирование

3.1. Метод статистических испытаний

3.2. Моделирование дискретных случайных величин

3.3. Моделирование непрерывных случайных величин

3.4. Сбор статистических данных для получения оценок характе­ристик случайных величин

Для оценки дисперсии случайной величины ξ используют фор­мулу

3.5. Определение количества реализаций при моделировании случайных величин

По формулам (3.18-3.20) находим

Задачи для самостоятельной работы

Задача 6

Глава 4. Система моделированияgpss

4.1. Объекты

4.2. Часы модельного времени

4.3. Типы операторов

4.4. Внесение транзактов в модель. БлокGenerate

Задание для самостоятельной работы:

4.5. Удаление транзактов из модели. БлокTerminate

4.6. Элементы, отображающие одноканальные обслуживающие устройства

4.7. Реализация задержки во времени. БлокAdvance

Задания для самостоятельной работы:

4.8. Сбор статистики об ожидании. Блоки queue, depart

4.9. Переход транзакта в блок, отличный от последующего. БлокTransfer

Задания для самостоятельной работы:

4.10. Моделирование многоканальных устройств

4.11. Примеры построенияGpss-моделей

Построение модели

4.12. Переменные

4.13. Определение функции вGpss

Пример 4.23

4.14. Стандартные числовые атрибуты, параметры транзактов. Блоки assign, mark, loop

4.15. Изменение приоритета транзактов. БлокPriority

4.16. Организация обслуживания с прерыванием. Блоки pre­empt и return

Задание для самостоятельной работы:

4.17. Сохраняемые величины

4.18. Проверка числовых выражений. Блок test

Пример 4.40

Задание для самостоятельной работы:

4.19. Определение и использование таблиц

Задания для самостоятельной работы:

4.20. Косвенная адресация

4.21. Обработка транзактов, принадлежащих одному семейству

4.22. Управление процессом моделирования в системеGpss

4.23. Списки пользователей

4.24. Блоки управления потоками транзактовLogic,gatelr,gatelSиGate

7 Testne p1,p2,asn2 ; Повторить, если адресат

4.25. Организация вывода временных рядов изGpss-модели

4.26. Краткая характеристика языкаPlus

4.27. Команды gpss World

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. Проектирование имитационных моделей с помощью интерактивной системы имитационного моделирования

8.1. Структура интерактивной системы имитационного модели­рования

8.2. Построение концептуальной схемы модели

8.3. Параметрическая настройка модели

8.4. Генератор формул

8.5. Управление экспериментом

8.6. Запуск эксперимента и обработка результатов моделирования

8.7. Управление проектами и общей настройкой системы

8.8. Пример построения модели средствамиIss2000

Глава 9. Технология имитационногомоделирования

9.1. Имитационные проекты

9.2. Организация экспериментов

9.3. Проблемы организации имитационных экспериментов

9.4. Оценка точности результатов моделирования

9.5. Факторный план

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.