Объекты GPSS
|
Интерпретация в реальной системе
|
Транзакт
|
Заявка на создание продукта
|
ОКУ Programming
|
Программист, изучающий чертеж и пишущий программу
управления станком, обрабатывающим заготовки
|
ОКУ Recording
|
ЭВМ, обрабатывающая текст программы и записывающая его на
носитель
|
ОКУ Testing
|
Станок, проводящий испытания программы
|
Единица модельного времени
|
Минута
|
На первом этапе проведения моделирования конкретного объекта (системы) на
базе ЭВМ необходимо построить концептуальную, т.е. содержательную модель
процесса функционирования этой системы, а затем провести её формализацию, т.е.
перейти от словесного описания объекта моделирования к его математической
(аналитико-имитационной) модели. Наиболее ответственными моментами на этом этапе
является упрощение описания системы, т.е. отделение собственно системы от
внешней среды и выбор основного содержания модели путём отбрасывания всего
второстепенного с точки зрения поставленной цели моделирования.
После тщательного анализа текста задания была построена следующая
концептуальная модель (рис.1).
Рисунок 1. Концептуальная модель
По условию задачи в данной модели должен быть реализован алгоритм, с
помощью с которого будет определятся порядок обработки заказов, поступающих на
каждое из трех устройств. С целью упорядочивания транзактов, ожидающих
освобождения устройства в данную схему были добавлены накопители.
.2
Блок-диаграмма модели
На втором этапе моделирования системы математическая модель, сформулированная
на первом этапе, воплощается в конкретную машинную модель. Второй этап
моделирования представляет собой практическую деятельность, направленную на
реализацию идей и математических схем в виде машинной модели ориентированной на
использование конкретных программно - технических средств, а именно GPSS World.
Наиболее распространенным методом описания систем является составление
блок-диаграмм. Блок-диаграмма - графическое представление операций,
происходящих внутри системы.
Другими словами, блок-диаграмма описывает взаимодействие событий внутри
системы. Линии, соединяющие блоки, указывают маршруты потоков сообщений или
описывают последовательность выполняемых событий.
В случае нескольких вариантов действий от блока отходят несколько линий.
Выбор логических путей может основываться на статистических или логических
условиях, действующих в момент выбора. В GPSS World имеется определенное количество типов блоков для
задания объектов и операций над ними. Каждому блоку соответствует графическое
изображение на блок-диаграмме.
Построение блок - диаграммы GPSS модели системы обеспечивает необходимую
гибкость модели в процессе её эксплуатации, а также даёт ряд преимуществ на
стадии её машинной отладки. При построении блочной модели производится
разбиение процесса функционирования системы на отдельные достаточно автономные
подпроцессы. Блоки такой модели бывают основными и вспомогательными. Каждый
основной блок соответствует некоторому подпроцессу моделируемой системы, а
вспомогательные блоки лишь представляют составную часть машинной модели, не
отражая функции моделируемой системы, они нужны лишь для машинной реализации
модели, фиксации и обработки результатов моделирования.
Рисунок 2. Блок-диаграмма модели
1.3 Листинг
программы на языке GPSS
При достаточной подробности схемы программы, отражающей все операции
логической схемы модели, можно приступить к программированию модели. Для
данного задания переход от блок - диаграммы к программе является формальным
шагом, так как заключается в записи пространственной структуры в линейной виде.
XPDIS Function RN1,C24
,0/.1,.104/.2,.222/.3,.335/.4,.509/.5,.69/.6,.915/.7,1.2/.75,1.38/.8,1.6
.84,1.83/.88,2.12/.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5
.98,3.9/.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8,,,1 Metod+,1 ;определение порядка выполнения работ
Terminate (1,2,3,4)
Generate (Uniform(1,105,185)),,,3 ;поступление заявок
в модель
Assign Programming,(110#FN$XPDIS) ;определение времени обработки
Assign Recording,(100#FN$XPDIS) T1,T2,T3Testing,(85#FN$XPDIS)
Technological_Time,(Uniform(1,25,65)+ +P$Programming+P$Recording+P$Testing) ;определение технологического времениDirective_Time,(P$Technological_Time+C1);определение директивного времени4 Transfer ,(LL4+X$Metod) ;пересылаем транзакт в
соответствую-
Link Programming,P$Technological_Time,LL1 щий блок
Link
(1,2,3,4)Programming,P$Technological_Time,LL1Programming,P$Directive_Time,LL1Programming,(P$Programming+P$Recording+P$Testing),LL1Seize
Programming P$Programming;имитация процесса програмирования
Release Programming E 1,X$Metod,LL5;пересылаем
транзакт в соответст-
Unlink Programming,LL1,1,Back вующий блок Unlink (1 - для 1 вари- ,LL6 анта, 2 - для 2,3,4 вариантов
порядка
LL5 Unlink Programming,LL1,1 выполнения)6 Transfer ,(LL6+X$Metod) ;пересылаем транзакт в
соответствую-
Link Recording,P$Technological_Time,LL2 щий блок
Link
(1,2,3,4)Recording,P$Technological_Time,LL2Recording,P$Directive_Time,LL2Recording,(P$Recording+P$Testing),LL2Seize
Recording P$Recording ;имитация процесса записи на ЭВМ
Release Recording E 1,X$Metod,LL7;пересылаем
транзакт в соответст-
Unlink Recording,LL2,1,Back вующий блок Unlink (1 - для 1 вари- ,LL8 анта, 2 - для 2,3,4 вариантов
порядка
LL7 Unlink Recording,LL2,1 выполнения)8 Transfer ,(LL8+X$Metod) ;пересылаем транзакт в
соответствую-
Link Testing,P$Technological_Time,LL3 щий блок
Link
(1,2,3,4)Testing,P$Technological_Time,LL3Testing,P$Directive_Time,LL3Testing,P$Testing,LL3Seize
Testing P$Testing;имитация процесса тестирования
Release Testing
Test E 1,X$Metod,LL9;пересылаем
транзакт в соответст
Unlink Testing,LL3,1,Back вующий
блок Unlink (1 - для 1 ва ,(LL9+1)
рианта, 2 - для 2,3,4 вариантов по
LL9 Unlink Testing,LL3,1
рядка выполнения)
Terminate 1 ;удаление транзактов из модели
Rmult
617;фиксируем значения блока RN1
Start
3
Clear OFF;Сохраняем
значения заданных величин (X$Metod=1,2,3,4)
Reset;
Обнуляем значение модельного времени6173OFF6173OFF617 3
В начале программы задаем функцию экспоненциального распределения - к ней
мы будем обращаться для определения времени обработки заказа.
Далее следует блок, отвечающий за автоматический выбор вариантов
упорядочивания в списках пользователя. Осуществляется это путем наращивания
величины «Metod» на единицу при каждом последующем
запуске. Впоследствии я обращаюсь к этой величине, определяя, в какую строку
перейдет транзакт после попадания в блок «TRANSFER ,(LLi+X$Metod)», работающий в режиме безусловного
перехода.
Заказы на подготовку носителей с программами (транзакты) поступают через
промежутки времени, распределенные равномерно в интервале А±В (145±40 минут),
после чего для них определяются следующие параметры:
1. Programming: определение времени програмированния, Т1
2. Recording: определение времени записи ЭВМ, Т2
3. Testing: определение времени тестирования, Т3
4. Technological_Time: определение
технологического времени
. Directive_Time: определение директивного времени.
После этого транзакты попадают в блок «TRANSFER», где определяется, в список с каким
способом упорядочивания они попадут.
Блок «LINK» собирает транзакты из СТС и помещает их в СП. Таким образом,
интерпретатор их не просматривает и не перемещает по блокам модели до тех пор,
пока пользователь не возвратит их в модель.
Операнд А задает имя СП, в который будет помещен транзакт. Операнд В
задает алгоритм упорядочивания - входящие в СП транзакты располагаются в
соответствии со значением указанного параметра. Операнд С указывает
альтернативный выход, который используется при описании разных ситуаций,
возникающих в очередях.
Если операнд С задан, проверяется индикатор СП. Если индикатор списка
установлен в положение «1», вошедший транзакт, заносится в СП в порядке,
заданном операндом В. Если же индикатор списка установлен в положение «0», он
переводится в положение «1», и вошедший транзакт перемещается к блоку,
заданному в операнде С.
После окончания обработки транзакт попадает в блок «TEST», параметры которого заданны таким
образом, что если транзакт был в списке, упорядочивание в котором происходит
первым способом, то он попадет в следующий по порядку блок, «UNLINK». Блок «UNLINK» удаляет транзакты из
СП. После этого интерпретатор GPSS возобновляет их движение по модели. Операнд
А задает СП, из которого удаляются один или несколько транзактов. В операнде В
указывается номер блока, к которому переходят удаляемые из списка транзакты (в
нашем случае это метка). Операнд С задает число транзактов, удаляемых из СП
(счетчик удалений).
Работа данного блока осуществляется следующим образом. Вычисляются
значения операнда А для определения номера (имени) СП. Проверяется, есть ли в
списке транзакты. Если их нет, соответствующий этому списку индикатор
устанавливается в «0», а транзакт, вошедший в блок, переходит к следующему по
номеру блоку.
Если список не пуст, вычисляется значение операнда С (счетчика удалений),
определяющего число транзактов, удаляемых из списка. Транзакты удаляются,
начиная с первого в списке до тех пор, пока значение счетчика удалений не
станет равным нулю, или пока не будут исчерпаны все транзакты из списка.
Удаленные из СП транзакты будут помещены в СТС и направлены к блоку, номер
которого указан в операнде В. Транзакт, вошедший в блок UNLINK, перемещается к
следующему по номеру блоку. Если в параметре D указано значение «BACK», то выборка из списка осуществляется с конца.
После блока «UNLINK» транзакт
переходит к следующему этапу реализации заявки - записи, после нее - к
тестированию и покидает систему. Алгоритм выполнения обработки на всех трех
устройствах аналогичен и не требует повторного описания. Единственное различие
между этапами выполнения заключается во времени обработки.
Установив значение команды «CLEAR» в положение «OFF»,
мы сохраним значение величины «Metod=1»,
соответственно при следующем запуске ее значение станет равно двум и
реализуется второй вариант упорядочивания в списке, и т.д. Команда «RESET» сбрасывает счетчик модельного
времени, что в свою очередь необходимо для корректного определения директивного
времени.
Фиксированное значение Rmult
гарантирует появление транзактов в системе в одно и то же время для всех
четырех запусков, то же самое происходит и с временем обработки, т.к. значение
экспоненциальной функции будут идентичны.
.4 Результаты
моделирования
Получение и интерпретация результатов исследования - это третий этап
моделирования, когда инструментальная ЭВМ используется для проведения рабочих
расчётов по составленной и отлаженной программе. Результаты этих расчётов
позволяют провести анализ и сформулировать выводы о характеристиках процесса
функционирования моделируемой системы.
При реализации моделирующих алгоритмов на ЭВМ вырабатывается информация о
состояниях процесса функционирования исследуемой системы, которая является
исходным материалом для приближённой оценки искомых характеристик, получаемых в
результате имитационного эксперимента с моделью.
В результате прогона модели были получены следующие результаты:
1. Сначала выполняются те заказы, которые имеют самое большое
технологическое время выполнения:
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER
RETRY DELAY3 0.486 129.743 1 0 0 0 0 03 0.281 75.064 1 0 0 0 0 03 0.163 43.499
1 0 0 0 0 0CHAIN SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME0 0 0.102 1 1 81.9260
0 0.081 1 1 64.7220 0 0.006 1 1 5.177RETRY VALUE
METOD 0 1.000
. Сначала выполняются те заказы, которые имеют самое маленькое
технологическое время выполнения:
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER
RETRY DELAY3 0.486 129.743 1 0 0 0 0 03 0.281 75.064 1 0 0 0 0 03 0.163 43.499
1 0 0 0 0 0CHAIN SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME0 0 0.102 1 1 81.9260
0 0.081 1 1 64.7220 0 0.006 1 1 5.177RETRY VALUE
METOD 0 2.000
. Сначала выполняются те заказы, которые имеют наименьшее
оставшееся время обработки:
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER
RETRY DELAY3 0.486 129.743 1 0 0 0 0 03 0.281 75.064 1 0 0 0 0 03 0.163 43.499
1 0 0 0 0 0CHAIN SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME0 0 0.102 1 1 81.9260
0 0.081 1 1 64.7220 0 0.006 1 1 5.177RETRY VALUE
METOD 0 3.000
. Сначала выполняются те заказы, которые имеют ближайший
директивный срок:
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER
RETRY DELAY3 0.486 129.743 1 0 0 0 0 03 0.281 75.064 1 0 0 0 0 03 0.163 43.499
1 0 0 0 0 0CHAIN SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME0 0 0.102 1 1 81.9260
0 0.081 1 1 64.7220 0 0.006 1 1 5.177RETRY VALUE
METOD 0 5.000
Сравнив отчеты, сгенерированные для четырех вариантов данной задачи мы
видим, что данные идентичны. Подтверждает это и информация, полученная из
журнала:
/06/11 05:52:09 Simulation in Progress.
05/06/11 05:52:09 The Simulation has ended. Clock is
800.106481.
/06/11 05:52:09 Reporting in Курсовой_Exelent.52.1 - REPORT Window.
/06/11 05:52:09 Simulation in Progress.
/06/11 05:52:09 The Simulation has ended. Clock is
800.106481.
/06/11 05:52:09 Reporting in Курсовой_Exelent.52.2 - REPORT Window.
/06/11 05:52:10 Simulation in Progress.
/06/11 05:52:10 The Simulation has ended. Clock is
800.106481.
/06/11 05:52:10 Reporting in Курсовой_Exelent.52.3 - REPORT Window.
/06/11 05:52:10 Simulation in Progress.
/06/11 05:52:10 The Simulation has ended. Clock is
800.106481.
05/06/11 05:52:10 Reporting in Курсовой_Exelent.52.4 - REPORT Window.
Параметр D=3 в блоке «GENERATE» был задан для того, чтобы все
сгенерированные в модели заявки были обработаны, в противном же случае
установить истинные значения параметров загрузки будет невозможно. Время
обработки трех заявок составило примерно 800 минут.
.5 Обработка
результатов моделирования
На основании полученных данных мы можем сделать вывод, что эффективность
системы не зависит от порядка выполнения ожидающих в очереди заказов при
небольшом количестве заявок. Объясняется это тем, что время обработки на первом
этапе больше, чем на втором, на втором - больше чем на третьем. Таким образом,
вероятность возникновения очереди крайне мала. Для повышения эффективности
системы необходимо увеличить число заявок, поступающих в систему. Установив
параметр блока GENERATE «D=100» мы видим, что нагрузка на
устройства возросла, и списки пользователей используются более активно:
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER
RETRY DELAY100 0.674 105.110 1 0 0 0 0 0100 0.650 101.342 1 0 0 0 0 0100 0.565
88.129 1 0 0 0 0 0CHAIN SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME0 0 0.544 48 5
176.8240 0 1.451 63 8 359.3470 0 1.666 54 12 481.318RETRY VALUE0 1.000
_____________________________________________________________ENTRIES
UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY100 0.673 105.110 1 0 0 0 0
0100 0.649 101.342 1 0 0 0 0 0100 0.564 88.129 1 0 0 0 0 0CHAIN SIZE RETRY
AVE.CONT ENTRIES MAX AVE.TIME0 0 0.449 48 3 146.2940 0 0.749 63 5 185.8330 0
0.449 45 4 155.852RETRY VALUE0 2.000
_____________________________________________________________ENTRIES
UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY100 0.671 105.110 1 0 0 0 0
0100 0.647 101.342 1 0 0 0 0 0100 0.562 88.129 1 0 0 0 0 0CHAIN SIZE RETRY
AVE.CONT ENTRIES MAX AVE.TIME0 0 0.475 48 3 154.9880 0 0.973 63 6 242.0520 0
0.639 52 6 192.468RETRY VALUE0 3.000 ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND
INTER RETRY DELAY100 0.676 105.110 1 0 0 0 0 0100 0.652 101.342 1 0 0 0 0 0100
0.567 88.129 1 0 0 0 0 0CHAIN SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME0 0 0.545
48 5 176.5320 0 1.530 63 8 377.5800 0 0.506 54 5 145.706RETRY VALUE0 4.000
/06/11 06:35:03 Model Translation Begun.
/06/11 06:35:03 Ready.
/06/11 06:35:03 Simulation in Progress.
/06/11 06:35:03 The Simulation has ended. Clock is
15599.342359.
/06/11 06:35:03 Reporting in Курсовой_Exelent.53.1 - REPORT Window.
/06/11 06:35:03 Simulation in Progress.
/06/11 06:35:03 The Simulation has ended. Clock is
15626.228919.
/06/11 06:35:03 Reporting in Курсовой_Exelent.53.2 - REPORT Window.
/06/11 06:35:04 Simulation in Progress.
/06/11 06:35:04 The Simulation has ended. Clock is
15667.801467.
/06/11 06:35:04 Reporting in Курсовой_Exelent.53.3 - REPORT Window.
/06/11 06:35:04 Simulation in Progress.
/06/11 06:35:04 The Simulation has ended. Clock is
15545.055376.
/06/11 06:35:04 Reporting in Курсовой_Exelent.53.4 - REPORT Window.
Таблица 2. Зависимость выходных данных от числа транзактов, вошедших в
систему
Метод
|
100 заявок
|
FACILITY(Util)
|
USER CHAIN (max)
|
AVE.TIME
|
|
Время моделирования
|
Programming
|
Recording
|
Testing
|
Programming
|
Recording
|
Testing
|
Programming
|
Recording
|
Testing
|
1
|
0,674
|
0,65
|
0,565
|
5
|
8
|
12
|
176,824
|
359,347
|
481,318
|
2
|
15626,22892
|
0,673
|
0,649
|
0,564
|
3
|
5
|
4
|
146,294
|
185,833
|
155,852
|
3
|
15667,80147
|
0,671
|
0,646
|
0,562
|
3
|
6
|
6
|
154,988
|
242,052
|
192,468
|
4
|
15545,05538
|
0,676
|
0,652
|
0,567
|
5
|
8
|
5
|
176,532
|
377,58
|
145,706
|
.
Данные таблицы свидетельствуют о том, что при увеличении числа заявок,
порядок их обработки начинает влиять на выходные данные. В нашем случае
ключевыми характеристиками являются коэффициенты загрузки устройств и общее
время моделирования, а так же максимальное количество транзактов в списках
пользователя и время их пребывания там. Мы видим, что выполнить максимально
быстро указанное число заявок можно, сортируя их в списках четвертым способом,
то есть выполняя сначала те заказы, которые имеют ближайший директивный срок.
Сортируя заявки вторым способом (сначала выполняются те заказы, которые
имеют самое маленькое технологическое время выполнения), мы уменьшаем время
ожидания транзактов в списках, следовательно данный метод позволяет выполнить
максимальное количество заявок за указанный интервал времени.
На основании этого можно сделать вывод, что оптимальными являются второй
и четвертый способы сортировки, причем второй способ необходимо использовать,
если отдел обслуживания работает в одну смену, так как за это время они успеют
выполнить максимальное количество заявок, и четвертый - если используется
поточное производство с 24 - часовой рабочей сменой.
Заключение
программа модель имитационный
В ходе выполнения курсовой работы были получены основные навыки решения
задач по автоматизации технологических процессов в среде имитационного моделирования
GPSS World, что включает в себя проведение
научно - исследовательской и проектно - конструкторской работы в области
исследования и разработки сложных систем; способность ставить и проводить
имитационные эксперименты с моделями процессов функционирования систем на
современных ЭВМ для оценки вероятностно-временных характеристик систем;
принятие экономически и технически обоснованных инженерных решений; анализ
научно-технической литературы в области системного моделирования, а также
использование стандартов, справочников, технической документации по
математическому и программному обеспечению ЭВМ и т.д.
В результате выполнения работы получены результаты о работе трех
устройств. Так же был проведен анализ влияния числа заявок на эффективность
работы системы с целью выявления оптимального метода обработки очередей.
В качестве критериев эффективности системы были взяты значения загрузки
устройств, а так же время прогона, необходимое для выполнения фиксированного
числа заявок.
Библиографический
список
1. Боев В.Д. Моделирование систем. Инструментальные средства
GPSS. - СПб: БХВ-Петербург, 2010. - 368
с.
2. Томашевский В., Жданова E.
Имитационное моделирование в среде GPSS. - М.:Бестселлер, 2007. - 416 c.
3. Тынченко В.С. Имитационное
моделирование экономических процессов/ Конспект лекций. - Красноярск, 2011. -
488 c.
. Советов Б.Я., Яковлев С.А.
Моделирование систем. Практикум: Учеб. пособие для вузов по спец. «Автоматизир.
системы обработки информ. и упр.». - М.: Высш. шк., 2009. - 224 с.