Реферат: Имитационное моделирование

Федеральное государственное автономное образовательное учреждение Высшегопрофессионального образования

«Уральский федеральный университет имени первого

Президента России Б.Н. Ельцина»

Кафедра «Моделирование управляемых систем»

Дисциплина «Моделирование информационных процессов»

Контрольная работа

Имитационное моделирование

Студент: Мельников А.Е.

Группа: ИМ-38031

Руководитель: Лимановская О.В.

Екатеринбург 2011


Оглавление

Введение

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

Анализ исходных данных

Разработка модели

Заключение


/>Введение

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

непрерывно-детерминированный, дискретно-детерминированный, дискретно-стохастический,непрерывно-стохастический, сетевой, обобщенный (или универсальный). Соответственноэтим подходам были разработаны типовые математические схемы создания моделей.

Для выполнения задания мы используем непрерывно-стохастическийподход.

Непрерывно-стохастический подход применяется для формализациипроцессов обслуживания. Этот подход наиболее известен ввиду того, что большинствопроизводственных (и не только производственных — экономических, технических и т.д.)систем по своей сути являются системами массового обслуживания. Типовой математическойсхемой моделирования таких систем являются Q-схемы. В обслуживанииможно выделить две элементарные составляющие: ожидание обслуживания и собственнообслуживание, а в любой системе массового обслуживания можно выделить элементарныйприбор. Соответственно, в этом приборе выделяют: накопитель (Н) заявок, ожидающихобслуживания, некоторой емкостью; канал обслуживания (К); потоки событий (последовательностьсобытий, происходящих одно за другим в какие-то случайные моменты времени): потокзаявок на обслуживание wi, характеризующийсямоментами времени поступления и атрибутами (признаками) заявок (например, приоритетами),и поток обслуживания ui, характеризующийся моментаминачала и окончания обслуживания заявок. Для имитационного моделирования СМО былсоздан специализированный язык программирования GPSS.

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

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

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

моделирование программирование алгоритм


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

На участке термической обработки выполняются цементация и закаливаниешестерен, поступающих через 10 ± 5 мин. Цементация занимает 10 ± 7 мин, а закаливание- 10 ± 6 мин. Качество определяется суммарным временем обработки. Шестерни c временем обработки больше 25 мин покидаютучасток, c временем обработки от20 до 25 мин передаются на повторную закалку и при времени обработки меньше 20 миндолжны пройти повторную полную обработку. Детали с суммарным временем обработкименьше 20 мин считаются вторым сортом.

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

 

Анализ исходных данных

При описании термической обработки шестерен задано время поступленияшестерен — 10 + 5 мин., время цементации — 10 + 7 мин., и время закаливания — 10+ 6 мин. Эти данные являются входными параметрами.

Время поступления шестерен на участок термической обработки распределенов интервале от 5 до 15 минут, то есть шестерни с одинаковой вероятностью могут поступатьчерез интервалы 5, 6, 7, 8, 9, 10, 11, …, 15 минут.

Время цементации распределено в интервале о 3 до 17 минут, тоесть цементация производиться с интервалом 3, 4, 5, 6, …, 16, 17 минут.

Время закаливания распределено в интервале от 4 до 16 минут,то есть закаливание производиться с интервалом 4, 5, 6, …, 15, 16 минут.

Необходимо смоделировать процесс обработки 400 шестерен.

Итак, можно сделать вывод, что исходных данных для моделированиятермической обработки шестерен достаточно.

/>Разработка модели

Процесс термической обработки шестерен следует:

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

Все компоненты участка термической обработки можно представитьв следующем виде:

1). Концептуальная модель в виде блок-схемы:

/>

/>/>t<20

Рис.1 Блок-схема концептуальноймодели

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

sortDetalitable P4,2,1,7; распределение первичной/вторичной обработки

timeDetalitable P3,0,1,53; распределение времени операций

GENERATE10,5,,400; 400 шестерен, поступающие через 10+-5 минут

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

CEM1QUEUE CEMENT; добавляем деталь в очередь на цементацию

SEIZECEM11; занимаем устройство

ASSIGN1,AC1; засекаем время перед обработкой

DEPARTCEMENT; удаляем из очереди

ADVANCE10,7; цементация

RELEASECEM11; освобождаем устройство

ASSIGN1, (AC1-P1); засекаем время на участке цементации

ASSIGN4+,1; увеличиваем счетчик распределения обработки на 1

