Помощь в написании студенческих работ
Антистрессовый сервис

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

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

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

Моделирование СМО на языке GPSS (реферат, курсовая, диплом, контрольная)

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

  • Содержание
  • Моделирование СМО задания № 1 на языке GPSS
  • 1 Постановка задачи
  • 2 Алгоритм модели
  • 3 Решение задачи на языке GPSS
  • 4 Результаты моделирования
  • Заключение
  • Приложение 1
  • Список использованной литературы

Для создания имитационной модели любого экономического процесса или системы необходимо пройти 5 основных этапов:

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

— Определение проблемы. На этом этапе выясняется вероятность возникновения альтернатив, пригодных для создания модели. Здесь также выявляются цели и задачи моделирования и определяются критерии, по которым будет определяться успешность моделирования.

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

— Принятие модели. На этом этапе все предположения, используемые в предыдущих шагах, должны быть выяснены и проверены. Именно здесь можно внести коррективы в модельную конструкцию, если они того требуют.

— Симуляция и выводы. На этом этапе наблюдается поведение моделей при различных условиях. Получаются различные расчетные параметры и графические изображения модельных процессов. Затем выражается заключение о работоспособности модели и рекомендации об её усовершенствовании.

Курсовой проект базируется на теории массового обслуживания (СМО).

Для имитационного моделирования СМО был создан специализированный язык программирования GPSS.

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

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

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

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

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

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

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

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

Время GPSS-модели дискретно — оно может изменяться лишь на целое число единиц. Физический смысл одной единицы модельного времени — час, минута, секунда и т. д. — определяет пользователь GPSS — экспериментатор, строящий модель исследуемой системы.

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

Задание 1

На сборочный участок цеха предприятия через интервалы времени, распределенные экспоненциально со средним значением 10 мин, поступают партии, каждая из которых состоит из трех деталей. Половина всех поступающих деталей перед сборкой должна пройти предварительную обработку в течение 7 мин. На сборку подаются обработанная и необработанная детали. Процесс сборки занимает всего 6 мин. Затем изделие поступает на регулировку, продолжающуюся в среднем 8 мин (время выполнения ее распределено экспоненциально). В результате сборки возможно появление 4% бракованных изделий, которые не поступают на регулировку, а направляются снова на предварительную обработку.

Смоделировать работу участка в течение 24 ч. Определить возможные места появления очередей и их вероятностно-временные характеристики. Выявить причины их возникновения, предложить меры по их устранению и смоделировать скорректированную систему.

Элементы модели участков обработки деталей:

транзакты — детали, поступающие на участки обработки;

очереди — очереди на участках обработки;

участки обработки — участки цеха, производящие сборку, обработку и регулировку деталей.

2. Алгоритм модели

Данная система описывает работу сборочного участка цеха, которая состоит из трех этапов: сборка, предварительная обработка и регулировка деталей. Первые два этапа осуществляются параллельно. Половина всех партий (50%) поступает сразу на сборку, а вторая половина проходит предварительную обработку, после чего отправляется на сборку. В процессе сборки деталей выделяется 4% брака, которые заново проходят предварительную обработку. Следующим этапом все партии поступают на регулировку (96%).

На основании задания была построена структурная Q-схема (Рисунок 1).

Рисунок 1 — Блок-схема задания № 1

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

Для реализации имитации работы сборочного участка цеха в среде GPSS World понадобились следующие операторы: GENERATE, TRANSFER, SPLIT, QUEUE, SEIZE, DEPART, ADVANCE, RELEASE, TERMINATE, START.

Синтаксис данных операторов указан в Приложении № 1.

3. Решение задачи на языке GPSS

Старостин В.В.4 курс, Гр. ИСЗ-С41

Модель сборочного участка цеха

GENERATE (EXPONENTIAL (1,0,10))

TRANSFER .5,sp1,sp2

sp1 SPLIT 2

blok1 QUEUE OCHER1

SEIZE OBRABOTKA

DEPART OCHER1

ADVANCE 7

RELEASE OBRABOTKA

TRANSFER, blok2

sp2 SPLIT 2

blok2 QUEUE OCHER2

SEIZE SBORKA

DEPART OCHER2

ADVANCE 6

RELEASE SBORKA

TRANSFER .04,blok3,blok1

blok3 QUEUE OCHER3

SEIZE REGULIROVKA

DEPART OCHER3

ADVANCE 8

RELEASE REGULIROVKA

TERMINATE

GENERATE 1440

TERMINATE 1

START 1

4. Результаты моделирования

После окончания моделирования в среде GPSS World, был получен следующий стандартный отчет:

Wednesday, March 17, 2010 09:38:46

START TIME END TIME BLOCKS FACILITIES STORAGES

0.000 1440.000 24 3 0

NAME VALUE

BLOK1 4.000

BLOK2 11.000

BLOK3 17.000

OBRABOTKA 10 005.000

OCHER1 10 004.000

