МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
МАРИЙСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра ИСЭ
Курсовая работа
«Контрольные системы управления»
Выполнила: студентка ЭФ гр. ПИЭ-32
Короткова А.М.
Научный руководитель:
доцент, к.э.н. Еклашева О.В.
Йошкар-Ола
2008
1. Планирование этапов производства (sf-2 algo)
1.1 Цель
Определить увеличится ли производительность завода при новом распределении этапов производства.
1.2 Описание
В машинном цехе расположены 3 вида станков: А, В и С. В этот цех поступают заказы, причем сначала в рабочую область, а оттуда в плановый отдел, где учитывается критерий наименьшей очереди заказов, распределенных по станкам. 50% заказов могут обрабатываться всеми станками, 30% только станками типа В или С, остальные 20% только станками типа С.
Но иногда обработка заказа машиной типа С занимает много времени. Тогда предполагается поступление минимального количества заказов из рабочей области в производственный цех. Это позволяет более рационально распределить заказы и сократить время на их обработку. Для этого в имитационную модель добавляются еще 2 элемента, один из которых отвечает за входящий поток заказов, а второй – за их сортировку по типам и за их направление в соответствующий буфер.
1.3 Операции
Рассмотрим структуру данной имитационной модели. Начнем по порядку.
Рабочий день состоит из 8 часов.
Settings | Time representation
60 units make 1 minute
60 minute make 1 hour
8 hour make 1 day
Время имитации модели равно одному дню.
Settings | Simulate| Stop time = 1day
Далее рассмотрим элементы, из которых построена модель и связи между ними.
Элементы – Inou_1, Inou_19 служат для генерации входящего потока заказов.
Элементы – Buff_2, Buff_20 сортируют заказы по типам и направляют их в соответствующий буфер.
Элементы – Buff _3, Buff_4, Buff_5, Buff_6, Buff_7, Buff_8 содержат очередь продуктов, принятых к исполнению.
Элементы с Mach_9 по Mach_14 отражают машины, обрабатывающие заказы.
Элементы – Buff_15, Buff_16 содержат уже готовые заказы, которые затем передают на выход.
Элементы – Inou_17, Inou_18 являются выходом для выполненных заказов.
По условию задачи, в заводской цех поступают заказы разных типов, из которых 50% обрабатывается всеми машинами, 30% - машинами типа В или С и 20% - машинами типа С. Поступление заказов задаётся эмпирическим распределением. Отсюда имеем:
Model | Elements | Job parameters
Element 1: Trigger on exit = product[C]:=empirical [1]
Element 19: Trigger on exit = product[C]:=empirical [2]
Заказ поступает каждые 5 единиц времени. Это время, через которое Элементы – Inou_1 и Inou_19 генерируют входящий поток заказов. Задаётся пуассоновским законом распределения:
Element 1: Time = 5.0 Neg.Exp
Element 19: Time = 5.0 Neg.Exp
Так как заказы поступают случайным образом, то пропускная способность элементов Inou_1 и Inou_19 не тождественна. На выходе каждого генератора входящего потока заказам присваиваются свои номера или коды, которые определяют их путь. Например, 1, 2, 3 при выходе заказов из Inou_1 и 4, 5, 6 – из Inou_19. Это говорит о том, что заказы, вышедшие из первых трех буферов обрабатываются первыми тремя машинами, из последних трех буферов – последними тремя машинами. Все преобразования в каждом элементе InOut происходят в соотношении 50:30:20.
Рассмотрим элементы Buff_2 и Buff_20. Их вместимость (Capacity) равна 20 и 40 ед. соответственно. Сходство данных элементов в том, что при отправке первого заказа они создают короткую очередь, состоящую из этого продукта. Но условием выхода заказа из добавочного Buff_20 является наличие в нем как минимум 3 заказов одновременно:
Model | Elements | Element parameters
Element 20: Exit condition = elqueue[E]>3
На этом этапе заказы, поступившие в цех через Inou_1 и Inou_19 сортируются по типам и направляются в буфер в соответствии с таблицей «plan», где ячейка берется с номером из списка 3..5, 6..8, а номер столбца равен коду продукта, являющегося в текущем элементе первым в порядке наименьшей очереди:
Model | Elements | Stage parameters
Element 2: Send to = select 1 with plan[L,product[E,1]]=1 from 3..5 order -(elqueue[L]+elqueue[L+6])
Element 20: Send to = select 1 with plan[L,product[E,1]]=1 from 6..8 order -(elqueue[L]+elqueue[L+6])
L – значение в списке
product[E,1] – продукт (заказ), являющийся в текущем элементе первым в очереди
elqueue[L] – текущее число продуктов (заказов) в элементе
Следует отметить, что строки в таблице соответствуют машинам (станкам), а столбцы - типу заказа (вид продукта). Если значение ячейки ij=1, то это означает, что заказ j может быть обслужен машиной i, если же ij=0 - тогда не может.
Например, элемент, находящийся на пересечении 5 строки и 3 столбца, говорит о том, что заказ может обрабатываться только машиной типа С.
Элементы Buff_3, Buff_4, Buff_5, Buff_6, Buff_7, Buff_8 вмещают по 16 заказов каждый (Capacity=16) и направляют их в соответствующие машины (Mach_9 - Mach_14):
Element 3: Send to = E+6
Element 4: Send to = E+6
Element 5: Send to = E+6
Element 6: Send to = E+6
Element 7: Send to = E+6
Element 8: Send to = E+6
Данные выражения можно пояснить следующим образом: если к номеру элемента, т.е. буфера прибавить 6, то получим номер машины, которая будет обрабатывать заказ, вышедший из этого буфера.
Таким образом, распределяются все заказы, которые нужно обработать той или иной машиной.
Т.к. среднее время необходимое для выполнения заказа равно 10 единицам времени(включая поломку, и т.п.) и задаётся пуассоновским законом распределения, то оно может сильно меняться.
Это время стоит во времени обработки в элементах Mach_9 - Mach_14.
Element 9: Time = 10.0 Neg.Exp
Element 10: Time =10.0 Neg.Exp
Element 11: Time = 10.0 Neg.Exp
Element 12: Time = 10.0 Neg.Exp
Element 13: Time = 10.0 Neg.Exp
Element 14: Time = 10.0 Neg.Exp
В настоящий момент времени доступны все машины. У всех 6 машин стоит галочка в поле Element active.
Model | Elements | Element parameters | More
Element 9: Element active = On
Element 10: Element active = On
Element 11: Element active = On
Element 12: Element active = On
Element 13: Element active = On
Element 14: Element active = On
После обработки заказы, прошедшие через первые 3 машины (Mach_9, Mach_10, Mach_11) направляются в Buff_15, через оставшиеся 3 (Mach_12, Mach_13, Mach_14) - в Buff_16:
Element 9: Send to = 15
Element 10: Send to = 15
Element 11: Send to = 15
Element 12: Send to = 16
Element 13: Send to = 16
Element 14: Send to = 16
Элементы Buff_15, Buff_16 содержат по 14 обработанных заказов и направляют их на выход: Inou_17, Inou_18 соответственно.
Рассмотрим задание финансовых данных. Все финансовые расчёты в модели выполняются в долларах:
Settings| Finances | Currency = $
И, наконец, у нас имеются две динамические иконки WIP, которые отображают производительность системы. Рассмотрим их. Начнем сверху.
Верхняя иконка показывает суммирование длины очереди во всех элементах с 3 по 5 и с 9 по 11. Это отражает сумма переменных elqueue@sum[3..5] и elqueue@sum[9..11].
Нижняя иконка показывает суммирование длины очереди во всех элементах с 6 по 8 и с 12 по 14, т.е. здесь представлена сумма переменных elqueue@sum[6..8] и elqueue@sum[12..14].
Максимальное значение, которое могут принимать данные выражения, равно 10.
В ShowFlow знак @ является знаком присвоения в TLI выражениях. Другими словами, данное выражение суммирует объём работы для всех активных элементов.
Теперь запустим модель.
Simulate | Single run | Start
(или используйте скоростную кнопку запуска)
При запуске модель работает как одна комплексная система, результат которой отображен в динамических иконках.
В течение моделирования можно переключаться между анимацией и статистикой, переключая Animation в Simulation Control Window.
Лучше всего прогнать модель при маленькой скорости, чтобы просмотреть и сравнить результаты, представленные в динамических иконках.
Поскольку заказы поступают случайным образом, то для получения наиболее общего результата необходимо большее количество прогонов.
2. Моделирование бизнес-процесса реинженеринга в офисе
2.1 Цель
Определить, насколько эффективно будет новое распределение этапов обработки заявок.
2.2 Описание
В некоторый офис поступают заявки, которые сначала регистрируются, затем поступают на рассмотрение, принимаются или отвергаются, и наконец выполняются, если принято такое решение. Также представлены 2 последовательности этапов обработки заявок. Результаты обработок представлены в динамических иконках.
2.3 Операции
Рассмотрим структуру данной имитационной модели.
В неделе 5 рабочих дней.
60 units make 1 hour
5 day make 1 week
Время, в течение которого имитируется модель с начала ее запуска равно 12 неделям.
Settings | Simulate| Stop time = 12 week
Рассмотрим элементы, из которых построена модель и связи между ними.
Элементы – Inou_1, Inou_24 служат для генерации входящего потока клиентов.
Элементы – Oueu_2, Oueu_25 содержат очередь поступивших клиентов с заявками.
Элементы – Task_3, Task_26 предназначены для отображения приема клиента с заявкой.
Элементы – Oueu_4, Oueu_27 содержат заявки для регистрации.
Элементы – Task_5, Task_6, Task_28, Task_29 отражают регистрацию заявки.
Элементы – Oueu_7, Oueu_30 содержат уже зарегистрированные заявки.
Элементы – Task_8, Task_31 отражают сортировку заявок для дальнейшего рассмотрения.
Элементы – Oueu_9, Oueu_11, Oueu_13, Oueu_37 содержат заявки, ожидающие своего рассмотрения.
Элементы – Task_10, Task_12, Task_14, Task_38, Task_39, Task_40 отражают рассмотрение принятой заявки.
Элементы – Oueu_15, Oueu_32 содержат заявки, которые будут либо приняты, либо отвергнуты.
Элементы –Task_16, Task_33 принимают либо отвергают заявки.
Элементы – Oueu_17, Oueu_41 содержат заявки для регистрации об их выполнении.
Элементы – Task_18, Task_42 отражают регистрацию о выполнении заявок.
Элементы – Oueu_19, Oueu_34 содержат рассмотренные заявки.
Элементы – Task_20, Task_21, Task_35, Task_36 отражают хранение рассмотренных заявок.
Элементы – Oueu_22, Oueu_43 содержат заявки с регистрацией об ее выполнении.
Элементы – Inou_23, Inou_44 являются выходом для заявок, прошедших обработку.
По условию задачи нам даны 2 различных последовательности этапов обработки заявок в одном и том же офисе. Заявки поступают в тот или иной процесс обработки:
Element 1: Send to = Select 2 from 2, 25
Причем для каждой из них в какой-то момент фиксируется ее время:
Element 2: Trigger on entry leadtime[C]:=time
Element 25: Trigger on entry= leadtime[C]:=time
Очередь клиентов с заявками может состоять лишь из 16 человек:
Element 2: Capacity = 16
Element 25: Capacity = 16
Время приема заявки от клиента задается пуассоновским законом распределения. Оно равно 6 и 4 единицам времени:
Element 3: Time = 6.0 Neg.Exp
Element 26: Time = 4.0 Neg.Exp
Выражение в элементах Task_3 и Task_26, а именно:
Element 3: Trigger on exit = product[C]:=2
Element 26: Trigger on exit = product[C]:=2
обозначает, что заявка принята.
Далее заявка направляется на регистрацию в какой-либо регистрирующий отдел:
Element 4: Send to = Select 1 from 5, 6
Element 27: Send to = Select 1 from 28, 29
При этом количество заявок, ожидающих регистрацию, может достигать 24:
Element 4: Capacity = 24
Element 27: Capacity = 24
Заявка регистрируется в течение 13 единиц времени:
Element 5: Time = 13.0 Neg.Exp
Element 6: Time = 13.0 Neg.Exp
Element 28: Time = 13.0 Neg.Exp
Element 29: Time = 13.0 Neg.Exp
Об ее регистрации говорит выражение:
Element 5: Trigger on exit = product[C]:=3
Element 6: Trigger on exit = product[C]:=3
Element 28: Trigger on exit = product[C]:=3
Element 29: Trigger on exit = product[C]:=3
Т.е. заявка уже зарегистрирована.
Далее зарегистрированные заявки сортируются в течение 10 единиц времени:
Element 5: Time = 10.0 Neg.Exp
Element 6: Time = 10.0 Neg.Exp
а отсортированные:
Element 8: Trigger on exit = product[C]:=4
Element 31: Trigger on exit = product[C]:=4
рассматриваются за 15 в офисе с текущей последовательностью этапов обработки заявок и за 35 в офисе с запланированной последовательностью этапов обработки.
Выражение:
Element 14: Trigger on exit = product[C]:=5
Element 40: Trigger on exit = product[C]:=5
обозначает, что заявка уже рассмотрена.
Следует заметить, что количество уже зарегистрированных заявок в очереди не должно превышать 8:
Element 7: Capacity = 8
Element 30: Capacity = 8
Количество заявок, ожидающих своего рассмотрения в офисе с текущей последовательностью этапов обработки – 24:
Element 9: Capacity = 24
Element 11: Capacity = 24
Element 13: Capacity = 24
а в офисе с запланированной последовательностью этапов обработки – 104 заявки:
Element 37: Capacity = 104
которые далее отправляются на рассмотрение:
Element 9: Send to = 10
Element 11: Send to = 12
Element 13: Send to = 14
Element 37: Send to = Select 1 from 38, 39, 40
Очередь, состоящая из заявок, которые примут или отвергнут, одновременно может содержать 5 таких заявок:
Element 15: Capacity = 5
Element 32: Capacity = 5
Процесс принятия решения занимает лишь 10 единиц времени:
Element 16: Time = 10.0 Neg.Exp
Заявки, подлежащие регистрации о выполнении, поступают с кодом продукта, равным 7:
Element 17: Trigger on entry = product[C]:=7
Element 41: Trigger on entry = product[C]:=7
Одновременно в очереди могут находиться 16 таких заявок:
Element 17 Capacity = 16
Element 41: Capacity = 16
После регистрации о выполнении в течение 18 единиц времени:
Element 18: Time = 18.0 Neg.Exp
Element 42: Time = 18.0 Neg.Exp
80 % заявок поступают к заявкам, выполнение которых уже зарегистрировано, а 20 % пока остаются в очереди (офис с текущей последовательностью этапов обработки):
Element 18: Send to = Select 1 from Bernoulli [80, 20, 19]
Закон распределения Бернулли.
В офисе с запланированной последовательностью этапов обработки заявки с регистрацией о выполнении поступают в хранилище данных заявок:
Element 42: Send to = 43
Рассмотренные заявки поступают в очередь с кодом продукта 6:
Element 19: Trigger on entry = product[C]:=6
Element 34: Trigger on entry = product[C]:=6
Одновременно в очереди могут находиться 12 таких заявок:
Element 19 Capacity = 12
Element 34: Capacity = 12
Затем эти заявки поступают в хранилище:
Element 19: Send to = Select 1 from 20, 21
Element 34: Send to = Select 1 from 35, 36
В хранилище заявки находяться в течение 100 единиц времени:
Element 20: Time = 100.0 Neg.Exp
Element 21: Time = 100.0 Neg.Exp
Element 35: Time = 100.0 Neg.Exp
Element 36: Time = 100.0 Neg.Exp
При выходе всех заявок с регистрацией о выполнении их суммарное время нахождения в системе обнуляется:
Element 22: Trigger on exit = leadsum[1,1]:= leadsum[1,1]+time-leadtime[C]
Element 43: Trigger on exit = leadsum[2,1]:= leadsum[2,1]+time-leadtime[C]
Данные выражения ссылаются на таблицу leadsum
где leadsum[1,1] и leadsum[2,1] – суммарное время нахождения всех заявок в системе,
time – текущее время нажождения заявки в системе,
leadtime[C] – время входа заявки в систему.
Теперь рассмотрим динамические иконки.
Иконки под названием Applications Completed отображают объем выпуска заявок с регистрацией об их выполнении (produced[22] и produced[42]). Максимальное число заявок в обоих случаях равно 100000.
Иконки 1и 4 с текстомWIP T1..T2 (current) и WIP T1..T2 (prop) показывают соответственно суммирование длины очереди во всех элементах с 9 по 14 (elqueue@sum[9..14]) и с 37 по 40 (elqueue@sum[37..40]). Максимальное значение суммы в обоих случаях равно 75.
Оставшиеся 2 иконки 2 и 3 с соответсвующим текстом Leadtime (current) и Leadtime (prop) отображают среднее время обработки заявки.
Отметим, что current – это текущая последовательность этапов обработки заявок, а prop – запланированная.
В результате получим максимальный объем выпуска обработанных заявок при минимальной затрате времени, учитывая новое распределение этапов обработки. Следовательно, наиболее эффективно использовать запланированный бизнес-процесс.