ZAK1QUEUE ZAKAL; добавляем деталь в очередь на закаливание

SEIZEZAK11; занимаем устройство

ASSIGN2,AC1; засекаем время перед закаливание

DEPARTZAKAL; удаляем из очереди

ADVANCE10,6; закаливание

RELEASEZAK11; освобождаем устройство

ASSIGN2, (AC1-P2); засекаем время на участке закаливания

ASSIGN4+,1; увеличиваем счетчик распределения обработки на 1

ASSIGN3+, (P1+P2); увеличиваем параметр, показывающий распределение времени

ASSIGN1,0; обнуляем параметры, засекающие время

ASSIGN2,0; на участках обработки

TESTL P3,25,Konec; если время обработки больше 25 — деталь первого сорта- выход

TESTL P3, 20,ZAK1; если от 20 до 25 минут — отправляем на повторную закалку

TRANSFER,CEM1;иначе полная повторная обработка

KonecASSIGN pervii_sort,1; подсчитываем количество деталей первого сорта

SAVEVALUE P$pervii_sort+,1

TABULATE sortDetali

TABULATE timeDetali

TERMINATE 1

START 400

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

GPSS World Simulation Report — Na_avtomat1.57.1

Sunday, May 29, 2011 19: 49: 41

START TIME END TIME BLOCKS FACILITIES STORAGES

0.000 7349.958 29 2 0

NAME VALUE

CEM1 3.000

CEM11 10003.000

CEMENT 10002.000

KONEC 25.000

PERVII_SORT 10006.000

SORTDETALI 10000.000

TIMEDETALI 10001.000

ZAK1 11.000

ZAK11 10005.000

ZAKAL 10004.000

LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

1 GENERATE 400 0 0

2 ASSIGN 400 0 0

CEM1 3 QUEUE 596 0 0

4 SEIZE 596 0 0

5 ASSIGN 596 0 0

6 DEPART 596 0 0

7 ADVANCE 596 0 0

8 RELEASE 596 0 0

9 ASSIGN 596 0 0

10 ASSIGN 596 0 0

ZAK1 11 QUEUE 729 0 0

12 SEIZE 729 0 0

13 ASSIGN 729 0 0

14 DEPART 729 0 0

15 ADVANCE 729 0 0

16 RELEASE 729 0 0

17 ASSIGN 729 0 0

18 ASSIGN 729 0 0

19 ASSIGN 729 0 0

20 ASSIGN 729 0 0

21 ASSIGN 729 0 0

22 TEST 729 0 0

23 TEST 329 0 0

24 TRANSFER 196 0 0

KONEC 25 ASSIGN 400 0 0

26 SAVEVALUE 400 0 0

27 TABULATE 400 0 0

28 TABULATE 400 0 0

29 TERMINATE 400 0 0

FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTERRETRY DELAY

CEM11 596 0.805 9.925 1 0 0 0 0 0

ZAK11 729 0.996 10.043 1 0 0 0 0 0

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

CEMENT 119 0 596 19 44.536 549.224 567.309 0

ZAKAL 133 0 729 2 65.039 655.740 657.544 0

TABLE MEAN STD. DEV. RANGE RETRYFREQUENCY CUM. %

SORTDETALI 3.313 0.813 0

_- 2.000 79 19.75

2.000- 3.000 126 51.25

3.000- 4.000 187 98.00

4.000- 5.000 7 99.75

5.000- 6.000 1 100.00

TIMEDETALI 33.092 5.617 0

25.000- 26.000 32 8.00

26.000- 27.000 29 15.25

27.000- 28.000 28 22.25

28.000- 29.000 23 28.00

29.000- 30.000 29 35.25

30.000- 31.000 31 43.00

31.000- 32.000 22 48.50

32.000- 33.000 20 53.50

33.000- 34.000 20 58.50

34.000- 35.000 20 63.50

35.000- 36.000 22 69.00

36.000- 37.000 23 74.75

37.000- 38.000 22 80.25

38.000- 39.000 16 84.25

39.000- 40.000 17 88.50

40.000- 41.000 10 91.00

41.000- 42.000 1 91.25

42.000- 43.000 6 92.75

43.000- 44.000 13 96.00

44.000- 45.000 5 97.25

45.000- 46.000 3 98.00

46.000- 47.000 1 98.25

47.000- 48.000 5 99.50

48.000- 49.000 1 99.75

49.000- 50.000 1 100.00

SAVEVALUE RETRY VALUE

