Моделирование бизнес процессов. Цель и задачи курсовой работы Цель курсовой работы
Скачать 0.83 Mb.
|
СодержаниеСодержание 1 В настоящее время успешная профессиональная деятельность специалистов в области прикладной информатики не возможна без описания, изучения функционирования больших и сложных систем, моделирования поведения и динамики развития процессов в этих системах. Имитационное моделирование, с учетом современного уровня развития компьютерной техники, является наиболее наглядным и интуитивно понятным методом, который в практической деятельности используется для выявления наиболее эффективных решений возникающих проблем. Процесс имитационного моделирования содержит следующие этапы:
Использование метода имитационного моделирования, программных и технических средств в обучении позволяет закрепить у студентов имеющиеся знания и приобрести навыки познания и моделирования систем и процессов, избежать в дальнейшем в профессиональной деятельности грубых ошибок. Цель и задачи курсовой работы Цель курсовой работы: Развитие у студентов умения разрабатывать имитационные модели организационных объектов, а также получения практических навыков работы в среде GPSS World, включая программирование и использование встроенных инструментов анализа. Задачи курсовой работы:
Объект моделирования. Сборочный цех, состоящий из двух участков для сборки двух различных агрегатов из готовых деталей. Поступают детали шести типов. Для агрегата 1 используются деталь 1, деталь 2, деталь 3, деталь 4; для агрегата 2 используются детали деталь 1, деталь 2, деталь 5, деталь 6. Для сборки агрегата нужно чтобы в наличии были все необходимые детали. Одновременно могут собираться только по одному экземпляру агрегата 1 и агрегата 2. Цель имитационного моделирования. Исследование функционирования работы сборочного цеха и анализ влияния времени сборки агрегата на каждом участке на количество произведенных агрегатов. Задачи имитационного моделирования:
Тип системы массового обслуживания. Сборкой занимаются два обслуживающих устройства, следовательно, система является многоканальной. Схема многоканальной системы массового обслуживания изображена на рисунке 1. 1 2 3 4 5 6 Хранилища деталей Конвейеры К1 К2 Выход Рисунок 1 – Многоканальная система массового обслуживания По времени пребывания требований в очереди до начала обслуживания, система относится к группе систем смешанного типа. В системах смешанного типа поступившее требования, застав устройство занятым, становятся в очередь и ожидают обслуживания в течение ограниченного времени. Не дождавшись обслуживания в установленное время, требование покидает систему. Ограничением времени является работа цеха (10 часов). Программная модель. *============================================================================ *Поступают детали шести типов и попадают в хранилище. Происходит проверка на *наличие необходимых деталей, если все детали есть происходит сборка агрегата в *течение 8±3 минут. Если необходимых деталей нет, мы ждем появление следующей *детали и запускаем проверку вновь. Если участок сборки занят, то заявка *попадает в очередь со списанием деталей необходимых для ее сборки. *Необходимо проанализировать работу сборочного цеха в течение 10 часов. *============================================================================ *Булевы переменные, отвечающие за то, можно собирать агрегат или нет (есть все детали для его изготовления?) *============================================================================ *Для агрегата1 нужно чтобы было истинно выражение - деталей 1 2 3 4 типов больше или равно (GE) 1 AGREGAT1 FVARIABLE ((X1'GE'1)'AND'(X2'GE'1)'AND'(X3'GE'1)'AND'(X4'GE'1)) *для агрегата1 нужно чтобы было истинно выражение - деталей 1 2 3 4 типов больше или равно (GE) 1 AGREGAT2 FVARIABLE ((X1'GE'1)'AND'(X2'GE'1)'AND'(X5'GE'1)'AND'(X6'GE'1)) *============================================================================ *Формируем детали *деталь 1 GENERATE 4,1 *генерируем деталь ASSIGN TYP,1 *присваиваем тип детали SAVEVALUE P$TYP+,1 *деталь поступает и записывается в счётчик своего типа TEST E V$AGREGAT1,1,test2 *Проверяем наличие деталей для агрегата 1 TRANSFER ,SBORKA_AGR1 *Отправляем по метке сборка агрегата1 *деталь 2 GENERATE 4,2 ASSIGN TYP,2 SAVEVALUE P$TYP+,1 TEST E V$AGREGAT2,1,test1 *Проверяем наличие деталей для агрегата 2 TRANSFER ,SBORKA_AGR2 *Отправляем по метке сборка агрегата2 *деталь 3 GENERATE 7,2 ASSIGN TYP,3 SAVEVALUE P$TYP+,1 TEST E V$AGREGAT1,1,TERMI TRANSFER ,SBORKA_AGR1 *деталь 4 GENERATE 7,1 ASSIGN TYP,4 SAVEVALUE P$TYP+,1 TEST E V$AGREGAT1,1,TERMI TRANSFER ,SBORKA_AGR1 *деталь 5 GENERATE 8,3 ASSIGN TYP,5 SAVEVALUE P$TYP+,1 TEST E V$AGREGAT1,1,TERMI TRANSFER ,SBORKA_AGR2 *деталь 6 GENERATE 6,1 ASSIGN TYP,6 SAVEVALUE P$TYP+,1 TEST E V$AGREGAT1,1,TERMI TRANSFER ,SBORKA_AGR2 TEST1 TEST E V$AGREGAT1,1,TERMI *Проверяем наличие деталей для агрегата 1 TRANSFER ,SBORKA_AGR1 *Отправляем по метке сборка агрегата1 TEST2 TEST E V$AGREGAT2,1,TERMI *Проверяем наличие деталей для агрегата 2 TRANSFER ,SBORKA_AGR2 *Отправляем по метке сборка агрегата2 *============================================================================ *сборка агрегата 1 *списываем детали со склада SBORKA_AGR1 SAVEVALUE 1-,1 SAVEVALUE 2-,1 SAVEVALUE 3-,1 SAVEVALUE 4-,1 QUEUE 1 *добавляем заявку на сборку в очередь SEIZE 1 *проверяем свободен ли конвейер DEPART 1 *уберём заявку из очереди ADVANCE 8,3 *собираем агрегат первого типа SAVEVALUE AG1+,1 *Увеличиваем счетчик собранных агрегатов первого типа SAVEVALUE AG+,1 *Увеличиваем общий счетчик собранных агрегатов RELEASE 1 *освобождаем конвейер TERMINATE *уничтожаем заявку *============================================================================ ; сборка агрегата 2 SBORKA_AGR2 SAVEVALUE 1-,1 SAVEVALUE 2-,1 SAVEVALUE 5-,1 SAVEVALUE 6-,1 QUEUE 2 *добавляем заявку на сборку в очередь SEIZE 2 *проверяем свободен ли конвейер DEPART 2 *уберём заявку из очереди ADVANCE 8,3 *собираем агрегат второго типа SAVEVALUE AG2+,1 *увеличиваем счетчик собранных агрегатов второго типа SAVEVALUE AG+,1 *увеличиваем общий счетчик собранных агрегатов RELEASE 2 *освобождаем конвейер TERMINATE *уничтожаем заявку *============================================================================ * отсеивание заявок при нехватке деталей TERMI TERMINATE *============================================================================ * Генерация 8-ми часового рабочего дня *============================================================================ GENERATE 600 *Генерация времени (10 часов) TERMINATE 1 *Удаление транзакта START 1 *Начать с 1 Пояснения к программной модели. Программа условно разделена на две части. Первая часть отвечает за генерацию потока деталей. Вторая часть программного кода является отображением работы сборочного цеха. Генерация потока деталей происходит с помощью блока GENERATE. Генерируются транзакты с интервалом прихода от 2 до 11 единиц времени, первый из которых поступает сразу же, с начала работы модели. Следующий блок ASSIGN TYP присваивает тип детали, а SAVEVALUE P$TYP+,1 увеличивает количество деталей на 1. Для проверки наличия всех необходимых деталей используется блок TEST, который проверяет значение булевой переменной AGREGAT1 для первого участка и AGREGAT1 для второго. Блок TEST выполняется при поступлении каждой детали и если деталей хватает отправляет транзакт на метку SBORKA_AGR1 для первого участка и SBORKA_AGR2 для второго, где и происходит сборка, а если деталей не хватает, то уничтожает транзакт. При попадании на метку SBORKA_AGR1 (SBORKA_AGR2) происходит списание деталей необходимых для сборки агрегата с помощью блока SAVEVALUE А-,1 где А - это номер детали. После мы добавляем транзакт в очередь с помощью блока QUEUE и с помощью блока SEIZE проверяем свободен ли конвейер, ели да то используется блок DEPART для выведения транзакта из очереди и происходит сборка в блоке ADVANCE от 5 до 11 единиц времени и происходит увеличение счетчика собранных агрегатов в блоке SAVEVALUE. После блок RELEASE освобождает конвейер и транзакт уничтожается блоком TERMINATE. Таймер работы сформирован с помощью стандартной конструкции – генерации общего времени в минутах и уменьшении времени поминутно (блоки: GENERATE 600; TERMINATE 1; START 1). Результаты работы программной модели (стандартный отчет). FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY 1 74 0.976 7.911 1 627 0 0 0 5 2 71 0.918 7.757 1 614 0 0 0 1 QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY 1 9 5 79 3 3.975 30.188 31.379 0 2 6 1 72 17 1.303 10.857 14.213 0 SAVEVALUE RETRY VALUE 1 0 0 2 0 1.000 3 0 5.000 4 0 5.000 5 0 2.000 6 0 28.000 AG1 0 73.000 AG2 0 70.000 AG 0 143.000 Пояснения к отчету. Колонка FACILITY указывает на название канала обслуживания. Колонка ENTRIES указывает на количество транзактов, вошедших в канал. Колонка UTIL показывает загруженность устройства. Загруженность изменяется от 0 до 1. Если значение загруженности ближе к 1, то устройство загружено полностью, и работа (обработка транзактов) происходит без остановок. Чем ближе значение загруженности к 0, тем меньше загружено устройство. Следующая колонка AVE.TIME показывает среднее время нахождения транзактов в канале. Колонка AVAIL показывает состояние готовности устройства на момент конца моделирования. Если значение данной колонки равно единице, то устройство готово к обслуживанию очередной заявки, если устройство не готово (занято), то значение колонки равно нулю. OWNER указывает на номер последнего транзакта занимающего устройство. Если обслуживающее устройство не занималось, то значение равно нулю. Следующая колонка PEND показывает число транзактов, находящихся в ожидании устройства, и количество транзактов, находящихся в режиме прерывания. Колонка INTER – количество транзактов, прерывающих устройство в данный момент (на момент остановки моделирования). Колонка RETRY показывает количество транзактов, ожидающих специальных условий, зависящих от состояния объекта типа «устройство». Колонка DELAY определяет количество транзактов, ожидающих занятия или освобождения устройства. Статистика по очереди. Колонка QUEUE указывает на имя очереди. Колонка MAX показывает максимальную длину очереди, колонка CONT показывает текущую длину очереди. Следующая колонка ENTRY указывает общее количество входов, а колонка ENTRY(0) показывает количество «нулевых» входов. Колонка AVE. CONT. показывает среднюю длину очереди, AVE. TIME – среднее время пребывания транзактов в очереди, а AVE.(-0) – среднее время пребывания в очереди без учета «нулевых» входов. В колонке RETRY указано количество транзактов, ожидающих специальных условий. Отчет о количестве транзактов, прошедших за время моделирования. Колонка SEVEVALUE указывает имя переменной. Колонка RETRY показывает количество транзактов, ожидающих выполнение специального условия, зависящего от состояния данной ячейки. Последняя колонка VALUE показывает значение сохраняемой величины в конце моделирования. 1-6 – номера деталей, AG1 – количество собранных агрегатов первого типа, AG2 – количество собранных агрегатов второго типа, AG – общее количество собранных агрегатов. Параметры модели. В модели имеются следующие параметры, которые можно варьировать для изучения изменения количества собранных агрегатов:
Общие принципы изменения параметров следующие. Существенным является соотношение между временем появления деталей и временем сборки агрегатов. Чем чаще появляются деталей, тем быстрее должна осуществляться сборка. Количество собранных агрегатов полностью зависит от времени сборки. Анализируемые параметры:
Не варьируемые параметры модели:
Исследование функционирования модели. Варьируемые параметры модели: выбираются четыре возможных сочетания времён сборки агрегата, приведенных в таблице 1. В процессе моделирования задаются выбранные сочетания времён сборки, транслируется программа и задается время работы, учитывая условия задачи (600 минут). Результаты моделирования заносятся в таблицу 1. Проведем исследование функционирования модели, при изменении время сборки. Результаты занесем в таблицу 1. Таблица 1 – Результаты исследования функционирования модели сборочного цеха для первого конвейера
Для более наглядного отображения результатов моделирования, построим график зависимости количества собранных агрегатов (рисунок 2) и коэффициента загруженности (рисунок 3) от времени сборки на первом участке. Рисунок 2 – График зависимости количества собранных агрегатов от времени сборки на первом участке Анализ рисунка 2 показывает, что при увеличении времени сборки на первом участке, количество собранных агрегатов на первом участке уменьшается. При этом количество собранных агрегатов на втором участке не изменяется, хотя часть деталей идентична. Это можно объяснить следующим образом: детали потребляются не полностью и образуется запас который и сглаживает отклонения. Рисунок 3 – График зависимости загруженности конвейеров от изменения времени сборки на первом участке На рисунке 3 видно, что при увеличении времени сборки на первом участке растет загруженность первого конвейера. Но, вместе с тем, загруженность второго конвейера не изменяется. Это следует из вывода, представленного выше. Детали для первого агрегата успевают накопится за время сборки. Следовательно, нужно меньше ждать накопления необходимых деталей и из-за этого растет загруженность первого конвейера. Далее проведем исследование функционирования модели, при изменении параметров второго конвейера, не изменяя параметров первого конвейера. Результаты представлены в таблице 2. Таблица 2 – Результаты исследования функционирования модели сборочного цеха для второго конвейера
Анализ данных таблиц 1-2 показывает, что входной параметр «Время сборки» влияет на число собранных агрегатов и коэффициент загруженности конвейеров. Значит, данные параметры можно использовать при проведении имитационного эксперимента. Модельный имитационный эксперимент. В модельном имитационном эксперименте используются следующие параметры: входные параметры:
выходной параметр:
Число возможных опытов определяется по формуле: , где N – число опытов; p – число уровней; m – число факторов. Число уровней для факторов выберем равным двум, что соответствует максимальному и минимальному значению изменяемого фактора. Экспериментальные значения указаны в таблице 4. Таблица 4– Максимальные и минимальные экспериментальные значения входных факторов модели
Планирование эксперимента для получения линейной модели основано на варьировании двух уровней. Условия эксперимента запишем в виде матрицы планирования (таблица 5). Таблица 5 – Матрица планирования эксперимента
Матрица планирования с результатами проведенных экспериментов приведена в таблице 6. Таблица 6 – Матрица планирования для четырех опытов
ценим наличие ошибки в повторных опытах, для этого сформулируем гипотезы: Н0: результаты повторных опытов не ошибочны; Н1: результаты повторных опытов ошибочны. Для проверки гипотез используем критерий Стьюдента. Табличное значение t-статистики Стьюдента с уровнем значимости α=0,05 и степенями свободы k=4-1 равно = 3,18. Для расчета эмпирического значения, будем использовать формулу: где у – максимальное или минимальное значение отклика; - среднее значение отклика в серии повторных опытов; – среднее квадратическое отклонение в серии повторных опытов. =0,47 Результаты расчетов в сериях повторных опытов представлены в таблице 7. Таблица 7– Среднеквадратическое отклонение
Результаты расчетов эмпирического значения t-статистики Стьюдента представлены в таблице 8. Таблица 8– Эмпирические значения t-статистики Стьюдента
Критерий: (max,min) < значит Н0 принимается, т.е. следовательно, результаты повторных опытов не можем считать ошибочными. Запишем общий вид линейного уравнения регрессии. Для m=2 оно выглядит следующим образом: где b0 – свободный член; , – линейные коэффициенты; – коэффициенты двойного взаимодействия. По данным экспериментов рассчитаем коэффициенты регрессии. Значение свободного члена рассчитывается как среднее арифметическое всех значений параметра оптимизации в матрице: где –линейный коэффициент; –кодированное значение фактора в u-м опыте; N - число опытов в матрице. Линейные коэффициенты регрессии рассчитываются по формуле: где –линейный коэффициент; –кодированное значение фактора в u-м опыте. Коэффициенты регрессии, характеризующие парное взаимодействие факторов, рассчитываются по формуле: где –коэффициент двойного взаимодействия; –кодированное значение факторав u-м опыте. Коэффициенты регрессии, рассчитанные по вышеприведенным выражениям с учетом результатов экспериментов (таблица 6), представлены в таблице 9. Таблица 9– Коэффициенты регрессии
После выполнения расчета регрессионных коэффициентов модели, необходимо проверить коэффициенты на значимость. Для этого рассчитаем д == , исперсию воспроизводимости по формуле: П =7,625 ри расчете границы доверительных интервалов коэффициентов регрессии учтем табличное значение t-статистики Стьюдента при доверительной вероятности β=0,95, значение дисперсии воспроизводимости: = , С учетом значимости коэффициентов, исправленное уравнение регрессионной модели имеет вид: Уравнение модели содержит оба входящих параметра. Для получения оптимального количества собранных деталей, необходимо варьировать оба фактор. Проверим полученную регрессионную модель на адекватность, для этого сформулируем следующие гипотезы: Н0: регрессионная модель адекватна. Н1: регрессионная модель не адекватна. П = . роведем проверку данных гипотез, используя F-статистику Фишера. Рассчитаем эмпирическое значение статистики Фишера по формуле: Д = исперсия ошибок рассчитывается при следующих показателях: - значение функции отклика; - величина ошибки; - число степеней свободы. Данные для расчета эмпирического значения F-статистики Фишера представлены в таблице 10. Таблица 10–Данные для расчета эмпирического значения статистики Фишера
Подставив значения в формулы, получаем следующие результаты: Определим табличное значение F-статистики Фишера при уровне значимости α=0,05 и степенях свободы k1=3 и k2=3: =9,28 Критерий: следовательно гипотеза Н0 принимается, а гипотеза H1 отвергается, т.е. полученная регрессионная модель адекватна. Модель прошла проверку на адекватность, а коэффициенты модели прошли проверку на значимость. График регрессионной функции представлен на рисунке 4. Рисунок 4 – Зависимость числа собранных агрегатов от времени сборки Анализ рисунка позволяет говорить о влиянии обоих факторов на количество собранных агрегатов. Чем меньше время сборки, тем большее агрегатов будет собранно. Ограничивающим фактором является время работы цеха (10 ч.). На практике следует учитывать человеческий фактор. Итоговый анализ таблицы 6 и рисунка 5 позволяет сделать вывод: максимальное общее число собранных агрегатов достигается при минимальном времени сборки как на первом конвейере, так и на втором. Заключение. В результате выполнения курсовой работы была достигнута цель и решены поставленные задачи, а именно: 1) описан и проанализирован объект моделирования – процесс работы конвейеров в сборочном цехе. Показано, что данная система является многоканальной. По времени пребывания требований в очереди до начала обслуживания, система относится к группе систем смешанного типа; 2) разработана и реализована в среде GPSS World программная имитационная модель работы сборочного цеха; 3) подробно описана пошаговая работа программной модели в среде GPSS World, описан отчет к программной модели; 4) сформулирован план модельного эксперимента. Анализируемые параметры определены как:
Не варьируемые параметры модели:
6) проведен модельный эксперимент, в результате которого:
7) проанализированы поверхности отклика регрессионной модели. Показано, что:
8) Проведен анализ таблиц с результатами модельного эксперимента. Определено, что максимальное общее число собранных агрегатов достигается одновременно при минимальном сборки агрегатов на первом участке и времени сборки агрегатов на втором участке. Список литературы
|