OCHER2 10 000.000

OCHER3 10 002.000

REGULIROVKA 10 003.000

SBORKA 10 001.000

SP1 3.000

SP2 10.000

LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

1 GENERATE 145 0 0

2 TRANSFER 145 0 0

SP1 3 SPLIT 73 0 0

BLOK1 4 QUEUE 225 26 0

5 SEIZE 199 0 0

6 DEPART 199 0 0

7 ADVANCE 199 1 0

8 RELEASE 198 0 0

9 TRANSFER 198 0 0

SP2 10 SPLIT 72 0 0

BLOK2 11 QUEUE 414 174 0

12 SEIZE 240 0 0

13 DEPART 240 0 0

14 ADVANCE 240 1 0

15 RELEASE 239 0 0

16 TRANSFER 239 0 0

BLOK3 17 QUEUE 233 53 0

18 SEIZE 180 0 0

19 DEPART 180 0 0

20 ADVANCE 180 1 0

21 RELEASE 179 0 0

22 TERMINATE 179 0 0

23 GENERATE 1 0 0

24 TERMINATE 1 0 0

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

SBORKA 240 0.999 5.993 1 224 0 0 0 174

REGULIROVKA 180 0.995 7.957 1 204 0 0 0 53

OBRABOTKA 199 0.965 6.984 1 379 0 0 0 26

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

OCHER2 175 174 414 1 80.179 278.884 279.559 0

OCHER3 54 53 233 1 26.670 164.829 165.539 0

OCHER1 34 26 225 4 15.991 102.345 104.198 0

FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE

435 0 1440.543 435 0 1

224 0 1441.715 219 14 15

379 0 1443.264 375 7 8

204 0 1447.715 204 20 21

438 0 2880.000 438 0 23

Из полученного отчета можно узнать результаты прогона построенной модели, представленные в Таблице 1:

Таблица 1

Результаты моделирования

Этапы

Загруженностьустройств

Кол-во необслуженных заявок

Среднее время задержки в очереди

Пр. обработка

0,965

102.345

Сборка

0,999

278.884

Регулировка

0,995

164.829

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

Предположим, что цех закупил улучшенное оборудование. В соответствии с моим предложением в текст программы были внесены изменения.

Ниже представлен текст программы после внесения изменений:

Старостин В.В.4 курс, Гр. ИСЗ-С41

Модель сборочного участка цеха

GENERATE (EXPONENTIAL (1,0,10))

TRANSFER 5, sp1,sp2

sp1 SPLIT 2

blok1 QUEUE OCHER1

SEIZE OBRABOTKA

DEPART OCHER1

ADVANCE 7

RELEASE OBRABOTKA

TRANSFER, blok2

sp2 SPLIT 2

blok2 QUEUE OCHER2

SEIZE SBORKA

DEPART OCHER2

ADVANCE 5

RELEASE SBORKA

TRANSFER .04,blok3,blok1

blok3 QUEUE OCHER3

SEIZE REGULIROVKA

DEPART OCHER3

ADVANCE 5

RELEASE REGULIROVKA

TERMINATE

GENERATE 1440

TERMINATE 1

START 1

GPSS World Simulation Report — Kursovaia № 1_izm.

Wednesday, March 17, 2010 09:46:25

START TIME END TIME BLOCKS FACILITIES STORAGES

0.000 1440.000 24 3 0

NAME VALUE

BLOK1 4.000

BLOK2 11.000

BLOK3 17.000

OBRABOTKA 10 005.000

OCHER1 10 004.000

OCHER2 10 000.000

OCHER3 10 002.000

REGULIROVKA 10 003.000

SBORKA 10 001.000

SP1 3.000

SP2 10.000

LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

1 GENERATE 124 0 0

2 TRANSFER 124 0 0

SP1 3 SPLIT 66 0 0

BLOK1 4 QUEUE 209 8 0

5 SEIZE 201 0 0

6 DEPART 201 0 0

7 ADVANCE 201 1 0

8 RELEASE 200 0 0

9 TRANSFER 200 0 0

SP2 10 SPLIT 58 0 0

BLOK2 11 QUEUE 374 86 0

12 SEIZE 288 0 0

13 DEPART 288 0 0

14 ADVANCE 288 1 0

15 RELEASE 287 0 0

16 TRANSFER 287 0 0

BLOK3 17 QUEUE 276 0 0

18 SEIZE 276 0 0

19 DEPART 276 0 0

20 ADVANCE 276 1 0

21 RELEASE 275 0 0

22 TERMINATE 275 0 0

23 GENERATE 1 0 0

24 TERMINATE 1 0 0

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

SBORKA 288 0.999 4.994 1 286 0 0 0 86

REGULIROVKA 276 0.957 4.994 1 282 0 0 0 0

OBRABOTKA 201 0.972 6.966 1 359 0 0 0 8

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

OCHER2 88 86 374 1 41.696 160.541 160.971 0