10 400.000

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

sortDetalitable P4,2,1,7; распределение первичной/вторичной обработки

timeDetalitable P3,0,1,53; распределение времени операций

GENERATE10,5,,400; 400 шестерен, поступающие через 10+-5 минут

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

CEM1QUEUE CEMENT; добавляем деталь в очередь на цементацию

SEIZECEM11; занимаем устройство

ASSIGN1,AC1; засекаем время перед обработкой

DEPARTCEMENT; удаляем из очереди

ADVANCE10,7; цементация

RELEASECEM11; освобождаем устройство

ASSIGN1, (AC1-P1); засекаем время на участке цементации

ASSIGN4+,1; увеличиваем счетчик распределения обработки на 1

ZAK1QUEUE ZAKAL; добавляем деталь в очередь на закаливание

SEIZEZAK11; занимаем устройство

ASSIGN2,AC1; засекаем время перед закаливание

DEPARTZAKAL; удаляем из очереди

ADVANCE10,6; закаливание

RELEASEZAK11; освобождаем устройство

ASSIGN2, (AC1-P2); засекаем время на участке закаливания

ASSIGN4+,1; увеличиваем счетчик распределения обработки на 1

Proverka ASSIGN 3+, (P1+P2); увеличиваем параметр,показывающий распределение времени

ASSIGN1,0; обнуляем параметры, засекающие время на участках обработки

ASSIGN2,0

TESTL P3,25,Konec; если время обработки больше 25 — деталь первого сорта- выход

TESTL P3, 20,Raspr_sakal; если от 20 до 25 минут — отправляем на повторную закалку

TRANSFER,Raspr_cement;иначе полная повторная обработка

Raspr_sakal TEST L RN1,850,ZAK1;выбираем, какое оборудование использовать

TRANSFER,ZAK2;так как более загружено старое оборудование (через него проходят детали изначально)

;ставим большую вероятность обработки на новом оборудовании

Raspr_cement TEST L RN2,960,CEM1

TRANSFER,CEM2

CEM2 QUEUE CEMEN

SEIZE CEM22

ASSIGN1,AC1; засекаем время перед цементацией

DEPARTCEMEN; удаляем из очереди

ADVANCE10,6; закаливание

RELEASECEM22; освобождаем устройство

ASSIGN1, (AC1-P1); засекаем время на участке цементации

ASSIGN4+,1

ZAK2QUEUE ZAKALIV; добавляем деталь в очередь на закаливание

SEIZEZAK22; занимаем устройство

ASSIGN2,AC1; засекаем время перед закаливание

DEPARTZAKALIV; удаляем из очереди

ADVANCE10,6; закаливание

RELEASEZAK22; освобождаем устройство

ASSIGN2, (AC1-P2); засекаем время на участке закаливания

ASSIGN4+,1

TRANSFER,Proverka

KonecASSIGN pervii_sort,1; подсчитываем количество деталей первого сорта

SAVEVALUE P$pervii_sort+,1

TABULATE sortDetali

TABULATE timeDetali

TERMINATE 1

START400

Теперь в случае, если деталь нуждаетсяв повторной обработке, она переходит на этап распределения, где отправляется либона старое оборудование либо на новые устройства (с большей вероятностью деталь отправляетсяна новые устройства, для того чтобы снизить нагрузку на старое оборудование, котороеболее загружено, т.к. изначально через него проходят все детали). Получаем новыйотчет:

GPSS World Simulation Report — Untitled Model 1.52.1

Sunday, May 29, 2011 18: 50: 20

START TIME END TIME BLOCKS FACILITIES STORAGES

0.000 4367.779 50 4 0

NAME VALUE

CEM1 3.000

CEM11 10003.000

CEM2 29.000

CEM22 10010.000

CEMEN 10009.000

CEMENT 10002.000

KONEC 46.000

PERVII_SORT 10008.000

PROVERKA 19.000

RASPRED 25.000

RASPRED1 27.000

SORTDETALI 10000.000

TIMEDETALI 10001.000

ZAK1 11.000

ZAK11 10005.000

ZAK2 37.000

ZAK22 10007.000

ZAKAL 10004.000

ZAKALIV 10006.000

LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

1 GENERATE 400 0 0

2 ASSIGN 400 0 0

CEM1 3 QUEUE 420 0 0

4 SEIZE 420 0 0

5 ASSIGN 420 0 0

6 DEPART 420 0 0

7 ADVANCE 420 0 0

