ТИПС. КП_Моделирование. Язык имитационного моделирования gpss 4 Функциональная структура gpss. 4
Скачать 59.16 Kb.
|
ОглавлениеВведение 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 ВведениеВажным этапом моделирования является создание математической модели исследуемой системы. На базе математической модели происходит анализ характеристик системы, при компьютерном моделирования на основе математической модели создается алгоритм программ для получения информации о поведении системы. Формальное описание объекта исследование необходимо также для взаимопонимания между специалистами разных областей, объединенных для решения какой-либо глобальной задачи. При построении математических моделей процессов функционирования систем можно выделить следующие основные подходы: непрерывно-детерминированный, дискретно-детерминированный, дискретно-стохастический, непрерывно-стохастический, сетевой, обобщенный (или универсальный). Соответственно этим подходам были разработаны типовые математические схемы создания моделей. Непрерывно-детерминированный подход использует в качестве математических моделей системы дифференциальных уравнений. Дискретно-детерминированный подход реализуется с помощью математического аппарата теории автоматов. Система представляется в виде автомата, перерабатывающего дискретную информацию и меняющего свои внутренние состояния лишь в допустимые моменты времени. Дискретно-стохастический подход использует в качестве математического аппарата вероятностные автоматы, которые можно определить, как дискретные потактные преобразователи информации с памятью, функционирование которого в каждом такте зависит только от состояния памяти в нем и может быть описано статистически. Непрерывно-стохастический подход применяется для формализации процессов обслуживания. Этот подход наиболее известен ввиду того, что большинство производственных (и не только производственных - экономических, технических и т.д.) систем по своей сути являются системами массового обслуживания. Типовой математической схемой моделирования таких систем являются 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 на языке GPSS1.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 детали, готовое изделие удаляется из модели.
Вывод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
Анализируя эти данные, можно прийти к выводу что: участок обработки 1 – обработал 200 транзактов, коэффициент загруженности его равен 0,996; участок обработки 2 – обработал 596 транзактов, коэффициент загруженности его равен 0,993; участок сборки 1 – обработал 149 транзактов, коэффициент загруженности его равен 0,991; участок сборки 2 – обработал 342 транзактов, коэффициент загруженности его равен 0,991; участок сборки 3 – обработал 339 транзактов, коэффициент загруженности его равен 0,991. Система характеризируется высоким коэффициентом загруженности всех устройств, и довольно большими очередями транзактов, в ожидании устройства. Для снижения загруженности устройств и уменьшения размера очередей, возможно увеличение интервала времени поступающих в систему транзактов. Список использованных источниковСамарский А.А., Михайлов А.П. Математическое моделирование. М., 1997. Петров А.А., Поспелов И.Г., Шананин А.А. Опыт математического моделирования экономики. М., 1996. Капица П.Л. Эксперимент, теория, практика: Статьи и выступления. М., 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, полученный отчет будет содержать списки текущих и будущих событий, а также списки пользователя. |