Главная страница
Навигация по странице:

  • Устройства обработки Количество обработанных транзактов Коэффициент загрузки

  • Синтаксис операторов GPSS использованных в данном курсовом проекте GENERATE

  • TRANSFER

  • Пробел

  • PICK

  • QUEUE

  • DEPART

  • SEIZE

  • ADVANCE (ЗАДЕРЖАТЬ) ADVANCE

  • RELEASE

  • START

  • ТИПС. КП_Моделирование. Язык имитационного моделирования gpss 4 Функциональная структура gpss. 4


    Скачать 59.16 Kb.
    НазваниеЯзык имитационного моделирования gpss 4 Функциональная структура gpss. 4
    Дата09.06.2022
    Размер59.16 Kb.
    Формат файлаdocx
    Имя файлаКП_Моделирование.docx
    ТипДокументы
    #580488



    Оглавление


    Введение 3

    Язык имитационного моделирования GPSS 4

    Функциональная структура GPSS. 4

    Транзакты 5

    Блоки, влияющие на атрибуты транзактов и на их движение в модели 6

    Списки 7

    Устройства 7

    Памяти 8

    Логические ключи 8

    Очереди 8

    Таблицы 9

    Ячейки 9

    Функции и переменные 9

    1 Моделирование СМО задания №14 на языке GPSS 10

    1.1 Постановка задачи 10

    1.2 Алгоритмизация модели 11

    Вывод 13

    Список использованных источников 16

    Приложение А 17


    Введение


    Важным этапом моделирования является создание математической модели исследуемой системы. На базе математической модели происходит анализ характеристик системы, при компьютерном моделирования на основе математической модели создается алгоритм программ для получения информации о поведении системы. Формальное описание объекта исследование необходимо также для взаимопонимания между специалистами разных областей, объединенных для решения какой-либо глобальной задачи.

    При построении математических моделей процессов функционирования систем можно выделить следующие основные подходы: непрерывно-детерминированный, дискретно-детерминированный, дискретно-стохастический, непрерывно-стохастический, сетевой, обобщенный (или универсальный).

    Соответственно этим подходам были разработаны типовые математические схемы создания моделей.

    1. Непрерывно-детерминированный подход использует в качестве математических моделей системы дифференциальных уравнений.

    2. Дискретно-детерминированный подход реализуется с помощью математического аппарата теории автоматов. Система представляется в виде автомата, перерабатывающего дискретную информацию и меняющего свои внутренние состояния лишь в допустимые моменты времени.

    3. Дискретно-стохастический подход использует в качестве математического аппарата вероятностные автоматы, которые можно определить, как дискретные потактные преобразователи информации с памятью, функционирование которого в каждом такте зависит только от состояния памяти в нем и может быть описано статистически.

    4. Непрерывно-стохастический подход применяется для формализации процессов обслуживания. Этот подход наиболее известен ввиду того, что большинство производственных (и не только производственных - экономических, технических и т.д.) систем по своей сути являются системами массового обслуживания. Типовой математической схемой моделирования таких систем являются Q-схемы.

    Наиболее часто для анализа Q-схем используют имитационные методы. В этом случае формализованное описание системы массового обслуживания представляет собой графическое отображение (с соответствующими комментариями) элементарных приборов, клапанов, отражающих наличие управляющих воздействий, и связей между ними. На данный момент существует много программных средств, специализирующихся на создание имитационных моделей на основе Q-схем. Примерами для прикладного применения непрерывно-стохастического подхода могут служить исследования потоков поставок продукции некоторому предприятию, потоков деталей и комплектующих изделий на сборочном конвейере цеха и т.п.

    Язык имитационного моделирования GPSS

    Функциональная структура GPSS.


    Система GPSS ориентирована на класс объектов, процесс функционирования которых можно представить в виде множества состояний и правил перехода из одного состояния в другое, определяемых в дискретной пространственно-временной области. Примерами таких объектов являются вычислительные системы, сети ЭВМ, системы передачи сообщений, транспортные объекты, склады, магазины, предприятия и т.п. В качестве формальных моделей таких объектов используют системы массового обслуживания, автоматы, стохастические сети, сети Петри и макросети, агрегаты и т.п.

    В состав GPSS входят следующие типы объектов: транзакты, блоки, списки, устройства, памяти, логические ключи, очереди, таблицы, ячейки, функции, переменные. Любую модель на языке GPSS можно представить в виде комбинации компонентов, взятых из числа названных объектов. Модель имеет три уровня представления:

    • верхний уровень, определяемый комбинацией функциональных основных объектов: устройств, памятей, ключей, очередей;

    • средний уровень, представляемый схемой из типовых блоков, между которыми перемещаются транзакты;

    • нижний уровень - уровень физической реализации языка GPSS в виде программ и наборов данных, составляющих основу моделирующей системы.

    Транзакты


    Функционирование объекта отображается в модели в виде перемещения транзактов от блока GENERATE в блок TERMINATE через промежуточные блоки. Транзакты, или сообщения являются абстрактными подвижными элементами, которые могут моделировать различные объекты реального мира: сообщения, программы, транспортные средства, людей и т.п. Перемещаясь между блоками модели, транзакты вызывают (и испытывают) различные действия. Возможны их задержки в некоторых точках модели, изменения маршрутов и направлений движения, расщепление транзактов на несколько копий и т.п. С каждым транзактом связан упорядоченный набор данных. Он включает номер транзакта; номер блока, в котором в данный момент находится транзакт; номер следующего блока; время перехода в следующий блок; приоритет, характеризующий очередность обработки транзактов в определенных случаях; а также набор параметров, с помощью которых каждому транзакту можно присвоить числовые значения, выражающие желаемые свойства или характеристики моделируемых объектов: вес, скорость, объем, цвет, время обработки и т.п.

    Блоки, влияющие на атрибуты транзактов и на их движение в модели


    В GPSS/PC существует ряд блоков, с помощью которых можно изменить значение параметров транзактов. Блок ASSIGN модифицирует значение параметра транзакта, входящего в этот блок. Блок INDEX изменяет значение параметра номер 1. Блок INCREMENT увеличивает значение параметра, блок DECREMENT уменьшает величину параметра.

    Блок MARK записывает в указанный им параметр текущее значение таймера абсолютного времени или, если параметр не указан, заменяет значение отметки времени на текущее значение таймера.

    С помощью блока USING осуществляется доступ текущего транзакта к параметрам другого транзакта модели. Блок LOCATE определяет и записывает в параметр текущего транзакта номер блока, в который должен войти определенный транзакт. Пересылка транзакта в требуемую точку модели осуществляется блоком TRANSFER. Блок ТЕSТ проверяя выполнение определенного условия, может также направлять транзакты в заданную точку модели, если условие не выполняется. В этом его действия аналогичны блоку GATE. Для организации в модели циклов используют блок LOOP, с помощью которого можно предусмотреть многократное прохождение транзактом заданной цепочки блоков.

    Изменение приоритета транзакта осуществляет блок PRIORITY. Блок BUFFER возобновляет просмотр списка текущих событий и используется, как правило, в качестве режима блока PRIORITY.

    С помощью блоков TRACE и UNTRACE осуществляют трассировку движения транзактов в модели.

    Списки


    Списки относятся к элементам внутренней организации системы GPSS. Они представляют собой структуры данных, в которых размещается полная информация о транзактах. С помощью списков обеспечивается внутренняя логика работы моделирующей системы.

    Список будущих событий содержит транзакты, которые смогут начать движение в модели в будущие моменты времени. Это те транзакты, для которых моменты начала движения определены в блоках GENERATE и ADVANCE.

    Устройства


    Устройства моделируют объекты, в которых может происходить обработка транзактов. Как правило, она связана с затратами времени. Особенность устройств состоит в том, что каждое из них в данный момент времени может быть занято лишь одним транзактом. Существует аналогия между устройствами GPSS и каналами систем массового обслуживания. В GPSS имеется возможность моделировать прерывания устройств. Существуют средства логической проверки состояния устройств. Каждое из действий с устройством отображается в модели определенным блоком.

    Захват и освобождение устройства моделируются соответственно блоками SEIZE и RELEASE. Для проверки состояния устройств используют GATE. Прерывание моделирует блок PREEMPT, снятие прерывания - блок RETURN.

    Памяти


    Памяти служат для моделирования объектов, обладающих определенной емкостью. Памяти моделируются блоками ENTER и LEAVE. Входящий в блок ENTER транзакт занимает определенную часть памяти. При входе транзакта в блок LEAVE память освобождается. Емкость памяти задают с помощью оператора STORAGE, который не является блоком GPSS и относится к числу служебных карт.

    Логические ключи


    Для представления в модели коммутируемых объектов с двумя состояниями ("ВКЛЮЧЕНО" - "ВЫКЛЮЧЕНО") используют логические ключи, моделируемые блоками LOGIC и GATE. При входе транзакта в блок LOGIC происходит срабатывание соответствующего ключа. Ключ

    может быть включен (S), выключен (R) или переключен (1).

    Очереди


    Транзакты в процессе движения могут задерживаться перед блоками, вход в которые в данных условиях невозможен. При поступлении транзактов на вход задерживающих блоков образуются очереди. Для сбора статистики об очередях в местах задержки ставят блоки QUEUE. Эти блоки сами по себе не создают очередь, а лишь являются средством ее регистрации. При входе транзакта в блок QUEUE текущая длина очереди получает приращение. Уход из очереди отображается блоком DEPART.

    Таблицы


    Для сбора статистических данных о различных отчетах модели и их представления в стандартной табличной форме используют таблицы. Занесение информации в таблицу осуществляется блоком TABULATE в момент входа очередного транзакта в этот блок. описание структуры таблицы и типа заносимых данных (СЧА) осуществляется картой TABLE.

    Ячейки


    Для записи в процессе моделирования текущих значений СЧА используют ячейки. Занесение информации в ячейку осуществляет блок SAVEVALUE. При входе транзакта в этот блок требуемое значение СЧА фиксируется в ячейке, номер которой определяется операндом блока SAVEVALUE. Ячейки имеют различные форматы (слово, полуслово, с плавающей точкой).

    Изменение содержимого ячеек может осуществляться блоками SDECREMENT и SINCREMENT. Блок SDECREMENT вычитает заданное значение из величины, содержащейся в ячейке. Блок SINCREMENT добавляет требуемое приращение к содержимому ячейки.

    Функции и переменные


    Функции служат для отображения зависимостей между двумя СЧА. В GPSS/PC имеется два типа функций: непрерывные (С) и дискретные (D). Функцию задают набором пар точек - координат. Непрерывная функция воспроизводится в виде ломаной кривой, отрезки которой соединяют соседние точечные значения. Дискретная функция имеет вид ступенчатой кривой.

    1 Моделирование СМО задания №14 на языке GPSS

    1.1 Постановка задачи


    Вариант 14. Из литейного цеха на участок обработки и сборки поступают заготовки через 20 ± 5 мин. Треть из них обрабатывается в течение 30 мин и поступает на комплектацию. Две трети заготовок обрабатывается за 20 мин перед комплектацией, которая требует наличия одной детали первого типа и двух деталей второго. После этого все три детали подаются на сборку, которая занимает 40 ± 2 мин для первой детали и 35 ± 8 мин для двух других, причем они участвуют в сборке одновременно. При наличии на выходе одновременно всех трех деталей изделие покидает участок.

    Смоделировать работу участка в течение 100 ч. Определить места образования и характеристики возможных очередей.
    Элементы модели вычислительной системы:

    • Транзакты – задания, которые адресуются ЭВМ;

    • Очереди – очереди заданий перед каждой ЭВМ неограниченной длины;

    • Устройства обработки – ЭВМ, обрабатывающие задания.

    1.2 Алгоритмизация модели


    На рисунке 1 представлена блок-схема модели литейного цеха



    Рисунок 1 - Блок-схема
    На участок обработки поступают изделия с интервалом 20 5 минут. Треть деталей направляется на 1-й участок обработки, где обрабатывается 30 минут. Остальные две трети деталей обрабатываются на 2-ом участке, где для обработки 2-х деталей, затрачивается 20 минут. Для того чтобы приступить к сборке, необходимо наличие 1-й детали 1-го типа, и 2-х деталей второго типа. Для синхронизации деталей в модель введен логический ключ, состояние при инициализации – включен. После того как 2 детали второго типа обработаются на 2 участке, они переходят к блоку логического ключа, и ждут, когда его состояние изменится на выключенное. Как только детали 1-го типа заканчивают обработку на 1 участке, они переходят на 1-й участок сборки, предварительно изменив состояние логического ключа на выключенное. Таким образом, детали 2-го типа также поступают на сборку. После сборки деталей, они переходят в блок накопления, и как только там окажется 3 детали, готовое изделие удаляется из модели.


    simulate



    начало моделирования

    10 generate 20,5



    генерирование транзактов с интервалом в 20  5 минут

    11 logic S key1



    инициализация логического ключа, S – закрыт

    20 split 2.3,chan2



    отправка 2/3 деталей по метке

    21 queue 1



    очередь 1

    30 seize ob1



    участок обработки 1 занят

    40 advance 30



    обработка в течение 30 минут

    50 release ob1



    освобождение устройства

    51 depart 1



    выход из очереди

    51 logic r key1



    логический ключ - выключен

    60 seize sb1



    участок сборки 1 занят

    61 advance 40,2



    сборка в течении 20  2 минуты

    62 release sb1



    освобождение устройства

    63 transfer,chan4



    отправка по метке

    80 chan2 seize ob2



    участок обработки 2 занят

    90 advance 10



    обработка в течение 10 минут

    100 release ob2



    освобождение устройства

    101 queue 2



    очередь 2

    110 gate LR key1



    проверка состояния ключа

    111 depart 2



    выход из очереди

    120 split 1,chan5



    расщепление транзактов, отправка по метке

    130 seize sb2



    участок сборки 2 занят

    140 advance 17.5,4



    сборка в течение 17.54 минуты

    150 release sb2



    освобождение участка сборки

    160 transfer,chan4



    отправка по метке

    170 chan5 seize sb3



    участок сборки 3 занят

    171 advance 17.5,4



    сборка в течение 17.54 минуты

    172 release sb3



    освобождение устройства

    180 chan4 assemble 3



    сборка трех деталей в одну

    190 terminate



    удаление готовой детали

    200 generate 6000



    генерация работы в течении 100 часов

    201 terminate 1



    удаление

    start 1



    1 прогон



    Вывод


    GPSS World Simulation Report - var14_ok.5.1

    Friday, May 12, 2017 21:10:07
    START TIME END TIME BLOCKS FACILITIES STORAGES

    0.000 6000.000 31 5 0

    NAME VALUE

    CHAN2 14.000

    CHAN4 28.000

    CHAN5 25.000

    KEY1 10000.000

    OB1 10001.000

    OB2 10002.000

    SB1 10003.000

    SB2 10004.000

    SB3 10005.000

    LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

    1 GENERATE 303 0 0

    2 LOGIC 303 0 0

    3 SPLIT 303 0 0

    4 QUEUE 303 103 0

    5 SEIZE 200 0 0

    6 ADVANCE 200 1 0

    7 RELEASE 199 0 0

    8 DEPART 199 0 0

    9 LOGIC 199 50 0

    10 SEIZE 149 0 0

    11 ADVANCE 149 1 0

    12 RELEASE 148 0 0

    13 TRANSFER 148 0 0

    CHAN2 14 SEIZE 596 0 0

    15 ADVANCE 596 1 0

    16 RELEASE 595 0 0

    17 QUEUE 595 0 0

    18 GATE 595 0 0

    19 DEPART 595 0 0

    20 SPLIT 595 253 0

    21 SEIZE 342 0 0

    22 ADVANCE 342 1 0

    23 RELEASE 341 0 0

    24 TRANSFER 341 0 0

    CHAN5 25 SEIZE 339 0 0

    26 ADVANCE 339 1 0

    27 RELEASE 338 0 0

    CHAN4 28 ASSEMBLE 827 171 0

    29 TERMINATE 169 0 0

    30 GENERATE 1 0 0

    31 TERMINATE 1 0 0

    FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY

    OB1 200 0.996 29.883 1 989 0 0 0 103

    OB2 596 0.993 9.998 1 1482 0 0 0 10

    SB1 149 0.991 39.910 1 733 0 0 0 50

    SB2 342 0.991 17.388 1 850 0 0 0 253

    SB3 339 0.991 17.542 1 860 0 0 0 256

    QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY

    1 104 104 303 0 51.896 1027.647 1027.647 0

    2 3 0 595 148 0.705 7.106 9.458 0

    LOGICSWITCH VALUE RETRY

    KEY1 1 0

    FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE

    1482 0 6001.244 1475 15 16

    860 0 6001.855 838 26 27

    850 0 6003.220 841 22 23

    1504 0 6016.433 1504 0 1

    989 0 6023.424 989 6 7

    733 0 6026.012 733 11 12

    1507 0 12000.000 1507 0 30

    Из приведенного выше файла стандартного отчета были получены данные, представленные в таблице 1


    Устройства обработки

    Количество обработанных транзактов

    Коэффициент загрузки

    Максимальная длина очереди

    ob1

    200

    0.996

    103

    ob2

    596

    0.993

    10

    sb1

    149

    0.991

    50

    sb2

    342

    0.991

    253

    sb3

    339

    0.991

    256


    Анализируя эти данные, можно прийти к выводу что:

    • участок обработки 1 – обработал 200 транзактов, коэффициент загруженности его равен 0,996;

    • участок обработки 2 – обработал 596 транзактов, коэффициент загруженности его равен 0,993;

    • участок сборки 1 – обработал 149 транзактов, коэффициент загруженности его равен 0,991;

    • участок сборки 2 – обработал 342 транзактов, коэффициент загруженности его равен 0,991;

    • участок сборки 3 – обработал 339 транзактов, коэффициент загруженности его равен 0,991.


    Система характеризируется высоким коэффициентом загруженности всех устройств, и довольно большими очередями транзактов, в ожидании устройства.

    Для снижения загруженности устройств и уменьшения размера очередей, возможно увеличение интервала времени поступающих в систему транзактов.

    Список использованных источников


    1. Самарский А.А., Михайлов А.П. Математическое моделирование. М., 1997.

    2. Петров А.А., Поспелов И.Г., Шананин А.А. Опыт математического моделирования экономики. М.,
      1996.

    3. Капица П.Л. Эксперимент, теория, практика: Статьи и выступления. М., 1987. С.417.

    Приложение А


    Синтаксис операторов GPSS использованных в данном курсовом проекте

    GENERATE - вводит транзакты в модель.

    Формат: GENE [RATE] A,B,C,D,E,F,G

    А - среднее значение интервала времени;

    В - разброс или модификатор среднего значения(по умолчанию ноль);

    С - время появления первого транзакта;

    D - общее число генерируемых транзактов;

    Е - уровень приоритета каждого транзакта;(от 0 до 127,значение по умолчанию 0);

    F - число параметров (по умолчанию 12);

    G - тип параметра ( F - полнословный, Н - полусловный - по умолчанию ).

    Вводит транзакты в модель, посылая их в следующий по порядку блок. Если в поле В не указана Функция, то интервал между поступлением транзактов определяется случайным числом, равномерно распределенным в диапазоне от (А - В) до (А + В). Если поле В является функцией (FN$), то этот интервал определяется произведением поля А на значение функции, заданной в поле В.
    TRANSFER - изменяет движение транзакта в модели.

    Формат: TRAN[SFER] А,В,С,D

    А - режим передачи (пробел,.,ALL,BOTH,FN,P,PICK,SBR,SIM);

    В - следующий блок;

    С - следующий блок;

    D - значение индекса, используемое в режиме ALL.

    Транзакт направляется в блок, определяемый в соответствии с режимом передачи, указанным в поле А. Режимы передачи поля А:

    Пробел - транзакт передается в блок, определяемый полем;

    "." - статистический режим; в поле А указано десятичное число, выражающее вероятность перехода в блок С; его дополнение до единицы указывает вероятность перехода в блок В;

    ALL - транзакт последовательно пытается перейти в блоки, определяемые значениями В, B+D, B+2D.....C;

    BOTH - транзакт последовательно пытается войти в блок В, затем в блок С, до тех пор, пока один из них станет доступным;

    FN - функциональный режим: поле В является номером функции; следующий блок определяется суммой значения этой функции поля С;

    Р - параметрический режим: поле В является номером параметра; следующий блок определяется суммой значения этого параметра и поля С;

    PICK - выборочный режим: блок выбирается с равной вероятностью из блоков с номерами: В, B+l,..., С.

    SBR - режим перехода к подпрограмме: номер текущего блока помещается в параметр, указанный в поле С, а транзакт передается в блок, номер которого указан в поле В.

    SIM - одновременный режим: проверяется одновременное выполнение условий беспрепятственного движения транзактов в задерживающих блоках. Если условие выполняется, транзакт передается в следующий блок, в противном случае транзакт переходит на блок С;
    QUEUE - помещает транзакт в конец очереди.

    Формат: QUEU[E] А,В

    А - номер очереди (числовое или символьное имя очереди);

    В - число добавляемых к очереди элементов (по умолчанию 1).

    Увеличивает текущее содержимое очереди, указанной в поле А, на значение в поле В. Если поле В не определено, увеличивает содержимое очереди на единицу. Транзакт может находиться в двух различных очередях одновременно.
    DEPART - удаляет транзакт из очереди.

    Формат: DEPA[RT] А,В

    А - номер (имя) очереди;

    В - число удаляемых из очереди элементов.

    Удаляет текущий транзакт из очереди, указанной в поле А, и уменьшает содержимое очереди на значение поля В. Транзакт может находиться одновременно в двух различных очередях.
    SEIZE - занимает устройство.

    Формат: SEIZ[E] А

    А - номер устройства.

    Транзакт пытается занять устройство, определенное полем А. Если прервано, транзакт задерживается в предыдущем блоке.
    ADVANCE (ЗАДЕРЖАТЬ) ADVANCE - задерживает транзакт.

    Формат: ADVA[NCE] A,B

    А - среднее время задержки (константа, если В не задано);

    В - разброс относительно среднего значения, должен быть меньше или равен А.

    Блок ADVANCE моделирует временною задержку транзакта в течение определенного интервала. Значение задержки по умолчанию равно нулю. Если поле В не является FN$, т время задержки является случайным числом, распределенным равномерно на интервале от (; + В) до (А - В). Если поле В является функцией FN$, то время задержки определяете произведением поля А на значение функции в поле В. Функция может быть использована для задания времени задержки с определенным средним значением и отклонением, зависящим от А.
    RELEASE - освобождает устройство.

    Формат: RELE[ASE] А

    А - номер устройства(числовое или символьное имя освобождаемого устройства) .

    Устройство, указанное в поле А, освобождается и становится доступным для других транзактов. Освобождать устройство должен тот же транзакт, который его занимал.
    TERMINATE - удаляет транзакт.

    Формат: TERMI[NATE] A

    А - величина, вычитаемая из содержимого счетчика завершений(поле А карты START).

    Транзакт удаляется из модели и поступает в пассивный буфер. Если в поле А пробел, воздействия на счетчик завершений не происходит, в противном случае его значение уменьшается на величину, указанную в поле А.

    START - управление процессом моделирования.

    Формат: STAR[T] А,В,С,D

    А - счетчик числа завершений;

    В - подавление вывода на печать (В = NP);

    С - промежуточный вывод статистики; 0 - распечатка списков.

    Поле А определяет счетчик завершений при прогоне модели. При входе транзакта в блок TERMINATE с ненулевым значением поля А, содержимое поля А блока TERMINATE вычитается из остаточного значения счетчика - поля А карты START.

    Прогон завершается, когда значение счетчика достигнет нуля. Указатель NP в поле В отменяет вывод стандартного отчета GPSS. Величина , указанная в поле С, определяет число завершений, по достижении которого выдается промежуточный отчет. Таким образом можно получать статистические данные в определенных интервалах моделирования. Если поле D содержит 1, полученный отчет будет содержать списки текущих и будущих событий, а также списки пользователя.


    написать администратору сайта