КУРСОВАЯ РАБОТА
Имитационное моделирование
Введение
Процессы функционирования различных систем могут быть представлены той или иной совокупностью систем массового обслуживания (СМО) - стохастических, динамических, дискретно-непрерывных математических моделей. Исследование характеристик таких моделей может проводиться либо аналитическими методами, либо путем имитационного моделирования. Имитационная модель отображает стохастический процесс смены дискретных состояний СМО в непрерывном времени в форме моделирующего алгоритма. При его реализации на ЭВМ производится накопление статистических данных по тем атрибутам модели, характеристики которых являются предметом исследований. По окончании моделирования накопленная статистика обрабатывается, и результаты моделирования получаются в виде выборочных распределений исследуемых величин или их выборочных моментов. Таким образом, при имитационном моделировании систем массового обслуживания речь всегда идет о статистическом имитационном моделировании.
Одним из наиболее эффективных и распространенных языков моделирования сложных дискретных систем является в настоящее время язык GPSS. Он может быть с наибольшим успехом использован для моделирования систем, формализуемых в виде систем массового обслуживания. В качестве объектов языка используются аналоги таких стандартных компонентов СМО, как заявки, обслуживающие приборы, очереди и т.п. Достаточный набор подобных компонентов позволяет конструировать сложные имитационные модели, сохраняя привычную терминологию СМО.
Динамические объекты, соответствующие заявкам в системах массового обслуживания, называются в GPSS транзактами. Транзакт – это элемент системы массового обслуживания. Они "создаются" и "уничтожаются" так, как это необходимо по логике модели в процессе моделирования. С каждым транзактом может быть связано произвольное число параметров, несущих в себе необходимую информацию об этом транзакте.
Блоки в GPSS подразделяются на три типа:
· выполняемые, через которые проходят транзакты;
· описательные, на этапе выполнения отсутствуют;
· управляющие работой системы GPSS;
Комментарий записывается через пробел за операндами или целой строкой со звездочкой в первой позиции. В качестве операндов могут быть использованы стандартные числовые и логические атрибуты.
1.Породить Транзакт
GENERATE
Среднее_значение_времени_между_транзактами[,Отклонение_от_среднего][,Время_до_первого_транзакта],Количество_порождаемых_транзактов][,Приоритет_транзактов][,Количество_параметров_транзакта][,F|H]. Среднее значение времени по умолчанию
1. Отклонение по умолчанию
0.Время до первого транзакта вычисляется на основании первых двух аргументов. Если оно равно 0, то приравнивается
1. Значение приоритета в интервале от 0 до 127. По умолчанию 0. Значение количества параметров в интервале от 0 до 100. По умолчанию 12. По смыслу блока транзакты не должны входить в GENERATE.
2.Присвоить начальное значение
Описательный блок
INITIAL XНомер_хранимого_значения,
Значениеконстанта
INITIAL XHНомер_хранимого_значения,
Значениеконстанта
INITIAL X$Имя_хранимого_значения,
Значениеконстанта
Пример: INITIAL X4,17
INITIALX$RATE,19
3. Отметить транзакт в очереди
[Метка] QUEUE Имя_очереди[,Число_прибавляемое_
к_длине_очереди]
4. Освободить устройство
[Метка] RELEASE Устройство
Пример: RELEASEIBM5
5. Сохранить значение
[Метка] SAVEVALUE Номер_хранимого_значения[+|],
Значение
Пример: SAVEVALUE 3+,P2
6. Занять без приоритета устройство
[Метка] SEIZE Устройство
Пример: SEIZE IBM5
7. Сравнить значения
[Метка] TEST Операция Первый_операнд,Второй_операнд,
[Метка_передачи_транзакта]
Операция > E|NE|GE|LE|G|L
Пример: TESTEP1,3,BRAK
8. Уничтожить транзакт
[Метка] TERMINATE [Значение_вычитаемое_из_
счетчика_в_START]
Пример: TERMINATE 1
9. Задержать транзакт
[Метка] ADVANCE Среднее_значение_задержки
[,Отклонение_от_среднего]
Пример: ADVANCE 37,7
10. Присвоение параметру транзакта значения
[Метка] ASSIGN Номер_параметра_транзакта,Значение
Пример: ASSIGN 3,1
11. Описать булевскую переменную
Имя_переменной BVARIABLE Логическое_выражение
Пример: BOOL1 BVARIABLESE3 + LR7
12. Покинуть очередь
[Метка] DEPART
Имя_очереди[,Количество_единиц]
Пример: DEPARTQTOWRK
13. Направить транзакт на другую часть модели [Метка] TRANSFER|BOTH| Вероятность Метка1[,Метка2]
Пример: TRANSFER ,LABL2
14. Начать моделирование
Описательный блок.
START Значение_счетчика
Пример: START 200
Целью проектирования является углубленное изучение языка программирования GPSS и приобретение навыков решения прикладных задач на основе моделирования.
Основные возможности разработки: Изучение языка GPSS и создание имитационной модели для системы передачи цифровой информации, позволяющая определить параметры ее функционирования.
GPSSWorldStudentVersion 4.1.3
В системе передачи цифровой информации передается речь в цифровом виде. Речевые пакеты передаются через два транзитных канала, буферизуясь в накопителях перед каждым каналом. Время передачи пакета по каналу составляет 5 мс. Пакеты поступают через 6 ± 3 мс. Пакеты, передававшиеся более 10 мс, на выходе системы уничтожаются, так как их появление в декодере значительно снизит качество передаваемой речи. Уничтожение более 30% пакетов недопустимо. При достижении такого уровня система за счет ресурсов ускоряет передачу до 4 мс на канал. При снижении уровня до приемлемого происходит отключение ресурсов.
Смоделировать 10 с работы системы. Определить частоту уничтожения пакетов и частоту подключения ресурса.
Система обозначений объектов моделируемой системы
BOL - метка
KANAL1 – первый канал
KANAL2 – второй канал
MET1 - метка
METBOL - метка
METTERM- метка
METTERM1 метка
OCH_KANAL1 - очередь к первому каналу
OCH_KANAL2 - очередь ко второму каналу
PVREMA1 - метка
PVREMA2 - метка
VREM - метка
VSEGO - метка
VVREMA - метка
Диаграмма IDEF0
Правила и процедуры
Декодер
Рис 1.Контекстная диаграмма
поток на Правила и процедуры
Выбор обработку
Рис 2.Диаграмма декомпозиций
Текст программы
VVrema variable 5
INITIAL X$Vrem,5
GENERATE 6,3
SAVEVALUE Vsego+,1
ASSIGN PVrema1,V$VVrema
ASSIGN PVrema2,V$VVrema
QUEUE Och_kanal1
SEIZE kanal1
DEPART Och_kanal1
ADVANCE P$PVrema1
RELEASE kanal1
QUEUE Och_kanal2
SEIZE kanal2
DEPART Och_kanal2
ADVANCE P$PVrema2
RELEASE kanal2
TEST LE (P$PVrema1+P$PVrema2),10,MetBol
TEST L (X$Bol/X$Vsego),.3,MetTerm
SAVEVALUE Vrem,5
MetTerm TERMINATE
MetBol SAVEVALUE Bol+,1
TEST GE (X$Bol/X$Vsego),.3,Met1
SAVEVALUE Vrem,4
MetTerm1 TERMINATE
Met1 SAVEVALUE Vrem,5
TRANSFER, MetTerm1
GENERATE 100
TERMINATE 1
START 1
Результатымоделирования (листинг)
GPSS World Simulation Report - Untitled Model 1.1.1
Thursday, June 14, 2007 12:06:24
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 100.000 26 2 0
NAME VALUE
BOL 10009.000
KANAL1 10006.000
KANAL2 10008.000
MET1 23.000
METBOL 19.000
METTERM 18.000
METTERM1 22.000
OCH_KANAL1 10005.000
OCH_KANAL2 10007.000
PVREMA1 10003.000
PVREMA2 10004.000
VREM 10001.000
VSEGO 10002.000
VVREMA 10000.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 16 0 0
2 SAVEVALUE 16 0 0
3 ASSIGN 16 0 0
4 ASSIGN 16 0 0
5 QUEUE 16 0 0
6 SEIZE 16 0 0
7 DEPART 16 0 0
8 ADVANCE 16 1 0
9 RELEASE 15 0 0
10 QUEUE 15 0 0
11 SEIZE 15 0 0
12 DEPART 15 0 0
13 ADVANCE 15 1 0
14 RELEASE 14 0 0
15 TEST 14 0 0
16 TEST 14 0 0
17 SAVEVALUE 14 0 0
METTERM 18 TERMINATE 14 0 0
METBOL 19 SAVEVALUE 0 0 0
20 TEST 0 0 0
21 SAVEVALUE 0 0 0
METTERM1 22 TERMINATE 0 0 0
MET1 23 SAVEVALUE 0 0 0
24 TRANSFER 0 0 0
25 GENERATE 1 0 0
26 TERMINATE 1 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
KANAL1 16 0.768 4.798 1 17 0 0 0 0
KANAL2 15 0.730 4.865 1 16 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
OCH_KANAL1 1 0 16 9 0.118 0.737 1.684 0
OCH_KANAL2 1 0 15 15 0.000 0.000 0.000 0
SAVEVALUE RETRY VALUE
VREM 0 5.000
VSEGO 0 16.000
BOL 0 0
FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
16 0 102.024 16 13 14
PVREMA2 5.000
PVREMA1 5.000
17 0 103.228 17 8 9