OCHER3 1 0 276 276 0.000 0.000 0.000 0

OCHER1 17 8 209 4 5.586 38.486 39.237 0

FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE

286 0 1441.715 282 14 15

282 0 1441.715 282 20 21

359 0 1446.887 354 7 8

372 0 1449.385 372 0 1

375 0 2880.000 375 0 23

Как видно из текста программы изменения произошли в последних двух блоках, т. е. новое оборудование завезли в отдел непосредственной сборки деталей и в отдел регулировки. Процессы сборки и регулировки стали занимать всего по 5 мин. При этом время, затрачиваемое на предварительную обработку деталей, не изменилось, т. е. не пришлось закупать дополнительное оборудование. Как и предполагалось, уменьшилось количество необслуженных заявок и среднее время задержки в очереди, соответственно вероятность появления очередей тоже уменьшилась. А также установился приемлемый уровень загруженности устройств объслуживающих процессы: сборки, предварительной обработки и регулировки.

Числовые данные произошедших изменений приведены в таблице 2.

Таблица 2

Результаты измененной модели (М2) по сравнению с данной (М1)

Этапы

Загруженность устройств

Кол-во необслуженных заявок

Среднее время задержки в очереди

М1

М2

М1

М2

М1

М2

Пр. обработка

0,965

0.972

102.345

38.486

Сборка

0,999

0,999

278.884

160.541

Регулировка

0,995

0.957

164.829

0.000

Заключение

На основе полученного задания был выполнен прогон построенной модели в течение 24 ч. (1440 мин.). По результатам полученных данных были выявлены возможные места появления очередей и причины их возникновения. Также определено количество необслуженных заявок и среднее время задержки в очередях. Можно теперь сделать вывод о том, что в системе есть некоторые факторы, которые неблагоприятно влияют на её работоспособность.

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

Список использованной литературы

1. Шрайбер Т. Д. Моделирование на GPSS. — М.: Машиностроение, 1980

2. Сайт в Интернете: www.gpss.ru

3. Сайт в Интернете: www. gpss-forum.narod.ru

Приложение 1

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

GENERATE (ГЕНЕРИРОВАТЬ)

GENERATE — вводит транзакты в модель. Формат: GENERATE A, B, C, D, E, F, G

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

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

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

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

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

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

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

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

TRANSFER (ПЕРЕДАТЬ)

TRANSFER — изменяет движение транзакта в модели.

Формат: TRANSFER А, В, С, D

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SPLIT (РАСЩЕПИТЬ)

SPLIT — создает копии текущего транзакта.

Формат: SPLIT A, B, C, D

А — число создаваемых копий;

В — следующий блок для копий;

С — параметр для хранения порядкового номера копии;

D — число параметров у каждой копии.

Поле, А определяет число копий, которые образуются при входе текущего транзакта. Эти вновь созданные транзакты по умолчанию идентичны исходному транзакту. Копии входят в блок, указанный в поле В. Исходный транзакт поступает на следующий блок. Параметр поля С используется для задания порядковых номеров копий. Нумерация осуществляется следующим образом. Порядковый номер исходного транзакта увеличивается первым. Если он был равен нулю, при входе транзакта в блок он станет равным единице. Порядковый номер первой копии станет на единицу больше, чем у исходного транзакта Ломера последующих копий также увеличиваются на единицу. Если поле D не задано, копии имеют такое же, как у исходного транзакта число и тип параметров.

QUEUE (СТАТЬ В ОЧЕРЕДЬ)

QUEUE — помещает транзакт в конец очереди.

Формат: QUEUE А, В, А — номер очереди (числовое или символьное имя очереди);

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

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

Очередь имеет следующие стандартные числовые атрибуты:

Q$j — текущая длина очереди j;

Q$Xj — максимальная длина очереди j;

QA$j — средняя длина очереди j;

QC$j — число входов в очередь j;

QZ$j — число входов в очередь с нулевым временем пребывания (транзакт прошел через блок QUEUE, не задерживаясь в очереди);

QT$j — среднее время пребывания в очереди j, включая нулевые входы;

QX$j — среднее время пребывания в очереди j, без нулевых входов.

SEIZE (ЗАНЯТЬ)

SEIZE — занимает устройство.

Формат: SEIZE, А А — номер устройства.

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

DEPART (ПОКИНУТЬ ОЧЕРЕДЬ)

DEPART — удаляет транзакт из очереди.

Формат: DEPART А, В, А — номер (имя) очереди;

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

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

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

ADVANCE — задерживает транзакт.

Формат: ADVANCE A, B

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

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

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

RELEASE (ОСВОБОДИТЬ)

RELEASE — освобождает устройство.

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

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

TERMINATE (ЗАВЕРШИТЬ)

TERMINATE — удаляет транзакт.

Формат: TERMINATE A

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

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

START (НАЧАТЬ)

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

Формат: START А, В, С, D

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

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

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

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

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

Показать весь текст
Заполнить форму текущей работой