Автор работы: Пользователь скрыл имя, 12 Июня 2013 в 14:37, курсовая работа
Моделирование - наиболее мощный универсальный метод исследования и оценки эффективности систем, поведение которых зависит от воздействия случайных факторов. Области применения методов имитации чрезвычайно широки и разнообразны. Однако по опыту работы и материалам диссертационных советов можно сделать вывод о том, что исследователи пока довольно редко используют в качестве инструментальных средств исследования системы моделирования, преимущества которых вполне очевидны. Системы моделирования имеют специализированные средства, реализующие дополнительные возможности по организации модельных экспериментов на компьютере. Они также предоставляют возможность учитывать в моделях фактор времени, то есть строить динамические имитационные модели, что особенно важно для многих систем .
Введение......................................................................................................................3
Глава1. Теоретические сведения...........................................................................5
Глава 2. Этапы создания модели..........................................................................12
Глава 3. Моделирование в среде Matlab.............................................................17
Глава 4. Моделирование в среде GPSSW............................................................26
Глава 5. Анализ полученных результатов..........................................................35
Заключение................................................................................................................42
Список использованной литературы...................................................................43
Каждому блоку структурной схемы модели соответствует блок в Stateflow модели. Добавлены также два блока, которые обеспечивают подсчет статистических данных.
Перечень блоков, входящих в Stateflow модель, и их обозначения:
Общий вид Stateflow- модели представлен в приложении А. Внутренняя структура, представленная в виде совокупности блоков, представлена в приложении Б.
Рассмотрим подробно каждый из блоков:
Рисунок 4 – Блок генерации заявок
В данном блоке осуществляется генерация заявок для модели и остановка их генерации. Для реализации этого блок содержит 3 подблока: zaderwka, vihod и stopinng.
В блок zaderwka система переходит автоматически по безусловному переходу. Далее происходит переход в блок vihod, так как время задержки еще не сгенерировано. В блоке vihod происходит наращивание счетчика количества заявок и при следующем переходе генерируется время задержки между генерациями заявок. Этот переход осуществляется в соединение, которое организует разветвление: при достижении количества заявок равного 500 осуществляется переход в блок stopinng для завершения генерации, в ином случае переход осуществляется в блок zaderwka, где реализуется задержка между генерациями заявок с помощью декрементирования соответствующей переменной.
Рисунок 5 - Блок «бесконечная очередь»
Данный блок содержит лишь один блок. Суть работы заключается в инкрементировании переменной «длина очереди» по приходу заявки.
Данный блок включает в себя два подблока (vhod и obrabotka) и два соединения. Блок vhod организует при переходе в соединение поступление заявок из очереди и генерацию времени обработки заявки в канале. Переход из соединения в соединение вычисляет суммарное время обслуживания. Переход из соединения в блок obrabotka уменьшает длину бесконечной очереди перед данным каналом. Затем в этом блоке осуществляется циклический переход, обеспечивающий задержку обработки заявки в канале. Далее происходит переход из блока obrabotka в блок vhod, оповещающий об освобождении канала.
Рисунок 6 - Канал предварительной обработки заявок
Данный блок анализирует состояния накопителей перед ЭВМ и направляет заявку в накопитель с наименьшей очередью, а также фиксирует наличие отказа в случае, когда все накопители заняты.
Структура и принцип работы данных блоков схожи с блоком предварительной обработки заявок. Отличие заключается в том, что время обработки заявок в канале не генерируется, а зависит от суммарной длины очередей перед каналами.
Данные блоки ведут статистику необходимых характеристик процесса моделирования и обеспечивают их вывод.
Глава 4. Моделирование в среде GPSSW
4.1. Общие сведения о языке GPSS World
Система GPSS World - это мощная
среда компьютерного
Для описания имитационной модели на языке GPSS полезно представить её в виде схемы, на которой отображаются элементы СМО - каналы, накопители, узлы и источники. Описание на языке GPSS есть совокупность операторов (блоков), характеризующих процессы обработки заявок. Имеются операторы и для отображения возникновения заявок, задержки их в каналах, занятия памяти, выхода из СМО, изменения параметров заявок (например, приоритетов), вывода на печать накопленной информации, характеризующей загрузку устройств, заполненность очередей и т.п. Каждый транзакт, присутствующий в модели, может иметь до 12 параметров. Существуют операторы, с помощью которых можно изменять значения любых параметров транзактов и операторы, характер исполнения которых зависит от значений того или иного параметра обслуживаемого транзакта. Для моделирования используется событийный метод. Соблюдение правильной временной последовательности имитации событий в СМО обеспечивается интерпретатором GPSS - программной системой, реализующей алгоритмы имитационного моделирования.
В записи оператора выделяют такие части: метку, название, поле переменных и комментарий.
GENERATE - вводит транзакты в модель.
Формат: GENERATE А, В, С, D, E, F, G
А - среднее значение интервала времени;
В - разброс или модификатор среднего значения (по умолчанию ноль);
С - время появления первого транзакта;
D - общее число генерируемых транзактов;
Е - уровень приоритета каждого транзакта; (от 0 до 127, значение по умолчанию 0);
F - число параметров (по умолчанию 12);
G - тип параметра (F - полнословный, Н - полусловный - по умолчанию).
Вводит транзакты в модель, посылая их в следующий по порядку блок. Если в поле В не указана функция, то интервал между поступлением транзактов определяется случайным числом, равномерно распределенным в диапазоне от (А - В) до (А + В). Если поле В является функцией (FN$), то этот интервал определяется произведением поля А на значение функции, заданной в поле В.
QUEUE - помещает транзакт в конец бесконечной очереди.
Формат: QUEUE А, В
А - номер очереди (числовое или символьное имя очереди);
В - число добавляемых к очереди элементов (по умолчанию 1).
Увеличивает текущее содержимое очереди, указанной в поле А, на значение в поле В. Если поле В не определено, увеличивает содержимое очереди на единицу. Транзакт может находиться в двух различных очередях одновременно.
DEPART - удаляет транзакт из бесконечной очереди.
Формат: DEPART А, В
А - номер (имя) очереди;
В - число удаляемых из очереди элементов.
Удаляет текущий транзакт из очереди, указанной в поле А, и уменьшает содержимое очереди на значение поля В. Транзакт может находиться одновременно в двух различных очередях.
SEIZE - занимает устройство.
Формат: SEIZE A
А - номер устройства.
Транзакт пытается занять устройство, определенное полем А. Если прервано, транзакт задерживается в предыдущем блоке.
RELEASE - освобождает устройство.
Формат: RELEASE A
А - номер устройства (числовое или символьное имя освобождаемого устройства).
Устройство, указанное в поле А, освобождается и становится доступным для других транзактов. Освобождать устройство должен тот же транзакт, который его занимал.
ADVANCE – задерживает транзакт.
Формат: ADVANCE А, В
А – среднее время задержки (константа, если В не задано);
В – разброс относительно среднего значения, должен быть меньше или равен А.
Блок ADVANCE моделирует временную задержку транзакта в течение определенного интервала. Значение задержки по умолчанию равно нулю. Если поле В не является FN$, то время задержки является случайным числом, распределенным равномерно на интервале от (А + В) до (А - В). Если поле В является функцией FN$, то время задержки определяете произведением поля А на значение функции в поле В.
Функция может быть использована для задания времени задержки с определенным средним значением и отклонением, зависящим от А.
Блок STORAGE – память.
Формат: имя STORAGE A
имя —имя многоканальных устройств (МКУ), используемое для ссылок на него;
A —емкость (количество каналов обслуживания) МКУ, задаваемая константой.
ENTER - для занятия обслуживания МКУ используется пара блоков.
Формат: ENTER A,B
A - указывается номер или имя МКУ;
B - число каналов МКУ, занимаемых при входе в блок ENTER.
При входе транзакта в блок ENTER текущее содержимое МКУ увеличивается на число единиц, указанное в поле B. Если свободная емкость МКУ меньше значения поля B, то транзакт не может войти в блок ENTER и остается в предыдущем блоке, образуя очередь в списке текущих событий.
LEAVE - для освобождения памяти.
Формат: LEAVE A,B
A указывается номер или имя МКУ;
B - число каналов МКУ освобождаемых при входе в блок LEAVE.
При входе транзакта в блок LEAVE текущее содержимое МКУ уменьшается на число единиц, указанное в поле B. Не обязательно освобождается такое же число каналов МКУ, какое занималось при входе данного транзакта в блок ENTER, однако текущее содержимое МКУ не должно становиться отрицательным.
TRANSFER - изменяет движение транзакта в модели.
Формат: TRANSFER А, В, С, D
А - режим передачи (" ",., ALL, BOTH, FN, P, PICK, SBR, SIM);
В - номер блока;
С – номер блока;
D — значение индекса, используемое в режиме ALL.
Транзакт направляется в блок, определяемый в соответствии с режимом передачи, указанным в поле А.
Режимы передачи поля А:
START - управление процессом моделирования.
Формат: STAR[T] А, В, С, D
А - счетчик числа завершений;
В - подавление вывода на печать (В = NP);
С - промежуточный вывод статистики; 0 - распечатка списков.
GATE - служит для задержки
или изменения маршрута
Формат: имя GATE X A,B
X- вспомогательный операнд,
содержит код состояния
A, В - указывают имя или номер этого объекта. Если проверяемый объект находится в заданном состоянии, то блок GATE пропускает транзакт к следующему блоку. Если же заданное в блоке условие не выполняется, то транзакт переходит к блоку, указанному в поле B, а если это поле пусто, то задерживается перед блоком GATE.
TERMINATE - служит для удаления транзактов из модели.
Формат: TERMINATE A
А - указывает, на сколько единиц уменьшается содержимое счётчика завершений при входе транзакта в данный блок TERMINATE. Если поле А не определено, то оно считается равным 0 и транзакты, проходящие через такой блок, не уменьшают содержимого счётчика завершений.
TEST – перемещае транзакт согласно сравнению.
Формат: TEST Х А, В, С
Х – условный оператор может принимать значения:
А и В – сравниваемые величины.
С – метка, по которой переходит транзакт, если условие не выполняется.
Также в программу ведены переменные, для отслеживания занятости очередей:
aa VARIABLE Q$och1
ba VARIABLE Q$och2
caa VARIABLE Q$och3
daa VARIABLE Q$och3+Q$och2+Q$och1
Текст программы приведен в приложении Е.
Отчет по результатам моделирования представлен в приложении Ж.
Глава 5. Анализ полученных результатов
5.1 Сравнение результатов моделирование системы, полученных в т моделях