8 RELEASE 420 0 0

9 ASSIGN 420 0 0

10 ASSIGN 420 0 0

ZAK1 11 QUEUE 439 0 0

12 SEIZE 439 0 0

13 ASSIGN 439 0 0

14 DEPART 439 0 0

15 ADVANCE 439 0 0

16 RELEASE 439 0 0

17 ASSIGN 439 0 0

18 ASSIGN 439 0 0

PROVERKA 19 ASSIGN 730 0 0

20 ASSIGN 730 0 0

21 ASSIGN 730 0 0

22 TEST 730 0 0

23 TEST 330 0 0

24 TRANSFER 199 0 0

RASPRED 25 TEST 131 0 0

26 TRANSFER 112 0 0

RASPRED1 27 TEST 199 0 0

28 TRANSFER 179 0 0

CEM2 29 QUEUE 179 0 0

30 SEIZE 179 0 0

31 ASSIGN 179 0 0

32 DEPART 179 0 0

33 ADVANCE 179 0 0

34 RELEASE 179 0 0

35 ASSIGN 179 0 0

36 ASSIGN 179 0 0

ZAK2 37 QUEUE 291 0 0

38 SEIZE 291 0 0

39 ASSIGN 291 0 0

40 DEPART 291 0 0

41 ADVANCE 291 0 0

42 RELEASE 291 0 0

43 ASSIGN 291 0 0

44 ASSIGN 291 0 0

45 TRANSFER 291 0 0

KONEC 46 ASSIGN 400 0 0

47 SAVEVALUE 400 0 0

48 TABULATE 400 0 0

49 TABULATE 400 0 0

50 TERMINATE 400 0 0

FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTERRETRY DELAY

CEM11 420 0.975 10.135 1 0 0 0 0 0

ZAK11 439 0.992 9.866 1 0 0 0 0 0

ZAK22 291 0.662 9.929 1 0 0 0 0 0

CEM22 179 0.433 10.573 1 0 0 0 0 0

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

CEMENT 31 0 420 2 14.070 146.322 147.022 0

ZAKAL 13 0 439 6 6.213 61.818 62.675 0

ZAKALIV 5 0 291 129 0.433 6.505 11.684 0

CEMEN 2 0 179 114 0.104 2.533 6.975 0

TABLE MEAN STD. DEV. RANGE RETRYFREQUENCY CUM. %

SORTDETALI 3.322 0.812 0

_ — 2.000 79 19.75

2.000 — 3.000 121 50.00

3.000 — 4.000 193 98.25

4.000 — 5.000 6 99.75

5.000 — 6.000 1 100.00

TIMEDETALI 33.425 5.646 0

25.000 — 26.000 31 7.75

26.000 — 27.000 33 16.00

27.000 — 28.000 19 20.75

28.000 — 29.000 22 26.25

29.000 — 30.000 25 32.50

30.000 — 31.000 22 38.00

31.000 — 32.000 33 46.25

32.000 — 33.000 14 49.75

33.000 — 34.000 18 54.25

34.000 — 35.000 28 61.25

35.000 — 36.000 23 67.00

36.000 — 37.000 27 73.75

37.000 — 38.000 25 80.00

38.000 — 39.000 15 83.75

39.000 — 40.000 17 88.00

40.000 — 41.000 5 89.25

41.000 — 42.000 10 91.75

42.000 — 43.000 9 94.00

43.000 — 44.000 4 95.00

44.000 — 45.000 7 96.75

45.000 — 46.000 2 97.25

46.000 — 47.000 2 97.75

47.000 — 48.000 3 98.50

48.000 — 49.000 4 99.50

49.000 — 50.000 2 100.00

SAVEVALUE RETRY VALUE

1 0 400.000

/>

Рис.2 Распределение повторнойобработки

/>

Рис.3 Распределение времени обработки

Как видно из нового отчета, очереди заметно сократились, каки время обработки деталей. Из рис.2 видно, что подавляющее большинство деталей проходитповторную полную обработку, после чего относятся к деталям первого сорта. А времяполной обработки в среднем от 25 до 40 минут (рис.3).


/>Заключение

На основе полученного задания был выполнен прогон построенноймодели с использованием 400 деталей. По результатам полученных данных были выявленывозможные места появления очередейи причиныих возникновения.Также были собраны статистические данные по данной модели — распределение времениобработки шестерен и вероятности их повторной обработки.

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

еще рефераты
Еще работы по информатике, программированию